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

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

 



On Wed, 9 Jun 2021 at 18:29, Christian König
<ckoenig.leichtzumerken@xxxxxxxxx> 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,
> so make sure that we at least initialize some necessary fields.
>
> Signed-off-by: Christian König <christian.koenig@xxxxxxx>

fwiw,
Reviewed-by: Matthew Auld <matthew.auld@xxxxxxxxx>

> ---
>  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;
> --
> 2.25.1
>
_______________________________________________
Nouveau mailing list
Nouveau@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/nouveau




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux