[PATCH] net: ipa: fix SMEM state handle leaks in SMP2P init

From: Haoxiang Li

Date: Mon Jun 22 2026 - 23:19:17 EST


ipa_smp2p_init() acquires two Qualcomm SMEM state handles with
qcom_smem_state_get(). However, neither the init error paths
nor ipa_smp2p_exit() release them.

Use devm_qcom_smem_state_get() for both state handles so the
references are released automatically when the platform device
is removed.

Fixes: 530f9216a953 ("soc: qcom: ipa: AP/modem communications")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Haoxiang Li <haoxiang_li2024@xxxxxxx>
---
drivers/net/ipa/ipa_smp2p.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ipa/ipa_smp2p.c b/drivers/net/ipa/ipa_smp2p.c
index 2f0ccdd937cc..d8fd56949082 100644
--- a/drivers/net/ipa/ipa_smp2p.c
+++ b/drivers/net/ipa/ipa_smp2p.c
@@ -228,15 +228,15 @@ ipa_smp2p_init(struct ipa *ipa, struct platform_device *pdev, bool modem_init)
u32 valid_bit;
int ret;

- valid_state = qcom_smem_state_get(dev, "ipa-clock-enabled-valid",
- &valid_bit);
+ valid_state = devm_qcom_smem_state_get(dev, "ipa-clock-enabled-valid",
+ &valid_bit);
if (IS_ERR(valid_state))
return PTR_ERR(valid_state);
if (valid_bit >= 32) /* BITS_PER_U32 */
return -EINVAL;

- enabled_state = qcom_smem_state_get(dev, "ipa-clock-enabled",
- &enabled_bit);
+ enabled_state = devm_qcom_smem_state_get(dev, "ipa-clock-enabled",
+ &enabled_bit);
if (IS_ERR(enabled_state))
return PTR_ERR(enabled_state);
if (enabled_bit >= 32) /* BITS_PER_U32 */
--
2.25.1