Messages in this thread |  | | Date | Mon, 10 Sep 2018 14:23:56 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH -tip 5/5] kprobes: Don't call BUG_ON if there is a kprobe in use on free list |
| |
* Masami Hiramatsu <mhiramat@kernel.org> wrote:
> Instead of calling BUG_ON, if we find a kprobe in use on free kprobe > list, just remove it from the list and keep it on kprobe hash list > as same as other in-use kprobes. > > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> > --- > kernel/kprobes.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/kernel/kprobes.c b/kernel/kprobes.c > index 63c342e5e6c3..e3420364b415 100644 > --- a/kernel/kprobes.c > +++ b/kernel/kprobes.c > @@ -546,8 +546,14 @@ static void do_free_cleaned_kprobes(void) > struct optimized_kprobe *op, *tmp; > > list_for_each_entry_safe(op, tmp, &freeing_list, list) { > - BUG_ON(!kprobe_unused(&op->kp)); > list_del_init(&op->list); > + if (!kprobe_unused(&op->kp)) { > + /* > + * This must not happen, but if there is a kprobe > + * still in use, keep it on kprobes hash list. > + */ > + continue;
If this is an 'impossible' code path then I think it would make sense to add a WARN_ON_ONCE() here.
Thanks,
Ingo
|  |