• J
    ARM: kprobes: Don't trigger probes on conditional instructions when condition is false · 3cca6c24
    Jon Medhurst 提交于
    This patch changes the behavior of kprobes on ARM so that:
    
        Kprobes on conditional instructions don't trigger when the
        condition is false. For conditional branches, this means that
        they don't trigger in the branch not taken case.
    
    Rationale:
    
    When probes are placed onto conditionally executed instructions in a
    Thumb IT block, they may not fire if the condition is not met. This
    is because we use invalid instructions for breakpoints and "it is
    IMPLEMENTATION DEFINED whether the instruction executes as a NOP or
    causes an Undefined Instruction exception". Therefore, for consistency,
    we will ignore all probes on any conditional instructions when the
    condition is false. Alternative solutions seem to be too complex to
    implement or inconsistent.
    
    This issue was discussed on linux.arm.kernel in the thread titled
    "[RFC] kprobes with thumb2 conditional code" See
    http://comments.gmane.org/gmane.linux.linaro.devel/2985Signed-off-by: NJon Medhurst <tixy@yxit.co.uk>
    Acked-by: NNicolas Pitre <nicolas.pitre@linaro.org>
    3cca6c24
kprobes.c 17.5 KB