On 7/27/2023 3:20 PM, Prike Liang wrote:
There's need a check on the GPU error state before save and restore
GPU device config space.

Signed-off-by: Prike Liang <[email protected]>
---
  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 358dcc1070c5..5ef3c5c49bee 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -3946,7 +3946,8 @@ int amdgpu_device_init(struct amdgpu_device *adev,
                dev_err(adev->dev, "amdgpu_pmu_init failed\n");
/* Have stored pci confspace at hand for restore in sudden PCI error */
-       if (amdgpu_device_cache_pci_state(adev->pdev))
+       if (adev->pdev->error_state != pci_channel_io_normal &&
+                       amdgpu_device_cache_pci_state(adev->pdev))

We need the clean state to be cached, not the state when there is an error. This state is later used to restore later, say when a mode-2 reset happens.

Thanks,
Lijo

                pci_restore_state(pdev);
/* if we have > 1 VGA cards, then disable the amdgpu VGA resources */

Reply via email to