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

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

 





Am 09.06.21 um 19:45 schrieb Mikko Perttunen:
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@xxxxxxx>
---
  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@xxxxxxxxxx>

Thanks. Can anybody give me an rb that I can push this to drm-misc-next before the weekend?

Regards,
Christian.


Mikko

_______________________________________________
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