timekeeping: Simplify timekeeping_clocktai()

timekeeping_clocktai() is not used in fast pathes, so the extra
timespec conversion is not problematic.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Stultz <john.stultz@linaro.org>
This commit is contained in:
Thomas Gleixner 2014-07-16 21:05:01 +00:00 committed by John Stultz
parent 47da70d325
commit 61edec81d2
2 changed files with 5 additions and 31 deletions

View File

@ -166,6 +166,11 @@ static inline void get_monotonic_boottime(struct timespec *ts)
*ts = ktime_to_timespec(ktime_get_boottime()); *ts = ktime_to_timespec(ktime_get_boottime());
} }
static inline void timekeeping_clocktai(struct timespec *ts)
{
*ts = ktime_to_timespec(ktime_get_clocktai());
}
/* /*
* RTC specific * RTC specific
*/ */

View File

@ -497,37 +497,6 @@ void ktime_get_ts64(struct timespec64 *ts)
} }
EXPORT_SYMBOL_GPL(ktime_get_ts64); EXPORT_SYMBOL_GPL(ktime_get_ts64);
/**
* timekeeping_clocktai - Returns the TAI time of day in a timespec
* @ts: pointer to the timespec to be set
*
* Returns the time of day in a timespec.
*/
void timekeeping_clocktai(struct timespec *ts)
{
struct timekeeper *tk = &tk_core.timekeeper;
struct timespec64 ts64;
unsigned long seq;
u64 nsecs;
WARN_ON(timekeeping_suspended);
do {
seq = read_seqcount_begin(&tk_core.seq);
ts64.tv_sec = tk->xtime_sec + tk->tai_offset;
nsecs = timekeeping_get_ns(tk);
} while (read_seqcount_retry(&tk_core.seq, seq));
ts64.tv_nsec = 0;
timespec64_add_ns(&ts64, nsecs);
*ts = timespec64_to_timespec(ts64);
}
EXPORT_SYMBOL(timekeeping_clocktai);
#ifdef CONFIG_NTP_PPS #ifdef CONFIG_NTP_PPS
/** /**