diff mbox

[02/12] drm/ttm: Add a default BO destructor to simplify code

Message ID 20180126182911.20761-3-tom.stdenis@amd.com (mailing list archive)
State New, archived
Headers show

Commit Message

StDenis, Tom Jan. 26, 2018, 6:29 p.m. UTC
Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
---
 drivers/gpu/drm/ttm/ttm_bo.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

Comments

Felix Kuehling Jan. 26, 2018, 7:23 p.m. UTC | #1
On 2018-01-26 01:29 PM, Tom St Denis wrote:
> Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
> ---
>  drivers/gpu/drm/ttm/ttm_bo.c | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
> index 8cf89da7030d..4e85c32fea26 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
> @@ -49,6 +49,12 @@ static struct attribute ttm_bo_count = {
>  	.mode = S_IRUGO
>  };
>  
> +/* default destructor */
> +static void ttm_bo_default_destroy(struct ttm_buffer_object *bo)
> +{
> +	kfree(bo);
> +};

Stray semicolon.

> +
>  static inline int ttm_mem_type_from_place(const struct ttm_place *place,
>  					  uint32_t *mem_type)
>  {
> @@ -147,10 +153,7 @@ static void ttm_bo_release_list(struct kref *list_kref)
>  	dma_fence_put(bo->moving);
>  	reservation_object_fini(&bo->ttm_resv);
>  	mutex_destroy(&bo->wu_mutex);
> -	if (bo->destroy)
> -		bo->destroy(bo);
> -	else
> -		kfree(bo);
> +	bo->destroy(bo);
>  	ttm_mem_global_free(bdev->glob->mem_glob, acc_size);
>  }
>  
> @@ -1176,7 +1179,8 @@ int ttm_bo_init_reserved(struct ttm_bo_device *bdev,
>  		ttm_mem_global_free(mem_glob, acc_size);
>  		return -EINVAL;
>  	}
> -	bo->destroy = destroy;
> +	bo->destroy =
> +		(destroy == NULL) ? ttm_bo_default_destroy : destroy;

This could be written shorter as "!destroy ? ttm_bo_default_destroy :
destroy", or even "destroy ? destroy : ttm_bo_default_destroy".

Regards,
  Felix

>  
>  	kref_init(&bo->kref);
>  	kref_init(&bo->list_kref);
Ville Syrjälä Jan. 26, 2018, 7:34 p.m. UTC | #2
On Fri, Jan 26, 2018 at 02:23:39PM -0500, Felix Kuehling wrote:
> On 2018-01-26 01:29 PM, Tom St Denis wrote:
> > Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
> > ---
> >  drivers/gpu/drm/ttm/ttm_bo.c | 14 +++++++++-----
> >  1 file changed, 9 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
> > index 8cf89da7030d..4e85c32fea26 100644
> > --- a/drivers/gpu/drm/ttm/ttm_bo.c
> > +++ b/drivers/gpu/drm/ttm/ttm_bo.c
> > @@ -49,6 +49,12 @@ static struct attribute ttm_bo_count = {
> >  	.mode = S_IRUGO
> >  };
> >  
> > +/* default destructor */
> > +static void ttm_bo_default_destroy(struct ttm_buffer_object *bo)
> > +{
> > +	kfree(bo);
> > +};
> 
> Stray semicolon.
> 
> > +
> >  static inline int ttm_mem_type_from_place(const struct ttm_place *place,
> >  					  uint32_t *mem_type)
> >  {
> > @@ -147,10 +153,7 @@ static void ttm_bo_release_list(struct kref *list_kref)
> >  	dma_fence_put(bo->moving);
> >  	reservation_object_fini(&bo->ttm_resv);
> >  	mutex_destroy(&bo->wu_mutex);
> > -	if (bo->destroy)
> > -		bo->destroy(bo);
> > -	else
> > -		kfree(bo);
> > +	bo->destroy(bo);
> >  	ttm_mem_global_free(bdev->glob->mem_glob, acc_size);
> >  }
> >  
> > @@ -1176,7 +1179,8 @@ int ttm_bo_init_reserved(struct ttm_bo_device *bdev,
> >  		ttm_mem_global_free(mem_glob, acc_size);
> >  		return -EINVAL;
> >  	}
> > -	bo->destroy = destroy;
> > +	bo->destroy =
> > +		(destroy == NULL) ? ttm_bo_default_destroy : destroy;
> 
> This could be written shorter as "!destroy ? ttm_bo_default_destroy :
> destroy", or even "destroy ? destroy : ttm_bo_default_destroy".

Or even 'destroy ?: ttm_bo_default_destroy' if you think
the gcc extension is cool enough. It is used elsewhere in
the kernel.
diff mbox

Patch

diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index 8cf89da7030d..4e85c32fea26 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -49,6 +49,12 @@  static struct attribute ttm_bo_count = {
 	.mode = S_IRUGO
 };
 
+/* default destructor */
+static void ttm_bo_default_destroy(struct ttm_buffer_object *bo)
+{
+	kfree(bo);
+};
+
 static inline int ttm_mem_type_from_place(const struct ttm_place *place,
 					  uint32_t *mem_type)
 {
@@ -147,10 +153,7 @@  static void ttm_bo_release_list(struct kref *list_kref)
 	dma_fence_put(bo->moving);
 	reservation_object_fini(&bo->ttm_resv);
 	mutex_destroy(&bo->wu_mutex);
-	if (bo->destroy)
-		bo->destroy(bo);
-	else
-		kfree(bo);
+	bo->destroy(bo);
 	ttm_mem_global_free(bdev->glob->mem_glob, acc_size);
 }
 
@@ -1176,7 +1179,8 @@  int ttm_bo_init_reserved(struct ttm_bo_device *bdev,
 		ttm_mem_global_free(mem_glob, acc_size);
 		return -EINVAL;
 	}
-	bo->destroy = destroy;
+	bo->destroy =
+		(destroy == NULL) ? ttm_bo_default_destroy : destroy;
 
 	kref_init(&bo->kref);
 	kref_init(&bo->list_kref);