mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-06 16:49:22 +00:00
drm/amdgpu: refine fault cache updates
Don't update the fault cache if status is 0. In the multiple fault case, subsequent faults will return a 0 status which is useless for userspace and replaces the useful fault status, so only update if status is non-0. Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
7a41ed8b59
commit
7d3f1d76f3
1 changed files with 6 additions and 1 deletions
|
@ -2753,7 +2753,12 @@ void amdgpu_vm_update_fault_cache(struct amdgpu_device *adev,
|
||||||
xa_lock_irqsave(&adev->vm_manager.pasids, flags);
|
xa_lock_irqsave(&adev->vm_manager.pasids, flags);
|
||||||
|
|
||||||
vm = xa_load(&adev->vm_manager.pasids, pasid);
|
vm = xa_load(&adev->vm_manager.pasids, pasid);
|
||||||
if (vm) {
|
/* Don't update the fault cache if status is 0. In the multiple
|
||||||
|
* fault case, subsequent faults will return a 0 status which is
|
||||||
|
* useless for userspace and replaces the useful fault status, so
|
||||||
|
* only update if status is non-0.
|
||||||
|
*/
|
||||||
|
if (vm && status) {
|
||||||
vm->fault_info.addr = addr;
|
vm->fault_info.addr = addr;
|
||||||
vm->fault_info.status = status;
|
vm->fault_info.status = status;
|
||||||
if (AMDGPU_IS_GFXHUB(vmhub)) {
|
if (AMDGPU_IS_GFXHUB(vmhub)) {
|
||||||
|
|
Loading…
Reference in a new issue