Message ID | 20250208000256.431883-4-andrew.cooper3@citrix.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Other fixes from UBSAN enablement | expand |
On 2/8/25 1:02 AM, Andrew Cooper wrote: > Three architectures have an identical dump_execution_state(), and PPC has a > stub for show_execution_state() that just isn't wired up yet. > > show_execution_state() is declared in a common header, meaning that > dump_execution_state() really ought to be too. Move them both into xen/bug.h > as they're tightly tied to run_in_exception_handler(). Drop the include of > xen/kernel.h from ubsan.c which was required reviously for RISC-V to compile. > > No functional change. > > Signed-off-by: Andrew Cooper<andrew.cooper3@citrix.com> > --- > CC: Jan Beulich<JBeulich@suse.com> > CC: Roger Pau Monné<roger.pau@citrix.com> > CC: Stefano Stabellini<sstabellini@kernel.org> > CC: Julien Grall<julien@xen.org> > CC: Volodymyr Babchuk<Volodymyr_Babchuk@epam.com> > CC: Bertrand Marquis<bertrand.marquis@arm.com> > CC: Michal Orzel<michal.orzel@amd.com> > CC: Oleksii Kurochko<oleksii.kurochko@gmail.com> > CC: Shawn Anastasio<sanastasio@raptorengineering.com> > --- > xen/arch/arm/include/asm/processor.h | 2 -- > xen/arch/riscv/include/asm/processor.h | 2 -- Reviewed-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>. Thanks. ~ Oleksii > xen/arch/x86/include/asm/processor.h | 1 - > xen/common/ubsan/ubsan.c | 1 - > xen/include/xen/bug.h | 3 +++ > xen/include/xen/kernel.h | 2 -- > 6 files changed, 3 insertions(+), 8 deletions(-) > > diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h > index d80d44aeaa8f..f2c4d990c71c 100644 > --- a/xen/arch/arm/include/asm/processor.h > +++ b/xen/arch/arm/include/asm/processor.h > @@ -577,8 +577,6 @@ void panic_PAR(uint64_t par); > void show_registers(const struct cpu_user_regs *regs); > void show_stack(const struct cpu_user_regs *regs); > > -#define dump_execution_state() run_in_exception_handler(show_execution_state) > - > #define cpu_relax() barrier() /* Could yield? */ > > /* All a bit UP for the moment */ > diff --git a/xen/arch/riscv/include/asm/processor.h b/xen/arch/riscv/include/asm/processor.h > index 39696fb58dc6..90b800956303 100644 > --- a/xen/arch/riscv/include/asm/processor.h > +++ b/xen/arch/riscv/include/asm/processor.h > @@ -91,8 +91,6 @@ static inline void sfence_vma(void) > asm volatile ( "sfence.vma" ::: "memory" ); > } > > -#define dump_execution_state() run_in_exception_handler(show_execution_state) > - > #endif /* __ASSEMBLY__ */ > > #endif /* ASM__RISCV__PROCESSOR_H */ > diff --git a/xen/arch/x86/include/asm/processor.h b/xen/arch/x86/include/asm/processor.h > index d247ef8dd226..c2eafaecfd40 100644 > --- a/xen/arch/x86/include/asm/processor.h > +++ b/xen/arch/x86/include/asm/processor.h > @@ -405,7 +405,6 @@ static always_inline void rep_nop(void) > void show_code(const struct cpu_user_regs *regs); > void show_stack_overflow(unsigned int cpu, const struct cpu_user_regs *regs); > void show_registers(const struct cpu_user_regs *regs); > -#define dump_execution_state() run_in_exception_handler(show_execution_state) > void show_page_walk(unsigned long addr); > void noreturn fatal_trap(const struct cpu_user_regs *regs, bool show_remote); > > diff --git a/xen/common/ubsan/ubsan.c b/xen/common/ubsan/ubsan.c > index e99370322b44..a96153c08078 100644 > --- a/xen/common/ubsan/ubsan.c > +++ b/xen/common/ubsan/ubsan.c > @@ -11,7 +11,6 @@ > */ > > #include <xen/bitops.h> > -#include <xen/kernel.h> > #include <xen/lib.h> > #include <xen/percpu.h> > #include <xen/spinlock.h> > diff --git a/xen/include/xen/bug.h b/xen/include/xen/bug.h > index 99814c4bef36..2325a46e7f61 100644 > --- a/xen/include/xen/bug.h > +++ b/xen/include/xen/bug.h > @@ -155,6 +155,9 @@ int do_bug_frame(const struct cpu_user_regs *regs, unsigned long pc); > > #endif /* CONFIG_GENERIC_BUG_FRAME */ > > +void cf_check show_execution_state(const struct cpu_user_regs *regs); > +#define dump_execution_state() run_in_exception_handler(show_execution_state) > + > #endif /* !__ASSEMBLY__ */ > > #endif /* __XEN_BUG_H__ */ > diff --git a/xen/include/xen/kernel.h b/xen/include/xen/kernel.h > index c5b6cc977772..57a1ef4e17b7 100644 > --- a/xen/include/xen/kernel.h > +++ b/xen/include/xen/kernel.h > @@ -94,10 +94,8 @@ bool is_active_kernel_text(unsigned long addr); > extern const char xen_config_data[]; > extern const unsigned int xen_config_data_size; > > -struct cpu_user_regs; > struct vcpu; > > -void cf_check show_execution_state(const struct cpu_user_regs *regs); > void vcpu_show_execution_state(struct vcpu *v); > > #endif /* _LINUX_KERNEL_H */
On 08.02.2025 01:02, Andrew Cooper wrote: > Three architectures have an identical dump_execution_state(), and PPC has a > stub for show_execution_state() that just isn't wired up yet. > > show_execution_state() is declared in a common header, meaning that > dump_execution_state() really ought to be too. Move them both into xen/bug.h > as they're tightly tied to run_in_exception_handler(). Hmm, show_execution_state() certainly has wider use than just with run_in_exception_handler(). I don't think kernel.h was a great home for its decl, but I'm thinking the same of bug.h. Nevertheless (not the least short of having any better suggestion) ... > Drop the include of > xen/kernel.h from ubsan.c which was required reviously for RISC-V to compile. > > No functional change. > > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> Jan
diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h index d80d44aeaa8f..f2c4d990c71c 100644 --- a/xen/arch/arm/include/asm/processor.h +++ b/xen/arch/arm/include/asm/processor.h @@ -577,8 +577,6 @@ void panic_PAR(uint64_t par); void show_registers(const struct cpu_user_regs *regs); void show_stack(const struct cpu_user_regs *regs); -#define dump_execution_state() run_in_exception_handler(show_execution_state) - #define cpu_relax() barrier() /* Could yield? */ /* All a bit UP for the moment */ diff --git a/xen/arch/riscv/include/asm/processor.h b/xen/arch/riscv/include/asm/processor.h index 39696fb58dc6..90b800956303 100644 --- a/xen/arch/riscv/include/asm/processor.h +++ b/xen/arch/riscv/include/asm/processor.h @@ -91,8 +91,6 @@ static inline void sfence_vma(void) asm volatile ( "sfence.vma" ::: "memory" ); } -#define dump_execution_state() run_in_exception_handler(show_execution_state) - #endif /* __ASSEMBLY__ */ #endif /* ASM__RISCV__PROCESSOR_H */ diff --git a/xen/arch/x86/include/asm/processor.h b/xen/arch/x86/include/asm/processor.h index d247ef8dd226..c2eafaecfd40 100644 --- a/xen/arch/x86/include/asm/processor.h +++ b/xen/arch/x86/include/asm/processor.h @@ -405,7 +405,6 @@ static always_inline void rep_nop(void) void show_code(const struct cpu_user_regs *regs); void show_stack_overflow(unsigned int cpu, const struct cpu_user_regs *regs); void show_registers(const struct cpu_user_regs *regs); -#define dump_execution_state() run_in_exception_handler(show_execution_state) void show_page_walk(unsigned long addr); void noreturn fatal_trap(const struct cpu_user_regs *regs, bool show_remote); diff --git a/xen/common/ubsan/ubsan.c b/xen/common/ubsan/ubsan.c index e99370322b44..a96153c08078 100644 --- a/xen/common/ubsan/ubsan.c +++ b/xen/common/ubsan/ubsan.c @@ -11,7 +11,6 @@ */ #include <xen/bitops.h> -#include <xen/kernel.h> #include <xen/lib.h> #include <xen/percpu.h> #include <xen/spinlock.h> diff --git a/xen/include/xen/bug.h b/xen/include/xen/bug.h index 99814c4bef36..2325a46e7f61 100644 --- a/xen/include/xen/bug.h +++ b/xen/include/xen/bug.h @@ -155,6 +155,9 @@ int do_bug_frame(const struct cpu_user_regs *regs, unsigned long pc); #endif /* CONFIG_GENERIC_BUG_FRAME */ +void cf_check show_execution_state(const struct cpu_user_regs *regs); +#define dump_execution_state() run_in_exception_handler(show_execution_state) + #endif /* !__ASSEMBLY__ */ #endif /* __XEN_BUG_H__ */ diff --git a/xen/include/xen/kernel.h b/xen/include/xen/kernel.h index c5b6cc977772..57a1ef4e17b7 100644 --- a/xen/include/xen/kernel.h +++ b/xen/include/xen/kernel.h @@ -94,10 +94,8 @@ bool is_active_kernel_text(unsigned long addr); extern const char xen_config_data[]; extern const unsigned int xen_config_data_size; -struct cpu_user_regs; struct vcpu; -void cf_check show_execution_state(const struct cpu_user_regs *regs); void vcpu_show_execution_state(struct vcpu *v); #endif /* _LINUX_KERNEL_H */
Three architectures have an identical dump_execution_state(), and PPC has a stub for show_execution_state() that just isn't wired up yet. show_execution_state() is declared in a common header, meaning that dump_execution_state() really ought to be too. Move them both into xen/bug.h as they're tightly tied to run_in_exception_handler(). Drop the include of xen/kernel.h from ubsan.c which was required reviously for RISC-V to compile. No functional change. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> --- CC: Jan Beulich <JBeulich@suse.com> CC: Roger Pau Monné <roger.pau@citrix.com> CC: Stefano Stabellini <sstabellini@kernel.org> CC: Julien Grall <julien@xen.org> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com> CC: Bertrand Marquis <bertrand.marquis@arm.com> CC: Michal Orzel <michal.orzel@amd.com> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com> CC: Shawn Anastasio <sanastasio@raptorengineering.com> --- xen/arch/arm/include/asm/processor.h | 2 -- xen/arch/riscv/include/asm/processor.h | 2 -- xen/arch/x86/include/asm/processor.h | 1 - xen/common/ubsan/ubsan.c | 1 - xen/include/xen/bug.h | 3 +++ xen/include/xen/kernel.h | 2 -- 6 files changed, 3 insertions(+), 8 deletions(-)