Message ID | 20230622202816.v2.1.Ice67126857506712559078e7de26d32d26e64631@changeid (mailing list archive) |
---|---|
State | Handled Elsewhere, archived |
Headers | show |
Series | [v2] powerpc: Move arch_trigger_cpumask_backtrace from nmi.h to irq.h | expand |
Douglas Anderson <dianders@chromium.org> writes: > The powerpc architecture was the only one that defined > arch_trigger_cpumask_backtrace() in asm/nmi.h instead of > asm/irq.h. Move it to be consistent. > > This fixes compile time errors introduced by commit 7ca8fe94aa92 > ("watchdog/hardlockup: define HARDLOCKUP_DETECTOR_ARCH"). That commit > caused <asm/nmi.h> to stop being included if the hardlockup detector > wasn't enabled. The specific errors were: > error: implicit declaration of function ‘nmi_cpu_backtrace’ > error: implicit declaration of function ‘nmi_trigger_cpumask_backtrace’ > > NOTE: when moving this into irq.h, we also change the guards from just > checking if "CONFIG_NMI_IPI" is defined to also checking if > "CONFIG_PPC_BOOK3S_64" is defined. This matches the code in > arch/powerpc/kernel/stacktrace.c. Previously this worked because > <asm.nmi.h> was included if "CONFIG_HAVE_HARDLOCKUP_DETECTOR_ARCH" was > defined. For powerpc that's only selected if "CONFIG_PPC_BOOK3S_64" is > defined. > > Fixes: 7ca8fe94aa92 ("watchdog/hardlockup: define HARDLOCKUP_DETECTOR_ARCH") > Reported-by: Michael Ellerman <mpe@ellerman.id.au> > Closes: https://lore.kernel.org/r/871qi5otdh.fsf@mail.lhotse > Signed-off-by: Douglas Anderson <dianders@chromium.org> > --- > I'd expect that this would land in Andrew Morton's tree along with the > other lockup detector stuff. > > Changes in v2: > - Change the guards to include CONFIG_PPC_BOOK3S_64. Thanks, this fixes all the build errors AFAICS. Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc) cheers > arch/powerpc/include/asm/irq.h | 6 ++++++ > arch/powerpc/include/asm/nmi.h | 6 ------ > 2 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/arch/powerpc/include/asm/irq.h b/arch/powerpc/include/asm/irq.h > index 94dffa1dd223..f257cacb49a9 100644 > --- a/arch/powerpc/include/asm/irq.h > +++ b/arch/powerpc/include/asm/irq.h > @@ -53,5 +53,11 @@ void __do_IRQ(struct pt_regs *regs); > > int irq_choose_cpu(const struct cpumask *mask); > > +#if defined(CONFIG_PPC_BOOK3S_64) && defined(CONFIG_NMI_IPI) > +extern void arch_trigger_cpumask_backtrace(const cpumask_t *mask, > + bool exclude_self); > +#define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace > +#endif > + > #endif /* _ASM_IRQ_H */ > #endif /* __KERNEL__ */ > diff --git a/arch/powerpc/include/asm/nmi.h b/arch/powerpc/include/asm/nmi.h > index ce25318c3902..49a75340c3e0 100644 > --- a/arch/powerpc/include/asm/nmi.h > +++ b/arch/powerpc/include/asm/nmi.h > @@ -9,12 +9,6 @@ void watchdog_hardlockup_set_timeout_pct(u64 pct); > static inline void watchdog_hardlockup_set_timeout_pct(u64 pct) {} > #endif > > -#ifdef CONFIG_NMI_IPI > -extern void arch_trigger_cpumask_backtrace(const cpumask_t *mask, > - bool exclude_self); > -#define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace > -#endif > - > extern void hv_nmi_check_nonrecoverable(struct pt_regs *regs); > > #endif /* _ASM_NMI_H */ > -- > 2.41.0.162.gfafddb0af9-goog
diff --git a/arch/powerpc/include/asm/irq.h b/arch/powerpc/include/asm/irq.h index 94dffa1dd223..f257cacb49a9 100644 --- a/arch/powerpc/include/asm/irq.h +++ b/arch/powerpc/include/asm/irq.h @@ -53,5 +53,11 @@ void __do_IRQ(struct pt_regs *regs); int irq_choose_cpu(const struct cpumask *mask); +#if defined(CONFIG_PPC_BOOK3S_64) && defined(CONFIG_NMI_IPI) +extern void arch_trigger_cpumask_backtrace(const cpumask_t *mask, + bool exclude_self); +#define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace +#endif + #endif /* _ASM_IRQ_H */ #endif /* __KERNEL__ */ diff --git a/arch/powerpc/include/asm/nmi.h b/arch/powerpc/include/asm/nmi.h index ce25318c3902..49a75340c3e0 100644 --- a/arch/powerpc/include/asm/nmi.h +++ b/arch/powerpc/include/asm/nmi.h @@ -9,12 +9,6 @@ void watchdog_hardlockup_set_timeout_pct(u64 pct); static inline void watchdog_hardlockup_set_timeout_pct(u64 pct) {} #endif -#ifdef CONFIG_NMI_IPI -extern void arch_trigger_cpumask_backtrace(const cpumask_t *mask, - bool exclude_self); -#define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace -#endif - extern void hv_nmi_check_nonrecoverable(struct pt_regs *regs); #endif /* _ASM_NMI_H */
The powerpc architecture was the only one that defined arch_trigger_cpumask_backtrace() in asm/nmi.h instead of asm/irq.h. Move it to be consistent. This fixes compile time errors introduced by commit 7ca8fe94aa92 ("watchdog/hardlockup: define HARDLOCKUP_DETECTOR_ARCH"). That commit caused <asm/nmi.h> to stop being included if the hardlockup detector wasn't enabled. The specific errors were: error: implicit declaration of function ‘nmi_cpu_backtrace’ error: implicit declaration of function ‘nmi_trigger_cpumask_backtrace’ NOTE: when moving this into irq.h, we also change the guards from just checking if "CONFIG_NMI_IPI" is defined to also checking if "CONFIG_PPC_BOOK3S_64" is defined. This matches the code in arch/powerpc/kernel/stacktrace.c. Previously this worked because <asm.nmi.h> was included if "CONFIG_HAVE_HARDLOCKUP_DETECTOR_ARCH" was defined. For powerpc that's only selected if "CONFIG_PPC_BOOK3S_64" is defined. Fixes: 7ca8fe94aa92 ("watchdog/hardlockup: define HARDLOCKUP_DETECTOR_ARCH") Reported-by: Michael Ellerman <mpe@ellerman.id.au> Closes: https://lore.kernel.org/r/871qi5otdh.fsf@mail.lhotse Signed-off-by: Douglas Anderson <dianders@chromium.org> --- I'd expect that this would land in Andrew Morton's tree along with the other lockup detector stuff. Changes in v2: - Change the guards to include CONFIG_PPC_BOOK3S_64. arch/powerpc/include/asm/irq.h | 6 ++++++ arch/powerpc/include/asm/nmi.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-)