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.1 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, 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 669 invoked from network); 27 Dec 2020 18:57:13 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 27 Dec 2020 18:57:13 -0000 Received: (qmail 28172 invoked by uid 550); 27 Dec 2020 18:57:03 -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 6034 invoked from network); 27 Dec 2020 18:42:54 -0000 Date: Sun, 27 Dec 2020 18:42:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail; t=1609094562; bh=d37A90EEfZcPCHrIGBd/oMcwiwFm+wCEE1eAtbA47po=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From; b=HVAIoDDq4NO+8AAMRql8Is2MIXvYUURfctt5kK5PyrdKAxK1BD+F/xHOo19oVH278 aHfHlNMa7tYaQcHoMhFZzDsJbIRSIt4mJYfFHKfExT67uejT9KA30SE9L111DcU2qY R0dAJ6kTWQa+QvSR9Ru7VFpsVa7OhXGq9psqn61AEMlRaImfnkaJGdvJMyvpm2TKgu FDRAVfrkLq6Ylfnk/BfBrLl9fJ9Z14wXEZew4yud50Xg5hvOzm5E/gN3jwbw/pR7G6 cZ546LZ0jBRoMhqGu89s4Kx0d3d2Ac2ce9PSWr+2OzQRqb3IFMl1/enfKihOlGrkw6 ZZXeRFh8F0TVA== To: Rich Felker , musl@lists.openwall.com From: Alexander Lobakin Cc: Alexander Lobakin Message-ID: <20201227184032.22413-15-alobakin@pm.me> In-Reply-To: <20201227184032.22413-1-alobakin@pm.me> References: <20201227183842.22030-1-alobakin@pm.me> <20201227184032.22413-1-alobakin@pm.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: [musl] [PATCH 15/18] semtimedop: prefer time64 variant of semtimedop if available Instead of using time64 variant "only when needed", use it as a default and fallback to time32 only on -ENOSYS. Also use deprecated ipc syscall only as a last chance. Signed-off-by: Alexander Lobakin --- src/ipc/semtimedop.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/ipc/semtimedop.c b/src/ipc/semtimedop.c index 1632e7b03f38..703bf0cd6f4d 100644 --- a/src/ipc/semtimedop.c +++ b/src/ipc/semtimedop.c @@ -15,21 +15,21 @@ =20 int semtimedop(int id, struct sembuf *buf, size_t n, const struct timespec= *ts) { +=09int r =3D -ENOSYS; #ifdef SYS_semtimedop_time64 =09time_t s =3D ts ? ts->tv_sec : 0; =09long ns =3D ts ? ts->tv_nsec : 0; -=09int r =3D -ENOSYS; -=09if (NO_TIME32 || !IS32BIT(s)) -=09=09r =3D __syscall(SYS_semtimedop_time64, id, buf, n, -=09=09=09ts ? ((long long[]){s, ns}) : 0); +=09r =3D __syscall(SYS_semtimedop_time64, id, buf, n, +=09=09ts ? ((long long[]){s, ns}) : 0); =09if (NO_TIME32 || r!=3D-ENOSYS) return __syscall_ret(r); =09ts =3D ts ? (void *)(long[]){CLAMP(s), ns} : 0; #endif -#if defined(SYS_ipc) -=09return syscall(SYS_ipc, IPCOP_semtimedop, id, n, 0, buf, ts); -#elif defined(SYS_semtimedop) -=09return syscall(SYS_semtimedop, id, buf, n, ts); -#else -=09return __syscall_ret(-ENOSYS); +#ifdef SYS_semtimedop +=09r =3D __syscall(SYS_semtimedop, id, buf, n, ts); +#endif +#ifdef SYS_ipc +=09if (r =3D=3D -ENOSYS) +=09=09r =3D __syscall(SYS_ipc, IPCOP_semtimedop, id, n, 0, buf, ts); #endif +=09return __syscall_ret(r); } --=20 2.29.2