]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amdgpu: ensure no_hw_access is visible before MMIO
authorPerry Yuan <perry.yuan@amd.com>
Wed, 28 Jan 2026 05:54:31 +0000 (13:54 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 3 Feb 2026 21:23:11 +0000 (16:23 -0500)
Add a full memory barrier after clearing no_hw_access in
amdgpu_device_mode1_reset() so subsequent PCI state restore
access cannot observe stale state on other CPUs.

Fixes: 7edb503fe4b6 ("drm/amd/pm: Disable MMIO access during SMU Mode 1 reset")
Signed-off-by: Perry Yuan <perry.yuan@amd.com>
Reviewed-by: Yifan Zhang <yifan1.zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c

index c7f44422939f7f0b51c8c22b824aed7734acfd35..c1ffc63e23ab568faa69ea44326069570f86d62a 100644 (file)
@@ -5733,6 +5733,9 @@ int amdgpu_device_mode1_reset(struct amdgpu_device *adev)
        /* enable mmio access after mode 1 reset completed */
        adev->no_hw_access = false;
 
+       /* ensure no_hw_access is updated before we access hw */
+       smp_mb();
+
        amdgpu_device_load_pci_state(adev->pdev);
        ret = amdgpu_psp_wait_for_bootloader(adev);
        if (ret)