Skip to contentSkip to conversation

pinctrl: meson: Drop pinctrl_unregister for devm_ registered device

PATCH New Wei Yongjun 4 participants 4 messages Jul 26, 2016 – Aug 4, 2016

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 pinctrl: meson: Drop pinctrl_unregister for devm_ registered device

It's not necessary to unregister pin controller device registered with devm_pinctrl_register() and using pinctrl_unregister() leads to a double free.

This is detected by Coccinelle semantic patch.

---
 drivers/pinctrl/meson/pinctrl-meson.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)
drivers/pinctrl/meson/pinctrl-meson.c +1 -7
index 11623c6..44e69c9 100644
@@ -727,13 +727,7 @@ static int meson_pinctrl_probe(struct platform_device *pdev)
 		return PTR_ERR(pc->pcdev);
 	}
 
-	ret = meson_gpiolib_register(pc);
-	if (ret) {
-		pinctrl_unregister(pc->pcdev);
-		return ret;
-	}
-
-	return 0;
+	return meson_gpiolib_register(pc);
 }
 
 static struct platform_driver meson_pinctrl_driver = {
#1 lore raw

PATCH 1/1 pinctrl: meson: Drop pinctrl_unregister for devm_ registered device

Quoted 7 lines · Wei Yongjun

It's not necessary to unregister pin controller device registered with devm_pinctrl_register() and using pinctrl_unregister() leads to a double free.

This is detected by Coccinelle semantic patch.

Fixes e649f7ec8c5f ("pinctrl: meson: Use devm_pinctrl_register() for

pinctrl registration")

Quoted 14 lines
---
 drivers/pinctrl/meson/pinctrl-meson.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)
drivers/pinctrl/meson/pinctrl-meson.c +0 -1
index 11623c6..44e69c9 100644
@@ -727,13 +727,7 @@ static int meson_pinctrl_probe(struct platform_device *pdev)
 		return PTR_ERR(pc->pcdev);
 	}
 
-	ret = meson_gpiolib_register(pc);

drivers/pinctrl/meson/pinctrl-meson.c static int meson_pinctrl_probe(struct platform_device *pdev) · line 733

Quoted 10 lines
drivers/pinctrl/meson/pinctrl-meson.c +1 -6
-	if (ret) {
-		pinctrl_unregister(pc->pcdev);
-		return ret;
-	}
-
-	return 0;
+	return meson_gpiolib_register(pc);
 }
 
 static struct platform_driver meson_pinctrl_driver = {

Thanks.

Signature · 1 line
Dmitry
maintainer
#2 lore raw

PATCH 1/1 pinctrl: meson: Drop pinctrl_unregister for devm_ registered device

Quoted 5 lines · Dmitry Torokhov
Quoted 4 lines · Wei Yongjun

It's not necessary to unregister pin controller device registered with devm_pinctrl_register() and using pinctrl_unregister() leads to a double free.

Quoted 8 lines
Quoted 3 lines

This is detected by Coccinelle semantic patch.

Fixes e649f7ec8c5f ("pinctrl: meson: Use devm_pinctrl_register() for

pinctrl registration")

#3 lore raw

PATCH 1/1 pinctrl: meson: Drop pinctrl_unregister for devm_ registered device

In reply to Wei Yongjun
Quoted 7 lines · Wei Yongjun

It's not necessary to unregister pin controller device registered with devm_pinctrl_register() and using pinctrl_unregister() leads to a double free.

This is detected by Coccinelle semantic patch.

Patch applied for fixes with Dmitry's and Kevin's tags.

Yours,
Linus Walleij