diff mbox

[2/4] drm: BUG_ON if passing NULL parent to drm_dev_init

Message ID 20180328012451.31479-2-emil.l.velikov@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Emil Velikov March 28, 2018, 1:24 a.m. UTC
From: Emil Velikov <emil.velikov@collabora.com>

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.

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Deepak Sharma <deepak.sharma@amd.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
---
 drivers/gpu/drm/drm_drv.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

Comments

Daniel Vetter March 28, 2018, 7:17 a.m. UTC | #1
On Wed, Mar 28, 2018 at 02:24:49AM +0100, Emil Velikov wrote:
> From: Emil Velikov <emil.velikov@collabora.com>
> 
> 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.
> 
> 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>

> ---
>  drivers/gpu/drm/drm_drv.c | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> index a1b9338736e3..88da984ff9eb 100644
> --- a/drivers/gpu/drm/drm_drv.c
> +++ b/drivers/gpu/drm/drm_drv.c
> @@ -432,8 +432,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
> @@ -458,6 +456,8 @@ int drm_dev_init(struct drm_device *dev,
>  		return -ENODEV;
>  	}
>  
> +	BUG_ON(parent == NULL);
> +
>  	kref_init(&dev->ref);
>  	dev->dev = parent;
>  	dev->driver = driver;
> @@ -506,9 +506,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;
>  
> -- 
> 2.16.0
>
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index a1b9338736e3..88da984ff9eb 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -432,8 +432,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
@@ -458,6 +456,8 @@  int drm_dev_init(struct drm_device *dev,
 		return -ENODEV;
 	}
 
+	BUG_ON(parent == NULL);
+
 	kref_init(&dev->ref);
 	dev->dev = parent;
 	dev->driver = driver;
@@ -506,9 +506,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;