diff options
| author | Masami Hiramatsu <mhiramat@redhat.com> | 2009-04-06 22:01:01 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-07 11:31:08 -0400 |
| commit | e579abeb58eb4b8d7321c6eb44dd9e2d0cbaebaa (patch) | |
| tree | 56ebd4b392408ddba88a5da54004fd0a1bfbccf9 /kernel | |
| parent | cc00e9cfe0e5c4c31057c722e49fdf2c76dd5953 (diff) | |
kprobes: rename kprobe_enabled to kprobes_all_disarmed
Rename kprobe_enabled to kprobes_all_disarmed and invert logic due to
avoiding naming confusion from per-probe disabling.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
Acked-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/kprobes.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/kernel/kprobes.c b/kernel/kprobes.c index ca4c22d78cfd..dae198b68e97 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c | |||
| @@ -68,7 +68,7 @@ static struct hlist_head kprobe_table[KPROBE_TABLE_SIZE]; | |||
| 68 | static struct hlist_head kretprobe_inst_table[KPROBE_TABLE_SIZE]; | 68 | static struct hlist_head kretprobe_inst_table[KPROBE_TABLE_SIZE]; |
| 69 | 69 | ||
| 70 | /* NOTE: change this value only with kprobe_mutex held */ | 70 | /* NOTE: change this value only with kprobe_mutex held */ |
| 71 | static bool kprobe_enabled; | 71 | static bool kprobes_all_disarmed; |
| 72 | 72 | ||
| 73 | static DEFINE_MUTEX(kprobe_mutex); /* Protects kprobe_table */ | 73 | static DEFINE_MUTEX(kprobe_mutex); /* Protects kprobe_table */ |
| 74 | static DEFINE_PER_CPU(struct kprobe *, kprobe_instance) = NULL; | 74 | static DEFINE_PER_CPU(struct kprobe *, kprobe_instance) = NULL; |
| @@ -598,7 +598,7 @@ static int __kprobes register_aggr_kprobe(struct kprobe *old_p, | |||
| 598 | * If the old_p has gone, its breakpoint has been disarmed. | 598 | * If the old_p has gone, its breakpoint has been disarmed. |
| 599 | * We have to arm it again after preparing real kprobes. | 599 | * We have to arm it again after preparing real kprobes. |
| 600 | */ | 600 | */ |
| 601 | if (kprobe_enabled) | 601 | if (!kprobes_all_disarmed) |
| 602 | arch_arm_kprobe(ap); | 602 | arch_arm_kprobe(ap); |
| 603 | } | 603 | } |
| 604 | 604 | ||
| @@ -709,7 +709,7 @@ int __kprobes register_kprobe(struct kprobe *p) | |||
| 709 | hlist_add_head_rcu(&p->hlist, | 709 | hlist_add_head_rcu(&p->hlist, |
| 710 | &kprobe_table[hash_ptr(p->addr, KPROBE_HASH_BITS)]); | 710 | &kprobe_table[hash_ptr(p->addr, KPROBE_HASH_BITS)]); |
| 711 | 711 | ||
| 712 | if (kprobe_enabled) | 712 | if (!kprobes_all_disarmed) |
| 713 | arch_arm_kprobe(p); | 713 | arch_arm_kprobe(p); |
| 714 | 714 | ||
| 715 | out_unlock_text: | 715 | out_unlock_text: |
| @@ -751,7 +751,7 @@ valid_p: | |||
| 751 | * enabled and not gone - otherwise, the breakpoint would | 751 | * enabled and not gone - otherwise, the breakpoint would |
| 752 | * already have been removed. We save on flushing icache. | 752 | * already have been removed. We save on flushing icache. |
| 753 | */ | 753 | */ |
| 754 | if (kprobe_enabled && !kprobe_gone(old_p)) { | 754 | if (!kprobes_all_disarmed && !kprobe_gone(old_p)) { |
| 755 | mutex_lock(&text_mutex); | 755 | mutex_lock(&text_mutex); |
| 756 | arch_disarm_kprobe(p); | 756 | arch_disarm_kprobe(p); |
| 757 | mutex_unlock(&text_mutex); | 757 | mutex_unlock(&text_mutex); |
| @@ -1190,8 +1190,8 @@ static int __init init_kprobes(void) | |||
| 1190 | } | 1190 | } |
| 1191 | } | 1191 | } |
| 1192 | 1192 | ||
| 1193 | /* By default, kprobes are enabled */ | 1193 | /* By default, kprobes are armed */ |
| 1194 | kprobe_enabled = true; | 1194 | kprobes_all_disarmed = false; |
| 1195 | 1195 | ||
| 1196 | err = arch_init_kprobes(); | 1196 | err = arch_init_kprobes(); |
| 1197 | if (!err) | 1197 | if (!err) |
| @@ -1289,7 +1289,7 @@ static struct file_operations debugfs_kprobes_operations = { | |||
| 1289 | .release = seq_release, | 1289 | .release = seq_release, |
| 1290 | }; | 1290 | }; |
| 1291 | 1291 | ||
| 1292 | static void __kprobes enable_all_kprobes(void) | 1292 | static void __kprobes arm_all_kprobes(void) |
| 1293 | { | 1293 | { |
| 1294 | struct hlist_head *head; | 1294 | struct hlist_head *head; |
| 1295 | struct hlist_node *node; | 1295 | struct hlist_node *node; |
| @@ -1298,8 +1298,8 @@ static void __kprobes enable_all_kprobes(void) | |||
| 1298 | 1298 | ||
| 1299 | mutex_lock(&kprobe_mutex); | 1299 | mutex_lock(&kprobe_mutex); |
| 1300 | 1300 | ||
| 1301 | /* If kprobes are already enabled, just return */ | 1301 | /* If kprobes are armed, just return */ |
| 1302 | if (kprobe_enabled) | 1302 | if (!kprobes_all_disarmed) |
| 1303 | goto already_enabled; | 1303 | goto already_enabled; |
| 1304 | 1304 | ||
| 1305 | mutex_lock(&text_mutex); | 1305 | mutex_lock(&text_mutex); |
| @@ -1311,7 +1311,7 @@ static void __kprobes enable_all_kprobes(void) | |||
| 1311 | } | 1311 | } |
| 1312 | mutex_unlock(&text_mutex); | 1312 | mutex_unlock(&text_mutex); |
| 1313 | 1313 | ||
| 1314 | kprobe_enabled = true; | 1314 | kprobes_all_disarmed = false; |
| 1315 | printk(KERN_INFO "Kprobes globally enabled\n"); | 1315 | printk(KERN_INFO "Kprobes globally enabled\n"); |
| 1316 | 1316 | ||
| 1317 | already_enabled: | 1317 | already_enabled: |
| @@ -1319,7 +1319,7 @@ already_enabled: | |||
| 1319 | return; | 1319 | return; |
| 1320 | } | 1320 | } |
| 1321 | 1321 | ||
| 1322 | static void __kprobes disable_all_kprobes(void) | 1322 | static void __kprobes disarm_all_kprobes(void) |
| 1323 | { | 1323 | { |
| 1324 | struct hlist_head *head; | 1324 | struct hlist_head *head; |
| 1325 | struct hlist_node *node; | 1325 | struct hlist_node *node; |
| @@ -1328,11 +1328,11 @@ static void __kprobes disable_all_kprobes(void) | |||
| 1328 | 1328 | ||
| 1329 | mutex_lock(&kprobe_mutex); | 1329 | mutex_lock(&kprobe_mutex); |
| 1330 | 1330 | ||
| 1331 | /* If kprobes are already disabled, just return */ | 1331 | /* If kprobes are already disarmed, just return */ |
| 1332 | if (!kprobe_enabled) | 1332 | if (kprobes_all_disarmed) |
| 1333 | goto already_disabled; | 1333 | goto already_disabled; |
| 1334 | 1334 | ||
| 1335 | kprobe_enabled = false; | 1335 | kprobes_all_disarmed = true; |
| 1336 | printk(KERN_INFO "Kprobes globally disabled\n"); | 1336 | printk(KERN_INFO "Kprobes globally disabled\n"); |
| 1337 | mutex_lock(&text_mutex); | 1337 | mutex_lock(&text_mutex); |
| 1338 | for (i = 0; i < KPROBE_TABLE_SIZE; i++) { | 1338 | for (i = 0; i < KPROBE_TABLE_SIZE; i++) { |
| @@ -1364,7 +1364,7 @@ static ssize_t read_enabled_file_bool(struct file *file, | |||
| 1364 | { | 1364 | { |
| 1365 | char buf[3]; | 1365 | char buf[3]; |
| 1366 | 1366 | ||
| 1367 | if (kprobe_enabled) | 1367 | if (!kprobes_all_disarmed) |
| 1368 | buf[0] = '1'; | 1368 | buf[0] = '1'; |
| 1369 | else | 1369 | else |
| 1370 | buf[0] = '0'; | 1370 | buf[0] = '0'; |
| @@ -1387,12 +1387,12 @@ static ssize_t write_enabled_file_bool(struct file *file, | |||
| 1387 | case 'y': | 1387 | case 'y': |
| 1388 | case 'Y': | 1388 | case 'Y': |
| 1389 | case '1': | 1389 | case '1': |
| 1390 | enable_all_kprobes(); | 1390 | arm_all_kprobes(); |
| 1391 | break; | 1391 | break; |
| 1392 | case 'n': | 1392 | case 'n': |
| 1393 | case 'N': | 1393 | case 'N': |
| 1394 | case '0': | 1394 | case '0': |
| 1395 | disable_all_kprobes(); | 1395 | disarm_all_kprobes(); |
| 1396 | break; | 1396 | break; |
| 1397 | } | 1397 | } |
| 1398 | 1398 | ||
