Message ID | 20230504194453.1150368-1-u.kleine-koenig@pengutronix.de |
---|---|
Headers | show |
Series | remoteproc: Convert to platform remove callback returning void | expand |
On 04/05/2023 20:44, Uwe Kleine-König wrote: > 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 (mostly) ignored > 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. > > Trivially convert this driver from always returning zero in the remove > callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org> > --- > drivers/remoteproc/qcom_q6v5_mss.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/remoteproc/qcom_q6v5_mss.c b/drivers/remoteproc/qcom_q6v5_mss.c > index 8e15e4f85de1..70bffc9f33f6 100644 > --- a/drivers/remoteproc/qcom_q6v5_mss.c > +++ b/drivers/remoteproc/qcom_q6v5_mss.c > @@ -2110,7 +2110,7 @@ static int q6v5_probe(struct platform_device *pdev) > return ret; > } > > -static int q6v5_remove(struct platform_device *pdev) > +static void q6v5_remove(struct platform_device *pdev) > { > struct q6v5 *qproc = platform_get_drvdata(pdev); > struct rproc *rproc = qproc->rproc; > @@ -2128,8 +2128,6 @@ static int q6v5_remove(struct platform_device *pdev) > q6v5_pds_detach(qproc, qproc->proxy_pds, qproc->proxy_pd_count); > > rproc_free(rproc); > - > - return 0; > } > > static const struct rproc_hexagon_res sc7180_mss = { > @@ -2482,7 +2480,7 @@ MODULE_DEVICE_TABLE(of, q6v5_of_match); > > static struct platform_driver q6v5_driver = { > .probe = q6v5_probe, > - .remove = q6v5_remove, > + .remove_new = q6v5_remove, > .driver = { > .name = "qcom-q6v5-mss", > .of_match_table = q6v5_of_match,
On 04/05/2023 20:44, Uwe Kleine-König wrote: > 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 (mostly) ignored > 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. > > Trivially convert this driver from always returning zero in the remove > callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org> > --- > drivers/remoteproc/qcom_q6v5_pas.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c > index e34d82b18a67..ca0155f41dac 100644 > --- a/drivers/remoteproc/qcom_q6v5_pas.c > +++ b/drivers/remoteproc/qcom_q6v5_pas.c > @@ -754,7 +754,7 @@ static int adsp_probe(struct platform_device *pdev) > return ret; > } > > -static int adsp_remove(struct platform_device *pdev) > +static void adsp_remove(struct platform_device *pdev) > { > struct qcom_adsp *adsp = platform_get_drvdata(pdev); > > @@ -769,8 +769,6 @@ static int adsp_remove(struct platform_device *pdev) > adsp_pds_detach(adsp, adsp->proxy_pds, adsp->proxy_pd_count); > device_init_wakeup(adsp->dev, false); > rproc_free(adsp->rproc); > - > - return 0; > } > > static const struct adsp_data adsp_resource_init = { > @@ -1232,7 +1230,7 @@ MODULE_DEVICE_TABLE(of, adsp_of_match); > > static struct platform_driver adsp_driver = { > .probe = adsp_probe, > - .remove = adsp_remove, > + .remove_new = adsp_remove, > .driver = { > .name = "qcom_q6v5_pas", > .of_match_table = adsp_of_match,
On 04/05/2023 20:44, Uwe Kleine-König wrote: > 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 (mostly) ignored > 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. > > Trivially convert this driver from always returning zero in the remove > callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org> > --- > drivers/remoteproc/qcom_q6v5_wcss.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/remoteproc/qcom_q6v5_wcss.c b/drivers/remoteproc/qcom_q6v5_wcss.c > index ba24d745b2d6..b437044aa126 100644 > --- a/drivers/remoteproc/qcom_q6v5_wcss.c > +++ b/drivers/remoteproc/qcom_q6v5_wcss.c > @@ -1074,7 +1074,7 @@ static int q6v5_wcss_probe(struct platform_device *pdev) > return ret; > } > > -static int q6v5_wcss_remove(struct platform_device *pdev) > +static void q6v5_wcss_remove(struct platform_device *pdev) > { > struct rproc *rproc = platform_get_drvdata(pdev); > struct q6v5_wcss *wcss = rproc->priv; > @@ -1082,8 +1082,6 @@ static int q6v5_wcss_remove(struct platform_device *pdev) > qcom_q6v5_deinit(&wcss->q6v5); > rproc_del(rproc); > rproc_free(rproc); > - > - return 0; > } > > static const struct wcss_data wcss_ipq8074_res_init = { > @@ -1117,7 +1115,7 @@ MODULE_DEVICE_TABLE(of, q6v5_wcss_of_match); > > static struct platform_driver q6v5_wcss_driver = { > .probe = q6v5_wcss_probe, > - .remove = q6v5_wcss_remove, > + .remove_new = q6v5_wcss_remove, > .driver = { > .name = "qcom-q6v5-wcss-pil", > .of_match_table = q6v5_wcss_of_match,