Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 206149
b: refs/heads/master
c: 8ab4351
h: refs/heads/master
i:
  206147: 1602e52
v: v3
  • Loading branch information
John Stultz authored and Thomas Gleixner committed Jul 27, 2010
1 parent c721ad7 commit 1d9c16f
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 7 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: 9f31f5774961a735687fee17953ab505b3df3abf
refs/heads/master: 8ab4351a4c888016620f43bde605b3d0964af339
3 changes: 2 additions & 1 deletion trunk/include/linux/time.h
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,8 @@ extern int timekeeping_suspended;

unsigned long get_seconds(void);
struct timespec current_kernel_time(void);
struct timespec __current_kernel_time(void); /* does not hold xtime_lock */
struct timespec __current_kernel_time(void); /* does not take xtime_lock */
struct timespec __get_wall_to_monotonic(void); /* does not take xtime_lock */
struct timespec get_monotonic_coarse(void);

#define CURRENT_TIME (current_kernel_time())
Expand Down
9 changes: 4 additions & 5 deletions trunk/kernel/hrtimer.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ static void hrtimer_get_softirq_time(struct hrtimer_cpu_base *base)
do {
seq = read_seqbegin(&xtime_lock);
xts = __current_kernel_time();
tom = wall_to_monotonic;
tom = __get_wall_to_monotonic();
} while (read_seqretry(&xtime_lock, seq));

xtim = timespec_to_ktime(xts);
Expand Down Expand Up @@ -612,18 +612,17 @@ static int hrtimer_reprogram(struct hrtimer *timer,
static void retrigger_next_event(void *arg)
{
struct hrtimer_cpu_base *base;
struct timespec realtime_offset;
struct timespec realtime_offset, wtm;
unsigned long seq;

if (!hrtimer_hres_active())
return;

do {
seq = read_seqbegin(&xtime_lock);
set_normalized_timespec(&realtime_offset,
-wall_to_monotonic.tv_sec,
-wall_to_monotonic.tv_nsec);
wtm = __get_wall_to_monotonic();
} while (read_seqretry(&xtime_lock, seq));
set_normalized_timespec(&realtime_offset, -wtm.tv_sec, -wtm.tv_nsec);

base = &__get_cpu_var(hrtimer_bases);

Expand Down
5 changes: 5 additions & 0 deletions trunk/kernel/time/timekeeping.c
Original file line number Diff line number Diff line change
Expand Up @@ -858,6 +858,11 @@ struct timespec __current_kernel_time(void)
return xtime;
}

struct timespec __get_wall_to_monotonic(void)
{
return wall_to_monotonic;
}

struct timespec current_kernel_time(void)
{
struct timespec now;
Expand Down

0 comments on commit 1d9c16f

Please sign in to comment.