diff options
author | Mike Galbraith <bitbucket@online.de> | 2013-05-29 13:52:13 +0200 |
---|---|---|
committer | Steven Rostedt <rostedt@rostedt.homelinux.com> | 2014-02-26 21:21:28 -0500 |
commit | b2f9fbca7cc0233636b63b00eb2dab6e22ae3bc8 (patch) | |
tree | 424f9c2c04b913d64ce80bdcafe20fbab011bde1 /arch | |
parent | f1a610a5992c4a5155f3620734d8719493c7dac9 (diff) | |
download | linux-rt-b2f9fbca7cc0233636b63b00eb2dab6e22ae3bc8.tar.gz |
x86/mce: fix mce timer interval
Seems mce timer fire at the wrong frequency in -rt kernels since roughly
forever due to 32 bit overflow. 3.8-rt is also missing a multiplier.
Add missing us -> ns conversion and 32 bit overflow prevention.
Cc: stable-rt@vger.kernel.org
Signed-off-by: Mike Galbraith <bitbucket@online.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
[bigeasy: use ULL instead of u64 cast]
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/cpu/mcheck/mce.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c index 63c96f90f3ae..ab47f313db71 100644 --- a/arch/x86/kernel/cpu/mcheck/mce.c +++ b/arch/x86/kernel/cpu/mcheck/mce.c @@ -1274,7 +1274,7 @@ static enum hrtimer_restart mce_start_timer(struct hrtimer *timer) *n = min(*n*2, round_jiffies_relative(check_interval*HZ)); hrtimer_forward(timer, timer->base->get_time(), - ns_to_ktime(jiffies_to_usecs(*n) * 1000)); + ns_to_ktime(jiffies_to_usecs(*n) * 1000ULL)); return HRTIMER_RESTART; } @@ -1568,7 +1568,7 @@ static void __mcheck_cpu_init_timer(void) if (!*n) return; - hrtimer_start_range_ns(t, ns_to_ktime(jiffies_to_usecs(*n) * 1000), + hrtimer_start_range_ns(t, ns_to_ktime(jiffies_to_usecs(*n) * 1000ULL), 0 , HRTIMER_MODE_REL_PINNED); } |