diff options
Diffstat (limited to 'kernel/kprobes.c')
-rw-r--r-- | kernel/kprobes.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/kernel/kprobes.c b/kernel/kprobes.c index 90e98e233647..08e31d863191 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c | |||
@@ -229,7 +229,7 @@ static int collect_garbage_slots(struct kprobe_insn_cache *c) | |||
229 | struct kprobe_insn_page *kip, *next; | 229 | struct kprobe_insn_page *kip, *next; |
230 | 230 | ||
231 | /* Ensure no-one is interrupted on the garbages */ | 231 | /* Ensure no-one is interrupted on the garbages */ |
232 | synchronize_sched(); | 232 | synchronize_rcu(); |
233 | 233 | ||
234 | list_for_each_entry_safe(kip, next, &c->pages, list) { | 234 | list_for_each_entry_safe(kip, next, &c->pages, list) { |
235 | int i; | 235 | int i; |
@@ -1382,7 +1382,7 @@ out: | |||
1382 | if (ret) { | 1382 | if (ret) { |
1383 | ap->flags |= KPROBE_FLAG_DISABLED; | 1383 | ap->flags |= KPROBE_FLAG_DISABLED; |
1384 | list_del_rcu(&p->list); | 1384 | list_del_rcu(&p->list); |
1385 | synchronize_sched(); | 1385 | synchronize_rcu(); |
1386 | } | 1386 | } |
1387 | } | 1387 | } |
1388 | } | 1388 | } |
@@ -1597,7 +1597,7 @@ int register_kprobe(struct kprobe *p) | |||
1597 | ret = arm_kprobe(p); | 1597 | ret = arm_kprobe(p); |
1598 | if (ret) { | 1598 | if (ret) { |
1599 | hlist_del_rcu(&p->hlist); | 1599 | hlist_del_rcu(&p->hlist); |
1600 | synchronize_sched(); | 1600 | synchronize_rcu(); |
1601 | goto out; | 1601 | goto out; |
1602 | } | 1602 | } |
1603 | } | 1603 | } |
@@ -1776,7 +1776,7 @@ void unregister_kprobes(struct kprobe **kps, int num) | |||
1776 | kps[i]->addr = NULL; | 1776 | kps[i]->addr = NULL; |
1777 | mutex_unlock(&kprobe_mutex); | 1777 | mutex_unlock(&kprobe_mutex); |
1778 | 1778 | ||
1779 | synchronize_sched(); | 1779 | synchronize_rcu(); |
1780 | for (i = 0; i < num; i++) | 1780 | for (i = 0; i < num; i++) |
1781 | if (kps[i]->addr) | 1781 | if (kps[i]->addr) |
1782 | __unregister_kprobe_bottom(kps[i]); | 1782 | __unregister_kprobe_bottom(kps[i]); |
@@ -1966,7 +1966,7 @@ void unregister_kretprobes(struct kretprobe **rps, int num) | |||
1966 | rps[i]->kp.addr = NULL; | 1966 | rps[i]->kp.addr = NULL; |
1967 | mutex_unlock(&kprobe_mutex); | 1967 | mutex_unlock(&kprobe_mutex); |
1968 | 1968 | ||
1969 | synchronize_sched(); | 1969 | synchronize_rcu(); |
1970 | for (i = 0; i < num; i++) { | 1970 | for (i = 0; i < num; i++) { |
1971 | if (rps[i]->kp.addr) { | 1971 | if (rps[i]->kp.addr) { |
1972 | __unregister_kprobe_bottom(&rps[i]->kp); | 1972 | __unregister_kprobe_bottom(&rps[i]->kp); |