Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/amdgpu/userq: Use memdup_array_user in amdgpu_userq_wait_ioctl

Use the existing helper instead of multiplying the size.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Reviewed-by: Sunil Khatri <sunil.khatri@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Tvrtko Ursulin and committed by
Alex Deucher
fb1bf29a e757981c

+7 -6
+7 -6
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
··· 679 679 } 680 680 681 681 num_syncobj = wait_info->num_syncobj_handles; 682 - syncobj_handles = memdup_user(u64_to_user_ptr(wait_info->syncobj_handles), 683 - size_mul(sizeof(u32), num_syncobj)); 682 + syncobj_handles = memdup_array_user(u64_to_user_ptr(wait_info->syncobj_handles), 683 + num_syncobj, sizeof(u32)); 684 684 if (IS_ERR(syncobj_handles)) { 685 685 r = PTR_ERR(syncobj_handles); 686 686 goto free_bo_handles_write; 687 687 } 688 688 689 689 num_points = wait_info->num_syncobj_timeline_handles; 690 - timeline_handles = memdup_user(u64_to_user_ptr(wait_info->syncobj_timeline_handles), 691 - sizeof(u32) * num_points); 690 + timeline_handles = memdup_array_user(u64_to_user_ptr(wait_info->syncobj_timeline_handles), 691 + num_points, sizeof(u32)); 692 692 if (IS_ERR(timeline_handles)) { 693 693 r = PTR_ERR(timeline_handles); 694 694 goto free_syncobj_handles; 695 695 } 696 696 697 - timeline_points = memdup_user(u64_to_user_ptr(wait_info->syncobj_timeline_points), 698 - sizeof(u32) * num_points); 697 + timeline_points = memdup_array_user(u64_to_user_ptr(wait_info->syncobj_timeline_points), 698 + num_points, sizeof(u32)); 699 + 699 700 if (IS_ERR(timeline_points)) { 700 701 r = PTR_ERR(timeline_points); 701 702 goto free_timeline_handles;