CVE-2026-98527: gpio: zynq: fix runtime PM leak on request error path
In the Linux kernel, the following vulnerability has been resolved:
gpio: zynq: fix runtime PM leak on request error path
pmruntimegetsync() leaves the usage counter incremented even when it fails, and zynqgpiorequest() returns the error without dropping it.
gpiolib does not call ->free() when ->request() fails, so zynqgpiofree(), which holds the only matching pmruntimeput(), never runs. The reference is leaked and the controller can no longer runtime-suspend, so its clock stays enabled.
Switch to pmruntimeresumeandget(), which only increments the usage counter on success.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
In the zynq GPIO driver, replace pm_runtime_get_sync() with pm_runtime_resume_and_get() so the runtime-PM usage counter is incremented only on success and request errors do not leak the reference.