]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu/userq: Fix reading timeline points in wait ioctl
authorDavid Rosca <david.rosca@amd.com>
Sat, 13 Sep 2025 14:51:02 +0000 (16:51 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 4 Jun 2026 19:54:20 +0000 (15:54 -0400)
Use correct u64 type.

Signed-off-by: David Rosca <david.rosca@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 0ac98160dfb6ab3c6d7b38e0ff9687780beed9cb)

drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c

index a41fb72dba9403fbc8aa148fba06ce33a8b00a7e..f74ad378e407420e102942449dc02f4c3b3e332c 100644 (file)
@@ -593,7 +593,7 @@ free_syncobj_handles:
 static int
 amdgpu_userq_wait_count_fences(struct drm_file *filp,
                               struct drm_amdgpu_userq_wait *wait_info,
-                              u32 *syncobj_handles, u32 *timeline_points,
+                              u32 *syncobj_handles, u64 *timeline_points,
                               u32 *timeline_handles,
                               struct drm_gem_object **gobj_write,
                               struct drm_gem_object **gobj_read)
@@ -703,7 +703,7 @@ amdgpu_userq_wait_add_fence(struct drm_amdgpu_userq_wait *wait_info,
 static int
 amdgpu_userq_wait_return_fence_info(struct drm_file *filp,
                                    struct drm_amdgpu_userq_wait *wait_info,
-                                   u32 *syncobj_handles, u32 *timeline_points,
+                                   u32 *syncobj_handles, u64 *timeline_points,
                                    u32 *timeline_handles,
                                    struct drm_gem_object **gobj_write,
                                    struct drm_gem_object **gobj_read)
@@ -906,7 +906,8 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void *data,
                            struct drm_file *filp)
 {
        int num_points, num_syncobj, num_read_bo_handles, num_write_bo_handles;
-       u32 *syncobj_handles, *timeline_points, *timeline_handles;
+       u32 *syncobj_handles, *timeline_handles;
+       u64 *timeline_points;
        struct drm_amdgpu_userq_wait *wait_info = data;
        struct drm_gem_object **gobj_write;
        struct drm_gem_object **gobj_read;
@@ -935,7 +936,7 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void *data,
        }
 
        ptr = u64_to_user_ptr(wait_info->syncobj_timeline_points);
-       timeline_points = memdup_array_user(ptr, num_points, sizeof(u32));
+       timeline_points = memdup_array_user(ptr, num_points, sizeof(u64));
        if (IS_ERR(timeline_points)) {
                r = PTR_ERR(timeline_points);
                goto free_timeline_handles;