linux/arch/metag/kernel
James Hogan 8b8b241299 metag: cpu hotplug: route_irq: preserve irq mask
The route_irq() function needs to preserve the irq mask by using the
_irqsave/irqrestore variants of raw spin lock functions instead of the
_irq variants. This is because it is called from __cpu_disable() (via
migrate_irqs()), which is called with IRQs disabled, so using the _irq
variants re-enables IRQs.

This appears to have been causing occasional hits of the
BUG_ON(!irqs_disabled()) in __irq_work_run() during CPU hotplug soak
testing:
  BUG: failure at kernel/irq_work.c:122/__irq_work_run()!

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
2013-07-02 14:12:22 +01:00
..
perf metag: perf: prepare for use by oprofile 2013-03-15 13:20:19 +00:00
.gitignore metag: Build infrastructure 2013-03-02 20:09:54 +00:00
asm-offsets.c metag: Build infrastructure 2013-03-02 20:09:54 +00:00
cachepart.c metag: panic if cache aliasing possible 2013-06-27 13:49:48 +01:00
clock.c metag: log core and timer frequencies from arch code 2013-06-13 12:55:27 +01:00
core_reg.c metag: SMP support 2013-03-02 20:09:51 +00:00
da.c metag: export _metag_da_present and cpu_2_hwthread_id 2013-03-27 14:37:52 +00:00
devtree.c metag: copy devicetree to non-init memory 2013-03-02 20:11:17 +00:00
dma.c metag: DMA 2013-03-02 20:09:51 +00:00
ftrace_stub.S metag: ftrace support 2013-03-02 20:09:55 +00:00
ftrace.c metag: ftrace support 2013-03-02 20:09:55 +00:00
head.S metag: smp: copy cache partition and enable GCOn 2013-03-15 13:21:17 +00:00
irq.c metag: cpu hotplug: route_irq: preserve irq mask 2013-07-02 14:12:22 +01:00
kick.c metag: kick: add missing irq_enter/exit to kick_handler() 2013-07-02 14:12:08 +01:00
machines.c
Makefile metag: Add JTAG Debug Adapter (DA) support 2013-03-02 20:09:56 +00:00
metag_ksyms.c metag: cleanup metag_ksyms.c includes 2013-03-02 20:11:16 +00:00
module.c metag: Module support 2013-03-02 20:09:49 +00:00
perf_callchain.c metag: Perf 2013-03-02 20:09:54 +00:00
process.c dump_stack: unify debug information printed by show_regs() 2013-04-30 17:04:02 -07:00
ptrace.c metag: ptrace: Implement NT_METAG_TLS 2013-03-27 14:37:47 +00:00
setup.c metag/setup: Restrict scope for the capabilities variable 2013-06-13 12:55:29 +01:00
signal.c metag: Signal handling 2013-03-02 20:09:21 +00:00
smp.c metag: smp: don't spin waiting for CPU to start 2013-07-02 11:03:52 +01:00
stacktrace.c metag: Stack unwinding 2013-03-02 20:09:52 +00:00
sys_metag.c metag: System Calls 2013-03-02 20:09:49 +00:00
tbiunexp.S metag: Traps 2013-03-02 20:09:45 +00:00
tcm.c
time.c metag: init common clk and use "core" clk 2013-06-13 12:54:41 +01:00
topology.c metag: SMP support 2013-03-02 20:09:51 +00:00
traps.c metag/traps: include setup.h for the per_cpu_trap_init declaration 2013-06-13 12:55:30 +01:00
user_gateway.S metag: System Calls 2013-03-02 20:09:49 +00:00
vmlinux.lds.S metag: Build infrastructure 2013-03-02 20:09:54 +00:00