diff options
| -rw-r--r-- | arch/x86/oprofile/nmi_int.c | 16 | ||||
| -rw-r--r-- | drivers/oprofile/event_buffer.c | 3 |
2 files changed, 16 insertions, 3 deletions
diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c index b28d2f1253bb..1ba67dc8006a 100644 --- a/arch/x86/oprofile/nmi_int.c +++ b/arch/x86/oprofile/nmi_int.c | |||
| @@ -634,6 +634,18 @@ static int __init ppro_init(char **cpu_type) | |||
| 634 | if (force_arch_perfmon && cpu_has_arch_perfmon) | 634 | if (force_arch_perfmon && cpu_has_arch_perfmon) |
| 635 | return 0; | 635 | return 0; |
| 636 | 636 | ||
| 637 | /* | ||
| 638 | * Documentation on identifying Intel processors by CPU family | ||
| 639 | * and model can be found in the Intel Software Developer's | ||
| 640 | * Manuals (SDM): | ||
| 641 | * | ||
| 642 | * http://www.intel.com/products/processor/manuals/ | ||
| 643 | * | ||
| 644 | * As of May 2010 the documentation for this was in the: | ||
| 645 | * "Intel 64 and IA-32 Architectures Software Developer's | ||
| 646 | * Manual Volume 3B: System Programming Guide", "Table B-1 | ||
| 647 | * CPUID Signature Values of DisplayFamily_DisplayModel". | ||
| 648 | */ | ||
| 637 | switch (cpu_model) { | 649 | switch (cpu_model) { |
| 638 | case 0 ... 2: | 650 | case 0 ... 2: |
| 639 | *cpu_type = "i386/ppro"; | 651 | *cpu_type = "i386/ppro"; |
| @@ -655,12 +667,12 @@ static int __init ppro_init(char **cpu_type) | |||
| 655 | case 15: case 23: | 667 | case 15: case 23: |
| 656 | *cpu_type = "i386/core_2"; | 668 | *cpu_type = "i386/core_2"; |
| 657 | break; | 669 | break; |
| 670 | case 0x1a: | ||
| 658 | case 0x2e: | 671 | case 0x2e: |
| 659 | case 26: | ||
| 660 | spec = &op_arch_perfmon_spec; | 672 | spec = &op_arch_perfmon_spec; |
| 661 | *cpu_type = "i386/core_i7"; | 673 | *cpu_type = "i386/core_i7"; |
| 662 | break; | 674 | break; |
| 663 | case 28: | 675 | case 0x1c: |
| 664 | *cpu_type = "i386/atom"; | 676 | *cpu_type = "i386/atom"; |
| 665 | break; | 677 | break; |
| 666 | default: | 678 | default: |
diff --git a/drivers/oprofile/event_buffer.c b/drivers/oprofile/event_buffer.c index 5df60a6b6776..dd87e86048be 100644 --- a/drivers/oprofile/event_buffer.c +++ b/drivers/oprofile/event_buffer.c | |||
| @@ -135,7 +135,7 @@ static int event_buffer_open(struct inode *inode, struct file *file) | |||
| 135 | * echo 1 >/dev/oprofile/enable | 135 | * echo 1 >/dev/oprofile/enable |
| 136 | */ | 136 | */ |
| 137 | 137 | ||
| 138 | return 0; | 138 | return nonseekable_open(inode, file); |
| 139 | 139 | ||
| 140 | fail: | 140 | fail: |
| 141 | dcookie_unregister(file->private_data); | 141 | dcookie_unregister(file->private_data); |
| @@ -205,4 +205,5 @@ const struct file_operations event_buffer_fops = { | |||
| 205 | .open = event_buffer_open, | 205 | .open = event_buffer_open, |
| 206 | .release = event_buffer_release, | 206 | .release = event_buffer_release, |
| 207 | .read = event_buffer_read, | 207 | .read = event_buffer_read, |
| 208 | .llseek = no_llseek, | ||
| 208 | }; | 209 | }; |
