From cb9f36df5144d732d6cdb743e5585921d26910d0 Mon Sep 17 00:00:00 2001 From: purplerain Date: Sun, 20 Aug 2023 01:02:22 +0000 Subject: [PATCH] sync code with last improvements from OpenBSD --- bin/pax/tar.c | 11 ++++------- sys/kern/sched_bsd.c | 21 +++++++++------------ usr.bin/make/timestamp.h | 5 ++--- usr.sbin/makefs/walk.c | 12 +++++------- 4 files changed, 20 insertions(+), 29 deletions(-) diff --git a/bin/pax/tar.c b/bin/pax/tar.c index b47c96bf0..5876d5cee 100644 --- a/bin/pax/tar.c +++ b/bin/pax/tar.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tar.c,v 1.71 2023/06/26 18:00:59 millert Exp $ */ +/* $OpenBSD: tar.c,v 1.72 2023/08/19 04:21:05 guenther Exp $ */ /* $NetBSD: tar.c,v 1.5 1995/03/21 09:07:49 cgd Exp $ */ /*- @@ -414,8 +414,7 @@ tar_rd(ARCHD *arcn, char *buf) arcn->sb.st_mtime = MAX_TIME_T; else arcn->sb.st_mtime = val; - arcn->sb.st_ctime = arcn->sb.st_atime = arcn->sb.st_mtime; - arcn->sb.st_ctimensec = arcn->sb.st_atimensec = arcn->sb.st_mtimensec; + arcn->sb.st_ctim = arcn->sb.st_atim = arcn->sb.st_mtim; /* * have to look at the last character, it may be a '/' and that is used @@ -793,12 +792,10 @@ reset: arcn->sb.st_mtime = val; } if (arcn->sb.st_ctime == 0) { - arcn->sb.st_ctime = arcn->sb.st_mtime; - arcn->sb.st_ctimensec = arcn->sb.st_mtimensec; + arcn->sb.st_ctim = arcn->sb.st_mtim; } if (arcn->sb.st_atime == 0) { - arcn->sb.st_atime = arcn->sb.st_mtime; - arcn->sb.st_atimensec = arcn->sb.st_mtimensec; + arcn->sb.st_atim = arcn->sb.st_mtim; } /* diff --git a/sys/kern/sched_bsd.c b/sys/kern/sched_bsd.c index e06aa801d..f9f2b7d76 100644 --- a/sys/kern/sched_bsd.c +++ b/sys/kern/sched_bsd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sched_bsd.c,v 1.82 2023/08/18 09:18:52 claudio Exp $ */ +/* $OpenBSD: sched_bsd.c,v 1.83 2023/08/19 11:14:11 claudio Exp $ */ /* $NetBSD: kern_synch.c,v 1.37 1996/04/22 01:38:37 christos Exp $ */ /*- @@ -442,26 +442,23 @@ mi_switch(void) /* * We're running again; record our new start time. We might - * be running on a new CPU now, so don't use the cache'd - * schedstate_percpu pointer. + * be running on a new CPU now, so refetch the schedstate_percpu + * pointer. */ KASSERT(p->p_cpu == curcpu()); + spc = &p->p_cpu->ci_schedstate; /* Start any optional clock interrupts needed by the thread. */ if (ISSET(p->p_p->ps_flags, PS_ITIMER)) { - atomic_setbits_int(&p->p_cpu->ci_schedstate.spc_schedflags, - SPCF_ITIMER); - clockintr_advance(p->p_cpu->ci_schedstate.spc_itimer, - hardclock_period); + atomic_setbits_int(&spc->spc_schedflags, SPCF_ITIMER); + clockintr_advance(spc->spc_itimer, hardclock_period); } if (ISSET(p->p_p->ps_flags, PS_PROFIL)) { - atomic_setbits_int(&p->p_cpu->ci_schedstate.spc_schedflags, - SPCF_PROFCLOCK); - clockintr_advance(p->p_cpu->ci_schedstate.spc_profclock, - profclock_period); + atomic_setbits_int(&spc->spc_schedflags, SPCF_PROFCLOCK); + clockintr_advance(spc->spc_profclock, profclock_period); } - nanouptime(&p->p_cpu->ci_schedstate.spc_runtime); + nanouptime(&spc->spc_runtime); #ifdef MULTIPROCESSOR /* diff --git a/usr.bin/make/timestamp.h b/usr.bin/make/timestamp.h index d62f58316..2aa78e590 100644 --- a/usr.bin/make/timestamp.h +++ b/usr.bin/make/timestamp.h @@ -1,7 +1,7 @@ #ifndef TIMESTAMP_H #define TIMESTAMP_H -/* $OpenBSD: timestamp.h,v 1.10 2013/05/22 12:14:08 espie Exp $ */ +/* $OpenBSD: timestamp.h,v 1.11 2023/08/19 04:21:06 guenther Exp $ */ /* * Copyright (c) 2001 Marc Espie. @@ -51,8 +51,7 @@ #define ts_set_from_stat(s, t) \ do { \ - (t).tv_sec = (s).st_mtime; \ - (t).tv_nsec = (s).st_mtimensec; \ + (t) = (s).st_mtim; \ if (is_out_of_date(t)) \ (t).tv_nsec++; \ } while (0) diff --git a/usr.sbin/makefs/walk.c b/usr.sbin/makefs/walk.c index 1270f1af6..fa564b00c 100644 --- a/usr.sbin/makefs/walk.c +++ b/usr.sbin/makefs/walk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: walk.c,v 1.11 2022/01/11 05:34:32 jsg Exp $ */ +/* $OpenBSD: walk.c,v 1.12 2023/08/19 04:21:06 guenther Exp $ */ /* $NetBSD: walk.c,v 1.29 2015/11/25 00:48:49 christos Exp $ */ /* @@ -205,12 +205,10 @@ create_fsnode(const char *root, const char *path, const char *name, cur->inode->nlink = 1; cur->inode->st = *stbuf; if (Tflag) { - cur->inode->st.st_atime = stampts; - cur->inode->st.st_mtime = stampts; - cur->inode->st.st_ctime = stampts; - cur->inode->st.st_atimensec = 0; - cur->inode->st.st_mtimensec = 0; - cur->inode->st.st_ctimensec = 0; + cur->inode->st.st_atim.tv_sec = stampts; + cur->inode->st.st_atim.tv_nsec = 0; + cur->inode->st.st_mtim = cur->inode->st.st_ctim = + cur->inode->st.st_atim; } return (cur); }