diff options
Diffstat (limited to 'arch/x86_64/kernel/mce.c')
-rw-r--r-- | arch/x86_64/kernel/mce.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/x86_64/kernel/mce.c b/arch/x86_64/kernel/mce.c index bbea88801d88..ac085038af29 100644 --- a/arch/x86_64/kernel/mce.c +++ b/arch/x86_64/kernel/mce.c | |||
@@ -306,8 +306,8 @@ void mce_log_therm_throt_event(unsigned int cpu, __u64 status) | |||
306 | */ | 306 | */ |
307 | 307 | ||
308 | static int check_interval = 5 * 60; /* 5 minutes */ | 308 | static int check_interval = 5 * 60; /* 5 minutes */ |
309 | static void mcheck_timer(void *data); | 309 | static void mcheck_timer(struct work_struct *work); |
310 | static DECLARE_WORK(mcheck_work, mcheck_timer, NULL); | 310 | static DECLARE_DELAYED_WORK(mcheck_work, mcheck_timer); |
311 | 311 | ||
312 | static void mcheck_check_cpu(void *info) | 312 | static void mcheck_check_cpu(void *info) |
313 | { | 313 | { |
@@ -315,7 +315,7 @@ static void mcheck_check_cpu(void *info) | |||
315 | do_machine_check(NULL, 0); | 315 | do_machine_check(NULL, 0); |
316 | } | 316 | } |
317 | 317 | ||
318 | static void mcheck_timer(void *data) | 318 | static void mcheck_timer(struct work_struct *work) |
319 | { | 319 | { |
320 | on_each_cpu(mcheck_check_cpu, NULL, 1, 1); | 320 | on_each_cpu(mcheck_check_cpu, NULL, 1, 1); |
321 | schedule_delayed_work(&mcheck_work, check_interval * HZ); | 321 | schedule_delayed_work(&mcheck_work, check_interval * HZ); |
@@ -641,7 +641,6 @@ static __cpuinit int mce_create_device(unsigned int cpu) | |||
641 | return err; | 641 | return err; |
642 | } | 642 | } |
643 | 643 | ||
644 | #ifdef CONFIG_HOTPLUG_CPU | ||
645 | static void mce_remove_device(unsigned int cpu) | 644 | static void mce_remove_device(unsigned int cpu) |
646 | { | 645 | { |
647 | int i; | 646 | int i; |
@@ -652,6 +651,7 @@ static void mce_remove_device(unsigned int cpu) | |||
652 | sysdev_remove_file(&per_cpu(device_mce,cpu), &attr_tolerant); | 651 | sysdev_remove_file(&per_cpu(device_mce,cpu), &attr_tolerant); |
653 | sysdev_remove_file(&per_cpu(device_mce,cpu), &attr_check_interval); | 652 | sysdev_remove_file(&per_cpu(device_mce,cpu), &attr_check_interval); |
654 | sysdev_unregister(&per_cpu(device_mce,cpu)); | 653 | sysdev_unregister(&per_cpu(device_mce,cpu)); |
654 | memset(&per_cpu(device_mce, cpu).kobj, 0, sizeof(struct kobject)); | ||
655 | } | 655 | } |
656 | 656 | ||
657 | /* Get notified when a cpu comes on/off. Be hotplug friendly. */ | 657 | /* Get notified when a cpu comes on/off. Be hotplug friendly. */ |
@@ -674,7 +674,6 @@ mce_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) | |||
674 | static struct notifier_block mce_cpu_notifier = { | 674 | static struct notifier_block mce_cpu_notifier = { |
675 | .notifier_call = mce_cpu_callback, | 675 | .notifier_call = mce_cpu_callback, |
676 | }; | 676 | }; |
677 | #endif | ||
678 | 677 | ||
679 | static __init int mce_init_device(void) | 678 | static __init int mce_init_device(void) |
680 | { | 679 | { |