CVE-2023-54259
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
30/12/2025
Última modificación:
30/12/2025
Descripción
*** Pendiente de traducción *** 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&#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&#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.



