Skip to content

Commit ddfe95f

Browse files
yunxialigregkh
authored andcommitted
drm/amdgpu: add lock in amdgpu_gart_invalidate_tlb
[ Upstream commit 18f2525 ] We need to take the reset domain lock before flush hdp. We can't put the lock inside amdgpu_device_flush_hdp itself because it is used during reset where we already take the write side lock. Signed-off-by: Yunxiang Li <[email protected]> Reviewed-by: Christian König <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Sasha Levin <[email protected]>
1 parent 494b42f commit ddfe95f

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include <asm/set_memory.h>
3535
#endif
3636
#include "amdgpu.h"
37+
#include "amdgpu_reset.h"
3738
#include <drm/drm_drv.h>
3839
#include <drm/ttm/ttm_tt.h>
3940

@@ -400,7 +401,10 @@ void amdgpu_gart_invalidate_tlb(struct amdgpu_device *adev)
400401
return;
401402

402403
mb();
403-
amdgpu_device_flush_hdp(adev, NULL);
404+
if (down_read_trylock(&adev->reset_domain->sem)) {
405+
amdgpu_device_flush_hdp(adev, NULL);
406+
up_read(&adev->reset_domain->sem);
407+
}
404408
for_each_set_bit(i, adev->vmhubs_mask, AMDGPU_MAX_VMHUBS)
405409
amdgpu_gmc_flush_gpu_tlb(adev, 0, i, 0);
406410
}

0 commit comments

Comments
 (0)