summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/kern/kern_time.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-08-22 14:59:50 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-09-21 10:29:41 +0200
commit3489e3b6396ee9944a6a2e19e675ca54c36993b4 (patch)
treecd55cfac1c96ff4b888a9606fd6a0d8eb65bb446 /freebsd/sys/kern/kern_time.c
parentck: Define CK_MD_PPC32_LWSYNC if available (diff)
downloadrtems-libbsd-3489e3b6396ee9944a6a2e19e675ca54c36993b4.tar.bz2
Update to FreeBSD head 2018-09-17
Git mirror commit 6c2192b1ef8c50788c751f878552526800b1e319. Update #3472.
Diffstat (limited to 'freebsd/sys/kern/kern_time.c')
-rw-r--r--freebsd/sys/kern/kern_time.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/freebsd/sys/kern/kern_time.c b/freebsd/sys/kern/kern_time.c
index a9c0547a..74b144cb 100644
--- a/freebsd/sys/kern/kern_time.c
+++ b/freebsd/sys/kern/kern_time.c
@@ -288,6 +288,8 @@ get_process_cputime(struct proc *targetp, struct timespec *ats)
PROC_STATLOCK(targetp);
rufetch(targetp, &ru);
runtime = targetp->p_rux.rux_runtime;
+ if (curthread->td_proc == targetp)
+ runtime += cpu_ticks() - PCPU_GET(switchtime);
PROC_STATUNLOCK(targetp);
cputick2timespec(runtime, ats);
}
@@ -1577,7 +1579,7 @@ realtimer_settime(struct itimer *it, int flags,
if ((flags & TIMER_ABSTIME) == 0) {
/* Convert to absolute time. */
timespecadd(&it->it_time.it_value, &cts,
- &it->it_time.it_value);
+ &it->it_time.it_value);
} else {
timespecsub(&ts, &cts, &ts);
/*