diff options
author | Victor Zhao <Victor.Zhao@amd.com> | 2024-10-24 13:40:39 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-12-14 20:03:54 +0100 |
commit | 8a71e5b65308c4756e8f796fefd94b32a260073a (patch) | |
tree | 033b46f5734024e3740277a21a5f81eba7d00805 /drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |
parent | 60dde89f944cddfd7c615687c0c2f644dc796ae2 (diff) | |
download | linux-8a71e5b65308c4756e8f796fefd94b32a260073a.tar.gz linux-8a71e5b65308c4756e8f796fefd94b32a260073a.tar.bz2 linux-8a71e5b65308c4756e8f796fefd94b32a260073a.zip |
drm/amdgpu: skip amdgpu_device_cache_pci_state under sriov
[ Upstream commit afe260df55ac280cd56306248cb6d8a6b0db095c ]
Under sriov, host driver will save and restore vf pci cfg space during
reset. And during device init, under sriov, pci_restore_state happens after
fullaccess released, and it can have race condition with mmio protection
enable from host side leading to missing interrupts.
So skip amdgpu_device_cache_pci_state for sriov.
Signed-off-by: Victor Zhao <Victor.Zhao@amd.com>
Acked-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_device.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 1f08cb88d51b..07f93f77de7d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -6344,6 +6344,9 @@ bool amdgpu_device_cache_pci_state(struct pci_dev *pdev) struct amdgpu_device *adev = drm_to_adev(dev); int r; + if (amdgpu_sriov_vf(adev)) + return false; + r = pci_save_state(pdev); if (!r) { kfree(adev->pci_state); |