diff options
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
| -rw-r--r-- | net/ipv4/tcp_ipv4.c | 60 | 
1 files changed, 6 insertions, 54 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index b7ab868c828..b27c758ca23 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -838,7 +838,6 @@ static void tcp_v4_reqsk_send_ack(struct sock *sk, struct sk_buff *skb,   */  static int tcp_v4_send_synack(struct sock *sk, struct dst_entry *dst,  			      struct request_sock *req, -			      struct request_values *rvp,  			      u16 queue_mapping,  			      bool nocache)  { @@ -851,7 +850,7 @@ static int tcp_v4_send_synack(struct sock *sk, struct dst_entry *dst,  	if (!dst && (dst = inet_csk_route_req(sk, &fl4, req)) == NULL)  		return -1; -	skb = tcp_make_synack(sk, dst, req, rvp, NULL); +	skb = tcp_make_synack(sk, dst, req, NULL);  	if (skb) {  		__tcp_v4_send_check(skb, ireq->loc_addr, ireq->rmt_addr); @@ -868,10 +867,9 @@ static int tcp_v4_send_synack(struct sock *sk, struct dst_entry *dst,  	return err;  } -static int tcp_v4_rtx_synack(struct sock *sk, struct request_sock *req, -			     struct request_values *rvp) +static int tcp_v4_rtx_synack(struct sock *sk, struct request_sock *req)  { -	int res = tcp_v4_send_synack(sk, NULL, req, rvp, 0, false); +	int res = tcp_v4_send_synack(sk, NULL, req, 0, false);  	if (!res)  		TCP_INC_STATS_BH(sock_net(sk), TCP_MIB_RETRANSSEGS); @@ -1371,8 +1369,7 @@ static bool tcp_fastopen_check(struct sock *sk, struct sk_buff *skb,  static int tcp_v4_conn_req_fastopen(struct sock *sk,  				    struct sk_buff *skb,  				    struct sk_buff *skb_synack, -				    struct request_sock *req, -				    struct request_values *rvp) +				    struct request_sock *req)  {  	struct tcp_sock *tp = tcp_sk(sk);  	struct request_sock_queue *queue = &inet_csk(sk)->icsk_accept_queue; @@ -1467,9 +1464,7 @@ static int tcp_v4_conn_req_fastopen(struct sock *sk,  int tcp_v4_conn_request(struct sock *sk, struct sk_buff *skb)  { -	struct tcp_extend_values tmp_ext;  	struct tcp_options_received tmp_opt; -	const u8 *hash_location;  	struct request_sock *req;  	struct inet_request_sock *ireq;  	struct tcp_sock *tp = tcp_sk(sk); @@ -1519,42 +1514,7 @@ int tcp_v4_conn_request(struct sock *sk, struct sk_buff *skb)  	tcp_clear_options(&tmp_opt);  	tmp_opt.mss_clamp = TCP_MSS_DEFAULT;  	tmp_opt.user_mss  = tp->rx_opt.user_mss; -	tcp_parse_options(skb, &tmp_opt, &hash_location, 0, -	    want_cookie ? NULL : &foc); - -	if (tmp_opt.cookie_plus > 0 && -	    tmp_opt.saw_tstamp && -	    !tp->rx_opt.cookie_out_never && -	    (sysctl_tcp_cookie_size > 0 || -	     (tp->cookie_values != NULL && -	      tp->cookie_values->cookie_desired > 0))) { -		u8 *c; -		u32 *mess = &tmp_ext.cookie_bakery[COOKIE_DIGEST_WORDS]; -		int l = tmp_opt.cookie_plus - TCPOLEN_COOKIE_BASE; - -		if (tcp_cookie_generator(&tmp_ext.cookie_bakery[0]) != 0) -			goto drop_and_release; - -		/* Secret recipe starts with IP addresses */ -		*mess++ ^= (__force u32)daddr; -		*mess++ ^= (__force u32)saddr; - -		/* plus variable length Initiator Cookie */ -		c = (u8 *)mess; -		while (l-- > 0) -			*c++ ^= *hash_location++; - -		want_cookie = false;	/* not our kind of cookie */ -		tmp_ext.cookie_out_never = 0; /* false */ -		tmp_ext.cookie_plus = tmp_opt.cookie_plus; -	} else if (!tp->rx_opt.cookie_in_always) { -		/* redundant indications, but ensure initialization. */ -		tmp_ext.cookie_out_never = 1; /* true */ -		tmp_ext.cookie_plus = 0; -	} else { -		goto drop_and_release; -	} -	tmp_ext.cookie_in_always = tp->rx_opt.cookie_in_always; +	tcp_parse_options(skb, &tmp_opt, 0, want_cookie ? NULL : &foc);  	if (want_cookie && !tmp_opt.saw_tstamp)  		tcp_clear_options(&tmp_opt); @@ -1636,7 +1596,6 @@ int tcp_v4_conn_request(struct sock *sk, struct sk_buff *skb)  	 * of tcp_v4_send_synack()->tcp_select_initial_window().  	 */  	skb_synack = tcp_make_synack(sk, dst, req, -	    (struct request_values *)&tmp_ext,  	    fastopen_cookie_present(&valid_foc) ? &valid_foc : NULL);  	if (skb_synack) { @@ -1660,8 +1619,7 @@ int tcp_v4_conn_request(struct sock *sk, struct sk_buff *skb)  		if (fastopen_cookie_present(&foc) && foc.len != 0)  			NET_INC_STATS_BH(sock_net(sk),  			    LINUX_MIB_TCPFASTOPENPASSIVEFAIL); -	} else if (tcp_v4_conn_req_fastopen(sk, skb, skb_synack, req, -	    (struct request_values *)&tmp_ext)) +	} else if (tcp_v4_conn_req_fastopen(sk, skb, skb_synack, req))  		goto drop_and_free;  	return 0; @@ -2241,12 +2199,6 @@ void tcp_v4_destroy_sock(struct sock *sk)  	if (inet_csk(sk)->icsk_bind_hash)  		inet_put_port(sk); -	/* TCP Cookie Transactions */ -	if (tp->cookie_values != NULL) { -		kref_put(&tp->cookie_values->kref, -			 tcp_cookie_values_release); -		tp->cookie_values = NULL; -	}  	BUG_ON(tp->fastopen_rsk != NULL);  	/* If socket is aborted during connect operation */  |