diff options
Diffstat (limited to 'include/net')
| -rw-r--r-- | include/net/inet_hashtables.h | 4 | ||||
| -rw-r--r-- | include/net/protocol.h | 1 | ||||
| -rw-r--r-- | include/net/sock.h | 2 | ||||
| -rw-r--r-- | include/net/tcp.h | 1 | 
4 files changed, 6 insertions, 2 deletions
| diff --git a/include/net/inet_hashtables.h b/include/net/inet_hashtables.h index 808fc5f76b03..54be0287eb98 100644 --- a/include/net/inet_hashtables.h +++ b/include/net/inet_hashtables.h @@ -379,10 +379,10 @@ static inline struct sock *__inet_lookup_skb(struct inet_hashinfo *hashinfo,  					     const __be16 sport,  					     const __be16 dport)  { -	struct sock *sk; +	struct sock *sk = skb_steal_sock(skb);  	const struct iphdr *iph = ip_hdr(skb); -	if (unlikely(sk = skb_steal_sock(skb))) +	if (sk)  		return sk;  	else  		return __inet_lookup(dev_net(skb_dst(skb)->dev), hashinfo, diff --git a/include/net/protocol.h b/include/net/protocol.h index a1b1b530c338..967b926cbfb1 100644 --- a/include/net/protocol.h +++ b/include/net/protocol.h @@ -37,6 +37,7 @@  /* This is used to register protocols. */  struct net_protocol { +	int			(*early_demux)(struct sk_buff *skb);  	int			(*handler)(struct sk_buff *skb);  	void			(*err_handler)(struct sk_buff *skb, u32 info);  	int			(*gso_send_check)(struct sk_buff *skb); diff --git a/include/net/sock.h b/include/net/sock.h index 4a4521699563..87b424ae750a 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -319,6 +319,7 @@ struct sock {  	unsigned long 		sk_flags;  	struct dst_entry	*sk_dst_cache;  	spinlock_t		sk_dst_lock; +	struct dst_entry	*sk_rx_dst;  	atomic_t		sk_wmem_alloc;  	atomic_t		sk_omem_alloc;  	int			sk_sndbuf; @@ -1426,6 +1427,7 @@ extern struct sk_buff		*sock_rmalloc(struct sock *sk,  					      gfp_t priority);  extern void			sock_wfree(struct sk_buff *skb);  extern void			sock_rfree(struct sk_buff *skb); +extern void			sock_edemux(struct sk_buff *skb);  extern int			sock_setsockopt(struct socket *sock, int level,  						int op, char __user *optval, diff --git a/include/net/tcp.h b/include/net/tcp.h index 9332f342259a..6660ffc4963d 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -325,6 +325,7 @@ extern void tcp_v4_err(struct sk_buff *skb, u32);  extern void tcp_shutdown (struct sock *sk, int how); +extern int tcp_v4_early_demux(struct sk_buff *skb);  extern int tcp_v4_rcv(struct sk_buff *skb);  extern struct inet_peer *tcp_v4_get_peer(struct sock *sk); | 
