[AMD Official Use Only - Internal Distribution Only] Please comments what the issue is without this change. /Jack -----Original Message----- From: Jingwen Chen <Jingwen.Chen2@xxxxxxx> Sent: Friday, March 5, 2021 12:44 PM To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx Cc: Chen, Horace <Horace.Chen@xxxxxxx>; Zhang, Jack (Jian) <Jack.Zhang1@xxxxxxx>; Chen, JingWen <JingWen.Chen2@xxxxxxx> Subject: [PATCH] drm/amd/amdgpu: fini data exchange when req_gpu_fini in SRIOV Do fini data exchange everytime req_gpu_fini in SRIOV Signed-off-by: Jingwen Chen <Jingwen.Chen2@xxxxxxx> --- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 +--- drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 3 +++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index a11760ec3924..e3ed52f66414 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -3601,10 +3601,8 @@ void amdgpu_device_fini(struct amdgpu_device *adev) /* make sure IB test finished before entering exclusive mode * to avoid preemption on IB test * */ -if (amdgpu_sriov_vf(adev)) { +if (amdgpu_sriov_vf(adev)) amdgpu_virt_request_full_gpu(adev, false); -amdgpu_virt_fini_data_exchange(adev); -} /* disable all interrupts */ amdgpu_irq_disable_all(adev); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c index 3dd7eec52344..af1e5d8fc2b8 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c @@ -114,6 +114,9 @@ int amdgpu_virt_request_full_gpu(struct amdgpu_device *adev, bool init) struct amdgpu_virt *virt = &adev->virt; int r; +if (!init) +amdgpu_virt_fini_data_exchange(adev); + if (virt->ops && virt->ops->req_full_gpu) { r = virt->ops->req_full_gpu(adev, init); if (r) -- 2.25.1 _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx