diff options
author | Ingo Molnar <mingo@kernel.org> | 2017-09-04 11:01:18 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-09-04 11:01:18 +0200 |
commit | edc2988c548db05e33b921fed15821010bc74895 (patch) | |
tree | b35860428acea35e5866d4cf007519ed943a85de /net/ipv6/udp.c | |
parent | locking/lockdep/selftests: Fix mixed read-write ABBA tests (diff) | |
parent | Merge branch 'docs-next' of git://git.lwn.net/linux (diff) | |
download | linux-edc2988c548db05e33b921fed15821010bc74895.tar.xz linux-edc2988c548db05e33b921fed15821010bc74895.zip |
Merge branch 'linus' into locking/core, to fix up conflicts
Conflicts:
mm/page_alloc.c
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/ipv6/udp.c')
-rw-r--r-- | net/ipv6/udp.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index 8cd9b628cdc7..56030d45823a 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c @@ -767,6 +767,15 @@ start_lookup: return 0; } +static void udp6_sk_rx_dst_set(struct sock *sk, struct dst_entry *dst) +{ + if (udp_sk_rx_dst_set(sk, dst)) { + const struct rt6_info *rt = (const struct rt6_info *)dst; + + inet6_sk(sk)->rx_dst_cookie = rt6_get_cookie(rt); + } +} + int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable, int proto) { @@ -816,7 +825,7 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable, int ret; if (unlikely(sk->sk_rx_dst != dst)) - udp_sk_rx_dst_set(sk, dst); + udp6_sk_rx_dst_set(sk, dst); ret = udpv6_queue_rcv_skb(sk, skb); sock_put(sk); |