From dcaede2048b734187ca5c82b2e48cad4ce837c52 Mon Sep 17 00:00:00 2001 From: George Anzinger Date: Fri, 3 Feb 2006 03:04:20 -0800 Subject: [PATCH] --- yaml --- r: 19651 b: refs/heads/master c: 88fc3897e3219e63ae6e2d180a6c87d033ef9f3b h: refs/heads/master i: 19649: 484acdad88fd307cf53942fe8297d74640380292 19647: 83e5caee0c24a8cd3a8a072fb8e824f0a08f64be v: v3 --- [refs] | 2 +- trunk/kernel/time.c | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 44e44b023beb..89c19aa13a40 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 034b91a3b66cf9d2983ac45f73162395c0936c36 +refs/heads/master: 88fc3897e3219e63ae6e2d180a6c87d033ef9f3b diff --git a/trunk/kernel/time.c b/trunk/kernel/time.c index 1f23e683d6aa..804539165d8b 100644 --- a/trunk/kernel/time.c +++ b/trunk/kernel/time.c @@ -637,15 +637,16 @@ void set_normalized_timespec(struct timespec *ts, time_t sec, long nsec) * * Returns the timespec representation of the nsec parameter. */ -inline struct timespec ns_to_timespec(const nsec_t nsec) +struct timespec ns_to_timespec(const nsec_t nsec) { struct timespec ts; - if (nsec) - ts.tv_sec = div_long_long_rem_signed(nsec, NSEC_PER_SEC, - &ts.tv_nsec); - else - ts.tv_sec = ts.tv_nsec = 0; + if (!nsec) + return (struct timespec) {0, 0}; + + ts.tv_sec = div_long_long_rem_signed(nsec, NSEC_PER_SEC, &ts.tv_nsec); + if (unlikely(nsec < 0)) + set_normalized_timespec(&ts, ts.tv_sec, ts.tv_nsec); return ts; }