[PATCH 3/3] drm/amdgpu: Fix PF issue when xalloc fails
Arunpravin Paneer Selvam
Arunpravin.PaneerSelvam at amd.com
Tue Nov 19 13:21:14 UTC 2024
Fix the Page fault and warning issue when xalloc fails to store
the fence_drv.
Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam at amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 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..ea067b006770 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
@@ -842,12 +842,12 @@ 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);
- if (r)
- goto free_fences;
-
- amdgpu_userq_fence_driver_get(fence_drv);
+ 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);
+ if (!r)
+ amdgpu_userq_fence_driver_get(fence_drv);
}
/* Store drm syncobj's gpu va address and value */
--
2.25.1
More information about the amd-gfx
mailing list