diff options
author | Eric Dumazet <edumazet@google.com> | 2014-10-17 09:17:20 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-10-17 23:48:07 -0400 |
commit | 870c3151382c980590d4d609babf3b0243e7db93 (patch) | |
tree | 5d472dc0982bfda41f56c08ff98c46d9b0f4afd8 /net/dccp | |
parent | 70b33fb0ddec827cbbd14cdc664fc27b2ef4a6b6 (diff) | |
download | linux-stable-870c3151382c980590d4d609babf3b0243e7db93.tar.gz linux-stable-870c3151382c980590d4d609babf3b0243e7db93.tar.bz2 linux-stable-870c3151382c980590d4d609babf3b0243e7db93.zip |
ipv6: introduce tcp_v6_iif()
Commit 971f10eca186 ("tcp: better TCP_SKB_CB layout to reduce cache line
misses") added a regression for SO_BINDTODEVICE on IPv6.
This is because we still use inet6_iif() which expects that IP6 control
block is still at the beginning of skb->cb[]
This patch adds tcp_v6_iif() helper and uses it where necessary.
Because __inet6_lookup_skb() is used by TCP and DCCP, we add an iif
parameter to it.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Fixes: 971f10eca186 ("tcp: better TCP_SKB_CB layout to reduce cache line misses")
Acked-by: Cong Wang <cwang@twopensource.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp')
-rw-r--r-- | net/dccp/ipv6.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c index ad2acfe1ca61..6bcaa33cd804 100644 --- a/net/dccp/ipv6.c +++ b/net/dccp/ipv6.c @@ -757,7 +757,8 @@ static int dccp_v6_rcv(struct sk_buff *skb) /* Step 2: * Look up flow ID in table and get corresponding socket */ sk = __inet6_lookup_skb(&dccp_hashinfo, skb, - dh->dccph_sport, dh->dccph_dport); + dh->dccph_sport, dh->dccph_dport, + inet6_iif(skb)); /* * Step 2: * If no socket ... |