]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
accel/ivpu: Fix Qemu crash when running in passthrough
authorJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Wed, 6 Nov 2024 10:55:49 +0000 (11:55 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 17 Feb 2025 09:05:04 +0000 (10:05 +0100)
commit 901dd2617c9c3554b2449c8844b6338009112fcf upstream.

Restore PCI state after putting the NPU in D0.
Restoring state before powering up the device caused a Qemu crash
if NPU was running in passthrough mode and recovery was performed.

Fixes: 3534eacbf101 ("accel/ivpu: Fix PCI D0 state entry in resume")
Cc: stable@vger.kernel.org # v6.8+
Reviewed-by: Karol Wachowski <karol.wachowski@linux.intel.com>
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241106105549.2757115-1-jacek.lawrynowicz@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/accel/ivpu/ivpu_pm.c

index 10b7ae0f866c989f3cf4e5bc867fcc899fb93b90..682da13b0d671e5be4c6b2fa0c1161d07aaac619 100644 (file)
@@ -73,8 +73,8 @@ static int ivpu_resume(struct ivpu_device *vdev)
        int ret;
 
 retry:
-       pci_restore_state(to_pci_dev(vdev->drm.dev));
        pci_set_power_state(to_pci_dev(vdev->drm.dev), PCI_D0);
+       pci_restore_state(to_pci_dev(vdev->drm.dev));
 
        ret = ivpu_hw_power_up(vdev);
        if (ret) {