]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
tracing: fprobe: Fix infinite recursion using preempt_*_notrace()
authorMasami Hiramatsu (Google) <mhiramat@kernel.org>
Mon, 28 Jul 2025 23:47:03 +0000 (08:47 +0900)
committerMasami Hiramatsu (Google) <mhiramat@kernel.org>
Tue, 29 Jul 2025 07:19:05 +0000 (16:19 +0900)
commita3e892ab0fc287389176eabdcd74234508f6e52d
treef6a11fcfea658efb3ce372ad548761d6f4452e78
parent038d61fd642278bab63ee8ef722c50d10ab01e8f
tracing: fprobe: Fix infinite recursion using preempt_*_notrace()

Since preempt_count_add/del() are tracable functions, it is not allowed
to use preempt_disable/enable() in ftrace handlers. Without this fix,
probing on `preempt_count_add%return` will cause an infinite recursion
of fprobes.

To fix this problem, use preempt_disable/enable_notrace() in
fprobe_return().

Link: https://lore.kernel.org/all/175374642359.1471729.1054175011228386560.stgit@mhiramat.tok.corp.google.com/
Fixes: 4346ba160409 ("fprobe: Rewrite fprobe on function-graph tracer")
Cc: stable@vger.kernel.org
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
kernel/trace/fprobe.c