diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/kprobes.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/kernel/kprobes.c b/kernel/kprobes.c index fef1af8a73ce..1fb9f753ef60 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c | |||
@@ -48,7 +48,7 @@ | |||
48 | static struct hlist_head kprobe_table[KPROBE_TABLE_SIZE]; | 48 | static struct hlist_head kprobe_table[KPROBE_TABLE_SIZE]; |
49 | static struct hlist_head kretprobe_inst_table[KPROBE_TABLE_SIZE]; | 49 | static struct hlist_head kretprobe_inst_table[KPROBE_TABLE_SIZE]; |
50 | 50 | ||
51 | DECLARE_MUTEX(kprobe_mutex); /* Protects kprobe_table */ | 51 | DEFINE_MUTEX(kprobe_mutex); /* Protects kprobe_table */ |
52 | DEFINE_SPINLOCK(kretprobe_lock); /* Protects kretprobe_inst_table */ | 52 | DEFINE_SPINLOCK(kretprobe_lock); /* Protects kretprobe_inst_table */ |
53 | static DEFINE_PER_CPU(struct kprobe *, kprobe_instance) = NULL; | 53 | static DEFINE_PER_CPU(struct kprobe *, kprobe_instance) = NULL; |
54 | 54 | ||
@@ -460,7 +460,7 @@ static int __kprobes __register_kprobe(struct kprobe *p, | |||
460 | } | 460 | } |
461 | 461 | ||
462 | p->nmissed = 0; | 462 | p->nmissed = 0; |
463 | down(&kprobe_mutex); | 463 | mutex_lock(&kprobe_mutex); |
464 | old_p = get_kprobe(p->addr); | 464 | old_p = get_kprobe(p->addr); |
465 | if (old_p) { | 465 | if (old_p) { |
466 | ret = register_aggr_kprobe(old_p, p); | 466 | ret = register_aggr_kprobe(old_p, p); |
@@ -477,7 +477,7 @@ static int __kprobes __register_kprobe(struct kprobe *p, | |||
477 | arch_arm_kprobe(p); | 477 | arch_arm_kprobe(p); |
478 | 478 | ||
479 | out: | 479 | out: |
480 | up(&kprobe_mutex); | 480 | mutex_unlock(&kprobe_mutex); |
481 | 481 | ||
482 | if (ret && probed_mod) | 482 | if (ret && probed_mod) |
483 | module_put(probed_mod); | 483 | module_put(probed_mod); |
@@ -496,10 +496,10 @@ void __kprobes unregister_kprobe(struct kprobe *p) | |||
496 | struct kprobe *old_p, *list_p; | 496 | struct kprobe *old_p, *list_p; |
497 | int cleanup_p; | 497 | int cleanup_p; |
498 | 498 | ||
499 | down(&kprobe_mutex); | 499 | mutex_lock(&kprobe_mutex); |
500 | old_p = get_kprobe(p->addr); | 500 | old_p = get_kprobe(p->addr); |
501 | if (unlikely(!old_p)) { | 501 | if (unlikely(!old_p)) { |
502 | up(&kprobe_mutex); | 502 | mutex_unlock(&kprobe_mutex); |
503 | return; | 503 | return; |
504 | } | 504 | } |
505 | if (p != old_p) { | 505 | if (p != old_p) { |
@@ -507,7 +507,7 @@ void __kprobes unregister_kprobe(struct kprobe *p) | |||
507 | if (list_p == p) | 507 | if (list_p == p) |
508 | /* kprobe p is a valid probe */ | 508 | /* kprobe p is a valid probe */ |
509 | goto valid_p; | 509 | goto valid_p; |
510 | up(&kprobe_mutex); | 510 | mutex_unlock(&kprobe_mutex); |
511 | return; | 511 | return; |
512 | } | 512 | } |
513 | valid_p: | 513 | valid_p: |
@@ -523,7 +523,7 @@ valid_p: | |||
523 | cleanup_p = 0; | 523 | cleanup_p = 0; |
524 | } | 524 | } |
525 | 525 | ||
526 | up(&kprobe_mutex); | 526 | mutex_unlock(&kprobe_mutex); |
527 | 527 | ||
528 | synchronize_sched(); | 528 | synchronize_sched(); |
529 | if (p->mod_refcounted && | 529 | if (p->mod_refcounted && |