drm: Fix render node numbering regression from control node removal.
authorEric Anholt <eric@anholt.net>
Wed, 9 May 2018 00:14:25 +0000 (17:14 -0700)
committerEric Anholt <eric@anholt.net>
Mon, 14 May 2018 06:43:09 +0000 (07:43 +0100)
drm_minor_alloc() does multiplication on this enum, so the removal
ended up moving render nodes down from 128 base to 64.  This caused
Mesa's surfaceless backend to be unable to open the render nodes,
since it was still looking up at 128.

v2: Add a comment warning the next person.

Signed-off-by: Eric Anholt <eric@anholt.net>
Fixes: 0d49f303e8a7 ("drm: remove all control node code")
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Sean Paul <seanpaul@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20180509001425.12574-1-eric@anholt.net
include/drm/drm_file.h

index 91a65a3..027ac16 100644 (file)
@@ -47,8 +47,12 @@ struct device;
  * header include loops we need it here for now.
  */
 
+/* Note that the order of this enum is ABI (it determines
+ * /dev/dri/renderD* numbers).
+ */
 enum drm_minor_type {
        DRM_MINOR_PRIMARY,
+       DRM_MINOR_CONTROL,
        DRM_MINOR_RENDER,
 };