Thread (24 messages) read the whole thread 24 messages, 7 authors, 2025-08-09
STALE358d

[PATCH] drm/radeon: always set GEM function pointer

From: Christian Zigotzky <hidden>
Date: 2024-10-08 09:00:23
Also in: amd-gfx

Hi All,

I have released the RC2 of kernel 6.12 with Christian Koenig’s patch for the X1000 and X5000.

Download and further information: https://github.com/chzigotzky/kernels/releases/tag/v6.12.0-rc2

Please test the kernels because of the second Radeon DRM driver issue.

Thanks,
Christian
Am 07.10.2024 um 20:36 schrieb Alex Deucher [off-list ref]:

Add a few people.

This should fix the radeon ttm gem conversion.

Alex


quoted
On Mon, Oct 7, 2024 at 2:33 PM Christian König
[off-list ref] wrote:

Make sure to always set the GEM function pointer even for in kernel
allocations. This fixes a NULL pointer deref caused by switching to GEM
references.

Signed-off-by: Christian König <christian.koenig@amd.com>
Fixes: fd69ef05029f ("drm/radeon: use GEM references instead of TTMs")
---
drivers/gpu/drm/radeon/radeon_gem.c    | 3 ---
drivers/gpu/drm/radeon/radeon_object.c | 1 +
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c
index 9735f4968b86..bf2d4b16dc2a 100644
--- a/drivers/gpu/drm/radeon/radeon_gem.c
+++ b/drivers/gpu/drm/radeon/radeon_gem.c
@@ -44,8 +44,6 @@ struct sg_table *radeon_gem_prime_get_sg_table(struct drm_gem_object *obj);
int radeon_gem_prime_pin(struct drm_gem_object *obj);
void radeon_gem_prime_unpin(struct drm_gem_object *obj);

-const struct drm_gem_object_funcs radeon_gem_object_funcs;
-
static vm_fault_t radeon_gem_fault(struct vm_fault *vmf)
{
       struct ttm_buffer_object *bo = vmf->vma->vm_private_data;
@@ -132,7 +130,6 @@ int radeon_gem_object_create(struct radeon_device *rdev, unsigned long size,
               return r;
       }
       *obj = &robj->tbo.base;
-       (*obj)->funcs = &radeon_gem_object_funcs;
       robj->pid = task_pid_nr(current);

       mutex_lock(&rdev->gem.mutex);
diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
index d0e4b43d155c..7672404fdb29 100644
--- a/drivers/gpu/drm/radeon/radeon_object.c
+++ b/drivers/gpu/drm/radeon/radeon_object.c
@@ -151,6 +151,7 @@ int radeon_bo_create(struct radeon_device *rdev,
       if (bo == NULL)
               return -ENOMEM;
       drm_gem_private_object_init(rdev_to_drm(rdev), &bo->tbo.base, size);
+       bo->tbo.base.funcs = &radeon_gem_object_funcs;
       bo->rdev = rdev;
       bo->surface_reg = -1;
       INIT_LIST_HEAD(&bo->list);
--
2.34.1
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help