linux/arch/x86/kernel/apic
Michel Lespinasse b52e0a7c4e x86: Fix trigger_all_cpu_backtrace() implementation
The following change fixes the x86 implementation of
trigger_all_cpu_backtrace(), which was previously (accidentally,
as far as I can tell) disabled to always return false as on
architectures that do not implement this function.

trigger_all_cpu_backtrace(), as defined in include/linux/nmi.h,
should call arch_trigger_all_cpu_backtrace() if available, or
return false if the underlying arch doesn't implement this
function.

x86 did provide a suitable arch_trigger_all_cpu_backtrace()
implementation, but it wasn't actually being used because it was
declared in asm/nmi.h, which linux/nmi.h doesn't include. Also,
linux/nmi.h couldn't easily be fixed by including asm/nmi.h,
because that file is not available on all architectures.

I am proposing to fix this by moving the x86 definition of
arch_trigger_all_cpu_backtrace() to asm/irq.h.

Tested via: echo l > /proc/sysrq-trigger

Before the change, this uses a fallback implementation which
shows backtraces on active CPUs (using
smp_call_function_interrupt() )

After the change, this shows NMI backtraces on all CPUs

Signed-off-by: Michel Lespinasse <walken@google.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: http://lkml.kernel.org/r/1370518875-1346-1-git-send-email-walken@google.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2013-06-20 14:00:21 +02:00
..
apic_flat_64.c x86/apic: Eliminate cpu_mask_to_apicid() operation 2012-06-14 12:53:13 +02:00
apic_noop.c x86/apic/x2apic: Limit the vector reservation to the user specified mask 2012-07-06 11:00:22 +02:00
apic_numachip.c Linux 3.8-rc5 2013-01-25 16:31:21 -08:00
apic.c x86/apic: Fix parsing of the 'lapic' cmdline option 2013-02-20 11:24:36 +01:00
bigsmp_32.c x86/apic: Eliminate cpu_mask_to_apicid() operation 2012-06-14 12:53:13 +02:00
es7000_32.c x86/apic/es7000: Make apicid of a cluster (not CPU) from a cpumask 2012-06-14 12:53:16 +02:00
hw_nmi.c x86: Fix trigger_all_cpu_backtrace() implementation 2013-06-20 14:00:21 +02:00
io_apic.c x86, io_apic: Introduce eoi_ioapic_pin call-back 2013-01-28 12:51:52 +01:00
ipi.c x86/apic: Remove noisy zero-mask warning from default_send_IPI_mask_logical() 2013-01-24 12:12:42 +01:00
Makefile x86: Add NumaChip support 2011-12-05 17:17:24 +01:00
numaq_32.c x86/apic: Eliminate cpu_mask_to_apicid() operation 2012-06-14 12:53:13 +02:00
probe_32.c Merge branch 'x86/apic' into x86/platform 2012-06-18 11:09:49 +02:00
probe_64.c x86/platform: Introduce APIC post-initialization callback 2012-06-06 09:06:19 +02:00
summit_32.c Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-07-22 12:19:36 -07:00
x2apic_cluster.c x86/apic/x2apic: Use multiple cluster members for the irq destination only with the explicit affinity 2012-07-06 11:00:23 +02:00
x2apic_phys.c x86/apic: Work around boot failure on HP ProLiant DL980 G7 Server systems 2013-02-11 11:13:00 +01:00
x2apic_uv_x.c x86, uv, uv3: Update x2apic Support for SGI UV3 2013-02-11 17:18:03 -08:00