From: Jakub Kicinski Date: Thu, 17 Feb 2022 19:44:20 +0000 (-0800) Subject: Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=6b5567b1b21b0efc544b154dc023b7dd4b4dcf4c;p=linux.git Merge git://git./linux/kernel/git/netdev/net No conflicts. Signed-off-by: Jakub Kicinski --- 6b5567b1b21b0efc544b154dc023b7dd4b4dcf4c diff --cc net/ipv4/fib_semantics.c index c9c4f2f66b38b,2dd375f7407b6..c5a29703185a3 --- a/net/ipv4/fib_semantics.c +++ b/net/ipv4/fib_semantics.c @@@ -524,11 -523,11 +524,11 @@@ void rtmsg_fib(int event, __be32 key, s fri.tb_id = tb_id; fri.dst = key; fri.dst_len = dst_len; - fri.tos = fa->fa_tos; + fri.tos = inet_dscp_to_dsfield(fa->fa_dscp); fri.type = fa->fa_type; - fri.offload = fa->offload; - fri.trap = fa->trap; - fri.offload_failed = fa->offload_failed; + fri.offload = READ_ONCE(fa->offload); + fri.trap = READ_ONCE(fa->trap); + fri.offload_failed = READ_ONCE(fa->offload_failed); err = fib_dump_info(skb, info->portid, seq, event, &fri, nlm_flags); if (err < 0) { /* -EMSGSIZE implies BUG in fib_nlmsg_size() */ diff --cc net/ipv4/fib_trie.c index c05cd105e95ed,f7f74d5c14da6..2af2b99e0bea9 --- a/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c @@@ -2304,11 -2299,11 +2308,11 @@@ static int fn_trie_dump_leaf(struct key fri.tb_id = tb->tb_id; fri.dst = xkey; fri.dst_len = KEYLENGTH - fa->fa_slen; - fri.tos = fa->fa_tos; + fri.tos = inet_dscp_to_dsfield(fa->fa_dscp); fri.type = fa->fa_type; - fri.offload = fa->offload; - fri.trap = fa->trap; - fri.offload_failed = fa->offload_failed; + fri.offload = READ_ONCE(fa->offload); + fri.trap = READ_ONCE(fa->trap); + fri.offload_failed = READ_ONCE(fa->offload_failed); err = fib_dump_info(skb, NETLINK_CB(cb->skb).portid, cb->nlh->nlmsg_seq, diff --cc net/ipv4/route.c index 202d6b1fff43f,f33ad1f383b68..f444f5983405c --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@@ -3397,11 -3392,11 +3397,11 @@@ static int inet_rtm_getroute(struct sk_ if (fa->fa_slen == slen && fa->tb_id == fri.tb_id && - fa->fa_tos == fri.tos && + fa->fa_dscp == inet_dsfield_to_dscp(fri.tos) && fa->fa_info == res.fi && fa->fa_type == fri.type) { - fri.offload = fa->offload; - fri.trap = fa->trap; + fri.offload = READ_ONCE(fa->offload); + fri.trap = READ_ONCE(fa->trap); break; } }