Skip to content
  • Mark Rutland's avatar
    arm64: consistently use bl for C exception entry · 2d0e751a
    Mark Rutland authored
    
    
    In most cases, our exception entry assembly branches to C handlers with
    a BL instruction, but in cases where we do not expect to return, we use
    B instead.
    
    While this is correct today, it means that backtraces for fatal
    exceptions miss the entry assembly (as the LR is stale at the point we
    call C code), while non-fatal exceptions have the entry assembly in the
    LR. In subsequent patches, we will need the LR to be set in these cases
    in order to backtrace reliably.
    
    This patch updates these sites to use a BL, ensuring consistency, and
    preparing for backtrace rework. An ASM_BUG() is added after each of
    these new BLs, which both catches unexpected returns, and ensures that
    the LR value doesn't point to another function label.
    
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: James Morse <james.morse@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    2d0e751a