Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 135748
b: refs/heads/master
c: 9ce616a
h: refs/heads/master
v: v3
  • Loading branch information
Ingo Molnar committed Feb 25, 2009
1 parent 992528b commit 0913c76
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: bbd1267690bb6940d0722dd33e929442c0409c01
refs/heads/master: 9ce616aaefcb9309cb9c49a36310ebda6061b98b
27 changes: 18 additions & 9 deletions trunk/kernel/time/ntp.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,24 +77,33 @@ static long ntp_tick_adj;
* NTP methods:
*/

/*
* Update (tick_length, tick_length_base, tick_nsec), based
* on (tick_usec, ntp_tick_adj, time_freq):
*/
static void ntp_update_frequency(void)
{
u64 old_tick_length_base = tick_length_base;
u64 second_length = (u64)(tick_usec * NSEC_PER_USEC * USER_HZ)
<< NTP_SCALE_SHIFT;
second_length += (s64)ntp_tick_adj << NTP_SCALE_SHIFT;
second_length += time_freq;
u64 prev_base;
u64 second_length;

prev_base = tick_length_base;

second_length = (u64)(tick_usec * NSEC_PER_USEC * USER_HZ)
<< NTP_SCALE_SHIFT;

second_length += (s64)ntp_tick_adj << NTP_SCALE_SHIFT;
second_length += time_freq;

tick_length_base = second_length;
tick_length_base = second_length;

tick_nsec = div_u64(second_length, HZ) >> NTP_SCALE_SHIFT;
tick_length_base = div_u64(tick_length_base, NTP_INTERVAL_FREQ);
tick_nsec = div_u64(second_length, HZ) >> NTP_SCALE_SHIFT;
tick_length_base = div_u64(tick_length_base, NTP_INTERVAL_FREQ);

/*
* Don't wait for the next second_overflow, apply
* the change to the tick length immediately
*/
tick_length += tick_length_base - old_tick_length_base;
tick_length += tick_length_base - prev_base;
}

static void ntp_update_offset(long offset)
Expand Down

0 comments on commit 0913c76

Please sign in to comment.