drm render nodes have the same major as drm primary devices but have a
minor offset.

render nodes have a name that reflects the minor node not offset by the
base.  I expected it to be the other way around when these non-linux
codepaths were added (before we had render nodes).

Index: xf86drm.c
===================================================================
RCS file: /cvs/xenocara/lib/libdrm/xf86drm.c,v
retrieving revision 1.34
diff -u -p -r1.34 xf86drm.c
--- xf86drm.c   26 Apr 2019 07:45:37 -0000      1.34
+++ xf86drm.c   12 May 2019 02:45:41 -0000
@@ -2931,7 +2931,7 @@ static char *drmGetMinorNameForFD(int fd
     char buf[PATH_MAX + 1];
     const char *dev_name;
     unsigned int maj, min;
-    int n, base;
+    int n;
 
     if (fstat(fd, &sbuf))
         return NULL;
@@ -2956,11 +2956,7 @@ static char *drmGetMinorNameForFD(int fd
         return NULL;
     };
 
-    base = drmGetMinorBase(type);
-    if (base < 0)
-        return NULL;
-
-    n = snprintf(buf, sizeof(buf), dev_name, DRM_DIR_NAME, min - base);
+    n = snprintf(buf, sizeof(buf), dev_name, DRM_DIR_NAME, min);
     if (n == -1 || n >= sizeof(buf))
         return NULL;
 
@@ -3854,7 +3850,7 @@ drm_public int drmGetDevice2(int fd, uin
     char             node[PATH_MAX + 1];
     const char      *dev_name;
     int              node_type, subsystem_type;
-    int              maj, min, n, ret, base;
+    int              maj, min, n, ret;
 
     if (fd == -1 || device == NULL)
         return -EINVAL;
@@ -3886,11 +3882,7 @@ drm_public int drmGetDevice2(int fd, uin
         return -EINVAL;
     };
 
-    base = drmGetMinorBase(node_type);
-    if (base < 0)
-        return -EINVAL;
-
-    n = snprintf(node, PATH_MAX, dev_name, DRM_DIR_NAME, min - base);
+    n = snprintf(node, PATH_MAX, dev_name, DRM_DIR_NAME, min);
     if (n == -1 || n >= PATH_MAX)
       return -errno;
     if (stat(node, &sbuf))
@@ -4110,7 +4102,7 @@ drm_public char *drmGetDeviceNameFromFd2
     char             node[PATH_MAX + 1];
     const char      *dev_name;
     int              node_type;
-    int              maj, min, n, base;
+    int              maj, min, n;
 
     if (fstat(fd, &sbuf))
         return NULL;
@@ -4139,11 +4131,7 @@ drm_public char *drmGetDeviceNameFromFd2
         return NULL;
     };
 
-    base = drmGetMinorBase(node_type);
-    if (base < 0)
-        return NULL;
-
-    n = snprintf(node, PATH_MAX, dev_name, DRM_DIR_NAME, min - base);
+    n = snprintf(node, PATH_MAX, dev_name, DRM_DIR_NAME, min);
     if (n == -1 || n >= PATH_MAX)
       return NULL;
 

Reply via email to