ARM: 8150/3: fiq: Replace default FIQ handler
authorDaniel Thompson <daniel.thompson@linaro.org>
Wed, 17 Sep 2014 16:12:06 +0000 (17:12 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 17 Sep 2014 23:35:18 +0000 (00:35 +0100)
commitc0e7f7ee717e2b4c5791e7422424c96b5008c39e
treebc04f72e3004ff8873f9cb842fd91c17e35e90d0
parent9e82bf014195d6f0054982c463575cdce24292be
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>
arch/arm/kernel/entry-armv.S
arch/arm/kernel/entry-header.S
arch/arm/kernel/fiq.c
arch/arm/kernel/setup.c
arch/arm/kernel/traps.c