diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2011-03-31 11:46:00 +1100 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2011-03-31 11:46:00 +1100 |
commit | 9f229056b7691091e15995d67c777ead72077720 (patch) | |
tree | fe2736d5b547da8c91e1f838c4db68370b589ccb /arch | |
parent | bdd361147338283360a96e09939868f65c138904 (diff) | |
parent | 855f905a48cf6798c7c65ab5a04f2ac172c168d9 (diff) |
Merge remote-tracking branch 'oprofile/for-next'
Diffstat (limited to 'arch')
-rw-r--r-- | arch/alpha/oprofile/common.c | 5 | ||||
-rw-r--r-- | arch/avr32/oprofile/op_model_avr32.c | 5 | ||||
-rw-r--r-- | arch/blackfin/oprofile/bfin_oprofile.c | 4 | ||||
-rw-r--r-- | arch/ia64/oprofile/init.c | 2 | ||||
-rw-r--r-- | arch/m32r/oprofile/init.c | 4 | ||||
-rw-r--r-- | arch/microblaze/oprofile/microblaze_oprofile.c | 4 | ||||
-rw-r--r-- | arch/mips/oprofile/common.c | 2 | ||||
-rw-r--r-- | arch/mn10300/oprofile/op_model_null.c | 5 | ||||
-rw-r--r-- | arch/parisc/oprofile/init.c | 4 | ||||
-rw-r--r-- | arch/powerpc/oprofile/common.c | 4 | ||||
-rw-r--r-- | arch/s390/oprofile/init.c | 2 | ||||
-rw-r--r-- | arch/sparc/oprofile/init.c | 4 | ||||
-rw-r--r-- | arch/x86/oprofile/init.c | 2 | ||||
-rw-r--r-- | arch/x86/oprofile/nmi_int.c | 5 | ||||
-rw-r--r-- | arch/x86/oprofile/op_counter.h | 1 |
15 files changed, 19 insertions, 34 deletions
diff --git a/arch/alpha/oprofile/common.c b/arch/alpha/oprofile/common.c index bd8ac533a504..49b7246cbbc1 100644 --- a/arch/alpha/oprofile/common.c +++ b/arch/alpha/oprofile/common.c @@ -183,7 +183,4 @@ oprofile_arch_init(struct oprofile_operations *ops) } -void -oprofile_arch_exit(void) -{ -} +void __exit oprofile_arch_exit(void) { } diff --git a/arch/avr32/oprofile/op_model_avr32.c b/arch/avr32/oprofile/op_model_avr32.c index a3e9b3c4845a..93feba449833 100644 --- a/arch/avr32/oprofile/op_model_avr32.c +++ b/arch/avr32/oprofile/op_model_avr32.c @@ -232,7 +232,4 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) return 0; } -void oprofile_arch_exit(void) -{ - -} +void __exit oprofile_arch_exit(void) { } diff --git a/arch/blackfin/oprofile/bfin_oprofile.c b/arch/blackfin/oprofile/bfin_oprofile.c index c3b9713b23f8..7dcac13f8d8b 100644 --- a/arch/blackfin/oprofile/bfin_oprofile.c +++ b/arch/blackfin/oprofile/bfin_oprofile.c @@ -13,6 +13,4 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) return -1; } -void oprofile_arch_exit(void) -{ -} +void __exit oprofile_arch_exit(void) { } diff --git a/arch/ia64/oprofile/init.c b/arch/ia64/oprofile/init.c index 31b545c35460..a28feacff5cf 100644 --- a/arch/ia64/oprofile/init.c +++ b/arch/ia64/oprofile/init.c @@ -30,7 +30,7 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) } -void oprofile_arch_exit(void) +void __exit oprofile_arch_exit(void) { #ifdef CONFIG_PERFMON perfmon_exit(); diff --git a/arch/m32r/oprofile/init.c b/arch/m32r/oprofile/init.c index fa56860f4258..a7e063e7c839 100644 --- a/arch/m32r/oprofile/init.c +++ b/arch/m32r/oprofile/init.c @@ -17,6 +17,4 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) return -ENODEV; } -void oprofile_arch_exit(void) -{ -} +void __exit oprofile_arch_exit(void) { } diff --git a/arch/microblaze/oprofile/microblaze_oprofile.c b/arch/microblaze/oprofile/microblaze_oprofile.c index def17e59888e..23c108dd4ce6 100644 --- a/arch/microblaze/oprofile/microblaze_oprofile.c +++ b/arch/microblaze/oprofile/microblaze_oprofile.c @@ -17,6 +17,4 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) return -1; } -void oprofile_arch_exit(void) -{ -} +void __exit oprofile_arch_exit(void) { } diff --git a/arch/mips/oprofile/common.c b/arch/mips/oprofile/common.c index f9eb1aba6345..fff011a84924 100644 --- a/arch/mips/oprofile/common.c +++ b/arch/mips/oprofile/common.c @@ -122,7 +122,7 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) return 0; } -void oprofile_arch_exit(void) +void __exit oprofile_arch_exit(void) { if (model) model->exit(); diff --git a/arch/mn10300/oprofile/op_model_null.c b/arch/mn10300/oprofile/op_model_null.c index cd4ab374bc4f..d308d1318698 100644 --- a/arch/mn10300/oprofile/op_model_null.c +++ b/arch/mn10300/oprofile/op_model_null.c @@ -16,7 +16,4 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) return -ENODEV; } -void oprofile_arch_exit(void) -{ -} - +void __exit oprofile_arch_exit(void) { } diff --git a/arch/parisc/oprofile/init.c b/arch/parisc/oprofile/init.c index 026cba2af07a..86cd3a5426fb 100644 --- a/arch/parisc/oprofile/init.c +++ b/arch/parisc/oprofile/init.c @@ -18,6 +18,4 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) } -void oprofile_arch_exit(void) -{ -} +void __exit oprofile_arch_exit(void) { } diff --git a/arch/powerpc/oprofile/common.c b/arch/powerpc/oprofile/common.c index d65e68f3cb25..c0909513a400 100644 --- a/arch/powerpc/oprofile/common.c +++ b/arch/powerpc/oprofile/common.c @@ -249,6 +249,4 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) return 0; } -void oprofile_arch_exit(void) -{ -} +void __exit oprofile_arch_exit(void) { } diff --git a/arch/s390/oprofile/init.c b/arch/s390/oprofile/init.c index c63d7e58352b..614e607ac247 100644 --- a/arch/s390/oprofile/init.c +++ b/arch/s390/oprofile/init.c @@ -188,7 +188,7 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) #endif } -void oprofile_arch_exit(void) +void __exit oprofile_arch_exit(void) { #ifdef CONFIG_64BIT oprofile_hwsampler_exit(); diff --git a/arch/sparc/oprofile/init.c b/arch/sparc/oprofile/init.c index f9024bccff16..315c932f1259 100644 --- a/arch/sparc/oprofile/init.c +++ b/arch/sparc/oprofile/init.c @@ -82,6 +82,4 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) return ret; } -void oprofile_arch_exit(void) -{ -} +void __exit oprofile_arch_exit(void) { } diff --git a/arch/x86/oprofile/init.c b/arch/x86/oprofile/init.c index cdfe4c54deca..085d952ffa22 100644 --- a/arch/x86/oprofile/init.c +++ b/arch/x86/oprofile/init.c @@ -41,7 +41,7 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) } -void oprofile_arch_exit(void) +void __exit oprofile_arch_exit(void) { #ifdef CONFIG_X86_LOCAL_APIC op_nmi_exit(); diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c index 8dace181c88e..cf9750004a08 100644 --- a/arch/x86/oprofile/nmi_int.c +++ b/arch/x86/oprofile/nmi_int.c @@ -49,6 +49,10 @@ u64 op_x86_get_ctrl(struct op_x86_model_spec const *model, val |= counter_config->user ? ARCH_PERFMON_EVENTSEL_USR : 0; val |= counter_config->kernel ? ARCH_PERFMON_EVENTSEL_OS : 0; val |= (counter_config->unit_mask & 0xFF) << 8; + counter_config->extra &= (ARCH_PERFMON_EVENTSEL_INV | + ARCH_PERFMON_EVENTSEL_EDGE | + ARCH_PERFMON_EVENTSEL_CMASK); + val |= counter_config->extra; event &= model->event_mask ? model->event_mask : 0xFF; val |= event & 0xFF; val |= (event & 0x0F00) << 24; @@ -440,6 +444,7 @@ static int nmi_create_files(struct super_block *sb, struct dentry *root) oprofilefs_create_ulong(sb, dir, "unit_mask", &counter_config[i].unit_mask); oprofilefs_create_ulong(sb, dir, "kernel", &counter_config[i].kernel); oprofilefs_create_ulong(sb, dir, "user", &counter_config[i].user); + oprofilefs_create_ulong(sb, dir, "extra", &counter_config[i].extra); } return 0; diff --git a/arch/x86/oprofile/op_counter.h b/arch/x86/oprofile/op_counter.h index e28398df0df2..0b7b7b179cbe 100644 --- a/arch/x86/oprofile/op_counter.h +++ b/arch/x86/oprofile/op_counter.h @@ -22,6 +22,7 @@ struct op_counter_config { unsigned long kernel; unsigned long user; unsigned long unit_mask; + unsigned long extra; }; extern struct op_counter_config counter_config[]; |