mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-08 18:35:20 +02:00
drm/amdgpu: add lock in amdgpu_gart_invalidate_tlb
[ Upstream commit 18f2525d31
]
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>
This commit is contained in:
parent
494b42f35f
commit
ddfe95f2e1
|
@ -34,6 +34,7 @@
|
||||||
#include <asm/set_memory.h>
|
#include <asm/set_memory.h>
|
||||||
#endif
|
#endif
|
||||||
#include "amdgpu.h"
|
#include "amdgpu.h"
|
||||||
|
#include "amdgpu_reset.h"
|
||||||
#include <drm/drm_drv.h>
|
#include <drm/drm_drv.h>
|
||||||
#include <drm/ttm/ttm_tt.h>
|
#include <drm/ttm/ttm_tt.h>
|
||||||
|
|
||||||
|
@ -400,7 +401,10 @@ void amdgpu_gart_invalidate_tlb(struct amdgpu_device *adev)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mb();
|
mb();
|
||||||
|
if (down_read_trylock(&adev->reset_domain->sem)) {
|
||||||
amdgpu_device_flush_hdp(adev, NULL);
|
amdgpu_device_flush_hdp(adev, NULL);
|
||||||
|
up_read(&adev->reset_domain->sem);
|
||||||
|
}
|
||||||
for_each_set_bit(i, adev->vmhubs_mask, AMDGPU_MAX_VMHUBS)
|
for_each_set_bit(i, adev->vmhubs_mask, AMDGPU_MAX_VMHUBS)
|
||||||
amdgpu_gmc_flush_gpu_tlb(adev, 0, i, 0);
|
amdgpu_gmc_flush_gpu_tlb(adev, 0, i, 0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user