diff options
author | Ingo Molnar <mingo@kernel.org> | 2016-05-11 16:56:38 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-05-11 16:56:38 +0200 |
commit | d2950158d0d7bc376503393ca5f73f6f8d27c56b (patch) | |
tree | 7daa04400d833bd722258a49d56a39acfb392520 /net/ipv6/tcp_ipv6.c | |
parent | ea7c28518943b26a85d73cd76acd03b71962cb18 (diff) | |
parent | e9d848cb65d5f6f7731d12bd1b6d994bfdbcc94f (diff) |
Merge branch 'perf/urgent' into perf/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
-rw-r--r-- | net/ipv6/tcp_ipv6.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 711d209f9124..f443c6b0ce16 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c @@ -810,8 +810,13 @@ static void tcp_v6_send_response(const struct sock *sk, struct sk_buff *skb, u32 fl6.flowi6_proto = IPPROTO_TCP; if (rt6_need_strict(&fl6.daddr) && !oif) fl6.flowi6_oif = tcp_v6_iif(skb); - else + else { + if (!oif && netif_index_is_l3_master(net, skb->skb_iif)) + oif = skb->skb_iif; + fl6.flowi6_oif = oif; + } + fl6.flowi6_mark = IP6_REPLY_MARK(net, skb->mark); fl6.fl6_dport = t1->dest; fl6.fl6_sport = t1->source; |