]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amdgpu: skip amdgpu_device_cache_pci_state under sriov
authorVictor Zhao <Victor.Zhao@amd.com>
Thu, 24 Oct 2024 05:40:39 +0000 (13:40 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Dec 2024 18:54:43 +0000 (19:54 +0100)
[ 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>
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c

index 1d0f6628f1d69f0c9513f6ad4da135a16eff7b4e..aca1a4e9b7ae9b237659fa56ec89e12be4dbe2db 100644 (file)
@@ -6013,6 +6013,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);