[PATCH] KVM: arm64: Avoid naming collision in tracing

Vincent Donnefort vdonnefort at google.com
Mon Jul 13 01:05:55 PDT 2026


On Mon, Jul 13, 2026 at 09:02:48AM +0100, Vincent Donnefort wrote:
> On Sun, Jul 12, 2026 at 03:38:35PM +0000, Mostafa Saleh wrote:
> > When the hypervisor tracing (CONFIG_NVHE_EL2_TRACING) is disabled, it
> > defines a static inline stub for trace_clock().
> > 
> > However, trace_clock() is already declared as an extern function in
> > linux/trace_clock.h which is pulled in EL2 compilation.
> 
> I am completely unable to reproduce that. CONFIG_NVHE_EL2_TRACING, isn't a
> selectable option, it depends on NVHE_EL2_DEBUG.
> 
> How does your .config look like?
> 
> > 
> > If the file <nvhe/clock.h> is included when CONFIG_NVHE_EL2_TRACING
> > is disabled (by including it manually in setup.c) it will cause:
> > In file included from arch/arm64/kvm/hyp/nvhe/setup.c:22:
> 
> nvhe/clock.h seems already included in setup.c

Ha no appologies, I was looking at the wrong branch.

However I am still enable to reproduce this issue. So I am still interested in
knowing your .defconfig

> 
> > 
> > ./arch/arm64/kvm/hyp/include/nvhe/clock.h:14:19: error: static declaration of ‘trace_clock’ follows non-static declaration
> > 
> >    14 | static inline u64 trace_clock(void) { return 0; }
> > 
> >       |                   ^~~~~~~~~~~
> > 
> > on GCC and a linker error on LLVM (it seems to change the linkage to
> > global)
> > 
> > Although that is not a problem at the moment, as no other files
> > include <nvhe/clock.h>. That does not seem to be the intent of
> > this code and that will cause issues with more users as the SMMUv3
> > driver.
> > 
> > Signed-off-by: Mostafa Saleh <smostafa at google.com>
> > 
> > --

[...]



More information about the linux-arm-kernel mailing list