aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/time/timekeeping.c
diff options
context:
space:
mode:
authorTorben Hohn <torbenh@gmx.de>2011-01-27 09:59:05 -0500
committerThomas Gleixner <tglx@linutronix.de>2011-01-31 08:55:42 -0500
commit48cf76f7104f655bbd48a75c7759dce82c3e1ab6 (patch)
tree2b3cf138fd277ba9c551d75ccbe575a40974560a /kernel/time/timekeeping.c
parentfbad1ea94159a71bc0f68b00e57ae803606af9fb (diff)
time: Provide get_xtime_and_monotonic_offset()
The hrtimer code accesses timekeeping variables under xtime_lock. Provide a sensible accessor function and use it. [ tglx: Removed the conditionals, unused variable, fixed codingstyle and massaged changelog ] Signed-off-by: Torben Hohn <torbenh@gmx.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: johnstul@us.ibm.com Cc: yong.zhang0@gmail.com Cc: hch@infradead.org LKML-Reference: <20110127145905.23248.30458.stgit@localhost> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/time/timekeeping.c')
-rw-r--r--kernel/time/timekeeping.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index c1a178ca0f5..c50aaf6cd01 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -958,3 +958,19 @@ void do_timer(unsigned long ticks)
958 update_wall_time(); 958 update_wall_time();
959 calc_global_load(ticks); 959 calc_global_load(ticks);
960} 960}
961
962/**
963 * get_xtime_and_monotonic_offset() - get xtime and wall_to_monotonic
964 * @xtim: pointer to timespec to be set with xtime
965 * @wtom: pointer to timespec to be set with wall_to_monotonic
966 */
967void get_xtime_and_monotonic_offset(struct timespec *xtim, struct timespec *wtom)
968{
969 unsigned long seq;
970
971 do {
972 seq = read_seqbegin(&xtime_lock);
973 *xtim = xtime;
974 *wtom = wall_to_monotonic;
975 } while (read_seqretry(&xtime_lock, seq));
976}