• Mark Rutland's avatar
    arm64: entry: convert el1_sync to C · ed3768db
    Mark Rutland authored
    This patch converts the EL1 sync entry assembly logic to C code.
    
    Doing this will allow us to make changes in a slightly more
    readable way. A case in point is supporting kernel-first RAS.
    do_sea() should be called on the CPU that took the fault.
    
    Largely the assembly code is converted to C in a relatively
    straightforward manner.
    
    Since all sync sites share a common asm entry point, the ASM_BUG()
    instances are no longer required for effective backtraces back to
    assembly, and we don't need similar BUG() entries.
    
    The ESR_ELx.EC codes for all (supported) debug exceptions are now
    checked in the el1_sync_handler's switch statement, which renders the
    check in el1_dbg redundant. This both simplifies the el1_dbg handler,
    and makes the EL1 exception handling more robust to
    currently-unallocated ESR_ELx.EC encodings.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    [split out of a bigger series, added nokprobes, moved prototypes]
    Signed-off-by: default avatarJames Morse <james.morse@arm.com>
    Reviewed-by: default avatarMark Rutland <mark.rutland@arm.com>
    Cc: Julien Thierry <julien.thierry.kdev@gmail.com>
    Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    ed3768db
Makefile 2.63 KB