Am 20.11.24 um 10:26 schrieb Arunpravin Paneer Selvam:
Fix the warning issue generated at lib/xarray.c:1849.
v2: keep the error handling same as before when the
xalloc() call fails to store the fence_drv ref.
Signed-off-by: Arunpravin Paneer Selvam <[email protected]>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
index 76f7babd7a54..bfe7d1d139d1 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
@@ -842,8 +842,10 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void
*data,
* have any more space left and crash.
*/
if (fence_drv->fence_drv_xa_ptr) {
- r = xa_alloc(fence_drv->fence_drv_xa_ptr,
&index, fence_drv,
- xa_limit_32b, GFP_KERNEL);
+ xa_lock(fence_drv->fence_drv_xa_ptr);
+ r = __xa_alloc(fence_drv->fence_drv_xa_ptr,
&index, fence_drv,
+ xa_limit_32b, GFP_KERNEL);
+ xa_unlock(fence_drv->fence_drv_xa_ptr);
Why should that fix anything? That code looks identical, just with
explicit locking.
Regards,
Christian.
if (r)
goto free_fences;