{"resultsPerPage":1,"startIndex":0,"totalResults":1,"format":"NVD_CVE","version":"2.0","timestamp":"2026-04-18T14:11:13.807","vulnerabilities":[{"cve":{"id":"CVE-2023-54259","sourceIdentifier":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","published":"2025-12-30T13:16:14.670","lastModified":"2026-04-15T00:35:42.020","vulnStatus":"Deferred","cveTags":[],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nsoundwire: bus: Fix unbalanced pm_runtime_put() causing usage count underflow\n\nThis reverts commit\n443a98e649b4 (\"soundwire: bus: use pm_runtime_resume_and_get()\")\n\nChange calls to pm_runtime_resume_and_get() back to pm_runtime_get_sync().\nThis fixes a usage count underrun caused by doing a pm_runtime_put() even\nthough pm_runtime_resume_and_get() returned an error.\n\nThe three affected functions ignore -EACCES error from trying to get\npm_runtime, and carry on, including a put at the end of the function.\nBut pm_runtime_resume_and_get() does not increment the usage count if it\nreturns an error. So in the -EACCES case you must not call\npm_runtime_put().\n\nThe documentation for pm_runtime_get_sync() says:\n \"Consider using pm_runtime_resume_and_get() ...  as this is likely to\n result in cleaner code.\"\n\nIn this case I don't think it results in cleaner code because the\npm_runtime_put() at the end of the function would have to be conditional on\nthe return value from pm_runtime_resume_and_get() at the top of the\nfunction.\n\npm_runtime_get_sync() doesn't have this problem because it always\nincrements the count, so always needs a put. The code can just flow through\nand do the pm_runtime_put() unconditionally."},{"lang":"es","value":"En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nsoundwire: bus: Corrige pm_runtime_put() desequilibrado que causa un subdesbordamiento del contador de uso\n\nEsto revierte el commit\n443a98e649b4 ('soundwire: bus: usa pm_runtime_resume_and_get()')\n\nCambia las llamadas a pm_runtime_resume_and_get() de vuelta a pm_runtime_get_sync(). Esto corrige un subdesbordamiento del contador de uso causado por realizar un pm_runtime_put() incluso si pm_runtime_resume_and_get() devolvió un error.\n\nLas tres funciones afectadas ignoran el error -EACCES al intentar obtener pm_runtime, y continúan, incluyendo un put al final de la función. Pero pm_runtime_resume_and_get() no incrementa el contador de uso si devuelve un error. Así que en el caso de -EACCES no se debe llamar a pm_runtime_put().\n\nLa documentación de pm_runtime_get_sync() dice:\n 'Considere usar pm_runtime_resume_and_get() ... ya que esto probablemente resultará en un código más limpio.'\n\nEn este caso no creo que resulte en un código más limpio porque el pm_runtime_put() al final de la función tendría que ser condicional al valor de retorno de pm_runtime_resume_and_get() al principio de la función.\n\npm_runtime_get_sync() no tiene este problema porque siempre incrementa el contador, por lo que siempre necesita un put. El código puede simplemente fluir y realizar el pm_runtime_put() incondicionalmente."}],"metrics":{},"references":[{"url":"https://git.kernel.org/stable/c/203aa4374c433159f163acde2d0bd4118f23bbaf","source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/4e5e9da139c007dfc397a159093b4c4187ee67fa","source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/e9537962519e88969f5f69cd0571eb4f6984403c","source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"}]}}]}