From 5743a36b2b32a91eaf82c8d109932fe4fea01233 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mathias=20Fr=C3=B6hlich?= Date: Thu, 6 Jun 2019 10:22:25 +0200 Subject: [PATCH] egl: Don't add hardware device if there is no render node v2. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Do not offer a hardware drm backed egl device if no render node is available. The current implementation will fail on this egl device. On top it issues a warning that is actually missleading. There are finally more error paths that can fail on the way to a hardware backed egl device. Fixing all of them would kind of require opening the drm device and see if there is a usable driver associated with the device. The taken approach avoids a full probe and fixes at least this kind of problem on kvm virtualization hosts I observe here. Fixes: dbb4457d985 ("egl: add EGL_EXT_device_drm support") Reviewed-by: Emil Velikov Signed-off-by: Mathias Fröhlich --- src/egl/main/egldevice.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/egl/main/egldevice.c b/src/egl/main/egldevice.c index 76b8960fa5b..99d8a6c1886 100644 --- a/src/egl/main/egldevice.c +++ b/src/egl/main/egldevice.c @@ -108,9 +108,9 @@ static int _eglAddDRMDevice(drmDevicePtr device, _EGLDevice **out_dev) { _EGLDevice *dev; + const int wanted_nodes = 1 << DRM_NODE_RENDER | 1 << DRM_NODE_PRIMARY; - if ((device->available_nodes & (1 << DRM_NODE_PRIMARY | - 1 << DRM_NODE_RENDER)) == 0) + if ((device->available_nodes & wanted_nodes) != wanted_nodes) return -1; dev = _eglGlobal.DeviceList; -- 2.30.2