* [PATCH] net: ipa: Fix runtime PM reference leak in ipa_remove()
@ 2026-09-17 11:51 Wentao Liang
2026-09-17 12:10 ` Alex Elder
0 siblings, 1 reply; 2+ messages in thread
From: Wentao Liang @ 2026-09-17 11:51 UTC (permalink / raw)
To: andrew+netdev
Cc: davem, edumazet, elder, kuba, linux-kernel, netdev, pabeni,
Wentao Liang, stable
ipa_remove() takes a runtime PM reference with pm_runtime_get_sync() and
is supposed to release it at the out_power_put label. If the modem fails
to stop, the function returns early and never drops that reference, so
the device usage counter stays elevated forever. Release the reference
before returning.
Fixes: cdf2e9419dd9 ("soc: qcom: ipa: main code")
Cc: stable@vger.kernel.org
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
---
drivers/net/ipa/ipa_main.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ipa/ipa_main.c b/drivers/net/ipa/ipa_main.c
index 788dd99af2a4..aab38fea91c6 100644
--- a/drivers/net/ipa/ipa_main.c
+++ b/drivers/net/ipa/ipa_main.c
@@ -975,6 +975,7 @@ static void ipa_remove(struct platform_device *pdev)
*/
dev_err(dev, "Failed to stop modem (%pe), leaking resources\n",
ERR_PTR(ret));
+ pm_runtime_put_noidle(dev);
return;
}
--
2.34.1
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [PATCH] net: ipa: Fix runtime PM reference leak in ipa_remove()
2026-09-17 11:51 [PATCH] net: ipa: Fix runtime PM reference leak in ipa_remove() Wentao Liang
@ 2026-09-17 12:10 ` Alex Elder
0 siblings, 0 replies; 2+ messages in thread
From: Alex Elder @ 2026-09-17 12:10 UTC (permalink / raw)
To: Wentao Liang, andrew+netdev
Cc: davem, edumazet, elder, kuba, linux-kernel, netdev, pabeni, stable
On 9/17/26 6:51 AM, Wentao Liang wrote:
> ipa_remove() takes a runtime PM reference with pm_runtime_get_sync() and
> is supposed to release it at the out_power_put label. If the modem fails
> to stop, the function returns early and never drops that reference, so
> the device usage counter stays elevated forever. Release the reference
> before returning.
>
> Fixes: cdf2e9419dd9 ("soc: qcom: ipa: main code")
> Cc: stable@vger.kernel.org
> Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
> ---
> drivers/net/ipa/ipa_main.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/ipa/ipa_main.c b/drivers/net/ipa/ipa_main.c
> index 788dd99af2a4..aab38fea91c6 100644
> --- a/drivers/net/ipa/ipa_main.c
> +++ b/drivers/net/ipa/ipa_main.c
> @@ -975,6 +975,7 @@ static void ipa_remove(struct platform_device *pdev)
> */
> dev_err(dev, "Failed to stop modem (%pe), leaking resources\n",
> ERR_PTR(ret));
> + pm_runtime_put_noidle(dev);
> return;
> }
>
This issue has already been fixed. See:
6b9eaa61ff2df net: ipa: balance runtime PM reference on remove error
How did you find this problem? that commit indicates a static
analysis checker was used. If you benefited from any tools like
that you should probably explain that.
Thanks.
-Alex
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-09-17 12:10 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-17 11:51 [PATCH] net: ipa: Fix runtime PM reference leak in ipa_remove() Wentao Liang
2026-09-17 12:10 ` Alex Elder
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®