• Leif Lindholm's avatar
    ARM: 7208/1: Add condition code checking to SWP emulation handler. · c245dcd3
    Leif Lindholm authored
    This patch fixes two separate issues with the SWP emulation handler:
    1: Certain processors implementing ARMv7-A can (legally) take an
       undef exception even when the condition code would have meant that
       the instruction should not have been executed.
    2: Opcodes with all flags set (condition code = 0xf) have been reused
       in recent, and not-so-recent, versions of the ARM architecture to
       implement unconditional extensions to the instruction set. The
       existing code would still have processed any undefs triggered by
       executing an opcode with such a value.
    
    This patch uses the new generic ARM instruction set condition code
    checks to implement proper handling of these situations.
    Signed-off-by: default avatarLeif Lindholm <leif.lindholm@arm.com>
    Reviewed-by: default avatarWill Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    c245dcd3
swp_emulate.c 7.14 KB