Re: [PATCH 07/12] drm/legacy: move init/destroy of struct members into inlines

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Dave.

On Tue, Apr 23, 2019 at 12:00:36PM +1000, Dave Airlie wrote:
> From: Dave Airlie <airlied@xxxxxxxxxx>
> 
> This will allow easier removal later.
> 
> Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
> ---
>  drivers/gpu/drm/drm_drv.c    | 10 +++-------
>  drivers/gpu/drm/drm_legacy.h | 14 ++++++++++++++
>  2 files changed, 17 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> index 18f45f9a955c..e4f36c5ccfcd 100644
> --- a/drivers/gpu/drm/drm_drv.c
> +++ b/drivers/gpu/drm/drm_drv.c
> @@ -659,20 +659,16 @@ int drm_dev_init(struct drm_device *dev,
>  	/* no per-device feature limits by default */
>  	dev->driver_features = ~0u;
>  
> +	drm_legacy_init_members(dev);
>  	INIT_LIST_HEAD(&dev->filelist);
>  	INIT_LIST_HEAD(&dev->filelist_internal);
>  	INIT_LIST_HEAD(&dev->clientlist);
> -	INIT_LIST_HEAD(&dev->ctxlist);
> -	INIT_LIST_HEAD(&dev->vmalist);
> -	INIT_LIST_HEAD(&dev->maplist);
>  	INIT_LIST_HEAD(&dev->vblank_event_list);
>  
> -	spin_lock_init(&dev->buf_lock);
>  	spin_lock_init(&dev->event_lock);
>  	mutex_init(&dev->struct_mutex);
>  	mutex_init(&dev->filelist_mutex);
>  	mutex_init(&dev->clientlist_mutex);
> -	mutex_init(&dev->ctxlist_mutex);
>  	mutex_init(&dev->master_mutex);
>  
>  	dev->anon_inode = drm_fs_inode_new();
> @@ -724,7 +720,7 @@ int drm_dev_init(struct drm_device *dev,
>  err_free:
>  	put_device(dev->dev);
>  	mutex_destroy(&dev->master_mutex);
> -	mutex_destroy(&dev->ctxlist_mutex);
> +	drm_legacy_destroy_members(dev);
>  	mutex_destroy(&dev->clientlist_mutex);
>  	mutex_destroy(&dev->filelist_mutex);
>  	mutex_destroy(&dev->struct_mutex);

I do not know if it has any practical influence.
But my OCD tirgger when we do not destroy the mutex
in the opposite order we init them.
This was so before, but as the init order changed we could also change
the destroy order.
Moving the drm_legacy_destroy_members() down should do it.

> @@ -800,7 +796,7 @@ void drm_dev_fini(struct drm_device *dev)
>  	put_device(dev->dev);
>  
>  	mutex_destroy(&dev->master_mutex);
> -	mutex_destroy(&dev->ctxlist_mutex);
> +	drm_legacy_destroy_members(dev);
>  	mutex_destroy(&dev->clientlist_mutex);
>  	mutex_destroy(&dev->filelist_mutex);
>  	mutex_destroy(&dev->struct_mutex);
Same here.

> diff --git a/drivers/gpu/drm/drm_legacy.h b/drivers/gpu/drm/drm_legacy.h
> index ef419d500e51..20c4befc476b 100644
> --- a/drivers/gpu/drm/drm_legacy.h
> +++ b/drivers/gpu/drm/drm_legacy.h
> @@ -136,5 +136,19 @@ int drm_legacy_sg_alloc(struct drm_device *dev, void *data,
>  int drm_legacy_sg_free(struct drm_device *dev, void *data,
>  		       struct drm_file *file_priv);
>  
> +static inline void drm_legacy_init_members(struct drm_device *dev)
> +{
> +	INIT_LIST_HEAD(&dev->ctxlist);
> +	INIT_LIST_HEAD(&dev->vmalist);
> +	INIT_LIST_HEAD(&dev->maplist);
> +	spin_lock_init(&dev->buf_lock);
> +	mutex_init(&dev->ctxlist_mutex);
> +}
> +
> +static inline void drm_legacy_destroy_members(struct drm_device *dev)
> +{
> +	mutex_destroy(&dev->ctxlist_mutex);
> +}

	Sam
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux