[PATCH 04/11] drm/ttm: move default BO destructor into VMWGFX

Zack Rusin zackr at vmware.com
Mon Apr 18 19:45:36 UTC 2022


On Tue, 2022-03-29 at 13:02 +0200, Christian König wrote:
> ⚠ External Email
> 
> It's the only driver using this.
> 
> Signed-off-by: Christian König <christian.koenig at amd.com>

Looks good. A small suggestion underneath.

Reviewed-by: Zack Rusin <zackr at vmware.com>

> ---
>  drivers/gpu/drm/ttm/ttm_bo.c       |  9 +--------
>  drivers/gpu/drm/vmwgfx/vmwgfx_bo.c | 11 ++++++++++-
>  2 files changed, 11 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c
> b/drivers/gpu/drm/ttm/ttm_bo.c
> index e5fd0f2c0299..7598d59423bf 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
> @@ -44,12 +44,6 @@
> 
>  #include "ttm_module.h"
> 
> -/* default destructor */
> -static void ttm_bo_default_destroy(struct ttm_buffer_object *bo)
> -{
> -       kfree(bo);
> -}
> -
>  static void ttm_bo_mem_space_debug(struct ttm_buffer_object *bo,
>                                         struct ttm_placement
> *placement)
>  {
> @@ -938,8 +932,7 @@ int ttm_bo_init_reserved(struct ttm_device *bdev,
>         bool locked;
>         int ret;
> 
> -       bo->destroy = destroy ? destroy : ttm_bo_default_destroy;
> -
> +       bo->destroy = destroy;
>         kref_init(&bo->kref);
>         INIT_LIST_HEAD(&bo->ddestroy);
>         bo->bdev = bdev;
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c
> b/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c
> index 31aecc46624b..60dcc6a75248 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c
> @@ -378,6 +378,12 @@ void vmw_bo_bo_free(struct ttm_buffer_object
> *bo)
>         kfree(vmw_bo);
>  }
> 
> +/* default destructor */
> +static void vmw_bo_default_destroy(struct ttm_buffer_object *bo)
> +{
> +       kfree(bo);
> +}
> +
>  /**
>   * vmw_bo_create_kernel - Create a pinned BO for internal kernel
> use.
>   *
> @@ -410,7 +416,7 @@ int vmw_bo_create_kernel(struct vmw_private
> *dev_priv, unsigned long size,
> 
>         ret = ttm_bo_init_reserved(&dev_priv->bdev, bo, size,
>                                    ttm_bo_type_kernel, placement, 0,
> -                                  &ctx, NULL, NULL, NULL);
> +                                  &ctx, NULL, NULL,
> vmw_bo_default_destroy);
>         if (unlikely(ret))
>                 goto error_free;
> 
> @@ -439,6 +445,9 @@ int vmw_bo_create(struct vmw_private *vmw,
>                 return -ENOMEM;
>         }
> 
> +       if (!bo_free)
> +               bo_free = vmw_bo_default_destroy;
> +

If you could change this to just  BUG_ON(!bo_free) that'd be great.
bo_free == NULL should never happen here.

z


More information about the dri-devel mailing list