diff options
Diffstat (limited to 'net/ipv6/ip6_output.c')
| -rw-r--r-- | net/ipv6/ip6_output.c | 3 | 
1 files changed, 2 insertions, 1 deletions
| diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 60b0d1652448..021e5aef6ba3 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -482,7 +482,8 @@ int ip6_forward(struct sk_buff *skb)  	   send redirects to source routed frames.  	   We don't send redirects to frames decapsulated from IPsec.  	 */ -	if (skb->dev == dst->dev && opt->srcrt == 0 && !skb_sec_path(skb)) { +	if (IP6CB(skb)->iif == dst->dev->ifindex && +	    opt->srcrt == 0 && !skb_sec_path(skb)) {  		struct in6_addr *target = NULL;  		struct inet_peer *peer;  		struct rt6_info *rt; | 
