diff options
Diffstat (limited to 'net/ipv6/ip6_output.c')
| -rw-r--r-- | net/ipv6/ip6_output.c | 4 | 
1 files changed, 3 insertions, 1 deletions
| diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index a7fcbcc83576..00f85148b85f 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c | |||
| @@ -277,7 +277,9 @@ static int ip6_call_ra_chain(struct sk_buff *skb, int sel) | |||
| 277 | read_lock(&ip6_ra_lock); | 277 | read_lock(&ip6_ra_lock); | 
| 278 | for (ra = ip6_ra_chain; ra; ra = ra->next) { | 278 | for (ra = ip6_ra_chain; ra; ra = ra->next) { | 
| 279 | struct sock *sk = ra->sk; | 279 | struct sock *sk = ra->sk; | 
| 280 | if (sk && ra->sel == sel) { | 280 | if (sk && ra->sel == sel && | 
| 281 | (!sk->sk_bound_dev_if || | ||
| 282 | sk->sk_bound_dev_if == skb->dev->ifindex)) { | ||
| 281 | if (last) { | 283 | if (last) { | 
| 282 | struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC); | 284 | struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC); | 
| 283 | if (skb2) | 285 | if (skb2) | 
