Commit f08877e7 authored by Emil Velikov's avatar Emil Velikov Committed by Emil Velikov

drm: BUG_ON if passing NULL parent to drm_dev_init

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: default avatarEmil Velikov <emil.velikov@collabora.com>
Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20181023163550.15211-2-emil.l.velikov@gmail.com
parent d5c04dff
...@@ -476,8 +476,6 @@ static void drm_fs_inode_free(struct inode *inode) ...@@ -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 * The initial ref-count of the object is 1. Use drm_dev_get() and
* drm_dev_put() to take and drop further ref-counts. * 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 * Drivers that do not want to allocate their own device struct
* embedding &struct drm_device can call drm_dev_alloc() instead. For drivers * 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 * 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, ...@@ -502,6 +500,8 @@ int drm_dev_init(struct drm_device *dev,
return -ENODEV; return -ENODEV;
} }
BUG_ON(!parent);
kref_init(&dev->ref); kref_init(&dev->ref);
dev->dev = parent; dev->dev = parent;
dev->driver = driver; dev->driver = driver;
...@@ -556,9 +556,7 @@ int drm_dev_init(struct drm_device *dev, ...@@ -556,9 +556,7 @@ int drm_dev_init(struct drm_device *dev,
} }
} }
/* Use the parent device name as DRM device unique identifier, but fall ret = drm_dev_set_unique(dev, dev_name(parent));
* back to the driver name for virtual devices like vgem. */
ret = drm_dev_set_unique(dev, parent ? dev_name(parent) : driver->name);
if (ret) if (ret)
goto err_setunique; goto err_setunique;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment