linux/arch/arm64
Mark Rutland 3889ba7010 arm64: irq: allow FIQs to be handled
On contemporary platforms we don't use FIQ, and treat any stray FIQ as a
fatal event. However, some platforms have an interrupt controller wired
to FIQ, and need to handle FIQ as part of regular operation.

So that we can support both cases dynamically, this patch updates the
FIQ exception handling code to operate the same way as the IRQ handling
code, with its own handle_arch_fiq handler. Where a root FIQ handler is
not registered, an unexpected FIQ exception will trigger the default FIQ
handler, which will panic() as today. Where a root FIQ handler is
registered, handling of the FIQ is deferred to that handler.

As el0_fiq_invalid_compat is supplanted by el0_fiq, the former is
removed. For !CONFIG_COMPAT builds we never expect to take an exception
from AArch32 EL0, so we keep the common el0_fiq_invalid handler.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Tested-by: Hector Martin <marcan@marcan.st>
Cc: James Morse <james.morse@arm.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will@kernel.org>
Acked-by: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20210315115629.57191-7-mark.rutland@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2021-03-24 20:19:30 +00:00
..
boot regulator: Updates for v5.12 2021-02-22 09:16:38 -08:00
configs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid 2021-02-23 14:52:22 -08:00
crypto crypto: arm64/crc-t10dif - move NEON yield to C code 2021-02-10 17:55:58 +11:00
include arm64: irq: allow FIQs to be handled 2021-03-24 20:19:30 +00:00
kernel arm64: irq: allow FIQs to be handled 2021-03-24 20:19:30 +00:00
kvm More fixes for ARM and x86. 2021-03-14 12:35:02 -07:00
lib arm64: kasan: simplify and inline MTE functions 2021-02-26 09:41:03 -08:00
mm arm64: mm: use a 48-bit ID map when possible on 52-bit VA builds 2021-03-11 13:04:28 +00:00
net bpf: Rename BPF_XADD and prepare to encode other atomics in .imm 2021-01-14 18:34:29 -08:00
xen
Kbuild
Kconfig arm64: don't use GENERIC_IRQ_MULTI_HANDLER 2021-03-24 20:19:30 +00:00
Kconfig.debug arm64: remove TEXT_OFFSET randomization 2020-06-15 13:10:59 +01:00
Kconfig.platforms Updates for the irq subsystem: 2021-02-21 11:53:06 -08:00
Makefile arm64: do not descend to vdso directories twice 2021-01-20 12:18:46 +00:00