diff options
Diffstat (limited to 'net/ipv4/tcp_fastopen.c')
| -rw-r--r-- | net/ipv4/tcp_fastopen.c | 9 | 
1 files changed, 4 insertions, 5 deletions
| diff --git a/net/ipv4/tcp_fastopen.c b/net/ipv4/tcp_fastopen.c index 4af82b914dd4..e3c33220c418 100644 --- a/net/ipv4/tcp_fastopen.c +++ b/net/ipv4/tcp_fastopen.c @@ -171,7 +171,6 @@ void tcp_fastopen_add_skb(struct sock *sk, struct sk_buff *skb)  static struct sock *tcp_fastopen_create_child(struct sock *sk,  					      struct sk_buff *skb, -					      struct dst_entry *dst,  					      struct request_sock *req)  {  	struct tcp_sock *tp; @@ -214,13 +213,14 @@ static struct sock *tcp_fastopen_create_child(struct sock *sk,  	inet_csk_reset_xmit_timer(child, ICSK_TIME_RETRANS,  				  TCP_TIMEOUT_INIT, TCP_RTO_MAX); -	atomic_set(&req->rsk_refcnt, 2); +	refcount_set(&req->rsk_refcnt, 2);  	/* Now finish processing the fastopen child socket. */  	inet_csk(child)->icsk_af_ops->rebuild_header(child);  	tcp_init_congestion_control(child);  	tcp_mtup_init(child);  	tcp_init_metrics(child); +	tcp_call_bpf(child, BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB);  	tcp_init_buffer_space(child);  	tp->rcv_nxt = TCP_SKB_CB(skb)->seq + 1; @@ -277,8 +277,7 @@ static bool tcp_fastopen_queue_check(struct sock *sk)   */  struct sock *tcp_try_fastopen(struct sock *sk, struct sk_buff *skb,  			      struct request_sock *req, -			      struct tcp_fastopen_cookie *foc, -			      struct dst_entry *dst) +			      struct tcp_fastopen_cookie *foc)  {  	struct tcp_fastopen_cookie valid_foc = { .len = -1 };  	bool syn_data = TCP_SKB_CB(skb)->end_seq != TCP_SKB_CB(skb)->seq + 1; @@ -311,7 +310,7 @@ struct sock *tcp_try_fastopen(struct sock *sk, struct sk_buff *skb,  		 * data in SYN_RECV state.  		 */  fastopen: -		child = tcp_fastopen_create_child(sk, skb, dst, req); +		child = tcp_fastopen_create_child(sk, skb, req);  		if (child) {  			foc->len = -1;  			NET_INC_STATS(sock_net(sk), |