CVE-2026-89590: accel/rocket: Fix error path handling in rocket_job_run()
In the Linux kernel, the following vulnerability has been resolved:
accel/rocket: Fix error path handling in rocketjobrun()
In rocketjobrun(), after taking an extra fence reference for job->donefence via dmafenceget(), the error paths have three bugs:
- The dmafence reference held by job->donefence is never released, causing a reference leak. - pmruntimegetsync() increments the usage counter even on failure, but the error path does not decrement it, leaking the runtime PM reference and preventing the NPU from suspending. - A valid but unsignaled fence is returned to the DRM scheduler, which triggers WARN("Fence ... released with pending signals!") when the scheduler drops its reference.
Fix by replacing pmruntimegetsync() with pmruntimeresumeandget() which auto-balances the usage counter on failure, releasing both fence references on error, and returning ERRPTR(ret) instead of the unsignaled fence.
[tomeu: Refactored error paths to use consolidated goto labels]
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
In accel/rocket's rocket_job_run() error paths, replace pm_runtime_get_sync() with pm_runtime_resume_and_get(); release both dma_fence references on error and return ERR_PTR(ret) instead of the unsignaled fence.
Event History
Frequently Asked Questions
What conditions must occur for the faulty paths to be reached?
A job must enter an error path after an extra reference is taken on its completion fence. One identified case is failure of the runtime PM resume operation.
What symptoms could indicate that a system is affected?
The DRM scheduler can emit a warning that a fence was released with pending signals. Runtime PM references can also remain elevated, preventing the NPU from suspending.
What is the practical mitigation if the fix cannot be applied immediately?
No workaround is provided in the available information. The issue is corrected by using the updated error handling, which balances runtime PM state, releases fence references, and returns an error rather than an unsignaled fence.