From patchwork Mon Mar 25 17:37:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 13602586 X-Patchwork-Delegate: kuba@kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C6A4745976 for ; Mon, 25 Mar 2024 17:37:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711388239; cv=none; b=h5rdozfaZqTmqPchoz/SymfQpXDEIdsMoQxlXSFUIlBFwzF8niCiDuo75C6qo2W8iEVsBaS7lUAwIRXGw77tU0qMk0ch23Gy2o8XNUEPzK5cV7Xrchhx/DJjB8J7KUgf8+P0yHwM/fUUSBymcdGoWwCySpmw23b5Av42YwYI8Kg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711388239; c=relaxed/simple; bh=71/3YUKHSYP3wNa970mRxUmp9Wfm8Z0TR5LXphIqR0o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=D8LkoeyHQ+jQuT00h5eVs2BjeIZThOTwxytxJO7b4mJvkP/nbJvYC9QlyGd7uJ6gqvqJkI6NaAwP3An3Rl/YeV9oN1uqSAMJKv51b2TYM2l3khuOpCEOlz7gPyNOhdQyTwCLFmJj2ZH1jtdc5WUUXVpFW62U3tQB3Tst3uASz1w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HgvUnkQj; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HgvUnkQj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 27211C43394; Mon, 25 Mar 2024 17:37:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711388239; bh=71/3YUKHSYP3wNa970mRxUmp9Wfm8Z0TR5LXphIqR0o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HgvUnkQjUq9Mx0l9wwDd9bMLbq1lH4MsH6MGBy4drxnLXDVX6MH60N3I1GttgWcpv jvPhZ/L3dWw8SzqPZOfdkXuIevBFLKnbtyi1tnWtuJybPbDcSKImpFNXWlqJ+9qoi3 JsMe4S4w1WlQymfdIPqq9fgGgCxrF84uVPhu91wAzCPgNTzeSN0hm67+yuH178JUYe MUVqVTN4gDR9liJrLT4KebFdwtsvgKDEfC1AsiRhxZ4kdaeq8TRH0bYEwk0aQV9gfq ohJ0RBeb+Ytfabrzy1uqTfzNn37Atht1itWMWuiVNu+G9z+w23HYBJWTUda15KsF/r hVXu6GGeuxXyA== From: Jakub Kicinski To: davem@davemloft.net Cc: netdev@vger.kernel.org, edumazet@google.com, pabeni@redhat.com, dw@davidwei.uk, jiri@resnulli.us, andriy.shevchenko@linux.intel.com, Jakub Kicinski , kuniyu@amazon.com Subject: [PATCH net-next v2 1/3] netlink: create a new header for internal genetlink symbols Date: Mon, 25 Mar 2024 10:37:14 -0700 Message-ID: <20240325173716.2390605-2-kuba@kernel.org> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240325173716.2390605-1-kuba@kernel.org> References: <20240325173716.2390605-1-kuba@kernel.org> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org There are things in linux/genetlink.h which are only used under net/netlink/. Move them to a new local header. A new header with just 2 externs isn't great, but alternative would be to include af_netlink.h in genetlink.c which feels even worse. Signed-off-by: Jakub Kicinski --- CC: kuniyu@amazon.com CC: jiri@resnulli.us --- include/linux/genetlink.h | 5 ----- net/netlink/af_netlink.c | 2 +- net/netlink/genetlink.c | 2 ++ net/netlink/genetlink.h | 11 +++++++++++ 4 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 net/netlink/genetlink.h diff --git a/include/linux/genetlink.h b/include/linux/genetlink.h index c285968e437a..9dbd7ba9b858 100644 --- a/include/linux/genetlink.h +++ b/include/linux/genetlink.h @@ -4,15 +4,10 @@ #include - /* All generic netlink requests are serialized by a global lock. */ extern void genl_lock(void); extern void genl_unlock(void); -/* for synchronisation between af_netlink and genetlink */ -extern atomic_t genl_sk_destructing_cnt; -extern wait_queue_head_t genl_sk_destructing_waitq; - #define MODULE_ALIAS_GENL_FAMILY(family)\ MODULE_ALIAS_NET_PF_PROTO_NAME(PF_NETLINK, NETLINK_GENERIC, "-family-" family) diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index 7554803218a2..dc8c3c01d51b 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c @@ -59,7 +59,6 @@ #include #include #include -#include #include #include #include @@ -73,6 +72,7 @@ #include #include "af_netlink.h" +#include "genetlink.h" struct listeners { struct rcu_head rcu; diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c index 3b7666944b11..feb54c63a116 100644 --- a/net/netlink/genetlink.c +++ b/net/netlink/genetlink.c @@ -22,6 +22,8 @@ #include #include +#include "genetlink.h" + static DEFINE_MUTEX(genl_mutex); /* serialization of message processing */ static DECLARE_RWSEM(cb_lock); diff --git a/net/netlink/genetlink.h b/net/netlink/genetlink.h new file mode 100644 index 000000000000..89bd9d2631c3 --- /dev/null +++ b/net/netlink/genetlink.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __NET_GENETLINK_H +#define __NET_GENETLINK_H + +#include + +/* for synchronisation between af_netlink and genetlink */ +extern atomic_t genl_sk_destructing_cnt; +extern wait_queue_head_t genl_sk_destructing_waitq; + +#endif /* __LINUX_GENERIC_NETLINK_H */ From patchwork Mon Mar 25 17:37:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 13602587 X-Patchwork-Delegate: kuba@kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7219D55761 for ; Mon, 25 Mar 2024 17:37:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711388240; cv=none; b=HgK1c/uPMGZzDCucLeTGE0fIaksEpGP096cTre6dRTsC5Li234aeYd6WbGmynIw58oCSsiguuq3TuH25k/oLgNITT7EYHH9JICww8diypQ7NVNgeA+ULtUT43h9DI2Pywehez+6f5pfTDTJnRSPVGT3lU8H463qHawa1ehxI370= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711388240; c=relaxed/simple; bh=QqQarZgY15uMZOOjoxFPSgU1BYh2Tq32Aw0DEWAre6Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FzyEEgwNhukbmjpMR8soi+ZK24BJMV7ctvVPaKE+AJRfVA+yZzg9qOFER7zeYr7debZKTSwDB6CA16JluRiSf/QJyCiLrz8ytuB1m5N/6E+wGwogzAnjOA+44f18VqTEIiDWuj3p98tvFlxAwzY87Qngr+khk/3jGytMFGsI63k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MerxlVmB; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MerxlVmB" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9B2D9C43399; Mon, 25 Mar 2024 17:37:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711388240; bh=QqQarZgY15uMZOOjoxFPSgU1BYh2Tq32Aw0DEWAre6Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MerxlVmBZ8cYUqitl1hpf9nL1diqA67y/j5uM3lwFc4h6QKZ1LPVO2YZNlPi+FJA0 JVMVG531n47GZ3+o9MaolopnOF+45NVurAPwRn4hkmZp0OROgy0wvafy7k+LD2dRpn Io4zr6A22hmN2roEPrfdVREeZWiYy9VV8zwntxseYJXpMh1d8IC2j/Col0AJBV1MAn OO3/Wo1lsyeeJGBszC2ALJjbvHMO0cZKtLxZa6M2LhhgV5CzlcEqtJhxTO9CvLvCu6 7hLGojnlb756o1EV7ULHF46JwLP0ovoYCddt/B+D5WZRfJlsN4vcNpNYlEDsx6wQ1P KCrm5621SIjbQ== From: Jakub Kicinski To: davem@davemloft.net Cc: netdev@vger.kernel.org, edumazet@google.com, pabeni@redhat.com, dw@davidwei.uk, jiri@resnulli.us, andriy.shevchenko@linux.intel.com, Jakub Kicinski , pshelar@ovn.org, dev@openvswitch.org Subject: [PATCH net-next v2 2/3] net: openvswitch: remove unnecessary linux/genetlink.h include Date: Mon, 25 Mar 2024 10:37:15 -0700 Message-ID: <20240325173716.2390605-3-kuba@kernel.org> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240325173716.2390605-1-kuba@kernel.org> References: <20240325173716.2390605-1-kuba@kernel.org> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org The only legit reason I could think of for net/genetlink.h and linux/genetlink.h to be separate would be if one was included by other headers and we wanted to keep it lightweight. That is not the case, net/openvswitch/meter.h includes linux/genetlink.h but for no apparent reason (for struct genl_family perhaps? it's not necessary, types of externs do not need to be known). Signed-off-by: Jakub Kicinski --- CC: pshelar@ovn.org CC: dev@openvswitch.org --- net/openvswitch/meter.h | 1 - 1 file changed, 1 deletion(-) diff --git a/net/openvswitch/meter.h b/net/openvswitch/meter.h index ed11cd12b512..8bbf983cd244 100644 --- a/net/openvswitch/meter.h +++ b/net/openvswitch/meter.h @@ -11,7 +11,6 @@ #include #include #include -#include #include #include From patchwork Mon Mar 25 17:37:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 13602588 X-Patchwork-Delegate: kuba@kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CC4C3D272 for ; Mon, 25 Mar 2024 17:37:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711388240; cv=none; b=PDThPo5RGj4cWPXrB5rK60GkEM2FwOeAuJJ1Gjq7PW/s7pC68wjRaQdzWdXSey5uHh+cOvaxtJgrvm/IU8wusflOJG6C6U9MBuiT8h1FRzvOrP/4U8k0mJKf8eSncAluKR8rnAHgWuvFXc8sh5Gi+LUwxTCb4CLZ+7YM1+L0Shw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711388240; c=relaxed/simple; bh=zToG1hFCeQB1XgiB0v2xJ0mvYREmFeQmr+zThIKsi+w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HTbiJBDL65X+qHzh3BV97dG/C6njiUqu9qLm1alfK4yqHZFdh1fbx6hCvDe9GwPZPMEkLn8TODs7T2OVHLsBvBJPkY0pM8Me6nZ+LpR4Y95HpF8Osfjqo3b5D5/1JaLS3dTp8MGFZpRtyK4YoKy7kTIoChiojyPrJXQELK5ZQds= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Oar/HiK5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Oar/HiK5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 288C2C433C7; Mon, 25 Mar 2024 17:37:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711388240; bh=zToG1hFCeQB1XgiB0v2xJ0mvYREmFeQmr+zThIKsi+w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Oar/HiK5RbSKemfSl3gFGSQeldZEfPqq5jFV289bSoyGqBwivqrQDpiV8V4WL6ZH5 5FZOkP1xUUMUwS7FG56uWNGyuaLE4A3cc7IILcMRxy1W119avRd/AM6GguHQIzTuaw Uov7t9OuD60fdqtODQ0xEwryZzQDsRmzPHUTxGRQhATj7vFf97m18i298zHVGwc1cm jQtcLb2J/RGryhhIox43Tnk4Y3qFDK81WF81UavGHFkqRL8nG9oJ8xDywF7FHmo95E 9QdMrsvh/d8+7WgOaST6eP6u2QOW4fSmRPqvkOL8LrMrr4CB2qdhG8ZMwJyERxilF9 qhVDrnNy1R0VQ== From: Jakub Kicinski To: davem@davemloft.net Cc: netdev@vger.kernel.org, edumazet@google.com, pabeni@redhat.com, dw@davidwei.uk, jiri@resnulli.us, andriy.shevchenko@linux.intel.com, Jakub Kicinski , Sven Eckelmann , Jason@zx2c4.com, mareklindner@neomailbox.ch, sw@simonwunderlich.de, a@unstable.cc, pshelar@ovn.org, wireguard@lists.zx2c4.com, dev@openvswitch.org Subject: [PATCH net-next v2 3/3] genetlink: remove linux/genetlink.h Date: Mon, 25 Mar 2024 10:37:16 -0700 Message-ID: <20240325173716.2390605-4-kuba@kernel.org> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240325173716.2390605-1-kuba@kernel.org> References: <20240325173716.2390605-1-kuba@kernel.org> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org genetlink.h is a shell of what used to be a combined uAPI and kernel header over a decade ago. It has fewer than 10 lines of code. Merge it into net/genetlink.h. In some ways it'd be better to keep the combined header under linux/ but it would make looking through git history harder. Acked-by: Sven Eckelmann Signed-off-by: Jakub Kicinski --- v2: - remove extern - include linux/net.h - improve the comment, not "all" requests are serialized CC: Jason@zx2c4.com CC: mareklindner@neomailbox.ch CC: sw@simonwunderlich.de CC: a@unstable.cc CC: pshelar@ovn.org CC: andriy.shevchenko@linux.intel.com CC: wireguard@lists.zx2c4.com CC: dev@openvswitch.org --- drivers/net/wireguard/main.c | 2 +- include/linux/genetlink.h | 14 -------------- include/linux/genl_magic_struct.h | 2 +- include/net/genetlink.h | 10 +++++++++- net/batman-adv/main.c | 2 +- net/batman-adv/netlink.c | 1 - net/openvswitch/datapath.c | 1 - 7 files changed, 12 insertions(+), 20 deletions(-) delete mode 100644 include/linux/genetlink.h diff --git a/drivers/net/wireguard/main.c b/drivers/net/wireguard/main.c index ee4da9ab8013..a00671b58701 100644 --- a/drivers/net/wireguard/main.c +++ b/drivers/net/wireguard/main.c @@ -14,7 +14,7 @@ #include #include -#include +#include #include static int __init wg_mod_init(void) diff --git a/include/linux/genetlink.h b/include/linux/genetlink.h deleted file mode 100644 index 9dbd7ba9b858..000000000000 --- a/include/linux/genetlink.h +++ /dev/null @@ -1,14 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef __LINUX_GENERIC_NETLINK_H -#define __LINUX_GENERIC_NETLINK_H - -#include - -/* All generic netlink requests are serialized by a global lock. */ -extern void genl_lock(void); -extern void genl_unlock(void); - -#define MODULE_ALIAS_GENL_FAMILY(family)\ - MODULE_ALIAS_NET_PF_PROTO_NAME(PF_NETLINK, NETLINK_GENERIC, "-family-" family) - -#endif /* __LINUX_GENERIC_NETLINK_H */ diff --git a/include/linux/genl_magic_struct.h b/include/linux/genl_magic_struct.h index a419d93789ff..621b87a87d74 100644 --- a/include/linux/genl_magic_struct.h +++ b/include/linux/genl_magic_struct.h @@ -15,8 +15,8 @@ #endif #include -#include #include +#include extern int CONCATENATE(GENL_MAGIC_FAMILY, _genl_register)(void); extern void CONCATENATE(GENL_MAGIC_FAMILY, _genl_unregister)(void); diff --git a/include/net/genetlink.h b/include/net/genetlink.h index 9ece6e5a3ea8..7648dd6b8754 100644 --- a/include/net/genetlink.h +++ b/include/net/genetlink.h @@ -2,12 +2,20 @@ #ifndef __NET_GENERIC_NETLINK_H #define __NET_GENERIC_NETLINK_H -#include +#include #include #include +#include #define GENLMSG_DEFAULT_SIZE (NLMSG_DEFAULT_SIZE - GENL_HDRLEN) +/* Non-parallel generic netlink requests are serialized by a global lock. */ +void genl_lock(void); +void genl_unlock(void); + +#define MODULE_ALIAS_GENL_FAMILY(family) \ + MODULE_ALIAS_NET_PF_PROTO_NAME(PF_NETLINK, NETLINK_GENERIC, "-family-" family) + /* Binding to multicast group requires %CAP_NET_ADMIN */ #define GENL_MCAST_CAP_NET_ADMIN BIT(0) /* Binding to multicast group requires %CAP_SYS_ADMIN */ diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c index 75119f1ffccc..8e0f44c71696 100644 --- a/net/batman-adv/main.c +++ b/net/batman-adv/main.c @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include @@ -38,6 +37,7 @@ #include #include #include +#include #include #include #include diff --git a/net/batman-adv/netlink.c b/net/batman-adv/netlink.c index 0954757f0b8b..9362cd9d6f3d 100644 --- a/net/batman-adv/netlink.c +++ b/net/batman-adv/netlink.c @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include diff --git a/net/openvswitch/datapath.c b/net/openvswitch/datapath.c index 11c69415c605..99d72543abd3 100644 --- a/net/openvswitch/datapath.c +++ b/net/openvswitch/datapath.c @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include