diff options
Diffstat (limited to 'net/ipv6/udp.c')
| -rw-r--r-- | net/ipv6/udp.c | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index 3477c919fcc8..e51fc3eee6db 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c  | |||
| @@ -525,10 +525,8 @@ csum_copy_err: | |||
| 525 | } | 525 | } | 
| 526 | unlock_sock_fast(sk, slow); | 526 | unlock_sock_fast(sk, slow); | 
| 527 | 527 | ||
| 528 | if (noblock) | 528 | /* starting over for a new packet, but check if we need to yield */ | 
| 529 | return -EAGAIN; | 529 | cond_resched(); | 
| 530 | |||
| 531 | /* starting over for a new packet */ | ||
| 532 | msg->msg_flags &= ~MSG_TRUNC; | 530 | msg->msg_flags &= ~MSG_TRUNC; | 
| 533 | goto try_again; | 531 | goto try_again; | 
| 534 | } | 532 | } | 
| @@ -731,7 +729,9 @@ static bool __udp_v6_is_mcast_sock(struct net *net, struct sock *sk, | |||
| 731 | (inet->inet_dport && inet->inet_dport != rmt_port) || | 729 | (inet->inet_dport && inet->inet_dport != rmt_port) || | 
| 732 | (!ipv6_addr_any(&sk->sk_v6_daddr) && | 730 | (!ipv6_addr_any(&sk->sk_v6_daddr) && | 
| 733 | !ipv6_addr_equal(&sk->sk_v6_daddr, rmt_addr)) || | 731 | !ipv6_addr_equal(&sk->sk_v6_daddr, rmt_addr)) || | 
| 734 | (sk->sk_bound_dev_if && sk->sk_bound_dev_if != dif)) | 732 | (sk->sk_bound_dev_if && sk->sk_bound_dev_if != dif) || | 
| 733 | (!ipv6_addr_any(&sk->sk_v6_rcv_saddr) && | ||
| 734 | !ipv6_addr_equal(&sk->sk_v6_rcv_saddr, loc_addr))) | ||
| 735 | return false; | 735 | return false; | 
| 736 | if (!inet6_mc_check(sk, loc_addr, rmt_addr)) | 736 | if (!inet6_mc_check(sk, loc_addr, rmt_addr)) | 
| 737 | return false; | 737 | return false; | 
