drm: fix multi GPU drmGetDevices only return one device
When multi GPU present, after drmFoldDuplicatedDevices merge same busid deveces, two different devices may be seperated by zero in local_devices[]. The for loop should check all local_devices instead of exit when meet a zero. Reviewed-by: Jim Qu <Jim.Qu@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Qiang Yu <Qiang.Yu@amd.com>main
parent
361d0a8898
commit
70b64073f7
|
@ -3267,7 +3267,10 @@ int drmGetDevices(drmDevicePtr devices[], int max_devices)
|
||||||
drmFoldDuplicatedDevices(local_devices, node_count);
|
drmFoldDuplicatedDevices(local_devices, node_count);
|
||||||
|
|
||||||
device_count = 0;
|
device_count = 0;
|
||||||
for (i = 0; i < node_count && local_devices[i]; i++) {
|
for (i = 0; i < node_count; i++) {
|
||||||
|
if (!local_devices[i])
|
||||||
|
continue;
|
||||||
|
|
||||||
if ((devices != NULL) && (device_count < max_devices))
|
if ((devices != NULL) && (device_count < max_devices))
|
||||||
devices[device_count] = local_devices[i];
|
devices[device_count] = local_devices[i];
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue