diff options
author | Tim Deegan <[email protected]> | 2011-02-10 08:50:41 +0000 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2011-02-10 11:00:09 -0800 |
commit | 70a062286b9dfcbd24d2e11601aecfead5cf709a (patch) | |
tree | 126a1e3f9561a3cb4159714c96db1ddd4171756d | |
parent | 6148a47ac3872092d4bc4888838bec6dff16654d (diff) |
fix jiffy calculations in calibrate_delay_direct to handle overflow
Fixes a hang when booting as dom0 under Xen, when jiffies can be
quite large by the time the kernel init gets this far.
Signed-off-by: Tim Deegan <[email protected]>
[[email protected]: !time_after() -> time_before_eq() as suggested by Jiri Slaby]
Signed-off-by: Jan Beulich <[email protected]>
Cc: Jiri Slaby <[email protected]>
Cc: Jeremy Fitzhardinge <[email protected]>
Cc: [email protected]
Signed-off-by: Linus Torvalds <[email protected]>
-rw-r--r-- | init/calibrate.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/init/calibrate.c b/init/calibrate.c index 6eb48e53d61c..24fe022c55f9 100644 --- a/init/calibrate.c +++ b/init/calibrate.c @@ -66,7 +66,7 @@ static unsigned long __cpuinit calibrate_delay_direct(void) pre_start = 0; read_current_timer(&start); start_jiffies = jiffies; - while (jiffies <= (start_jiffies + 1)) { + while (time_before_eq(jiffies, start_jiffies + 1)) { pre_start = start; read_current_timer(&start); } @@ -74,8 +74,8 @@ static unsigned long __cpuinit calibrate_delay_direct(void) pre_end = 0; end = post_start; - while (jiffies <= - (start_jiffies + 1 + DELAY_CALIBRATION_TICKS)) { + while (time_before_eq(jiffies, start_jiffies + 1 + + DELAY_CALIBRATION_TICKS)) { pre_end = end; read_current_timer(&end); } |