linux/arch/arm/kernel
Daniel Thompson c0e7f7ee71 ARM: 8150/3: fiq: Replace default FIQ handler
This patch introduces a new default FIQ handler that is structured in a
similar way to the existing ARM exception handler and result in the FIQ
being handled by C code running on the SVC stack (despite this code run
in the FIQ handler is subject to severe limitations with respect to
locking making normal interaction with the kernel impossible).

This default handler allows concepts that on x86 would be handled using
NMIs to be realized on ARM.

Credit:

    This patch is a near complete re-write of a patch originally
    provided by Anton Vorontsov. Today only a couple of small fragments
    survive, however without Anton's work to build from this patch would
    not exist. Thanks also to Russell King for spoonfeeding me a variety
    of fixes during the review cycle.

Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2014-09-18 00:35:18 +01:00
..
.gitignore
arch_timer.c arch_timer: Move to generic sched_clock framework 2013-10-09 16:54:10 -07:00
armksyms.c ARM: Better virt_to_page() handling 2014-04-03 22:46:34 +01:00
arthur.c
asm-offsets.c KVM: arm/arm64: vgic: move GICv2 registers to their own structure 2014-07-11 04:57:31 -07:00
atags_compat.c
atags_parse.c ARM: 8025/1: Get rid of meminfo 2014-06-01 01:17:12 +01:00
atags_proc.c
atags.h ARM: constify machine_desc structure uses 2013-07-26 14:55:59 +01:00
bios32.c ARM/PCI: Call pcie_bus_configure_settings() to set MPS 2014-05-30 10:50:57 -06:00
calls.S ARM: wire up memfd_create syscall 2014-08-09 14:07:59 +01:00
cpuidle.c
crash_dump.c ARM: 8012/1: kdump: Avoid overflow when converting pfn to physaddr 2014-04-07 12:10:00 +01:00
debug.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
devtree.c arm: Add devicetree fixup machine function 2014-07-29 21:26:49 -06:00
dma-isa.c
dma.c
early_printk.c
elf.c
entry-armv.S ARM: 8150/3: fiq: Replace default FIQ handler 2014-09-18 00:35:18 +01:00
entry-common.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
entry-header.S ARM: 8150/3: fiq: Replace default FIQ handler 2014-09-18 00:35:18 +01:00
entry-v7m.S ARM: 7890/1: v7-M: drop using mach/entry-macro.S 2013-12-29 12:32:32 +00:00
etm.c ARM: 7905/1: etm: Remove unnecessary amba_set_drvdata() 2013-12-29 12:32:34 +00:00
fiq.c ARM: 8150/3: fiq: Replace default FIQ handler 2014-09-18 00:35:18 +01:00
fiqasm.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
ftrace.c ARM: 8022/1: ftrace: work with CONFIG_DEBUG_SET_MODULE_RONX 2014-04-23 01:24:31 +01:00
head-common.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
head-nommu.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
head.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
hibernate.c ARM: 8011/1: ARM hibernation / suspend-to-disk 2014-04-23 01:24:14 +01:00
hw_breakpoint.c CPU hotplug notifiers registration fixes for 3.15-rc1 2014-04-07 14:55:46 -07:00
hyp-stub.S Here are the PPC and ARM changes for KVM, which I separated because 2014-08-07 11:35:30 -07:00
insn.c
insn.h
io.c ARM: 7930/1: Introduce atomic MMIO modify 2014-01-28 14:06:25 +00:00
irq.c ARM: l2c: add platform independent core L2 cache OF initialisation 2014-05-30 00:49:00 +01:00
isa.c arm: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:15 -07:00
iwmmxt.S Merge branches 'fixes' and 'misc' into for-next 2014-08-05 10:27:13 +01:00
jump_label.c
kgdb.c ARM: 8124/1: don't enter kgdb when userspace executes a kgdb break instruction 2014-08-02 15:20:30 +01:00
kprobes-arm.c ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
kprobes-common.c ARM: probes: fix instruction fetch order with <asm/opcodes.h> 2014-04-01 16:45:19 +03:00
kprobes-test-arm.c ARM: kprobes: Fix test code compilation errors for ARMv4 targets 2014-07-02 12:48:36 +01:00
kprobes-test-thumb.c ARM: kprobes-test: use <asm/opcodes.h> for Thumb instruction building 2014-04-01 16:48:26 +03:00
kprobes-test.c ARM: kprobes: Prevent known test failures stopping other tests running 2014-07-02 12:48:36 +01:00
kprobes-test.h ARM: kprobes-test: Workaround GAS .align bug 2014-04-01 16:48:27 +03:00
kprobes-thumb.c ARM: probes: fix instruction fetch order with <asm/opcodes.h> 2014-04-01 16:45:19 +03:00
kprobes.c ARM: probes: fix instruction fetch order with <asm/opcodes.h> 2014-04-01 16:45:19 +03:00
kprobes.h ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
machine_kexec.c ARM: 8030/1: ARM : kdump : add arch_crash_save_vmcoreinfo 2014-04-22 22:23:58 +01:00
Makefile Merge branches 'alignment', 'fixes', 'l2c' (early part) and 'misc' into for-next 2014-06-05 12:35:52 +01:00
module.c ARM: 8127/1: module: add support for R_ARM_TARGET1 relocations 2014-08-27 15:40:11 +01:00
opcodes.c
patch.c
patch.h
perf_event_cpu.c Merge branch 'devel-stable' into for-next 2014-08-05 10:27:25 +01:00
perf_event_v6.c arm: perf: clean up PMU names 2014-07-02 15:48:25 +01:00
perf_event_v7.c arm: perf: krait: stop using singleton PMU 2014-07-02 15:48:26 +01:00
perf_event_xscale.c arm: perf: clean up PMU names 2014-07-02 15:48:25 +01:00
perf_event.c Merge branch 'devel-stable' into for-next 2014-08-05 10:27:25 +01:00
perf_regs.c ARM: perf: add support for perf registers API 2013-09-30 16:41:50 +01:00
pj4-cp0.c ARM: 8040/1: pj4: properly detect existence of iWMMXt coprocessor 2014-04-25 12:07:34 +01:00
probes-arm.c ARM: kprobes: Disallow instructions with PC and register specified shift 2014-07-02 12:48:36 +01:00
probes-arm.h ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
probes-thumb.c ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
probes-thumb.h ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
probes.c ARM: probes: fix instruction fetch order with <asm/opcodes.h> 2014-04-01 16:45:19 +03:00
probes.h ARM: Make arch_specific_insn a define for new arch_probes_insn structure 2014-03-18 16:39:40 -04:00
process.c Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm 2014-04-11 11:56:40 -07:00
psci_smp.c ARM: Check if a CPU has gone offline 2014-05-15 10:16:30 -04:00
psci.c PSCI: Add initial support for PSCIv0.2 functions 2014-05-15 10:16:00 -04:00
ptrace.c ARM: 8087/1: ptrace: reload syscall number after secure_computing() check 2014-06-29 10:29:35 +01:00
relocate_kernel.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
return_address.c
setup.c ARM: 8150/3: fiq: Replace default FIQ handler 2014-09-18 00:35:18 +01:00
signal.c ARM: add uprobes support 2014-03-18 16:39:40 -04:00
sigreturn_codes.S ARM: 7895/1: signal: fix armv7-m build issue in sigreturn_codes.S 2013-11-30 22:21:00 +00:00
sleep.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
smp_scu.c ARM: 8122/1: smp_scu: enable SCU standby support 2014-08-02 08:51:53 +01:00
smp_tlb.c ARM: 8111/1: Enable erratum 798181 for Broadcom Brahma-B15 2014-07-24 14:40:26 +01:00
smp_twd.c cpufreq: remove unused notifier: CPUFREQ_{SUSPENDCHANGE|RESUMECHANGE} 2014-03-19 14:10:24 +01:00
smp.c ARM: add IPI tracepoints 2014-08-07 20:40:41 -04:00
stacktrace.c ARM: 8049/1: ftrace/add save_stack_trace_regs() implementation 2014-05-30 01:12:32 +01:00
suspend.c ARM: suspend: use hash of cpu_logical_map value to index into save array 2013-07-30 09:00:43 -04:00
swp_emulate.c ARM: SWP emulation: only initialise on ARMv7 CPUs 2014-07-18 12:29:49 +01:00
sys_arm.c
sys_oabi-compat.c locks: rename file-private locks to "open file description locks" 2014-04-22 08:23:58 -04:00
tcm.c ARM: add permission annotations to MT_MEMORY* mapping types 2013-12-11 09:53:14 +00:00
thumbee.c
time.c ARM: 8072/1: time: Make use of arm_get_current_stackframe 2014-07-18 12:29:14 +01:00
topology.c sched: Fix compiler warnings 2014-07-02 08:33:48 +02:00
traps.c ARM: 8150/3: fiq: Replace default FIQ handler 2014-09-18 00:35:18 +01:00
unwind.c ARM: 8073/1: unwind: Use arm_get_current_stackframe 2014-07-18 12:29:16 +01:00
uprobes-arm.c ARM: add uprobes support 2014-03-18 16:39:40 -04:00
uprobes.c ARM: 8043/1: uprobes need icache flush after xol write 2014-05-25 23:48:45 +01:00
uprobes.h ARM: add uprobes support 2014-03-18 16:39:40 -04:00
v7m.c ARM: 7828/1: ARMv7-M: implement restart routine common to all v7-M machines 2013-09-02 13:49:29 +01:00
vmlinux.lds.S ARM: 8088/1: vmlinux.lds.S: drop redundant .comment 2014-07-18 12:29:23 +01:00
xscale-cp0.c