diff options
Diffstat (limited to 'net/ipv4/udp.c')
| -rw-r--r-- | net/ipv4/udp.c | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index 5a65eeac1d2..5d075b5f70f 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -445,7 +445,7 @@ exact_match:  /* UDP is nearly always wildcards out the wazoo, it makes no sense to try   * harder than this. -DaveM   */ -static struct sock *__udp4_lib_lookup(struct net *net, __be32 saddr, +struct sock *__udp4_lib_lookup(struct net *net, __be32 saddr,  		__be16 sport, __be32 daddr, __be16 dport,  		int dif, struct udp_table *udptable)  { @@ -512,6 +512,7 @@ begin:  	rcu_read_unlock();  	return result;  } +EXPORT_SYMBOL_GPL(__udp4_lib_lookup);  static inline struct sock *__udp4_lib_lookup_skb(struct sk_buff *skb,  						 __be16 sport, __be16 dport, @@ -1358,7 +1359,7 @@ static int __udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)  	if (inet_sk(sk)->inet_daddr)  		sock_rps_save_rxhash(sk, skb); -	rc = ip_queue_rcv_skb(sk, skb); +	rc = sock_queue_rcv_skb(sk, skb);  	if (rc < 0) {  		int is_udplite = IS_UDPLITE(sk); @@ -1474,6 +1475,7 @@ int udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)  	rc = 0; +	ipv4_pktinfo_prepare(skb);  	bh_lock_sock(sk);  	if (!sock_owned_by_user(sk))  		rc = __udp_queue_rcv_skb(sk, skb); @@ -2247,7 +2249,8 @@ int udp4_ufo_send_check(struct sk_buff *skb)  	return 0;  } -struct sk_buff *udp4_ufo_fragment(struct sk_buff *skb, u32 features) +struct sk_buff *udp4_ufo_fragment(struct sk_buff *skb, +	netdev_features_t features)  {  	struct sk_buff *segs = ERR_PTR(-EINVAL);  	unsigned int mss;  |