drm: BUG_ON if passing NULL parent to drm_dev_init
authorEmil Velikov <emil.velikov@collabora.com>
Tue, 23 Oct 2018 16:35:49 +0000 (17:35 +0100)
committerEmil Velikov <emil.l.velikov@gmail.com>
Thu, 25 Oct 2018 12:25:58 +0000 (13:25 +0100)
Previous commit removed the only reason why we were allowing NULL as
a parent device. With that resolved, we can enforce nobody else does
that mistake.

With that we can drop the ugly drm_dev_set_unique workaround.

v2: rebase, silence checkpatch "== NULL" warning

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Deepak Sharma <deepak.sharma@amd.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20181023163550.15211-2-emil.l.velikov@gmail.com
drivers/gpu/drm/drm_drv.c

index 36e8e9cbec5270b5c14c9328db279c14e16fe136..aa1cef794f9a95d84b0777cd743f3d96c2c1f0be 100644 (file)
@@ -476,8 +476,6 @@ static void drm_fs_inode_free(struct inode *inode)
  * The initial ref-count of the object is 1. Use drm_dev_get() and
  * drm_dev_put() to take and drop further ref-counts.
  *
- * Note that for purely virtual devices @parent can be NULL.
- *
  * Drivers that do not want to allocate their own device struct
  * embedding &struct drm_device can call drm_dev_alloc() instead. For drivers
  * that do embed &struct drm_device it must be placed first in the overall
@@ -502,6 +500,8 @@ int drm_dev_init(struct drm_device *dev,
                return -ENODEV;
        }
 
+       BUG_ON(!parent);
+
        kref_init(&dev->ref);
        dev->dev = parent;
        dev->driver = driver;
@@ -556,9 +556,7 @@ int drm_dev_init(struct drm_device *dev,
                }
        }
 
-       /* Use the parent device name as DRM device unique identifier, but fall
-        * back to the driver name for virtual devices like vgem. */
-       ret = drm_dev_set_unique(dev, parent ? dev_name(parent) : driver->name);
+       ret = drm_dev_set_unique(dev, dev_name(parent));
        if (ret)
                goto err_setunique;