summaryrefslogtreecommitdiffstats
path: root/net/ipv6/udp.c
diff options
context:
space:
mode:
authorPavel Begunkov <asml.silence@gmail.com>2022-01-27 00:36:28 +0000
committerJakub Kicinski <kuba@kernel.org>2022-01-27 19:46:11 -0800
commitf37a4cc6bb0ba08c2d9fd7d18a1da87161cbb7f9 (patch)
tree6d1b3be1dfc80b4676021fb7363f5a3b5a8fdbb2 /net/ipv6/udp.c
parentf3b46a3e8c403095d61fc7d7047cf3e3b6f44684 (diff)
downloadlinux-stable-f37a4cc6bb0ba08c2d9fd7d18a1da87161cbb7f9.tar.gz
linux-stable-f37a4cc6bb0ba08c2d9fd7d18a1da87161cbb7f9.tar.bz2
linux-stable-f37a4cc6bb0ba08c2d9fd7d18a1da87161cbb7f9.zip
udp6: pass flow in ip6_make_skb together with cork
Another preparation patch. inet_cork_full already contains a field for iflow, so we can avoid passing a separate struct iflow6 into __ip6_append_data() and ip6_make_skb(), and use the flow stored in inet_cork_full. Make sure callers set cork->fl, i.e. we init it in ip6_append_data() and before calling ip6_make_skb(). Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Reviewed-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/ipv6/udp.c')
-rw-r--r--net/ipv6/udp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index 3af1eea739a8..44b7ca9bd78e 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -1533,9 +1533,11 @@ back_from_confirm:
struct inet_cork_full cork;
struct sk_buff *skb;
+ cork.fl.u.ip6 = fl6;
+
skb = ip6_make_skb(sk, getfrag, msg, ulen,
sizeof(struct udphdr), &ipc6,
- &fl6, (struct rt6_info *)dst,
+ (struct rt6_info *)dst,
msg->msg_flags, &cork);
err = PTR_ERR(skb);
if (!IS_ERR_OR_NULL(skb))