Skip to content

Commit

Permalink
timens: additional helper functions for boottime offset handling
Browse files Browse the repository at this point in the history
Provide functions for time_namespace to subtract the boottime offset
from a timespec64 as well as to apply the boottime offset to u64 types in
nanoseconds.

Signed-off-by: Michael Weiß <michael.weiss@aisec.fraunhofer.de>
Reviewed-by: Andrei Vagin <avagin@gmail.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
Link: https://lore.kernel.org/r/20201027204258.7869-2-michael.weiss@aisec.fraunhofer.de
  • Loading branch information
Michael Weiß authored and Christian Brauner committed Nov 3, 2020
1 parent 3cea11c commit 31909e3
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions include/linux/time_namespace.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,20 @@ static inline void timens_add_boottime(struct timespec64 *ts)
*ts = timespec64_add(*ts, ns_offsets->boottime);
}

static inline u64 timens_add_boottime_ns(u64 nsec)
{
struct timens_offsets *ns_offsets = &current->nsproxy->time_ns->offsets;

return nsec + timespec64_to_ns(&ns_offsets->boottime);
}

static inline void timens_sub_boottime(struct timespec64 *ts)
{
struct timens_offsets *ns_offsets = &current->nsproxy->time_ns->offsets;

*ts = timespec64_sub(*ts, ns_offsets->boottime);
}

ktime_t do_timens_ktime_to_host(clockid_t clockid, ktime_t tim,
struct timens_offsets *offsets);

Expand Down Expand Up @@ -130,6 +144,14 @@ static inline int timens_on_fork(struct nsproxy *nsproxy,

static inline void timens_add_monotonic(struct timespec64 *ts) { }
static inline void timens_add_boottime(struct timespec64 *ts) { }

static inline u64 timens_add_boottime_ns(u64 nsec)
{
return nsec;
}

static inline void timens_sub_boottime(struct timespec64 *ts) { }

static inline ktime_t timens_ktime_to_host(clockid_t clockid, ktime_t tim)
{
return tim;
Expand Down

0 comments on commit 31909e3

Please sign in to comment.