[PATCHv3 6/6] arm64: irq: allow FIQs to be handled

Will Deacon will at kernel.org
Wed Mar 24 17:03:23 GMT 2021


On Mon, Mar 15, 2021 at 11:56:29AM +0000, Mark Rutland wrote:
> 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 at arm.com>
> Tested-by: Hector Martin <marcan at marcan.st>
> Cc: Catalin Marinas <catalin.marinas at arm.com>
> Cc: James Morse <james.morse at arm.com>
> Cc: Marc Zyngier <maz at kernel.org>
> Cc: Thomas Gleixner <tglx at linutronix.de>
> Cc: Will Deacon <will at kernel.org>
> ---
>  arch/arm64/include/asm/irq.h |  1 +
>  arch/arm64/kernel/entry.S    | 30 +++++++++++++++++++++---------
>  arch/arm64/kernel/irq.c      | 16 ++++++++++++++++
>  3 files changed, 38 insertions(+), 9 deletions(-)

Acked-by: Will Deacon <will at kernel.org>

Will



More information about the linux-arm-kernel mailing list