Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'probes-fixes-v7.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace

Pull probes fixes from Masami Hiramatsu:

- Avoid crash when rmmod/insmod after ftrace killed

This fixes a kernel crash caused by kprobes on the symbol in a module
which is unloaded after ftrace_kill() is called.

- Remove unneeded warnings from __arm_kprobe_ftrace()

Remove unneeded WARN messages which can be triggered if the kprobe is
using ftrace and it fails to enable the ftrace. Since kprobes
correctly handle such failure, we don't need to warn it.

* tag 'probes-fixes-v7.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
kprobes: Remove unneeded warnings from __arm_kprobe_ftrace()
kprobes: avoid crash when rmmod/insmod after ftrace killed

+6 -2
+6 -2
kernel/kprobes.c
··· 1144 1144 lockdep_assert_held(&kprobe_mutex); 1145 1145 1146 1146 ret = ftrace_set_filter_ip(ops, (unsigned long)p->addr, 0, 0); 1147 - if (WARN_ONCE(ret < 0, "Failed to arm kprobe-ftrace at %pS (error %d)\n", p->addr, ret)) 1147 + if (ret < 0) 1148 1148 return ret; 1149 1149 1150 1150 if (*cnt == 0) { 1151 1151 ret = register_ftrace_function(ops); 1152 - if (WARN(ret < 0, "Failed to register kprobe-ftrace (error %d)\n", ret)) { 1152 + if (ret < 0) { 1153 1153 /* 1154 1154 * At this point, sinec ops is not registered, we should be sefe from 1155 1155 * registering empty filter. ··· 1178 1178 int ret; 1179 1179 1180 1180 lockdep_assert_held(&kprobe_mutex); 1181 + if (unlikely(kprobe_ftrace_disabled)) { 1182 + /* Now ftrace is disabled forever, disarm is already done. */ 1183 + return 0; 1184 + } 1181 1185 1182 1186 if (*cnt == 1) { 1183 1187 ret = unregister_ftrace_function(ops);