CVE-2025-38521: drm/imagination: Fix kernel crash when hard resetting the GPU
In the Linux kernel, the following vulnerability has been resolved:
drm/imagination: Fix kernel crash when hard resetting the GPU
The GPU hard reset sequence calls pmruntimeforcesuspend() and pmruntimeforceresume(), which according to their documentation should only be used during system-wide PM transitions to sleep states.
The main issue though is that depending on some internal runtime PM state as seen by pmruntimeforcesuspend() (whether the usage count is <= 1), pmruntimeforceresume() might not resume the device unless needed. If that happens, the runtime PM resume callback pvrpowerdeviceresume() is not called, the GPU clocks are not re-enabled, and the kernel crashes on the next attempt to access GPU registers as part of the power-on sequence.
Replace calls to pmruntimeforcesuspend() and pmruntimeforceresume() with direct calls to the driver's runtime PM callbacks, pvrpowerdevicesuspend() and pvrpowerdeviceresume(), to ensure clocks are re-enabled and avoid the kernel crash.
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2025-38521?
The severity of CVE-2025-38521 is considered to be critical due to its impact on kernel stability and potential denial of service.
How do I fix CVE-2025-38521?
To fix CVE-2025-38521, ensure that your Linux kernel is updated to the latest available version where this vulnerability has been patched.
Which versions of the Linux kernel are affected by CVE-2025-38521?
CVE-2025-38521 affects multiple versions of the Linux kernel that are prior to the release of the patch addressing this issue.
What are the consequences of not addressing CVE-2025-38521?
Not addressing CVE-2025-38521 can lead to kernel crashes, system instability, and denial of service for applications relying on GPU functionality.
Is CVE-2025-38521 related to GPU functionality in the Linux kernel?
Yes, CVE-2025-38521 specifically relates to a vulnerability that affects the GPU hard reset sequence in the Linux kernel.