提交 61edec81 编写于 作者: T Thomas Gleixner 提交者: John Stultz

timekeeping: Simplify timekeeping_clocktai()

timekeeping_clocktai() is not used in fast pathes, so the extra
timespec conversion is not problematic.
Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
上级 47da70d3
...@@ -166,6 +166,11 @@ static inline void get_monotonic_boottime(struct timespec *ts) ...@@ -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
*/ */
......
...@@ -497,37 +497,6 @@ void ktime_get_ts64(struct timespec64 *ts) ...@@ -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
/** /**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册