diff options
Diffstat (limited to 'uprobe')
-rw-r--r-- | uprobe/swap_uprobes.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/uprobe/swap_uprobes.c b/uprobe/swap_uprobes.c index f9ad605c..da8274c5 100644 --- a/uprobe/swap_uprobes.c +++ b/uprobe/swap_uprobes.c @@ -528,8 +528,11 @@ int swap_register_uprobe(struct uprobe *up) &uprobe_table[hash_ptr(p->addr, UPROBE_HASH_BITS)]); ret = arm_uprobe(up); - if (ret) + if (ret) { + hlist_del_rcu(&p->hlist); + synchronize_rcu(); remove_uprobe(up); + } out: DBPRINTF("out ret = 0x%x\n", ret); |