alistair23-linux/arch/arm/kernel
Will Deacon 9141a003a4 ARM: 7316/1: kexec: EOI active and mask all interrupts in kexec crash path
The kexec machine crash code can be called in interrupt context via a
sysrq trigger made using the magic key combination. If the irq chip
dealing with the serial interrupt is using the fasteoi flow handler,
then we will never EOI the interrupt because the interrupt handler will
be fatal. In the case of a GIC, this results in the crash kernel not
receiving interrupts on that CPU interface.

This patch adds code (based on the PowerPC implementation) to EOI any
pending interrupts on the crash CPU before masking and disabling all
interrupts. Secondary cores are not a problem since they are placed into
a cpu_relax() loop via an IPI.

Reported-by: Lei Wen <leiwen@marvell.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-03-24 09:38:54 +00:00
..
.gitignore
armksyms.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
arthur.c
asm-offsets.c ARM: 7114/1: cache-l2x0: add resume entry for l2 in secure mode 2011-10-17 09:11:51 +01:00
atags.c
atags.h
bios32.c arm/PCI: convert to pci_scan_root_bus() for correct root bus resources 2012-01-06 12:10:56 -08:00
calls.S ARM: wire up process_vm_writev and process_vm_readv syscalls 2011-11-17 16:58:00 +00:00
compat.c
compat.h
crash_dump.c crash_dump: export is_kdump_kernel to modules, consolidate elfcorehdr_addr, setup_elfcorehdr and saved_max_pfn 2011-03-23 19:47:19 -07:00
crunch-bits.S
crunch.c
debug.S Merge branch 'devel-stable' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2011-10-28 12:02:27 -07:00
devtree.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
dma-isa.c
dma.c locking, ARM: Annotate low level hw locks as raw 2011-09-13 11:12:14 +02:00
early_printk.c
ecard.c ARM: io: RiscPC: make EASI_BASE a void iomem pointer 2011-08-17 08:44:16 +01:00
ecard.h
elf.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
entry-armv.S Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into devel-stable 2011-12-05 23:20:17 +00:00
entry-common.S Kernel: Audit Support For The ARM Platform 2012-01-17 16:17:01 -05:00
entry-header.S Merge branch 'devel-stable' into for-next 2011-07-22 23:09:07 +01:00
etm.c arm: fix implicit module.h users by adding it to arch/arm as required. 2011-10-31 19:30:50 -04:00
fiq.c ARM: move CP15 definitions to separate header file 2012-03-24 09:38:51 +00:00
fiqasm.S ARM: 6938/1: fiq: Refactor {get,set}_fiq_regs() for Thumb-2 2011-05-26 10:31:06 +01:00
ftrace.c
head-common.S arm/dt: Make __vet_atags also accept a dtb image 2011-05-11 15:12:32 +02:00
head-nommu.S ARM: move CP15 definitions to separate header file 2012-03-24 09:38:51 +00:00
head.S ARM: move CP15 definitions to separate header file 2012-03-24 09:38:51 +00:00
hw_breakpoint.c ARM: LPAE: Add fault handling support 2011-12-08 10:30:40 +00:00
init_task.c
io.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
irq.c ARM: 7317/1: irq: avoid NULL check in for_each_irq_desc loop 2012-03-24 09:38:53 +00:00
isa.c
iwmmxt.S ARM: pxa: fix logic error in PJ4 iWMMXt handling 2011-08-11 10:10:26 +08:00
kgdb.c
kprobes-arm.c ARM: 7181/1: Restrict kprobes probing SWP instructions to ARMv5 and below 2011-11-30 23:54:54 +00:00
kprobes-common.c ARM: kprobes: Add alu_write_pc() 2011-07-13 17:32:48 +00:00
kprobes-test-arm.c ARM: 7181/1: Restrict kprobes probing SWP instructions to ARMv5 and below 2011-11-30 23:54:54 +00:00
kprobes-test-thumb.c ARM: 7174/1: Fix build error in kprobes test code on Thumb2 kernels 2011-11-26 21:58:53 +00:00
kprobes-test.c ARM: 7209/1: Use generic ARM instruction set condition code checks for kprobes. 2011-12-13 08:52:03 +00:00
kprobes-test.h ARM: 7174/1: Fix build error in kprobes test code on Thumb2 kernels 2011-11-26 21:58:53 +00:00
kprobes-thumb.c ARM: kprobes: Add exports for test code 2011-09-20 18:17:43 +00:00
kprobes.c ARM: kprobes: Extend arch_specific_insn to add pointer to emulated instruction 2011-07-13 17:32:42 +00:00
kprobes.h ARM: kprobes: Add exports for test code 2011-09-20 18:17:43 +00:00
leds.c arm: leds: convert sysdev_class to a regular subsystem 2011-12-21 15:52:57 -08:00
machine_kexec.c ARM: 7316/1: kexec: EOI active and mask all interrupts in kexec crash path 2012-03-24 09:38:54 +00:00
Makefile ARM: 7206/1: Add generic ARM instruction set condition code checks. 2011-12-13 08:52:02 +00:00
module.c ARM: 7059/1: LPAE: Use PMD_(SHIFT|SIZE|MASK) instead of PGDIR_* 2011-08-23 15:30:33 +01:00
opcodes.c ARM: 7206/1: Add generic ARM instruction set condition code checks. 2011-12-13 08:52:02 +00:00
perf_event.c ARM: 7315/1: perf: add support for the Cortex-A7 PMU 2012-03-24 09:38:53 +00:00
perf_event_v6.c ARM: perf: add support for stalled cycle ABI events 2011-12-02 15:16:16 +00:00
perf_event_v7.c ARM: 7315/1: perf: add support for the Cortex-A7 PMU 2012-03-24 09:38:53 +00:00
perf_event_xscale.c ARM: perf: add support for stalled cycle ABI events 2011-12-02 15:16:16 +00:00
pj4-cp0.c arm: remove several unnecessary module.h include instances 2011-10-31 19:30:48 -04:00
pmu.c ARM: PMU: re-export release_pmu symbol to modules 2011-11-16 10:06:42 +00:00
process.c ARM: 7294/1: vectors: use gate_vma for vectors user mapping 2012-03-24 09:38:51 +00:00
ptrace.c Kernel: Audit Support For The ARM Platform 2012-01-17 16:17:01 -05:00
relocate_kernel.S ARM: 7065/1: kexec: ensure new kernel is entered in ARM state 2011-08-28 10:39:41 +01:00
return_address.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
sched_clock.c ARM: sync sched_clock() state on suspend 2012-03-24 09:38:53 +00:00
setup.c ARM: move CP15 definitions to separate header file 2012-03-24 09:38:51 +00:00
signal.c ARM: 6892/1: handle ptrace requests to change PC during interrupted system calls 2011-05-12 10:52:00 +01:00
signal.h
sleep.S ARM: LPAE: add ISBs around MMU enabling code 2011-12-08 10:30:38 +00:00
smp.c ARM: SMP: use a timing out completion for cpu hotplug 2012-03-24 09:38:51 +00:00
smp_scu.c Merge branches 'arnd-randcfg-fixes', 'debug', 'io' (early part), 'l2x0', 'p2v', 'pgt' (early part) and 'smp' into for-linus 2011-10-25 08:19:29 +01:00
smp_tlb.c ARM: SMP: split out software TLB maintainence broadcasting 2010-12-20 15:09:17 +00:00
smp_twd.c ARM: 7212/1: smp_twd: reconfigure clockevents after cpufreq change 2011-12-23 22:54:50 +00:00
stacktrace.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
suspend.c ARM: suspend: use idmap_pgd instead of suspend_pgd 2011-12-06 14:04:14 +00:00
swp_emulate.c ARM: 7208/1: Add condition code checking to SWP emulation handler. 2011-12-13 08:52:03 +00:00
sys_arm.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
sys_oabi-compat.c ARM: 6891/1: prevent heap corruption in OABI semtimedop 2011-04-29 15:53:14 +01:00
tcm.c ARM: 7199/2: only look for TCM on ARMv5 and later 2011-12-13 08:52:02 +00:00
tcm.h
thumbee.c
time.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
topology.c ARM: 7182/1: ARM cpu topology: fix warning 2011-11-30 23:55:21 +00:00
traps.c ARM: Add compiled ISA to oops dumps 2012-03-24 09:38:52 +00:00
unwind.c ARM: unwinder: fix bisection to find origin in .idx section 2011-12-15 14:02:19 -08:00
vmlinux.lds.S ARM: idmap: populate identity map pgd at init time using .init.text 2011-12-06 14:04:14 +00:00
xscale-cp0.c arm: remove several unnecessary module.h include instances 2011-10-31 19:30:48 -04:00