From nobody Wed Dec 14 14:51:55 2022 X-Original-To: dev-commits-src-main@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 4NXJGz3wzrz4kmsc; Wed, 14 Dec 2022 14:51:55 +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 4NXJGz3VNdz4b5B; Wed, 14 Dec 2022 14:51:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1671029515; 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=P7IXHO/LwC5lgNG5wmAI4Vu1yAimKY9FEiUIxWpY95g=; b=inaC1LdNGQxH3R0TX5ADGoZ0bqW4PUGTzsMkGQ7kSUTVlfCShIHCaGekVI7yktyNaPfrcF uyQisGujzPoFYQ6FbL72koFahrSlDjCNHMnm6iWWHs0KcXuVtHXFKRXruf4QkUDIuHowUW CnyIToE0nc4bQvOi5mLOLlXZriGPDuBOInNJJBdH5UNlX4oALuNoVJYXTO1MJmyI5Ji729 my+oOsO3YF/kA1dVQKjlqCId3PFeu3BMWg3YAKHiHy+SL0BbiegonhGVDKwbkS0RnYk0gR /nk4SETz5HOHwazN6KEtG94tyTQvwNbTfolFN03TgJHte9dkA+wOEeAMGCoM3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1671029515; 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=P7IXHO/LwC5lgNG5wmAI4Vu1yAimKY9FEiUIxWpY95g=; b=qUSulX4UNf+1dCfydSuFpE9uNm1vKC7kuOB3bQNLLIoEd58p6ADKgNA+rDWioTSwCGJO/m qhjx+ZvrC8xbop8Zu1svrriyoKEiZN53GWePGfVA3dctLOh31kDT5Sl0npM2T8uZhziRLG cqa0h0UfqjmBWW3IYbBQlL0PVOBU6fWjV/uqZ0g2OO6opl7X51MLa/Yigt4t2fzAt4ATRJ iucLSWXwyBVx540x90jSKfiiMHrcKZtvzMuyIZKDm+LRu9qjs8gLlygGXLDRtDkI2APooE vFKG+vFze0CY4B12dSDl9Ib6dM6sIHxkidp67eXGkQCN2gX0ROj1pZjz1nD4kw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1671029515; a=rsa-sha256; cv=none; b=J6P1RBCSX5h5OUCaY1GyrEuE0JkNhG3McELN/ySuogbZ9+4HQOaQVDlAsZPbBTApKlzpiu S55xnTbvuVlXo8EqspUyu1uzkCtBZXjOuvRTpF7t/pD3HnE1i8/Kt3r94DOx0e3PxjwcI1 YKp2pNXXnOQeykwqeMbdaWB8Lod7Z+qWjuiYSuALwABaOfduLAxZnj69RY6xENUkCh5/O+ IlxkFajrqtoduoYP0a6FsGWINBVIrIKbP5Fn7tiIDrAChqr3wJkZ3rEsUU+WMi06BV5yfx LQgkz3kahz+RXqVUvLFsDy/JqyB7Qx9jQqQNoQu+2yzfJ/PRhZ3naY+b+rQKVw== 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 4NXJGz2XrRzxKt; Wed, 14 Dec 2022 14:51:55 +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 2BEEptYH018878; Wed, 14 Dec 2022 14:51:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 2BEEptcH018877; Wed, 14 Dec 2022 14:51:55 GMT (envelope-from git) Date: Wed, 14 Dec 2022 14:51:55 GMT Message-Id: <202212141451.2BEEptcH018877@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 57cc96f49e1f - main - pf: Fix definitions of pf_pfil_*_hooked List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 57cc96f49e1fd49602f12f6b58bddb5112d4e0bc Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=57cc96f49e1fd49602f12f6b58bddb5112d4e0bc commit 57cc96f49e1fd49602f12f6b58bddb5112d4e0bc Author: Mark Johnston AuthorDate: 2022-12-14 14:29:59 +0000 Commit: Mark Johnston CommitDate: 2022-12-14 14:29:59 +0000 pf: Fix definitions of pf_pfil_*_hooked This use of "volatile" in the vnet definitions doesn't have any effect. VNET_DEFINE_STATE(volatile int, ...) should work, but let's avoid using "volatile" altogether and convert to atomic_load/atomic_store. Also convert to bool while here. Reviewed by: kp, mjg MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D37684 --- sys/netpfil/pf/pf_ioctl.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/sys/netpfil/pf/pf_ioctl.c b/sys/netpfil/pf/pf_ioctl.c index 5f702f08929e..ae53e40d66b6 100644 --- a/sys/netpfil/pf/pf_ioctl.c +++ b/sys/netpfil/pf/pf_ioctl.c @@ -260,9 +260,9 @@ static struct cdevsw pf_cdevsw = { .d_version = D_VERSION, }; -volatile VNET_DEFINE_STATIC(int, pf_pfil_hooked); +VNET_DEFINE_STATIC(bool, pf_pfil_hooked); #define V_pf_pfil_hooked VNET(pf_pfil_hooked) -volatile VNET_DEFINE_STATIC(int, pf_pfil_eth_hooked); +VNET_DEFINE_STATIC(bool, pf_pfil_eth_hooked); #define V_pf_pfil_eth_hooked VNET(pf_pfil_eth_hooked) /* @@ -383,8 +383,8 @@ pfattach_vnet(void) bzero(&V_pf_status, sizeof(V_pf_status)); V_pf_status.debug = PF_DEBUG_URGENT; - V_pf_pfil_hooked = 0; - V_pf_pfil_eth_hooked = 0; + V_pf_pfil_hooked = false; + V_pf_pfil_eth_hooked = false; /* XXX do our best to avoid a conflict */ V_pf_status.hostid = arc4random(); @@ -6534,7 +6534,7 @@ hook_pf_eth(void) struct pfil_link_args pla; int ret __diagused; - if (V_pf_pfil_eth_hooked) + if (atomic_load_bool(&V_pf_pfil_eth_hooked)) return; pha.pa_version = PFIL_VERSION; @@ -6563,7 +6563,7 @@ hook_pf_eth(void) ret = pfil_link(&pla); MPASS(ret == 0); - V_pf_pfil_eth_hooked = 1; + atomic_store_bool(&V_pf_pfil_eth_hooked, true); } static void @@ -6573,7 +6573,7 @@ hook_pf(void) struct pfil_link_args pla; int ret __diagused; - if (V_pf_pfil_hooked) + if (atomic_load_bool(&V_pf_pfil_hooked)) return; pha.pa_version = PFIL_VERSION; @@ -6625,27 +6625,27 @@ hook_pf(void) MPASS(ret == 0); #endif - V_pf_pfil_hooked = 1; + atomic_store_bool(&V_pf_pfil_hooked, true); } static void dehook_pf_eth(void) { - if (V_pf_pfil_eth_hooked == 0) + if (!atomic_load_bool(&V_pf_pfil_eth_hooked)) return; pfil_remove_hook(V_pf_eth_in_hook); pfil_remove_hook(V_pf_eth_out_hook); - V_pf_pfil_eth_hooked = 0; + atomic_store_bool(&V_pf_pfil_eth_hooked, false); } static void dehook_pf(void) { - if (V_pf_pfil_hooked == 0) + if (!atomic_load_bool(&V_pf_pfil_hooked)) return; #ifdef INET @@ -6657,7 +6657,7 @@ dehook_pf(void) pfil_remove_hook(V_pf_ip6_out_hook); #endif - V_pf_pfil_hooked = 0; + atomic_store_bool(&V_pf_pfil_hooked, false); } static void