|
@@ -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 (WARN_ON_ONCE(!kprobe_unused(&op->kp))) {
|
|
|
+ /*
|
|
|
+ * This must not happen, but if there is a kprobe
|
|
|
+ * still in use, keep it on kprobes hash list.
|
|
|
+ */
|
|
|
+ continue;
|
|
|
+ }
|
|
|
free_aggr_kprobe(&op->kp);
|
|
|
}
|
|
|
}
|