• Anders Roxell's avatar
    stackleak: Mark stackleak_track_stack() as notrace · e9c7d656
    Anders Roxell authored
    Function graph tracing recurses into itself when stackleak is enabled,
    causing the ftrace graph selftest to run for up to 90 seconds and
    trigger the softlockup watchdog.
    Breakpoint 2, ftrace_graph_caller () at ../arch/arm64/kernel/entry-ftrace.S:200
    200             mcount_get_lr_addr        x0    //     pointer to function's saved lr
    (gdb) bt
    \#0  ftrace_graph_caller () at ../arch/arm64/kernel/entry-ftrace.S:200
    \#1  0xffffff80081d5280 in ftrace_caller () at ../arch/arm64/kernel/entry-ftrace.S:153
    \#2  0xffffff8008555484 in stackleak_track_stack () at ../kernel/stackleak.c:106
    \#3  0xffffff8008421ff8 in ftrace_ops_test (ops=0xffffff8009eaa840 <graph_ops>, ip=18446743524091297036, regs=<optimized out>) at ../kernel/trace/ftrace.c:1507
    \#4  0xffffff8008428770 in __ftrace_ops_list_func (regs=<optimized out>, ignored=<optimized out>, parent_ip=<optimized out>, ip=<optimized out>) at ../kernel/trace/ftrace.c:6286
    \#5  ftrace_ops_no_ops (ip=18446743524091297036, parent_ip=18446743524091242824) at ../kernel/trace/ftrace.c:6321
    \#6  0xffffff80081d5280 in ftrace_caller () at ../arch/arm64/kernel/entry-ftrace.S:153
    \#7  0xffffff800832fd10 in irq_find_mapping (domain=0xffffffc03fc4bc80, hwirq=27) at ../kernel/irq/irqdomain.c:876
    \#8  0xffffff800832294c in __handle_domain_irq (domain=0xffffffc03fc4bc80, hwirq=27, lookup=true, regs=0xffffff800814b840) at ../kernel/irq/irqdesc.c:650
    \#9  0xffffff80081d52b4 in ftrace_graph_caller () at ../arch/arm64/kernel/entry-ftrace.S:205
    Rework so we mark stackleak_track_stack as notrace
    Co-developed-by: 's avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: 's avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: 's avatarAnders Roxell <anders.roxell@linaro.org>
    Acked-by: 's avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: 's avatarKees Cook <keescook@chromium.org>
stackleak.c 3.92 KB