diff options
author | Gurchetan Singh <gurchetansingh@chromium.org> | 2017-07-19 08:37:06 -0700 |
---|---|---|
committer | Emil Velikov <emil.l.velikov@gmail.com> | 2017-07-20 12:23:58 +0100 |
commit | 5226b52773e0a9972cd1e0dade55cb9ae869941c (patch) | |
tree | ca071a95bbca6b4a5dfac8aba6a29b8e61aa4e65 | |
parent | 23e234a3503f51b9d9c585123d33b936f522808d (diff) |
xf86drm: continue after drmProcessPlatformDevice failure
On ChromeOS devices, readdir() processes the directory in
the following order:
-NAME- -TYPE-
. n/a
.. n/a
vgem n/a
card1 DRM_BUS_PLATFORM
renderD129 DRM_BUS_PLATFORM
card0 DRM_BUS_PCI
renderD128 DRM_BUS_PCI
controlD64 DRM_BUS_PCI
In drmGetDevices2, after drmProcessPlatformDevice fails for
/dev/dri/card1, we don't process the remaining directory entries.
As such, Vulkan fails to initialize since Mesa uses drmGetDevices2.
To fix this, continue if drmProcessPlatformDevice fails.
Fixes: 7b1f37f474d ("xf86drm: Add platform and host1x bus support")
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
[Emil: correct the host1x platforms as well]
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
-rw-r--r-- | xf86drm.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -3997,7 +3997,7 @@ int drmGetDevices2(uint32_t flags, drmDevicePtr devices[], int max_devices) ret = drmProcessPlatformDevice(&device, node, node_type, maj, min, devices != NULL, flags); if (ret) - goto free_devices; + continue; break; @@ -4005,7 +4005,7 @@ int drmGetDevices2(uint32_t flags, drmDevicePtr devices[], int max_devices) ret = drmProcessHost1xDevice(&device, node, node_type, maj, min, devices != NULL, flags); if (ret) - goto free_devices; + continue; break; |