This was non-trivial to get right because commits c23bc382ef0e ("coresight: etm4x: Refactor probing routine") and 5214b563588e ("coresight: etm4x: Add support for sysreg only devices") changed the code flow considerably. With this change the driver can be built again. Fixes: 0573d3fa4864 ("Merge branch 'devel-stable' of git://git.armlinux.org.uk/~rmk/linux-arm into char-misc-next") Signed-off-by: Uwe Kleine-König <uwe@xxxxxxxxxxxxxxxxx> --- On Fri, Feb 05, 2021 at 12:07:09PM +0100, Greg Kroah-Hartman wrote: > On Fri, Feb 05, 2021 at 11:56:15AM +0100, Uwe Kleine-König wrote: > > I didn't compile test, but I'm willing to bet your resolution is wrong. > > You have no return statement in etm4_remove_dev() but its return type is > > int and etm4_remove_amba() still returns int but should return void. > > Can you send a patch to fix this up? Sure, here it comes. As I'm unsure if you want to squash it into the merge or want to keep it separate I crafted a commit message. If you prefer squashing feel free to do so. This change corresponds to the merge resolution I suggested before. Best regards Uwe drivers/hwtracing/coresight/coresight-etm4x-core.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c index bc55b261af23..c8ecd91e289e 100644 --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c @@ -1906,15 +1906,16 @@ static int __exit etm4_remove_dev(struct etmv4_drvdata *drvdata) 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) -- 2.29.2