[libdrm][PATCH] drm: fix multi GPU drmGetDevices only return one device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Qiang Yu <Qiang.Yu@xxxxxxx>

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.

Change-Id: I0b655f795727492bd7886cb60e07832bd9849d89
Signed-off-by: Qiang Yu <Qiang.Yu@xxxxxxx>
---
 xf86drm.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/xf86drm.c b/xf86drm.c
index 5f587d9..6689f7c 100644
--- a/xf86drm.c
+++ b/xf86drm.c
@@ -3267,7 +3267,10 @@ int drmGetDevices(drmDevicePtr devices[], int max_devices)
     drmFoldDuplicatedDevices(local_devices, node_count);
 
     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))
             devices[device_count] = local_devices[i];
         else
-- 
1.9.1


_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux