[PATCH v2] perf/core: Drop __weak attribute from arch_perf_update_userpage() prototype

Marc Zyngier maz at kernel.org
Fri Jun 16 04:57:02 PDT 2023


On 2023-06-16 12:48, Marc Zyngier wrote:
> Reiji reports that the arm64 implementation of 
> arch_perf_update_userpage()
> is now ignored and replaced by the dummy stub in core code.
> This seems to happen since the PMUv3 driver was moved to driver/perf.
> 
> As it turns out, dropping the __weak attribute from the *prototype*
> of the function solves the problem. You're right, this doesn't seem
> to make much sense. And yet... It appears that both symbols get
> flagged as weak, and that the first one to appear in the link order
> wins:
> 
> $ nm drivers/perf/arm_pmuv3.o|grep arch_perf_update_userpage
> 0000000000001db0 W arch_perf_update_userpage
> 
> Dropping the attribute from the prototype restores the expected
> behaviour, and arm64 is able to enjoy arch_perf_update_userpage()
> again.
> 
> Fixes: 7755cec63ade ("arm64: perf: Move PMUv3 driver to drivers/perf")
> Fixes: f1ec3a517b43 ("kernel/events: Add a missing prototype for
> arch_perf_update_userpage()")
> Reported-by: Reiji Watanabe <reijiw at google.com>
> Tested-by: Reiji Watanabe <reijiw at google.com>
> Acked-by: Mark Rutland <mark.rutland at arm.com>
> Signed-off-by: Marc Zyngier <maz at kernel.org>
> Cc: Peter Zijlstra <peterz at infradead.org>
> Cc: Will Deacon <will at kernel.org>

And of course I forgot to pass --notes to git-send-email...

     v2: Added fixes tags, both for the commit that introduce the 
breakage
         on arm64, and for the commit introducing the offending 
prototype.
         I did not Cc stable on purpose, as nothing appears to be broken
         in other architectures.

Thanks,

         M.
-- 
Jazz is not dead. It just smells funny...



More information about the linux-arm-kernel mailing list