Ping

On 10-03-2026 07:25 pm, Sunil Khatri wrote:
In function amdgpu_userq_wait_ioctl, call function drm_gem_objects_lookup
only if the count is valid i.e non zero.

In case of object count is 0 set the pointer to NULL for proper clean
up.

Signed-off-by: Sunil Khatri <[email protected]>
---
  .../gpu/drm/amd/amdgpu/amdgpu_userq_fence.c   | 32 ++++++++++++-------
  1 file changed, 20 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
index 76f32fd768fb..a4fff90b190a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
@@ -665,19 +665,27 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void 
*data,
                goto free_timeline_handles;
        }
- r = drm_gem_objects_lookup(filp,
-                                  u64_to_user_ptr(wait_info->bo_read_handles),
-                                  num_read_bo_handles,
-                                  &gobj_read);
-       if (r)
-               goto free_timeline_points;
+       if (num_read_bo_handles) {
+               r = drm_gem_objects_lookup(filp,
+                                          
u64_to_user_ptr(wait_info->bo_read_handles),
+                                          num_read_bo_handles,
+                                          &gobj_read);
+               if (r)
+                       goto free_timeline_points;
+       } else {
+               gobj_read = NULL;
+       }
- r = drm_gem_objects_lookup(filp,
-                                  u64_to_user_ptr(wait_info->bo_write_handles),
-                                  num_write_bo_handles,
-                                  &gobj_write);
-       if (r)
-               goto put_gobj_read;
+       if (num_write_bo_handles) {
+               r = drm_gem_objects_lookup(filp,
+                                          
u64_to_user_ptr(wait_info->bo_write_handles),
+                                          num_write_bo_handles,
+                                          &gobj_write);
+               if (r)
+                       goto put_gobj_read;
+       } else {
+               gobj_write = NULL;
+       }
drm_exec_init(&exec, DRM_EXEC_INTERRUPTIBLE_WAIT,
                      (num_read_bo_handles + num_write_bo_handles));

Reply via email to