diff options
Diffstat (limited to 'arch/x86/oprofile/nmi_int.c')
| -rw-r--r-- | arch/x86/oprofile/nmi_int.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c index f6b48f6c5951..73a41d3c6c09 100644 --- a/arch/x86/oprofile/nmi_int.c +++ b/arch/x86/oprofile/nmi_int.c | |||
| @@ -568,8 +568,13 @@ static int __init init_sysfs(void) | |||
| 568 | int error; | 568 | int error; |
| 569 | 569 | ||
| 570 | error = sysdev_class_register(&oprofile_sysclass); | 570 | error = sysdev_class_register(&oprofile_sysclass); |
| 571 | if (!error) | 571 | if (error) |
| 572 | error = sysdev_register(&device_oprofile); | 572 | return error; |
| 573 | |||
| 574 | error = sysdev_register(&device_oprofile); | ||
| 575 | if (error) | ||
| 576 | sysdev_class_unregister(&oprofile_sysclass); | ||
| 577 | |||
| 573 | return error; | 578 | return error; |
| 574 | } | 579 | } |
| 575 | 580 | ||
| @@ -695,6 +700,8 @@ int __init op_nmi_init(struct oprofile_operations *ops) | |||
| 695 | char *cpu_type = NULL; | 700 | char *cpu_type = NULL; |
| 696 | int ret = 0; | 701 | int ret = 0; |
| 697 | 702 | ||
| 703 | using_nmi = 0; | ||
| 704 | |||
| 698 | if (!cpu_has_apic) | 705 | if (!cpu_has_apic) |
| 699 | return -ENODEV; | 706 | return -ENODEV; |
| 700 | 707 | ||
| @@ -774,7 +781,10 @@ int __init op_nmi_init(struct oprofile_operations *ops) | |||
| 774 | 781 | ||
| 775 | mux_init(ops); | 782 | mux_init(ops); |
| 776 | 783 | ||
| 777 | init_sysfs(); | 784 | ret = init_sysfs(); |
| 785 | if (ret) | ||
| 786 | return ret; | ||
| 787 | |||
| 778 | using_nmi = 1; | 788 | using_nmi = 1; |
| 779 | printk(KERN_INFO "oprofile: using NMI interrupt.\n"); | 789 | printk(KERN_INFO "oprofile: using NMI interrupt.\n"); |
| 780 | return 0; | 790 | return 0; |
