]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: rtnetlink: add helper to extract msg type's kind
authorNikolay Aleksandrov <razor@blackwall.org>
Wed, 13 Apr 2022 10:51:52 +0000 (13:51 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Oct 2025 12:59:58 +0000 (13:59 +0100)
[ Upstream commit 2e9ea3e30f696fd438319c07836422bb0bbb4608 ]

Add a helper which extracts the msg type's kind using the kind mask (0x3).

Signed-off-by: Nikolay Aleksandrov <razor@blackwall.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Stable-dep-of: bf29555f5bdc ("rtnetlink: Allow deleting FDB entries in user namespace")
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/net/rtnetlink.h
net/core/rtnetlink.c

index 74eff5259b36121e5c9ebd97301a84fcfd2c6888..02b0636a4523dae125ae6dcb4641c0247b58d5ec 100644 (file)
@@ -19,6 +19,12 @@ enum rtnl_kinds {
        RTNL_KIND_GET,
        RTNL_KIND_SET
 };
+#define RTNL_KIND_MASK 0x3
+
+static inline enum rtnl_kinds rtnl_msgtype_kind(int msgtype)
+{
+       return msgtype & RTNL_KIND_MASK;
+}
 
 void rtnl_register(int protocol, int msgtype,
                   rtnl_doit_func, rtnl_dumpit_func, unsigned int flags);
index 2cdb07dd263bdd64e056d9d39b083aeb53e5256f..b41f31a09a7cdd96d8eb106b2be0966edf2f421f 100644 (file)
@@ -5212,7 +5212,7 @@ static int rtnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh,
                return 0;
 
        family = ((struct rtgenmsg *)nlmsg_data(nlh))->rtgen_family;
-       kind = type&3;
+       kind = rtnl_msgtype_kind(type);
 
        if (kind != RTNL_KIND_GET && !netlink_net_capable(skb, CAP_NET_ADMIN))
                return -EPERM;