[PATCH] drm/nouveau: init the base GEM fields for internal BOs

Mikko Perttunen cyndis at kapsi.fi
Wed Jun 9 17:45:59 UTC 2021


On 6/9/21 8:29 PM, Christian König wrote:
> TTMs buffer objects are based on GEM objects for quite a while
> and rely on initializing those fields before initializing the TTM BO.
> 
> Noveau now doesn't init the GEM object for internally allocated BOs,

Nouveau

> so make sure that we at least initialize some necessary fields.
> 
> Signed-off-by: Christian König <christian.koenig at amd.com>
> ---
>   drivers/gpu/drm/nouveau/nouveau_bo.c | 6 ++++++
>   1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
> index 520b1ea9d16c..085023624fb0 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_bo.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
> @@ -149,6 +149,8 @@ nouveau_bo_del_ttm(struct ttm_buffer_object *bo)
>   	 */
>   	if (bo->base.dev)
>   		drm_gem_object_release(&bo->base);
> +	else
> +		dma_resv_fini(&bo->base._resv);
>   
>   	kfree(nvbo);
>   }
> @@ -330,6 +332,10 @@ nouveau_bo_new(struct nouveau_cli *cli, u64 size, int align,
>   	if (IS_ERR(nvbo))
>   		return PTR_ERR(nvbo);
>   
> +	nvbo->bo.base.size = size;
> +	dma_resv_init(&nvbo->bo.base._resv);
> +	drm_vma_node_reset(&nvbo->bo.base.vma_node);
> +
>   	ret = nouveau_bo_init(nvbo, size, align, domain, sg, robj);
>   	if (ret)
>   		return ret;
> 

That works, thanks for the fix!

Tested-by: Mikko Perttunen <mperttunen at nvidia.com>

Mikko


More information about the dri-devel mailing list