accel/ivpu: Correct mutex unlock order in job submission
authorKarol Wachowski <karol.wachowski@intel.com>
Fri, 25 Apr 2025 09:36:56 +0000 (11:36 +0200)
committerJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Wed, 30 Apr 2025 09:27:37 +0000 (11:27 +0200)
The mutex unlock for vdev->submitted_jobs_lock was incorrectly placed
before unlocking file_priv->lock. Change order of unlocks to avoid potential
race conditions.

Fixes: 5bbccadaf33e ("accel/ivpu: Abort all jobs after command queue unregister")
Signed-off-by: Karol Wachowski <karol.wachowski@intel.com>
Reviewed-by: Jeff Hugo <jeff.hugo@oss.qualcomm.com>
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Link: https://lore.kernel.org/r/20250425093656.2228168-1-jacek.lawrynowicz@linux.intel.com
drivers/accel/ivpu/ivpu_job.c

index e17b3deda2012c58ad09c82ec0e53329f2503685..b28da35c30b6758b22fb7228481da13ead15bc07 100644 (file)
@@ -681,8 +681,8 @@ static int ivpu_job_submit(struct ivpu_job *job, u8 priority, u32 cmdq_id)
 err_erase_xa:
        xa_erase(&vdev->submitted_jobs_xa, job->job_id);
 err_unlock:
-       mutex_unlock(&vdev->submitted_jobs_lock);
        mutex_unlock(&file_priv->lock);
+       mutex_unlock(&vdev->submitted_jobs_lock);
        ivpu_rpm_put(vdev);
        return ret;
 }