• Mark Rutland's avatar
    arm64: entry: move el1 irq/nmi logic to C · 105fc335
    Mark Rutland authored
    In preparation for reworking the EL1 irq/nmi entry code, move the
    existing logic to C. We no longer need the asm_nmi_enter() and
    asm_nmi_exit() wrappers, so these are removed. The new C functions are
    marked noinstr, which prevents compiler instrumentation and runtime
    probing.
    
    In subsequent patches we'll want the new C helpers to be called in all
    cases, so we don't bother wrapping the calls with ifdeferry. Even when
    the new C functions are stubs the trivial calls are unlikely to have a
    measurable impact on the IRQ or NMI paths anyway.
    
    Prototypes are added to <asm/exception.h> as otherwise (in some
    configurations) GCC will complain about the lack of a forward
    declaration. We already do this for existing function, e.g.
    enter_from_user_mode().
    
    The new helpers are marked as noinstr (which prevents all
    instrumentation, tracing, and kprobes). Otherwise, there should be no
    functional change as a result of this patch.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: James Morse <james.morse@arm.com>
    Cc: Will Deacon <will@kernel.org>
    Link: https://lore.kernel.org/r/20201130115950.22492-7-mark.rutland@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
    105fc335
irq.c 1.72 KB