diff options
| -rw-r--r-- | kernel/kprobes.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/kprobes.c b/kernel/kprobes.c index 63c342e5e6c3..90e98e233647 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c | |||
| @@ -546,8 +546,14 @@ static void do_free_cleaned_kprobes(void) | |||
| 546 | struct optimized_kprobe *op, *tmp; | 546 | struct optimized_kprobe *op, *tmp; |
| 547 | 547 | ||
| 548 | list_for_each_entry_safe(op, tmp, &freeing_list, list) { | 548 | list_for_each_entry_safe(op, tmp, &freeing_list, list) { |
| 549 | BUG_ON(!kprobe_unused(&op->kp)); | ||
| 550 | list_del_init(&op->list); | 549 | list_del_init(&op->list); |
| 550 | if (WARN_ON_ONCE(!kprobe_unused(&op->kp))) { | ||
| 551 | /* | ||
| 552 | * This must not happen, but if there is a kprobe | ||
| 553 | * still in use, keep it on kprobes hash list. | ||
| 554 | */ | ||
| 555 | continue; | ||
| 556 | } | ||
| 551 | free_aggr_kprobe(&op->kp); | 557 | free_aggr_kprobe(&op->kp); |
| 552 | } | 558 | } |
| 553 | } | 559 | } |
