diff --git a/include/linux/timekeeping.h b/include/linux/timekeeping.h index e40a8d60fb21adee2ace5fc7684475a6991b15d4..8cab4b754be76be957968970ef11ad642a8f4247 100644 --- a/include/linux/timekeeping.h +++ b/include/linux/timekeeping.h @@ -25,7 +25,7 @@ struct timespec __current_kernel_time(void); /* * timespec based interfaces */ -struct timespec get_monotonic_coarse(void); +struct timespec64 get_monotonic_coarse64(void); extern void getrawmonotonic64(struct timespec64 *ts); extern void ktime_get_ts64(struct timespec64 *ts); @@ -66,6 +66,10 @@ static inline void getrawmonotonic(struct timespec *ts) getrawmonotonic64(ts); } +static inline struct timespec get_monotonic_coarse(void) +{ + return get_monotonic_coarse64(); +} #else /** * Deprecated. Use do_settimeofday64(). @@ -118,6 +122,11 @@ static inline void getrawmonotonic(struct timespec *ts) getrawmonotonic64(&ts64); *ts = timespec64_to_timespec(ts64); } + +static inline struct timespec get_monotonic_coarse(void) +{ + return timespec64_to_timespec(get_monotonic_coarse64()); +} #endif extern void getboottime(struct timespec *ts); diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 2e5f632122697b28d0dab007ab6e1ea3207f3a47..f45e5e29a16de481194f0d8327fde61dbe0e2c4a 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -1651,7 +1651,7 @@ struct timespec current_kernel_time(void) } EXPORT_SYMBOL(current_kernel_time); -struct timespec get_monotonic_coarse(void) +struct timespec64 get_monotonic_coarse64(void) { struct timekeeper *tk = &tk_core.timekeeper; struct timespec64 now, mono; @@ -1667,7 +1667,7 @@ struct timespec get_monotonic_coarse(void) set_normalized_timespec64(&now, now.tv_sec + mono.tv_sec, now.tv_nsec + mono.tv_nsec); - return timespec64_to_timespec(now); + return now; } /*