Otherwise job submissions can fail with ENOMEM.

We probably need to re-design the per VMID tracking at some point.

Signed-off-by: Christian König <[email protected]>
Fixes: https://gitlab.freedesktop.org/drm/amd/-/issues/4258#note_3179934
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c
index 5f94a66511af..ecf2b1f13ca7 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c
@@ -286,7 +286,7 @@ static int amdgpu_vmid_grab_reserved(struct amdgpu_vm *vm,
        * user of the VMID.
        */
        r = amdgpu_sync_fence(&(*id)->active, &job->base.s_fence->finished,
-                             GFP_NOWAIT);
+                             GFP_ATOMIC);
        if (r)
                return r;
 
@@ -346,7 +346,7 @@ static int amdgpu_vmid_grab_used(struct amdgpu_vm *vm,
                 */
                r = amdgpu_sync_fence(&(*id)->active,
                                      &job->base.s_fence->finished,
-                                     GFP_NOWAIT);
+                                     GFP_ATOMIC);
                if (r)
                        return r;
 
@@ -399,7 +399,7 @@ int amdgpu_vmid_grab(struct amdgpu_vm *vm, struct 
amdgpu_ring *ring,
                        /* Remember this submission as user of the VMID */
                        r = amdgpu_sync_fence(&id->active,
                                              &job->base.s_fence->finished,
-                                             GFP_NOWAIT);
+                                             GFP_ATOMIC);
                        if (r)
                                goto error;
 
-- 
2.43.0

Reply via email to