diff options
author | John Stultz <johnstul@us.ibm.com> | 2010-07-13 20:56:25 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2010-07-27 06:40:55 -0400 |
commit | 8ab4351a4c888016620f43bde605b3d0964af339 (patch) | |
tree | 9d92ee7fbf9391bfcfdc1e49fecc31b9fa4e03c0 | |
parent | 9f31f5774961a735687fee17953ab505b3df3abf (diff) |
hrtimer: Cleanup direct access to wall_to_monotonic
Provides an accessor function to replace hrtimer.c's
direct access of wall_to_monotonic.
This will allow wall_to_monotonic to be made static as
planned in Documentation/feature-removal-schedule.txt
Signed-off-by: John Stultz <johnstul@us.ibm.com>
LKML-Reference: <1279068988-21864-9-git-send-email-johnstul@us.ibm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | include/linux/time.h | 3 | ||||
-rw-r--r-- | kernel/hrtimer.c | 9 | ||||
-rw-r--r-- | kernel/time/timekeeping.c | 5 |
3 files changed, 11 insertions, 6 deletions
diff --git a/include/linux/time.h b/include/linux/time.h index 9072df83de1f..a57e0f67b3d0 100644 --- a/include/linux/time.h +++ b/include/linux/time.h | |||
@@ -126,7 +126,8 @@ extern int timekeeping_suspended; | |||
126 | 126 | ||
127 | unsigned long get_seconds(void); | 127 | unsigned long get_seconds(void); |
128 | struct timespec current_kernel_time(void); | 128 | struct timespec current_kernel_time(void); |
129 | struct timespec __current_kernel_time(void); /* does not hold xtime_lock */ | 129 | struct timespec __current_kernel_time(void); /* does not take xtime_lock */ |
130 | struct timespec __get_wall_to_monotonic(void); /* does not take xtime_lock */ | ||
130 | struct timespec get_monotonic_coarse(void); | 131 | struct timespec get_monotonic_coarse(void); |
131 | 132 | ||
132 | #define CURRENT_TIME (current_kernel_time()) | 133 | #define CURRENT_TIME (current_kernel_time()) |
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c index 5c69e996bd0f..809f48c70553 100644 --- a/kernel/hrtimer.c +++ b/kernel/hrtimer.c | |||
@@ -90,7 +90,7 @@ static void hrtimer_get_softirq_time(struct hrtimer_cpu_base *base) | |||
90 | do { | 90 | do { |
91 | seq = read_seqbegin(&xtime_lock); | 91 | seq = read_seqbegin(&xtime_lock); |
92 | xts = __current_kernel_time(); | 92 | xts = __current_kernel_time(); |
93 | tom = wall_to_monotonic; | 93 | tom = __get_wall_to_monotonic(); |
94 | } while (read_seqretry(&xtime_lock, seq)); | 94 | } while (read_seqretry(&xtime_lock, seq)); |
95 | 95 | ||
96 | xtim = timespec_to_ktime(xts); | 96 | xtim = timespec_to_ktime(xts); |
@@ -612,7 +612,7 @@ static int hrtimer_reprogram(struct hrtimer *timer, | |||
612 | static void retrigger_next_event(void *arg) | 612 | static void retrigger_next_event(void *arg) |
613 | { | 613 | { |
614 | struct hrtimer_cpu_base *base; | 614 | struct hrtimer_cpu_base *base; |
615 | struct timespec realtime_offset; | 615 | struct timespec realtime_offset, wtm; |
616 | unsigned long seq; | 616 | unsigned long seq; |
617 | 617 | ||
618 | if (!hrtimer_hres_active()) | 618 | if (!hrtimer_hres_active()) |
@@ -620,10 +620,9 @@ static void retrigger_next_event(void *arg) | |||
620 | 620 | ||
621 | do { | 621 | do { |
622 | seq = read_seqbegin(&xtime_lock); | 622 | seq = read_seqbegin(&xtime_lock); |
623 | set_normalized_timespec(&realtime_offset, | 623 | wtm = __get_wall_to_monotonic(); |
624 | -wall_to_monotonic.tv_sec, | ||
625 | -wall_to_monotonic.tv_nsec); | ||
626 | } while (read_seqretry(&xtime_lock, seq)); | 624 | } while (read_seqretry(&xtime_lock, seq)); |
625 | set_normalized_timespec(&realtime_offset, -wtm.tv_sec, -wtm.tv_nsec); | ||
627 | 626 | ||
628 | base = &__get_cpu_var(hrtimer_bases); | 627 | base = &__get_cpu_var(hrtimer_bases); |
629 | 628 | ||
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index b15c3acafd5a..fb61c2ed3660 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c | |||
@@ -858,6 +858,11 @@ struct timespec __current_kernel_time(void) | |||
858 | return xtime; | 858 | return xtime; |
859 | } | 859 | } |
860 | 860 | ||
861 | struct timespec __get_wall_to_monotonic(void) | ||
862 | { | ||
863 | return wall_to_monotonic; | ||
864 | } | ||
865 | |||
861 | struct timespec current_kernel_time(void) | 866 | struct timespec current_kernel_time(void) |
862 | { | 867 | { |
863 | struct timespec now; | 868 | struct timespec now; |