aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86_64
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64')
-rw-r--r--arch/x86_64/kernel/mce.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/x86_64/kernel/mce.c b/arch/x86_64/kernel/mce.c
index 7c8ab423abe3..4d8450ee3635 100644
--- a/arch/x86_64/kernel/mce.c
+++ b/arch/x86_64/kernel/mce.c
@@ -375,7 +375,8 @@ static void mcheck_timer(struct work_struct *work)
375 if (mce_notify_user()) { 375 if (mce_notify_user()) {
376 next_interval = max(next_interval/2, HZ/100); 376 next_interval = max(next_interval/2, HZ/100);
377 } else { 377 } else {
378 next_interval = min(next_interval*2, check_interval*HZ); 378 next_interval = min(next_interval*2,
379 (int)round_jiffies_relative(check_interval*HZ));
379 } 380 }
380 381
381 schedule_delayed_work(&mcheck_work, next_interval); 382 schedule_delayed_work(&mcheck_work, next_interval);
@@ -428,7 +429,8 @@ static __init int periodic_mcheck_init(void)
428{ 429{
429 next_interval = check_interval * HZ; 430 next_interval = check_interval * HZ;
430 if (next_interval) 431 if (next_interval)
431 schedule_delayed_work(&mcheck_work, next_interval); 432 schedule_delayed_work(&mcheck_work,
433 round_jiffies_relative(next_interval));
432 idle_notifier_register(&mce_idle_notifier); 434 idle_notifier_register(&mce_idle_notifier);
433 return 0; 435 return 0;
434} 436}
@@ -720,7 +722,8 @@ static void mce_restart(void)
720 on_each_cpu(mce_init, NULL, 1, 1); 722 on_each_cpu(mce_init, NULL, 1, 1);
721 next_interval = check_interval * HZ; 723 next_interval = check_interval * HZ;
722 if (next_interval) 724 if (next_interval)
723 schedule_delayed_work(&mcheck_work, next_interval); 725 schedule_delayed_work(&mcheck_work,
726 round_jiffies_relative(next_interval));
724} 727}
725 728
726static struct sysdev_class mce_sysclass = { 729static struct sysdev_class mce_sysclass = {