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@kleine-koenig.org --- 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)