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 > > Reviewed-by: Arnd Bergmann > > Acked-by: Alexandre Belloni > > Acked-by: Dmitry Torokhov > > Acked-by: Krzysztof Kozlowski # for drivers/memory > > Acked-by: Mark Brown > > Acked-by: Dmitry Torokhov > > Acked-by: Linus Walleij > > Signed-off-by: Uwe Kleine-König > > > > 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 Thanks Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | https://www.pengutronix.de/ |