[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected. No action required from the submitter.
The upstream commit SHA1 provided is correct: dad945c27a42dfadddff1049cf5ae417209a8996
WARNING: Author mismatch between patch and upstream commit: Backport author: Jacek Lawrynowiczjacek.lawrynowicz@linux.intel.com Commit author: Karol Wachowskikarol.wachowski@intel.com
Note: The patch differs from the upstream commit: --- 1: dad945c27a42d ! 1: 2c62f69a5a389 accel/ivpu: Add handling of VPU_JSM_STATUS_MVNCI_CONTEXT_VIOLATION_HW @@ Metadata ## Commit message ## accel/ivpu: Add handling of VPU_JSM_STATUS_MVNCI_CONTEXT_VIOLATION_HW
+ commit dad945c27a42dfadddff1049cf5ae417209a8996 upstream. + Mark as invalid context of a job that returned HW context violation error and queue work that aborts jobs from faulty context. Add engine reset to the context abort thread handler to not only abort currently executing jobs but also to ensure NPU invalid state recovery.
+ Cc: stable@vger.kernel.org # v6.14 Signed-off-by: Karol Wachowski karol.wachowski@intel.com Signed-off-by: Maciej Falkowski maciej.falkowski@linux.intel.com Reviewed-by: Jacek Lawrynowicz jacek.lawrynowicz@linux.intel.com @@ drivers/accel/ivpu/ivpu_job.c: static int ivpu_job_signal_and_destroy(struct ivp job = ivpu_job_remove_from_submitted_jobs(vdev, job_id); if (!job) return -ENOENT; -@@ drivers/accel/ivpu/ivpu_job.c: void ivpu_context_abort_work_fn(struct work_struct *work) - unsigned long ctx_id; +@@ drivers/accel/ivpu/ivpu_job.c: void ivpu_context_abort_thread_handler(struct work_struct *work) + struct ivpu_job *job; unsigned long id;
+ if (vdev->fw->sched_mode == VPU_SCHEDULING_MODE_HW) @@ drivers/accel/ivpu/ivpu_job.c: void ivpu_context_abort_work_fn(struct work_struc mutex_lock(&vdev->context_list_lock); xa_for_each(&vdev->context_xa, ctx_id, file_priv) { if (!file_priv->has_mmu_faults || file_priv->aborted) -@@ drivers/accel/ivpu/ivpu_job.c: void ivpu_context_abort_work_fn(struct work_struct *work) +@@ drivers/accel/ivpu/ivpu_job.c: void ivpu_context_abort_thread_handler(struct work_struct *work)
if (vdev->fw->sched_mode != VPU_SCHEDULING_MODE_HW) return; ---
Results of testing on various branches:
| Branch | Patch Apply | Build Test | |---------------------------|-------------|------------| | stable/linux-5.4.y | Success | Success |