diff options
author | Roman Zippel <zippel@linux-m68k.org> | 2008-05-01 07:34:26 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-05-01 11:03:58 -0400 |
commit | 71abb3af62dfa52930755f3b6497eafbe1d6ec85 (patch) | |
tree | 8e37f74017b800127538f6620820ea90b53169b5 /kernel/time | |
parent | 2418f4f28f8467b92a6177af32d05737ebf6206c (diff) |
convert a few do_div users
This converts a few users of do_div to div_[su]64 and this demonstrates nicely
how it can reduce some expressions to one-liners.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/time')
-rw-r--r-- | kernel/time/ntp.c | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c index 5fd9b9469770..a4492f3d64db 100644 --- a/kernel/time/ntp.c +++ b/kernel/time/ntp.c | |||
@@ -15,7 +15,7 @@ | |||
15 | #include <linux/jiffies.h> | 15 | #include <linux/jiffies.h> |
16 | #include <linux/hrtimer.h> | 16 | #include <linux/hrtimer.h> |
17 | #include <linux/capability.h> | 17 | #include <linux/capability.h> |
18 | #include <asm/div64.h> | 18 | #include <linux/math64.h> |
19 | #include <asm/timex.h> | 19 | #include <asm/timex.h> |
20 | 20 | ||
21 | /* | 21 | /* |
@@ -53,10 +53,8 @@ static void ntp_update_frequency(void) | |||
53 | 53 | ||
54 | tick_length_base = second_length; | 54 | tick_length_base = second_length; |
55 | 55 | ||
56 | do_div(second_length, HZ); | 56 | tick_nsec = div_u64(second_length, HZ) >> TICK_LENGTH_SHIFT; |
57 | tick_nsec = second_length >> TICK_LENGTH_SHIFT; | 57 | tick_length_base = div_u64(tick_length_base, NTP_INTERVAL_FREQ); |
58 | |||
59 | do_div(tick_length_base, NTP_INTERVAL_FREQ); | ||
60 | } | 58 | } |
61 | 59 | ||
62 | /** | 60 | /** |
@@ -237,7 +235,7 @@ static inline void notify_cmos_timer(void) { } | |||
237 | int do_adjtimex(struct timex *txc) | 235 | int do_adjtimex(struct timex *txc) |
238 | { | 236 | { |
239 | long mtemp, save_adjust, rem; | 237 | long mtemp, save_adjust, rem; |
240 | s64 freq_adj, temp64; | 238 | s64 freq_adj; |
241 | int result; | 239 | int result; |
242 | 240 | ||
243 | /* In order to modify anything, you gotta be super-user! */ | 241 | /* In order to modify anything, you gotta be super-user! */ |
@@ -342,19 +340,8 @@ int do_adjtimex(struct timex *txc) | |||
342 | freq_adj = time_offset * mtemp; | 340 | freq_adj = time_offset * mtemp; |
343 | freq_adj = shift_right(freq_adj, time_constant * 2 + | 341 | freq_adj = shift_right(freq_adj, time_constant * 2 + |
344 | (SHIFT_PLL + 2) * 2 - SHIFT_NSEC); | 342 | (SHIFT_PLL + 2) * 2 - SHIFT_NSEC); |
345 | if (mtemp >= MINSEC && (time_status & STA_FLL || mtemp > MAXSEC)) { | 343 | if (mtemp >= MINSEC && (time_status & STA_FLL || mtemp > MAXSEC)) |
346 | u64 utemp64; | 344 | freq_adj += div_s64(time_offset << (SHIFT_NSEC - SHIFT_FLL), mtemp); |
347 | temp64 = time_offset << (SHIFT_NSEC - SHIFT_FLL); | ||
348 | if (time_offset < 0) { | ||
349 | utemp64 = -temp64; | ||
350 | do_div(utemp64, mtemp); | ||
351 | freq_adj -= utemp64; | ||
352 | } else { | ||
353 | utemp64 = temp64; | ||
354 | do_div(utemp64, mtemp); | ||
355 | freq_adj += utemp64; | ||
356 | } | ||
357 | } | ||
358 | freq_adj += time_freq; | 345 | freq_adj += time_freq; |
359 | freq_adj = min(freq_adj, (s64)MAXFREQ_NSEC); | 346 | freq_adj = min(freq_adj, (s64)MAXFREQ_NSEC); |
360 | time_freq = max(freq_adj, (s64)-MAXFREQ_NSEC); | 347 | time_freq = max(freq_adj, (s64)-MAXFREQ_NSEC); |