From nobody Sun Sep 17 14:42:21 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RpVy60nw9z4sxQP; Sun, 17 Sep 2023 14:42:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RpVy60Km8z3f62; Sun, 17 Sep 2023 14:42:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694961742; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lwyraH1mMSr/snEhWIs8IPtN00brjkXIlVwnDdf1kgw=; b=BE9BgjxG6wCWEAYfW4oqKYWckxA/10Nlzb6FQoiUPlJlL0TYl+6z6gdanHVKBkHS+H3rxp z1gVAGjBZCkfBlV2YtR+ebwfG/uvJ9D7yVFEvHpbZSDlfBYVxzHmCs1DZFr0O+18laclSP AvHJEIEkesz46hdbdvuiXO/pdgA1hDYwk/DHx9M9a7jK6PRdmKrnHz+sdI6iI8HCvlp7EW MGFl99Vta/FDWzlDq99Bk0sYLeEAGX5CTMhR3A7lfBXVUcy5FvoIKoEEB/Ih7WlvCbLHt7 8bqUmxsKlU80OZNpnWAjkrDc194qByIegpoPC95WywyoVwV2r0Bqz2gDVNd+Lw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694961742; a=rsa-sha256; cv=none; b=FAnfwDGJ5vIC7gX0p+SNhn0J13GNlUScjlnqIzGy+5M1hG5U8r6to/2QLlvRRea6A8RYL7 PCgID0F5Mb5vh8kpjbSJOcqeH6km02XP2WVlJiXvdi2kZFoOOMHeEJlRUQQoSPFNesJM8U 0ODIiW39AhvjnRSKwHduiGYA7Fy2yEWjc3BLL95oiGRFqYhWPbQrRKR0t2lBqrkx+elzIR HKlJ4KNX4ivJzVFa0+qRLbCfEdHT8osywxnVUXI1RhtICpx8l87BnlGi5pzxwVS29UqL1R SponHBFBP+dt1juwExSBk1Rc3mU9UqGQSAqTMGzVQdALhTolnsjA6t+s6+4QVA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694961742; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lwyraH1mMSr/snEhWIs8IPtN00brjkXIlVwnDdf1kgw=; b=Gs4f3SwX92G8psJU6vQW1dT0+2LkKiuMsKYaOaixabv31k4CXdzIu2JmR/g24OPK9Ml1d6 upzecYBAUFR1G04nM9yx1WrMqfvSN3CSYFhz4ECfP+O6DowV86192CuJwo5O201wVYhfVu Gre3Sm/ba50lljkkqPJpekCDQ+qzOhyQcznpNFlDiuTxFGK2SjOddG8YdXEISS05BTJpqk rx73z5yggAc7Lu581N4CMHnPeRPVcMU6Cva171+5moZEMxPIdNo2PdLT0tNa1754MSgujB 6zbKLTJUxmBVysv22KZoxfU6MOuRHpngZFL2F/Y7+APv87WIKJY2D2fT+fYYMQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RpVy56L3Nzrrs; Sun, 17 Sep 2023 14:42:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38HEgLm7036380; Sun, 17 Sep 2023 14:42:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38HEgLdI036377; Sun, 17 Sep 2023 14:42:21 GMT (envelope-from git) Date: Sun, 17 Sep 2023 14:42:21 GMT Message-Id: <202309171442.38HEgLdI036377@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: fc0c24482f11 - stable/14 - timerfd: compute fflags before calling falloc List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: fc0c24482f11c403480c5219810a27d8591a8fb6 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=fc0c24482f11c403480c5219810a27d8591a8fb6 commit fc0c24482f11c403480c5219810a27d8591a8fb6 Author: Mateusz Guzik AuthorDate: 2023-08-25 15:09:21 +0000 Commit: Warner Losh CommitDate: 2023-09-17 14:34:40 +0000 timerfd: compute fflags before calling falloc While here dodge list locking in timerfd_adjust if empty. (cherry picked from commit 5eab523053db79b4bd4f926c7d7ac04444d9c1da) Approved by: re (cperciva@) --- sys/kern/sys_timerfd.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/sys/kern/sys_timerfd.c b/sys/kern/sys_timerfd.c index 2bf2a05c443c..c8b45a926b02 100644 --- a/sys/kern/sys_timerfd.c +++ b/sys/kern/sys_timerfd.c @@ -129,6 +129,9 @@ timerfd_jumped(void) struct timerfd *tfd; struct timespec boottime, diff; + if (LIST_EMPTY(&timerfd_list)) + return; + timerfd_getboottime(&boottime); sx_xlock(&timerfd_list_lock); LIST_FOREACH(tfd, &timerfd_list, entry) { @@ -418,7 +421,7 @@ kern_timerfd_create(struct thread *td, int clockid, int flags) { struct file *fp; struct timerfd *tfd; - int error, fd, fflags = 0; + int error, fd, fflags; AUDIT_ARG_VALUE(clockid); AUDIT_ARG_FFLAGS(flags); @@ -427,8 +430,12 @@ kern_timerfd_create(struct thread *td, int clockid, int flags) return (EINVAL); if ((flags & ~(TFD_CLOEXEC | TFD_NONBLOCK)) != 0) return (EINVAL); + + fflags = FREAD; if ((flags & TFD_CLOEXEC) != 0) fflags |= O_CLOEXEC; + if ((flags & TFD_NONBLOCK) != 0) + fflags |= FNONBLOCK; error = falloc(td, &fp, &fd, fflags); if (error != 0) @@ -447,9 +454,6 @@ kern_timerfd_create(struct thread *td, int clockid, int flags) LIST_INSERT_HEAD(&timerfd_list, tfd, entry); sx_xunlock(&timerfd_list_lock); - fflags = FREAD; - if ((flags & TFD_NONBLOCK) != 0) - fflags |= FNONBLOCK; finit(fp, fflags, DTYPE_TIMERFD, tfd, &timerfdops); fdrop(fp, td);