summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
diff options
context:
space:
mode:
authorJack Zhang <Jack.Zhang1@amd.com>2021-01-07 18:38:29 +0800
committerAlex Deucher <alexander.deucher@amd.com>2021-01-13 23:47:39 -0500
commit3c2a01cb0fc567c18b802f25d619e31c196294ce (patch)
treea9cc98b71846f93a0a9c8db52964fe21a2d8458c /drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
parent4738154021b0c9f13eaf60e98e0265eacf963adc (diff)
downloadlinux-stable-3c2a01cb0fc567c18b802f25d619e31c196294ce.tar.gz
linux-stable-3c2a01cb0fc567c18b802f25d619e31c196294ce.tar.bz2
linux-stable-3c2a01cb0fc567c18b802f25d619e31c196294ce.zip
drm/amdgpu/sriov Stop data exchange for wholegpu reset
[Why] When host trigger a whole gpu reset, guest will keep waiting till host finish reset. But there's a work queue in guest exchanging data between vf&pf which need to access frame buffer. During whole gpu reset, frame buffer is not accessable, and this causes the call trace. [How] After vf get reset notification from pf, stop data exchange. Signed-off-by: Jingwen Chen <Jingwen.Chen2@amd.com> Signed-off-by: Jack Zhang <Jack.Zhang1@amd.com> Reviewed-by: Monk Liu <monk.liu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
index 2d51b7694d1f..e223fca3ed00 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
@@ -573,6 +573,7 @@ void amdgpu_virt_fini_data_exchange(struct amdgpu_device *adev)
DRM_INFO("clean up the vf2pf work item\n");
flush_delayed_work(&adev->virt.vf2pf_work);
cancel_delayed_work_sync(&adev->virt.vf2pf_work);
+ adev->virt.vf2pf_update_interval_ms = 0;
}
}