diff options
Diffstat (limited to 'net/ipv4/udp.c')
| -rw-r--r-- | net/ipv4/udp.c | 23 | 
1 files changed, 8 insertions, 15 deletions
| diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index 5676237d2b0f..ebfbccae62fd 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -231,10 +231,7 @@ static int udp_reuseport_add_sock(struct sock *sk, struct udp_hslot *hslot)  		}  	} -	/* Initial allocation may have already happened via setsockopt */ -	if (!rcu_access_pointer(sk->sk_reuseport_cb)) -		return reuseport_alloc(sk); -	return 0; +	return reuseport_alloc(sk);  }  /** @@ -1061,7 +1058,7 @@ back_from_confirm:  		/* ... which is an evident application bug. --ANK */  		release_sock(sk); -		net_dbg_ratelimited("cork app bug 2\n"); +		net_dbg_ratelimited("socket already corked\n");  		err = -EINVAL;  		goto out;  	} @@ -1144,7 +1141,7 @@ int udp_sendpage(struct sock *sk, struct page *page, int offset,  	if (unlikely(!up->pending)) {  		release_sock(sk); -		net_dbg_ratelimited("udp cork app bug 3\n"); +		net_dbg_ratelimited("cork failed\n");  		return -EINVAL;  	} @@ -2240,20 +2237,16 @@ int udp_v4_early_demux(struct sk_buff *skb)  	iph = ip_hdr(skb);  	uh = udp_hdr(skb); -	if (skb->pkt_type == PACKET_BROADCAST || -	    skb->pkt_type == PACKET_MULTICAST) { +	if (skb->pkt_type == PACKET_MULTICAST) {  		in_dev = __in_dev_get_rcu(skb->dev);  		if (!in_dev)  			return 0; -		/* we are supposed to accept bcast packets */ -		if (skb->pkt_type == PACKET_MULTICAST) { -			ours = ip_check_mc_rcu(in_dev, iph->daddr, iph->saddr, -					       iph->protocol); -			if (!ours) -				return 0; -		} +		ours = ip_check_mc_rcu(in_dev, iph->daddr, iph->saddr, +				       iph->protocol); +		if (!ours) +			return 0;  		sk = __udp4_lib_mcast_demux_lookup(net, uh->dest, iph->daddr,  						   uh->source, iph->saddr, | 
