Skip to content
  • Guo Ren's avatar
    riscv: Add support for function error injection · ee55ff80
    Guo Ren authored
    Inspired by the commit 42d038c4 ("arm64: Add support for function
    error injection"), this patch supports function error injection for
    riscv.
    
    This patch mainly support two functions: one is regs_set_return_value()
    which is used to overwrite the return value; the another function is
    override_function_with_return() which is to override the probed
    function returning and jump to its caller.
    
    Test log:
     cd /sys/kernel/debug/fail_function
     echo sys_clone > inject
     echo 100 > probability
     echo 1 > interval
     ls /
    [  313.176875] FAULT_INJECTION: forcing a failure.
    [  313.176875] name fail_function, interval 1, probability 100, space 0, times 1
    [  313.184357] CPU: 0 PID: 87 Comm: sh Not tainted 5.8.0-rc5-00007-g6a758cc #117
    [  313.187616] Call Trace:
    [  313.189100] [<ffffffe0002036b6>] walk_stackframe+0x0/0xc2
    [  313.191626] [<ffffffe00020395c>] show_stack+0x40/0x4c
    [  313.193927] [<ffffffe000556c60>] dump_stack+0x7c/0x96
    [  313.194795] [<ffffffe0005522e8>] should...
    ee55ff80