• Jon Medhurst's avatar
    ARM: kprobes: Add alu_write_pc() · df4fa1f8
    Jon Medhurst authored
    This writes a new value to PC which was obtained as the result of an ARM
    ALU instruction. For ARMv7 and later this performs interworking.
    
    On ARM kernels we shouldn't encounter any ALU instructions trying to
    switch to Thumb mode so support for this isn't strictly necessary.
    However, the approach taken in all other instruction decoding is for us
    to avoid unpredictable modification of the PC for security reasons. This
    is usually achieved by rejecting insertion of probes on problematic
    instruction, but for ALU instructions we can't do this as it depends on
    the contents of the CPU registers at the time the probe is hit. So, as
    we require some form of run-time checking to trap undesirable PC
    modification, we may as well simulate the instructions correctly, i.e.
    in the way they would behave in the absence of a probe.
    Signed-off-by: default avatarJon Medhurst <tixy@yxit.co.uk>
    Acked-by: default avatarNicolas Pitre <nicolas.pitre@linaro.org>
    df4fa1f8
kprobes-common.c 14.1 KB