• A
    ARM: 9079/1: ftrace: Add MODULE_PLTS support · 7da1a660
    Alex Sverdlin 提交于
    stable inclusion
    from stable-5.10.69
    commit f91d25a7c89e2f246a541603430ce2420bab58c5
    bugzilla: 182675 https://gitee.com/openeuler/kernel/issues/I4I3ED
    
    Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=f91d25a7c89e2f246a541603430ce2420bab58c5
    
    -------------------------------------------------
    
    commit 79f32b22 upstream
    
    Teach ftrace_make_call() and ftrace_make_nop() about PLTs.
    Teach PLT code about FTRACE and all its callbacks.
    Otherwise the following might happen:
    
    ------------[ cut here ]------------
    WARNING: CPU: 14 PID: 2265 at .../arch/arm/kernel/insn.c:14 __arm_gen_branch+0x83/0x8c()
    ...
    Hardware name: LSI Axxia AXM55XX
    [<c0314a49>] (unwind_backtrace) from [<c03115e9>] (show_stack+0x11/0x14)
    [<c03115e9>] (show_stack) from [<c0519f51>] (dump_stack+0x81/0xa8)
    [<c0519f51>] (dump_stack) from [<c032185d>] (warn_slowpath_common+0x69/0x90)
    [<c032185d>] (warn_slowpath_common) from [<c03218f3>] (warn_slowpath_null+0x17/0x1c)
    [<c03218f3>] (warn_slowpath_null) from [<c03143cf>] (__arm_gen_branch+0x83/0x8c)
    [<c03143cf>] (__arm_gen_branch) from [<c0314337>] (ftrace_make_nop+0xf/0x24)
    [<c0314337>] (ftrace_make_nop) from [<c038ebcb>] (ftrace_process_locs+0x27b/0x3e8)
    [<c038ebcb>] (ftrace_process_locs) from [<c0378d79>] (load_module+0x11e9/0x1a44)
    [<c0378d79>] (load_module) from [<c037974d>] (SyS_finit_module+0x59/0x84)
    [<c037974d>] (SyS_finit_module) from [<c030e981>] (ret_fast_syscall+0x1/0x18)
    ---[ end trace e1b64ced7a89adcc ]---
    ------------[ cut here ]------------
    WARNING: CPU: 14 PID: 2265 at .../kernel/trace/ftrace.c:1979 ftrace_bug+0x1b1/0x234()
    ...
    Hardware name: LSI Axxia AXM55XX
    [<c0314a49>] (unwind_backtrace) from [<c03115e9>] (show_stack+0x11/0x14)
    [<c03115e9>] (show_stack) from [<c0519f51>] (dump_stack+0x81/0xa8)
    [<c0519f51>] (dump_stack) from [<c032185d>] (warn_slowpath_common+0x69/0x90)
    [<c032185d>] (warn_slowpath_common) from [<c03218f3>] (warn_slowpath_null+0x17/0x1c)
    [<c03218f3>] (warn_slowpath_null) from [<c038e87d>] (ftrace_bug+0x1b1/0x234)
    [<c038e87d>] (ftrace_bug) from [<c038ebd5>] (ftrace_process_locs+0x285/0x3e8)
    [<c038ebd5>] (ftrace_process_locs) from [<c0378d79>] (load_module+0x11e9/0x1a44)
    [<c0378d79>] (load_module) from [<c037974d>] (SyS_finit_module+0x59/0x84)
    [<c037974d>] (SyS_finit_module) from [<c030e981>] (ret_fast_syscall+0x1/0x18)
    ---[ end trace e1b64ced7a89adcd ]---
    ftrace failed to modify [<e9ef7006>] 0xe9ef7006
    actual: 02:f0:3b:fa
    ftrace record flags: 0
    (0) expected tramp: c0314265
    Signed-off-by: NAlexander Sverdlin <alexander.sverdlin@nokia.com>
    Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    
    Conflicts:
    	arch/arm/include/asm/module.h
    	arch/arm/kernel/module-plts.c
    	arch/arm/kernel/ftrace.c
    
    [ hf: To support both the ftrace and livepatch scenarios, roll back some
      modifications of the commit ee3cc1bededf ("arm/module: Use plt section
      indices for relocations"). ]
    Signed-off-by: NLi Huafei <lihuafei1@huawei.com>
    Reviewed-by: NYang Jihong <yangjihong1@huawei.com>
    Signed-off-by: NChen Jun <chenjun102@huawei.com>
    Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
    7da1a660
module.h 1.2 KB