aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Gray <jsg@jsg.id.au>2019-05-13 02:50:49 +1000
committerEric Engestrom <eric.engestrom@intel.com>2019-07-03 12:26:54 +0100
commit13e2c356039ab5270174c9401c120bc9df5e23a6 (patch)
treec36941cfd2719815b9de81f4b02f85bd6bf0fe94
parentdcc586c66c65b9b36cf62c91e060778ccf6072ed (diff)
downloadexternal_libdrm-13e2c356039ab5270174c9401c120bc9df5e23a6.tar.gz
external_libdrm-13e2c356039ab5270174c9401c120bc9df5e23a6.tar.bz2
external_libdrm-13e2c356039ab5270174c9401c120bc9df5e23a6.zip
xf86drm: test for render nodes before primary nodes
Unlike Linux the OpenBSD primary "drm" device name is substring of the "drmR" render node device name and strncmp() tests resulted in render nodes being flagged as primary nodes. Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> Acked-by: Eric Engestrom <eric.engestrom@intel.com>
-rw-r--r--xf86drm.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/xf86drm.c b/xf86drm.c
index 953fc762..39a82063 100644
--- a/xf86drm.c
+++ b/xf86drm.c
@@ -3141,10 +3141,6 @@ drm_public int drmDevicesEqual(drmDevicePtr a, drmDevicePtr b)
static int drmGetNodeType(const char *name)
{
- if (strncmp(name, DRM_PRIMARY_MINOR_NAME,
- sizeof(DRM_PRIMARY_MINOR_NAME) - 1) == 0)
- return DRM_NODE_PRIMARY;
-
if (strncmp(name, DRM_CONTROL_MINOR_NAME,
sizeof(DRM_CONTROL_MINOR_NAME ) - 1) == 0)
return DRM_NODE_CONTROL;
@@ -3153,6 +3149,10 @@ static int drmGetNodeType(const char *name)
sizeof(DRM_RENDER_MINOR_NAME) - 1) == 0)
return DRM_NODE_RENDER;
+ if (strncmp(name, DRM_PRIMARY_MINOR_NAME,
+ sizeof(DRM_PRIMARY_MINOR_NAME) - 1) == 0)
+ return DRM_NODE_PRIMARY;
+
return -EINVAL;
}