Now remove_kprobe() called from swap_unregister_valid_kprobe().
Its call was in swap_unregister_kretprobe_bottom() and that has
led to memory leaks when using simple kprobe, not kretprobe.
Change-Id: Iade99439eadf389539efc497c0fc71b52be9eee1
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
/* Only probe on the hash list */
swap_arch_disarm_kprobe(p);
hlist_del_rcu(&old_p->hlist);
+ remove_kprobe(old_p);
if (p != old_p) {
list_del_rcu(&old_p->list);
unsigned long flags;
struct kretprobe_instance *ri;
- if (list_empty(&rp->kp.list))
- remove_kprobe(&rp->kp);
-
spin_lock_irqsave(&kretprobe_lock, flags);
while ((ri = get_used_rp_inst(rp)) != NULL) {