diff options
author | Pavel Begunkov <asml.silence@gmail.com> | 2022-01-27 00:36:28 +0000 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2022-01-27 19:46:11 -0800 |
commit | f37a4cc6bb0ba08c2d9fd7d18a1da87161cbb7f9 (patch) | |
tree | 6d1b3be1dfc80b4676021fb7363f5a3b5a8fdbb2 /net/ipv6/udp.c | |
parent | f3b46a3e8c403095d61fc7d7047cf3e3b6f44684 (diff) | |
download | linux-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.c | 4 |
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)) |