• Uwe Kleine-König's avatar
    ARM: make isa_mode macro more robust and fix for v7-M · 3f18b1bf
    Uwe Kleine-König authored
    The definition of isa_mode hardcodes the values to shift PSR_J_BIT and
    PSR_T_BIT to move them to bits 1 and 0 respectively. Instead use __ffs to
    calculate the shift from the #define already used for masking.
    
    This is relevant on v7-M as there PSR_T_BIT is 0x01000000 instead of
    0x00000020 for V7-[AR] and earlier. Because of that isa_mode produced
    values >= 0x80000 which are unsuitable to index into isa_modes[4] there
    and so made __show_regs read from undefined memory which resulted in
    hangs and crashes.
    
    Moreover isa_mode is wrong for v7-M even after this robustness fix as
    there is no J-bit in the PSR register. So hardcode isa_mode to "Thumb"
    for v7-M.
    Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
    3f18b1bf
ptrace.h 3.84 KB