The change of the commit f5c7e7797060 ("Adjust removal control
  flow for smu v13_0_2") brought a bug on SRIOV envrionment. It
  caused unloading amdgpu failed on Guest VM. The reason is that
  the VF FLR was requested while unloading amdgpu driver, but the
  VF FLR of SRIOV sequence is wrong while removing PCI device.

  Fixes: f5c7e7797060 ("drm/amdgpu: Adjust removal control flow
         for smu v13_0_2")

Acked-by: Alex Deucher <alexander.deuc...@amd.com>
Signed-off-by: Gavin Wan <gavin....@amd.com>
Change-Id: I1ff8dcbffd85d7f3d8267d660fd8292423d2f70f
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index 16f6a313335e..ab0c856c13b0 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -2187,7 +2187,8 @@ amdgpu_pci_remove(struct pci_dev *pdev)
                pm_runtime_forbid(dev->dev);
        }
 
-       if (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 2)) {
+       if ((adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 2)) &&
+                       !amdgpu_sriov_vf(adev)) {
                bool need_to_reset_gpu = false;
 
                if (adev->gmc.xgmi.num_physical_nodes > 1) {
-- 
2.34.1

Reply via email to