Skip to content

Commit ba1123e

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 <Yunxiang.Li@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 314883f commit ba1123e

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

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

@@ -408,7 +409,10 @@ void amdgpu_gart_invalidate_tlb(struct amdgpu_device *adev)
408409
return;
409410

410411
mb();
411-
amdgpu_device_flush_hdp(adev, NULL);
412+
if (down_read_trylock(&adev->reset_domain->sem)) {
413+
amdgpu_device_flush_hdp(adev, NULL);
414+
up_read(&adev->reset_domain->sem);
415+
}
412416
for_each_set_bit(i, adev->vmhubs_mask, AMDGPU_MAX_VMHUBS)
413417
amdgpu_gmc_flush_gpu_tlb(adev, 0, i, 0);
414418
}

0 commit comments

Comments
 (0)