commit: 2009fbd52bfcd103d36a829e6d8f6ded19de3fdf Author: Mike Pagano <mpagano <AT> gentoo <DOT> org> AuthorDate: Sun Dec 11 14:28:34 2022 +0000 Commit: Mike Pagano <mpagano <AT> gentoo <DOT> org> CommitDate: Sun Dec 11 14:28:34 2022 +0000 URL: https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=2009fbd5
netfilter: ctnetlink fix compl. warning after data race fixes in ct mark Bug: https://bugs.gentoo.org/884585 Signed-off-by: Mike Pagano <mpagano <AT> gentoo.org> 0000_README | 4 ++ 2010_netfilter-ctnetlink-compilation-fix.patch | 90 ++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) diff --git a/0000_README b/0000_README index 5e68531e..528708c1 100644 --- a/0000_README +++ b/0000_README @@ -59,6 +59,10 @@ Patch: 2000_BT-Check-key-sizes-only-if-Secure-Simple-Pairing-enabled.patch From: https://lore.kernel.org/linux-bluetooth/[email protected]/raw Desc: Bluetooth: Check key sizes only when Secure Simple Pairing is enabled. See bug #686758 +Patch: 2010_netfilter-ctnetlink-compilation-fix.patch +From: https://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf.git +Desc: netfilter: ctnetlink: fix compilation warning after data race fixes in ct mark + Patch: 2900_tmp513-Fix-build-issue-by-selecting-CONFIG_REG.patch From: https://bugs.gentoo.org/710790 Desc: tmp513 requies REGMAP_I2C to build. Select it by default in Kconfig. See bug #710790. Thanks to Phil Stracchino diff --git a/2010_netfilter-ctnetlink-compilation-fix.patch b/2010_netfilter-ctnetlink-compilation-fix.patch new file mode 100644 index 00000000..b7bd4dee --- /dev/null +++ b/2010_netfilter-ctnetlink-compilation-fix.patch @@ -0,0 +1,90 @@ +From 1feeae071507ad65cf9f462a1bdd543a4bf89e71 Mon Sep 17 00:00:00 2001 +From: Pablo Neira Ayuso <[email protected]> +Date: Mon, 28 Nov 2022 10:58:53 +0100 +Subject: netfilter: ctnetlink: fix compilation warning after data race fixes + in ct mark + +All warnings (new ones prefixed by >>): + + net/netfilter/nf_conntrack_netlink.c: In function '__ctnetlink_glue_build': +>> net/netfilter/nf_conntrack_netlink.c:2674:13: warning: unused variable 'mark' [-Wunused-variable] + 2674 | u32 mark; + | ^~~~ + +Fixes: 52d1aa8b8249 ("netfilter: conntrack: Fix data-races around ct mark") +Reported-by: kernel test robot <[email protected]> +Tested-by: Ivan Babrou <[email protected]> +Signed-off-by: Pablo Neira Ayuso <[email protected]> +--- + net/netfilter/nf_conntrack_netlink.c | 19 ++++++++++--------- + 1 file changed, 10 insertions(+), 9 deletions(-) + +diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c +index d71150a40fb08..1286ae7d46096 100644 +--- a/net/netfilter/nf_conntrack_netlink.c ++++ b/net/netfilter/nf_conntrack_netlink.c +@@ -328,8 +328,13 @@ nla_put_failure: + } + + #ifdef CONFIG_NF_CONNTRACK_MARK +-static int ctnetlink_dump_mark(struct sk_buff *skb, u32 mark) ++static int ctnetlink_dump_mark(struct sk_buff *skb, const struct nf_conn *ct) + { ++ u32 mark = READ_ONCE(ct->mark); ++ ++ if (!mark) ++ return 0; ++ + if (nla_put_be32(skb, CTA_MARK, htonl(mark))) + goto nla_put_failure; + return 0; +@@ -543,7 +548,7 @@ static int ctnetlink_dump_extinfo(struct sk_buff *skb, + static int ctnetlink_dump_info(struct sk_buff *skb, struct nf_conn *ct) + { + if (ctnetlink_dump_status(skb, ct) < 0 || +- ctnetlink_dump_mark(skb, READ_ONCE(ct->mark)) < 0 || ++ ctnetlink_dump_mark(skb, ct) < 0 || + ctnetlink_dump_secctx(skb, ct) < 0 || + ctnetlink_dump_id(skb, ct) < 0 || + ctnetlink_dump_use(skb, ct) < 0 || +@@ -722,7 +727,6 @@ ctnetlink_conntrack_event(unsigned int events, const struct nf_ct_event *item) + struct sk_buff *skb; + unsigned int type; + unsigned int flags = 0, group; +- u32 mark; + int err; + + if (events & (1 << IPCT_DESTROY)) { +@@ -827,9 +831,8 @@ ctnetlink_conntrack_event(unsigned int events, const struct nf_ct_event *item) + } + + #ifdef CONFIG_NF_CONNTRACK_MARK +- mark = READ_ONCE(ct->mark); +- if ((events & (1 << IPCT_MARK) || mark) && +- ctnetlink_dump_mark(skb, mark) < 0) ++ if (events & (1 << IPCT_MARK) && ++ ctnetlink_dump_mark(skb, ct) < 0) + goto nla_put_failure; + #endif + nlmsg_end(skb, nlh); +@@ -2671,7 +2674,6 @@ static int __ctnetlink_glue_build(struct sk_buff *skb, struct nf_conn *ct) + { + const struct nf_conntrack_zone *zone; + struct nlattr *nest_parms; +- u32 mark; + + zone = nf_ct_zone(ct); + +@@ -2733,8 +2735,7 @@ static int __ctnetlink_glue_build(struct sk_buff *skb, struct nf_conn *ct) + goto nla_put_failure; + + #ifdef CONFIG_NF_CONNTRACK_MARK +- mark = READ_ONCE(ct->mark); +- if (mark && ctnetlink_dump_mark(skb, mark) < 0) ++ if (ctnetlink_dump_mark(skb, ct) < 0) + goto nla_put_failure; + #endif + if (ctnetlink_dump_labels(skb, ct) < 0) +-- +cgit +
