Revision 297f9233b53a08fd457815e19f1d6f2c3389857b authored by Jessica Yu on 09 January 2018, 23:51:24 UTC, committed by Ingo Molnar on 16 February 2018, 08:12:58 UTC
Improve error handling when disarming ftrace-based kprobes. Like with
arm_kprobe_ftrace(), propagate any errors from disarm_kprobe_ftrace() so
that we do not disable/unregister kprobes that are still armed. In other
words, unregister_kprobe() and disable_kprobe() should not report success
if the kprobe could not be disarmed.

disarm_all_kprobes() keeps its current behavior and attempts to
disarm all kprobes. It returns the last encountered error and gives a
warning if not all probes could be disarmed.

This patch is based on Petr Mladek's original patchset (patches 2 and 3)
back in 2015, which improved kprobes error handling, found here:

   https://lkml.org/lkml/2015/2/26/452

However, further work on this had been paused since then and the patches
were not upstreamed.

Based-on-patches-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>
Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
Cc: David S . Miller <davem@davemloft.net>
Cc: Jiri Kosina <jikos@kernel.org>
Cc: Joe Lawrence <joe.lawrence@redhat.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Miroslav Benes <mbenes@suse.cz>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: live-patching@vger.kernel.org
Link: http://lkml.kernel.org/r/20180109235124.30886-3-jeyu@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
1 parent 12310e3
History
File Mode Size
Kconfig -rw-r--r-- 3.9 KB
Makefile -rw-r--r-- 735 bytes
alarmtimer.c -rw-r--r-- 22.0 KB
clockevents.c -rw-r--r-- 19.3 KB
clocksource.c -rw-r--r-- 28.9 KB
hrtimer.c -rw-r--r-- 52.6 KB
itimer.c -rw-r--r-- 7.9 KB
jiffies.c -rw-r--r-- 3.8 KB
ntp.c -rw-r--r-- 25.7 KB
ntp_internal.h -rw-r--r-- 528 bytes
posix-clock.c -rw-r--r-- 6.4 KB
posix-cpu-timers.c -rw-r--r-- 37.5 KB
posix-stubs.c -rw-r--r-- 5.1 KB
posix-timers.c -rw-r--r-- 35.5 KB
posix-timers.h -rw-r--r-- 1.6 KB
sched_clock.c -rw-r--r-- 8.3 KB
test_udelay.c -rw-r--r-- 4.1 KB
tick-broadcast-hrtimer.c -rw-r--r-- 3.0 KB
tick-broadcast.c -rw-r--r-- 26.7 KB
tick-common.c -rw-r--r-- 13.5 KB
tick-internal.h -rw-r--r-- 6.9 KB
tick-oneshot.c -rw-r--r-- 3.3 KB
tick-sched.c -rw-r--r-- 32.0 KB
tick-sched.h -rw-r--r-- 2.6 KB
time.c -rw-r--r-- 22.2 KB
timeconst.bc -rw-r--r-- 3.0 KB
timeconv.c -rw-r--r-- 3.5 KB
timecounter.c -rw-r--r-- 3.0 KB
timekeeping.c -rw-r--r-- 66.9 KB
timekeeping.h -rw-r--r-- 661 bytes
timekeeping_debug.c -rw-r--r-- 2.1 KB
timekeeping_internal.h -rw-r--r-- 827 bytes
timer.c -rw-r--r-- 56.6 KB
timer_list.c -rw-r--r-- 9.4 KB

back to top