summaryrefslogtreecommitdiff
path: root/uprobe
diff options
context:
space:
mode:
Diffstat (limited to 'uprobe')
-rw-r--r--uprobe/swap_uprobes.c5
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);