]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
accel/ivpu: Synchronize device unbind with recovery work
authorWachowski, Karol <karol.wachowski@intel.com>
Tue, 11 Jun 2024 12:04:29 +0000 (14:04 +0200)
committerJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Fri, 14 Jun 2024 07:14:57 +0000 (09:14 +0200)
Do not allow unbinding device in the middle of recovery flow.

Signed-off-by: Wachowski, Karol <karol.wachowski@intel.com>
Reviewed-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240611120433.1012423-13-jacek.lawrynowicz@linux.intel.com
drivers/accel/ivpu/ivpu_drv.c

index c59c6f113098d0bc994d7ac24efdcee91026c664..c91400ecf926513f1529c1a2c3b3e399dc47aa1a 100644 (file)
@@ -695,14 +695,14 @@ static void ivpu_bo_unbind_all_user_contexts(struct ivpu_device *vdev)
 
 static void ivpu_dev_fini(struct ivpu_device *vdev)
 {
+       ivpu_jobs_abort_all(vdev);
+       ivpu_pm_cancel_recovery(vdev);
        ivpu_pm_disable(vdev);
        ivpu_prepare_for_reset(vdev);
        ivpu_shutdown(vdev);
 
        ivpu_ms_cleanup_all(vdev);
-       ivpu_jobs_abort_all(vdev);
        ivpu_job_done_consumer_fini(vdev);
-       ivpu_pm_cancel_recovery(vdev);
        ivpu_bo_unbind_all_user_contexts(vdev);
 
        ivpu_ipc_fini(vdev);