[PATCH] pinctrl: bcm: release the NS2 pinmux controller on detach

Wentao Liang vulab at iscas.ac.cn
Tue Nov 3 02:42:42 PST 2026


ns2_pinmux_probe() registers the pin controller with pinctrl_register()
and stores the returned pinctrl_dev in the driver data, but the driver
has no remove callback and never calls pinctrl_unregister().  The
controller is therefore never unregistered and its memory is leaked
when the platform device is unbound.

Use devm_pinctrl_register() instead so that the controller is released
automatically when the device is detached.

Fixes: b5aa1006e4a9 ("pinctrl: ns2: add pinmux driver support for Broadcom NS2 SoC")
Cc: stable at vger.kernel.org
Assisted-by: DeepSeek-V4.1-Flash and OpenAI Codex
Signed-off-by: Wentao Liang <vulab at iscas.ac.cn>
---
 drivers/pinctrl/bcm/pinctrl-ns2-mux.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/pinctrl/bcm/pinctrl-ns2-mux.c b/drivers/pinctrl/bcm/pinctrl-ns2-mux.c
index 23ab3ab064b6..a1480641ee0b 100644
--- a/drivers/pinctrl/bcm/pinctrl-ns2-mux.c
+++ b/drivers/pinctrl/bcm/pinctrl-ns2-mux.c
@@ -1077,8 +1077,8 @@ static int ns2_pinmux_probe(struct platform_device *pdev)
 	pinctrl->num_functions = ARRAY_SIZE(ns2_pin_functions);
 	ns2_pinctrl_desc.pins = pins;
 
-	pinctrl->pctl = pinctrl_register(&ns2_pinctrl_desc, &pdev->dev,
-			pinctrl);
+	pinctrl->pctl = devm_pinctrl_register(&pdev->dev, &ns2_pinctrl_desc,
+					      pinctrl);
 	if (IS_ERR(pinctrl->pctl)) {
 		dev_err(&pdev->dev, "unable to register IOMUX pinctrl\n");
 		return PTR_ERR(pinctrl->pctl);
-- 
2.34.1




More information about the linux-arm-kernel mailing list