diff options
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
| -rw-r--r-- | net/ipv6/tcp_ipv6.c | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 49c890386ce..26175bffbaa 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c @@ -877,7 +877,8 @@ static void tcp_v6_send_response(struct sk_buff *skb, u32 seq, u32 ack, u32 win,  	__tcp_v6_send_check(buff, &fl6.saddr, &fl6.daddr);  	fl6.flowi6_proto = IPPROTO_TCP; -	fl6.flowi6_oif = inet6_iif(skb); +	if (ipv6_addr_type(&fl6.daddr) & IPV6_ADDR_LINKLOCAL) +		fl6.flowi6_oif = inet6_iif(skb);  	fl6.fl6_dport = t1->dest;  	fl6.fl6_sport = t1->source;  	security_skb_classify_flow(skb, flowi6_to_flowi(&fl6));  |