Messages in this thread | | | Date | Tue, 26 Jan 2021 18:56:52 +0100 | From | Uwe Kleine-König <> | Subject | Re: [PATCH v3 4/5] amba: Make the remove callback return void |
| |
Hello,
On Tue, Jan 26, 2021 at 05:08:40PM +0000, Suzuki K Poulose wrote: > On 1/26/21 4:58 PM, Uwe Kleine-König wrote: > > All amba drivers return 0 in their remove callback. Together with the > > driver core ignoring the return value anyhow, it doesn't make sense to > > return a value here. > > > > Change the remove prototype to return void, which makes it explicit that > > returning an error value doesn't work as expected. This simplifies changing > > the core remove callback to return void, too. > > > > Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> > > Reviewed-by: Arnd Bergmann <arnd@arndb.de> > > Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com> > > Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> > > Acked-by: Krzysztof Kozlowski <krzk@kernel.org> # for drivers/memory > > Acked-by: Mark Brown <broonie@kernel.org> > > Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> > > Acked-by: Linus Walleij <linus.walleij@linaro.org> > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> > > > > drivers/hwtracing/coresight/coresight-etm4x-core.c | 4 +--- > > You are most likely to have a conflict for the above file, with what is > in coresight/next. It should be easy to resolve.
I'm surprised to see that the remove callback introduced in 2952ecf5df33 ("coresight: etm4x: Refactor probing routine") has an __exit annotation.
With .suppress_bind_attrs = true you don't need a remove callback at all. (And without .suppress_bind_attrs = true the remove callback must have no __exit annotation.)
This make me looking at commit 45fe7befe0db ("coresight: remove broken __exit annotations") by Arnd. Unless I miss something the better change would have been to remove the unused remove callbacks instead of dropping their __exit annotation?!
Anyhow, my conflict resolution looks as follows:
diff --cc drivers/hwtracing/coresight/coresight-etm4x-core.c index 82787cba537d,473ab7480a36..000000000000 --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c @@@ -1703,6 -1903,28 +1903,27 @@@ static int __exit etm4_remove_dev(struc cpus_read_unlock(); coresight_unregister(drvdata->csdev); + + return 0; + } + -static int __exit etm4_remove_amba(struct amba_device *adev) ++static void __exit etm4_remove_amba(struct amba_device *adev) + { + struct etmv4_drvdata *drvdata = dev_get_drvdata(&adev->dev); + + if (drvdata) - return etm4_remove_dev(drvdata); - return 0; ++ etm4_remove_dev(drvdata); + } + + static int __exit etm4_remove_platform_dev(struct platform_device *pdev) + { + int ret = 0; + struct etmv4_drvdata *drvdata = dev_get_drvdata(&pdev->dev); + + if (drvdata) + ret = etm4_remove_dev(drvdata); + pm_runtime_disable(&pdev->dev); + return ret; } static const struct amba_id etm4_ids[] = {
If this series should make it in for 5.12 we probably need an immutable branch between hwtracing and amba.
> Otherwise, the changes look good for the drivers/hwtracing/coresight/* > > Acked-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Thanks Uwe
-- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | https://www.pengutronix.de/ | [unhandled content-type:application/pgp-signature] | |