2020-02-28 15:42:56

by Charles Keepax

[permalink] [raw]
Subject: [PATCH] pinctrl: madera: Add missing call to pinctrl_unregister_mappings

pinctrl_register_mappings is called in the pdata case, however a call to
pinctrl_unregister_mappings is missing causing the mappings to be leaked
on driver unbind. Add the missing call to correct this issue.

Signed-off-by: Charles Keepax <[email protected]>
---
drivers/pinctrl/cirrus/pinctrl-madera-core.c | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/drivers/pinctrl/cirrus/pinctrl-madera-core.c b/drivers/pinctrl/cirrus/pinctrl-madera-core.c
index 7b6409ef553c9..dce2626384a90 100644
--- a/drivers/pinctrl/cirrus/pinctrl-madera-core.c
+++ b/drivers/pinctrl/cirrus/pinctrl-madera-core.c
@@ -1073,13 +1073,26 @@ static int madera_pin_probe(struct platform_device *pdev)
return ret;
}

+ platform_set_drvdata(pdev, priv);
+
dev_dbg(priv->dev, "pinctrl probed ok\n");

return 0;
}

+static int madera_pin_remove(struct platform_device *pdev)
+{
+ struct madera_pin_private *priv = platform_get_drvdata(pdev);
+
+ if (priv->madera->pdata.gpio_configs)
+ pinctrl_unregister_mappings(priv->madera->pdata.gpio_configs);
+
+ return 0;
+}
+
static struct platform_driver madera_pin_driver = {
.probe = madera_pin_probe,
+ .remove = madera_pin_remove,
.driver = {
.name = "madera-pinctrl",
},
--
2.11.0


2020-02-28 23:35:42

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: madera: Add missing call to pinctrl_unregister_mappings

On Fri, Feb 28, 2020 at 4:42 PM Charles Keepax
<[email protected]> wrote:

> pinctrl_register_mappings is called in the pdata case, however a call to
> pinctrl_unregister_mappings is missing causing the mappings to be leaked
> on driver unbind. Add the missing call to correct this issue.
>
> Signed-off-by: Charles Keepax <[email protected]>

Patch applied for fixes.

Yours,
Linus Walleij