From nobody Mon Mar 27 08:16:37 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 4PlQdL15mrz41x3W; Mon, 27 Mar 2023 08:16:38 +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 4PlQdL0NnPz4BLB; Mon, 27 Mar 2023 08:16:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1679904998; 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=HD9U6glx42uODfaNXWWT4CVJt7WQHkvzQl0WC+dKwl8=; b=hXzplmuBUSRp3JBoa5eHUYRDUsRxF9J0Rzbl2n4wuQcbiSZUAaBU9RyjlzG/AsvnfR2FcZ 2U5aeABXqfWPjMk1aMamaBhmJ+qA/Er0jcIw5cAt00/v/0AzlbHgPXFtV3naSY8dUTFwMJ 45+vtpqLQNQe5WQAsxHDxIAqWnmPcaR2d8lCsifCxQ+bwKP5oNlMZgZSzOpVjgc6OxhrCU DQuOlKJFCfOihXvWWRVdd3QbYn2YjZrXzNqkotnTdQAF+Cqh0++lx7P4fi12xcB4PdUlpy CCUGQfGwifAr82OPwDutqfck+ilF7jhJsxgAeiPC0BEd4z/tgkwfK6FtFSq7KQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1679904998; 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=HD9U6glx42uODfaNXWWT4CVJt7WQHkvzQl0WC+dKwl8=; b=bIiORJxVmz1PrL/aF0CzHnNh7NLTsFgJb+eyJ35A+4VQ8GXNP+A+okXaYFoo8yiFGrsX6i agGvQfWPgtqmr6jhreRYFowGBxYdZHNFQ0F1EPuK1E+2JwExhu4FRPkTm5u+7cxWzgTHr4 lNtUvYrDCz9bxAYMOuKLPj1T4Ou5P1XhViqe6tIct94hNw4AljL4OzDSYije9qLJZzCUpC htdIscuuk8WjwoBDSUlZuJe46iGqlCzmuZDEeXaXmcNn8hH2rN65Q6ovUmCAAHWNfADBmM /ig1nq1LhkwVY5ARg9dXnfVdEHRIgJ4Mns52Anj2cw0ZX3hMUvKK7MioVJB0ug== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1679904998; a=rsa-sha256; cv=none; b=X7IDz1VyP/wtXwJ+OmUhxqO93g9ri4wBdlntKgYhmHdmJVW3FmenZaXadTJgkK6nhJBzqU tkDFHWt+smFq//oxGV37QDA2K6ebydOwU75cAa39UVVXLd6qo5IZJU1oB4GvlJDpvzkUAi vXwmHgUIkEsTgonHuL8v6HxBi95NVOuG/gYs/d3nb3rgKD/KRocmDiPyp0v4t4u0aQYiw0 zOC8qR+GT8CJM5Iw5UR1ihel9yKeevj82vF5AL/dtwSyQoWPz+JyGGzl9oQ07djja4lNFg H9MZpXqaSKl47SLg7A4P8jFb5xDcfvbL55IoIwBC3DJxVdiAM8TCZF38z4OoFQ== 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 4PlQdK6c5FzFQY; Mon, 27 Mar 2023 08:16:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 32R8Gbvo045638; Mon, 27 Mar 2023 08:16:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 32R8GbQk045637; Mon, 27 Mar 2023 08:16:37 GMT (envelope-from git) Date: Mon, 27 Mar 2023 08:16:37 GMT Message-Id: <202303270816.32R8GbQk045637@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 3eb2341caaa3 - stable/13 - pfsync: add missing unlock in pfsync_defer_tmo() 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: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3eb2341caaa307a8d067333c8aebe3e269ade2fd Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=3eb2341caaa307a8d067333c8aebe3e269ade2fd commit 3eb2341caaa307a8d067333c8aebe3e269ade2fd Author: Kristof Provost AuthorDate: 2023-03-20 13:26:33 +0000 Commit: Kristof Provost CommitDate: 2023-03-27 08:16:03 +0000 pfsync: add missing unlock in pfsync_defer_tmo() The callout for pfsync_defer_tmo() is created with CALLOUT_RETURNUNLOCKED, because while the callout framework takes care of taking the lock we want to run a few operations outside of the lock, so we unlock ourselves. However, if `sc->sc_sync_if == NULL` we return without releasing the lock, and leak the lock, causing later deadlocks. Ensure we always release the bucket lock when we exit pfsync_defer_tmo() PR: 268246 MFC after: 1 week Sponsored by: Rubicon Communications, LLC (Netgate) (cherry picked from commit 844ad2828a35c434b893af4274b1f6c50332dd70) --- sys/netpfil/pf/if_pfsync.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/netpfil/pf/if_pfsync.c b/sys/netpfil/pf/if_pfsync.c index 3b3d263fcf8b..0a8ece621006 100644 --- a/sys/netpfil/pf/if_pfsync.c +++ b/sys/netpfil/pf/if_pfsync.c @@ -1830,8 +1830,10 @@ pfsync_defer_tmo(void *arg) PFSYNC_BUCKET_LOCK_ASSERT(b); - if (sc->sc_sync_if == NULL) + if (sc->sc_sync_if == NULL) { + PFSYNC_BUCKET_UNLOCK(b); return; + } NET_EPOCH_ENTER(et); CURVNET_SET(sc->sc_sync_if->if_vnet);