Hi,

I am having a funny issue with code that tries to use
trigger_all_cpu_backtrace(). I would expect this function to dump
backtraces on architectures that support it, including x86. However as
it turns out, include/linux/nmi.h includes asm/irq.h but not
asm/nmi.h, so it misses the arch/x86/include/asm/nmi.h definition of
arch_trigger_all_cpu_backtrace and falls back to what it'd do for
architectures that don't have this function.

I would suggest the following straightforward fix:

diff --git a/include/linux/nmi.h b/include/linux/nmi.h
index db50840e6355..6549df520dd3 100644
--- a/include/linux/nmi.h
+++ b/include/linux/nmi.h
@@ -6,6 +6,7 @@

 #include <linux/sched.h>
 #include <asm/irq.h>
+#include <asm/nmi.h>

 /**
  * touch_nmi_watchdog - restart NMI watchdog timeout.


However, I am slightly confused by the fact that
arch/x86/kernel/apic/hw_nmi.c also encloses the
arch_trigger_all_cpu_backtrace() definition within #ifdef
arch_trigger_all_cpu_backtrace - so I can't tell if the definition
from arch/x86/include/asm/nmi.h is intended to take effect or if there
is some subtle point explaining why things are as they are.

Help anyone ?


Thanks,

-- 
Michel "Walken" Lespinasse
A program is never fully debugged until the last user dies.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to