From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 22738 invoked from network); 27 Dec 2020 21:57:50 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 27 Dec 2020 21:57:50 -0000 Received: (qmail 31781 invoked by uid 550); 27 Dec 2020 21:57:47 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 31760 invoked from network); 27 Dec 2020 21:57:47 -0000 Date: Sun, 27 Dec 2020 16:57:34 -0500 From: Rich Felker To: Alexander Lobakin Cc: musl@lists.openwall.com Message-ID: <20201227215734.GC22981@brightrain.aerifal.cx> References: <20201227183842.22030-1-alobakin@pm.me> <20201227184032.22413-1-alobakin@pm.me> <20201227184032.22413-3-alobakin@pm.me> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20201227184032.22413-3-alobakin@pm.me> User-Agent: Mutt/1.5.21 (2010-09-15) Subject: Re: [musl] [PATCH 03/18] clock_adjtime: try adjtimex at last On Sun, Dec 27, 2020 at 06:41:02PM +0000, Alexander Lobakin wrote: > Try to use deprecated adjtimex only after clock_adjtime_time64 or > clock_adjtime fail with -ENOSYS. > > Signed-off-by: Alexander Lobakin > --- > src/linux/clock_adjtime.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/src/linux/clock_adjtime.c b/src/linux/clock_adjtime.c > index d4d03d24df40..5a21d5625e59 100644 > --- a/src/linux/clock_adjtime.c > +++ b/src/linux/clock_adjtime.c > @@ -114,11 +114,11 @@ int clock_adjtime (clockid_t clock_id, struct timex *utx) > .stbcnt = utx->stbcnt, > .tai = utx->tai, > }; > + r = __syscall(SYS_clock_adjtime, clock_id, &ktx); > #ifdef SYS_adjtimex > - if (clock_id==CLOCK_REALTIME) r = __syscall(SYS_adjtimex, &ktx); > - else > + if (r == -ENOSYS && clock_id == CLOCK_REALTIME) > + r = __syscall(SYS_adjtimex, &ktx); > #endif > - r = __syscall(SYS_clock_adjtime, clock_id, &ktx); > if (r>=0) { > utx->modes = ktx.modes; > utx->offset = ktx.offset; > @@ -144,8 +144,10 @@ int clock_adjtime (clockid_t clock_id, struct timex *utx) > } > return __syscall_ret(r); > } > + r = __syscall(SYS_clock_adjtime, clock_id, utx); > #ifdef SYS_adjtimex > - if (clock_id==CLOCK_REALTIME) return syscall(SYS_adjtimex, utx); > + if (r == -ENOSYS && clock_id == CLOCK_REALTIME) > + r = __syscall(SYS_adjtimex, utx); > #endif > - return syscall(SYS_clock_adjtime, clock_id, utx); > + return __syscall_ret(r); > } > -- > 2.29.2 > This proposed change seems to have nothing to do with supporting CONFIG_COMPAT_32BIT_TIME=n and makes fallback behavior strictly worse for old kernels. Rich