drm/amdgpu: handle leaf PDEs as PTEs on Vega
This way we get retry faults for missing PDs. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
5fa76a9dfe
commit
b6f3a51e0a
|
@ -787,15 +787,22 @@ static int amdgpu_vm_clear_bo(struct amdgpu_device *adev,
|
|||
}
|
||||
|
||||
if (entries) {
|
||||
uint64_t value = 0;
|
||||
uint64_t value = 0, flags = 0;
|
||||
|
||||
/* Workaround for fault priority problem on GMC9 */
|
||||
if (level == AMDGPU_VM_PTB &&
|
||||
adev->asic_type >= CHIP_VEGA10)
|
||||
value = AMDGPU_PTE_EXECUTABLE;
|
||||
if (adev->asic_type >= CHIP_VEGA10) {
|
||||
if (level != AMDGPU_VM_PTB) {
|
||||
/* Handle leaf PDEs as PTEs */
|
||||
flags |= AMDGPU_PDE_PTE;
|
||||
amdgpu_gmc_get_vm_pde(adev, level,
|
||||
&value, &flags);
|
||||
} else {
|
||||
/* Workaround for fault priority problem on GMC9 */
|
||||
flags = AMDGPU_PTE_EXECUTABLE;
|
||||
}
|
||||
}
|
||||
|
||||
r = vm->update_funcs->update(¶ms, bo, addr, 0, entries,
|
||||
0, value);
|
||||
value, flags);
|
||||
if (r)
|
||||
return r;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue