From: Masami Hiramatsu <mhira...@kernel.org> Lock kprobe_mutex while showing kprobe_blacklist to prevent updating the kprobe_blacklist.
Signed-off-by: Masami Hiramatsu <mhira...@kernel.org> Signed-off-by: Thomas Gleixner <t...@linutronix.de> Link: https://lkml.kernel.org/r/158523417665.24735.10253198878535635600.stgit@devnote2 --- kernel/kprobes.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) --- a/kernel/kprobes.c +++ b/kernel/kprobes.c @@ -2426,6 +2426,7 @@ static const struct file_operations debu /* kprobes/blacklist -- shows which functions can not be probed */ static void *kprobe_blacklist_seq_start(struct seq_file *m, loff_t *pos) { + mutex_lock(&kprobe_mutex); return seq_list_start(&kprobe_blacklist, *pos); } @@ -2452,10 +2453,15 @@ static int kprobe_blacklist_seq_show(str return 0; } +static void kprobe_blacklist_seq_stop(struct seq_file *f, void *v) +{ + mutex_unlock(&kprobe_mutex); +} + static const struct seq_operations kprobe_blacklist_seq_ops = { .start = kprobe_blacklist_seq_start, .next = kprobe_blacklist_seq_next, - .stop = kprobe_seq_stop, /* Reuse void function */ + .stop = kprobe_blacklist_seq_stop, .show = kprobe_blacklist_seq_show, };