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