linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] powerpc: Move arch_trigger_cpumask_backtrace from nmi.h to irq.h
@ 2023-06-23  3:28 Douglas Anderson
  2023-06-23 12:06 ` Michael Ellerman
  0 siblings, 1 reply; 2+ messages in thread
From: Douglas Anderson @ 2023-06-23  3:28 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Michael Ellerman, Petr Mladek, Douglas Anderson, Arnd Bergmann,
	Christophe Leroy, Laurent Dufour, Nicholas Piggin, Tom Rix,
	linux-kernel, linuxppc-dev

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(-)

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


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] powerpc: Move arch_trigger_cpumask_backtrace from nmi.h to irq.h
  2023-06-23  3:28 [PATCH v2] powerpc: Move arch_trigger_cpumask_backtrace from nmi.h to irq.h Douglas Anderson
@ 2023-06-23 12:06 ` Michael Ellerman
  0 siblings, 0 replies; 2+ messages in thread
From: Michael Ellerman @ 2023-06-23 12:06 UTC (permalink / raw)
  To: Douglas Anderson, Andrew Morton
  Cc: Petr Mladek, Douglas Anderson, Arnd Bergmann, Christophe Leroy,
	Laurent Dufour, Nicholas Piggin, Tom Rix, linux-kernel,
	linuxppc-dev

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-06-23 12:06 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-23  3:28 [PATCH v2] powerpc: Move arch_trigger_cpumask_backtrace from nmi.h to irq.h Douglas Anderson
2023-06-23 12:06 ` Michael Ellerman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).