CVE-2023-54259

Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
30/12/2025
Last modified:
30/12/2025

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> soundwire: bus: Fix unbalanced pm_runtime_put() causing usage count underflow<br /> <br /> This reverts commit<br /> 443a98e649b4 ("soundwire: bus: use pm_runtime_resume_and_get()")<br /> <br /> Change calls to pm_runtime_resume_and_get() back to pm_runtime_get_sync().<br /> This fixes a usage count underrun caused by doing a pm_runtime_put() even<br /> though pm_runtime_resume_and_get() returned an error.<br /> <br /> The three affected functions ignore -EACCES error from trying to get<br /> pm_runtime, and carry on, including a put at the end of the function.<br /> But pm_runtime_resume_and_get() does not increment the usage count if it<br /> returns an error. So in the -EACCES case you must not call<br /> pm_runtime_put().<br /> <br /> The documentation for pm_runtime_get_sync() says:<br /> "Consider using pm_runtime_resume_and_get() ... as this is likely to<br /> result in cleaner code."<br /> <br /> In this case I don&amp;#39;t think it results in cleaner code because the<br /> pm_runtime_put() at the end of the function would have to be conditional on<br /> the return value from pm_runtime_resume_and_get() at the top of the<br /> function.<br /> <br /> pm_runtime_get_sync() doesn&amp;#39;t have this problem because it always<br /> increments the count, so always needs a put. The code can just flow through<br /> and do the pm_runtime_put() unconditionally.

Impact