pinctrl: qcom/lpi: Convert to platform remove callback returning void
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Mon, 9 Oct 2023 16:25:08 +0000 (18:25 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 10 Oct 2023 13:47:49 +0000 (15:47 +0200)
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is ignored (apart
from emitting a warning) and this typically results in resource leaks.

To improve here there is a quest to make the remove callback return
void. In the first step of this quest all drivers are converted to
.remove_new(), which already returns void. Eventually after all drivers
are converted, .remove_new() will be renamed to .remove().

To convert all those qcom pinctrl drivers, make msm_pinctrl_remove()
return void (instead of zero) and use .remove_new in all drivers.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Link: https://lore.kernel.org/r/20231009162510.335208-2-u.kleine-koenig@pengutronix.de
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/qcom/pinctrl-lpass-lpi.c
drivers/pinctrl/qcom/pinctrl-lpass-lpi.h
drivers/pinctrl/qcom/pinctrl-sc7280-lpass-lpi.c
drivers/pinctrl/qcom/pinctrl-sc8280xp-lpass-lpi.c
drivers/pinctrl/qcom/pinctrl-sm6115-lpass-lpi.c
drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c
drivers/pinctrl/qcom/pinctrl-sm8350-lpass-lpi.c
drivers/pinctrl/qcom/pinctrl-sm8450-lpass-lpi.c
drivers/pinctrl/qcom/pinctrl-sm8550-lpass-lpi.c

index e5a418026ba3397afe81321512c85e29e410f1cd..abb6f1de230b4d195e0988044bccbc8f7747e2f7 100644 (file)
@@ -490,7 +490,7 @@ err_pinctrl:
 }
 EXPORT_SYMBOL_GPL(lpi_pinctrl_probe);
 
-int lpi_pinctrl_remove(struct platform_device *pdev)
+void lpi_pinctrl_remove(struct platform_device *pdev)
 {
        struct lpi_pinctrl *pctrl = platform_get_drvdata(pdev);
        int i;
@@ -500,8 +500,6 @@ int lpi_pinctrl_remove(struct platform_device *pdev)
 
        for (i = 0; i < pctrl->data->npins; i++)
                pinctrl_generic_remove_group(pctrl->ctrl, i);
-
-       return 0;
 }
 EXPORT_SYMBOL_GPL(lpi_pinctrl_remove);
 
index 29047bb80bb81809cd224d36c79c36c6ac877a49..387d83ee95b5df7d9e3337dd91de1f211d721a2d 100644 (file)
@@ -85,6 +85,6 @@ struct lpi_pinctrl_variant_data {
 };
 
 int lpi_pinctrl_probe(struct platform_device *pdev);
-int lpi_pinctrl_remove(struct platform_device *pdev);
+void lpi_pinctrl_remove(struct platform_device *pdev);
 
 #endif /*__PINCTRL_LPASS_LPI_H__*/
index d615b6c55b89197dbad45ce8d4bc319142cfe7e4..99156217c6a5a0e84e76104aacfb1281b7845227 100644 (file)
@@ -158,7 +158,7 @@ static struct platform_driver lpi_pinctrl_driver = {
                   .of_match_table = lpi_pinctrl_of_match,
        },
        .probe = lpi_pinctrl_probe,
-       .remove = lpi_pinctrl_remove,
+       .remove_new = lpi_pinctrl_remove,
 };
 
 module_platform_driver(lpi_pinctrl_driver);
index 4b9c0beac32efe9bc8ed7c89006c6411a893e22f..b33483056f42337ed9e661766bd641c94b70836b 100644 (file)
@@ -199,7 +199,7 @@ static struct platform_driver lpi_pinctrl_driver = {
                   .of_match_table = lpi_pinctrl_of_match,
        },
        .probe = lpi_pinctrl_probe,
-       .remove = lpi_pinctrl_remove,
+       .remove_new = lpi_pinctrl_remove,
 };
 
 module_platform_driver(lpi_pinctrl_driver);
index 2b09bf171a2cae948a01a61e9f14819d9605a6ba..e8a6f6f6af547b10458e9732e9e292afa61e50b1 100644 (file)
@@ -167,7 +167,7 @@ static struct platform_driver lpi_pinctrl_driver = {
                .of_match_table = lpi_pinctrl_of_match,
        },
        .probe = lpi_pinctrl_probe,
-       .remove = lpi_pinctrl_remove,
+       .remove_new = lpi_pinctrl_remove,
 };
 
 module_platform_driver(lpi_pinctrl_driver);
index ddbc6317f2a745d6e926369c08600305a092ccc1..cb10ce8d5d28f8f0cc3bfb851edbc5c24c24437c 100644 (file)
@@ -155,7 +155,7 @@ static struct platform_driver lpi_pinctrl_driver = {
                   .of_match_table = lpi_pinctrl_of_match,
        },
        .probe = lpi_pinctrl_probe,
-       .remove = lpi_pinctrl_remove,
+       .remove_new = lpi_pinctrl_remove,
 };
 
 module_platform_driver(lpi_pinctrl_driver);
index f889c779bccd52d412dd89f6343916671d837d11..297cc95ac3c013e8892f5e78f3c81aaa511e0487 100644 (file)
@@ -158,7 +158,7 @@ static struct platform_driver lpi_pinctrl_driver = {
                   .of_match_table = lpi_pinctrl_of_match,
        },
        .probe = lpi_pinctrl_probe,
-       .remove = lpi_pinctrl_remove,
+       .remove_new = lpi_pinctrl_remove,
 };
 module_platform_driver(lpi_pinctrl_driver);
 
index e22d03ce292e74ff8f575cf6cd3f09bfbd06a26c..2e7896791fc0c43a6f0b0efdc8b1d8d0f8b45c19 100644 (file)
@@ -232,7 +232,7 @@ static struct platform_driver lpi_pinctrl_driver = {
                   .of_match_table = lpi_pinctrl_of_match,
        },
        .probe = lpi_pinctrl_probe,
-       .remove = lpi_pinctrl_remove,
+       .remove_new = lpi_pinctrl_remove,
 };
 
 module_platform_driver(lpi_pinctrl_driver);
index db1a46fee9c62add8ab156e4d166284a80c160bd..64458c3fbe5e68dc816a68c312ede313f0351a7d 100644 (file)
@@ -240,7 +240,7 @@ static struct platform_driver lpi_pinctrl_driver = {
                   .of_match_table = lpi_pinctrl_of_match,
        },
        .probe = lpi_pinctrl_probe,
-       .remove = lpi_pinctrl_remove,
+       .remove_new = lpi_pinctrl_remove,
 };
 
 module_platform_driver(lpi_pinctrl_driver);