diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2018-06-22 21:20:35 +0200 | 
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2018-06-22 21:20:35 +0200 | 
| commit | 7731b8bc94e599c9a79e428f3359ff2c34b7576a (patch) | |
| tree | 879f18ccbe274122f2d4f095b43cbc7f953e0ada /include/net/tcp.h | |
| parent | 48e315618dc4dc8904182cd221e3d395d5d97005 (diff) | |
| parent | 9ffc59d57228d74809700be6f7ecb1db10292f05 (diff) | |
Merge branch 'linus' into x86/urgent
Required to queue a dependent fix.
Diffstat (limited to 'include/net/tcp.h')
| -rw-r--r-- | include/net/tcp.h | 44 | 
1 files changed, 29 insertions, 15 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h index 9c9b3768b350..0448e7c5d2b4 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -245,6 +245,7 @@ extern long sysctl_tcp_mem[3];  #define TCP_RACK_LOSS_DETECTION  0x1 /* Use RACK to detect losses */  #define TCP_RACK_STATIC_REO_WND  0x2 /* Use static RACK reo wnd */ +#define TCP_RACK_NO_DUPTHRESH    0x4 /* Do not use DUPACK threshold in RACK */  extern atomic_long_t tcp_memory_allocated;  extern struct percpu_counter tcp_sockets_allocated; @@ -333,8 +334,7 @@ void tcp_write_timer_handler(struct sock *sk);  void tcp_delack_timer_handler(struct sock *sk);  int tcp_ioctl(struct sock *sk, int cmd, unsigned long arg);  int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb); -void tcp_rcv_established(struct sock *sk, struct sk_buff *skb, -			 const struct tcphdr *th); +void tcp_rcv_established(struct sock *sk, struct sk_buff *skb);  void tcp_rcv_space_adjust(struct sock *sk);  int tcp_twsk_unique(struct sock *sk, struct sock *sktw, void *twp);  void tcp_twsk_destructor(struct sock *sk); @@ -388,8 +388,7 @@ bool tcp_peer_is_proven(struct request_sock *req, struct dst_entry *dst);  void tcp_close(struct sock *sk, long timeout);  void tcp_init_sock(struct sock *sk);  void tcp_init_transfer(struct sock *sk, int bpf_op); -__poll_t tcp_poll(struct file *file, struct socket *sock, -		      struct poll_table_struct *wait); +__poll_t tcp_poll_mask(struct socket *sock, __poll_t events);  int tcp_getsockopt(struct sock *sk, int level, int optname,  		   char __user *optval, int __user *optlen);  int tcp_setsockopt(struct sock *sk, int level, int optname, @@ -402,6 +401,10 @@ void tcp_set_keepalive(struct sock *sk, int val);  void tcp_syn_ack_timeout(const struct request_sock *req);  int tcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, int nonblock,  		int flags, int *addr_len); +int tcp_set_rcvlowat(struct sock *sk, int val); +void tcp_data_ready(struct sock *sk); +int tcp_mmap(struct file *file, struct socket *sock, +	     struct vm_area_struct *vma);  void tcp_parse_options(const struct net *net, const struct sk_buff *skb,  		       struct tcp_options_received *opt_rx,  		       int estab, struct tcp_fastopen_cookie *foc); @@ -553,7 +556,12 @@ void tcp_fin(struct sock *sk);  void tcp_init_xmit_timers(struct sock *);  static inline void tcp_clear_xmit_timers(struct sock *sk)  { -	hrtimer_cancel(&tcp_sk(sk)->pacing_timer); +	if (hrtimer_try_to_cancel(&tcp_sk(sk)->pacing_timer) == 1) +		__sock_put(sk); + +	if (hrtimer_try_to_cancel(&tcp_sk(sk)->compressed_ack_timer) == 1) +		__sock_put(sk); +  	inet_csk_clear_xmit_timers(sk);  } @@ -810,9 +818,8 @@ struct tcp_skb_cb {  #endif  		} header;	/* For incoming skbs */  		struct { -			__u32 key;  			__u32 flags; -			struct bpf_map *map; +			struct sock *sk_redir;  			void *data_end;  		} bpf;  	}; @@ -1747,27 +1754,22 @@ enum tcp_seq_states {  	TCP_SEQ_STATE_ESTABLISHED,  }; -int tcp_seq_open(struct inode *inode, struct file *file); +void *tcp_seq_start(struct seq_file *seq, loff_t *pos); +void *tcp_seq_next(struct seq_file *seq, void *v, loff_t *pos); +void tcp_seq_stop(struct seq_file *seq, void *v);  struct tcp_seq_afinfo { -	char				*name;  	sa_family_t			family; -	const struct file_operations	*seq_fops; -	struct seq_operations		seq_ops;  };  struct tcp_iter_state {  	struct seq_net_private	p; -	sa_family_t		family;  	enum tcp_seq_states	state;  	struct sock		*syn_wait_sk;  	int			bucket, offset, sbucket, num;  	loff_t			last_pos;  }; -int tcp_proc_register(struct net *net, struct tcp_seq_afinfo *afinfo); -void tcp_proc_unregister(struct net *net, struct tcp_seq_afinfo *afinfo); -  extern struct request_sock_ops tcp_request_sock_ops;  extern struct request_sock_ops tcp6_request_sock_ops; @@ -1871,6 +1873,10 @@ void tcp_v4_init(void);  void tcp_init(void);  /* tcp_recovery.c */ +void tcp_mark_skb_lost(struct sock *sk, struct sk_buff *skb); +void tcp_newreno_mark_lost(struct sock *sk, bool snd_una_advanced); +extern s32 tcp_rack_skb_timeout(struct tcp_sock *tp, struct sk_buff *skb, +				u32 reo_wnd);  extern void tcp_rack_mark_lost(struct sock *sk);  extern void tcp_rack_advance(struct tcp_sock *tp, u8 sacked, u32 end_seq,  			     u64 xmit_time); @@ -2101,4 +2107,12 @@ static inline bool tcp_bpf_ca_needs_ecn(struct sock *sk)  #if IS_ENABLED(CONFIG_SMC)  extern struct static_key_false tcp_have_smc;  #endif + +#if IS_ENABLED(CONFIG_TLS_DEVICE) +void clean_acked_data_enable(struct inet_connection_sock *icsk, +			     void (*cad)(struct sock *sk, u32 ack_seq)); +void clean_acked_data_disable(struct inet_connection_sock *icsk); + +#endif +  #endif	/* _TCP_H */  | 
