mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 14:04:26 -04:00 
			
		
		
		
	Refresh patches. Compile-tested for ar71xx - Archer C7 v2 Runtime-tested on ar71xx - Archer C7 v2 Fixes the following CVEs: - CVE-2017-7518 - CVE-2017-0786 - CVE-2017-1000255 - CVE-2017-12188 - CVE-2017-15265 Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 12a59abc22d6664f7d3944f625ceefee92de8820 Mon Sep 17 00:00:00 2001
 | |
| From: Eric Dumazet <edumazet@google.com>
 | |
| Date: Sat, 3 Dec 2016 11:14:55 -0800
 | |
| Subject: [PATCH 06/10] tcp: tcp_mtu_probe() is likely to exit early
 | |
| 
 | |
| Adding a likely() in tcp_mtu_probe() moves its code which used to
 | |
| be inlined in front of tcp_write_xmit()
 | |
| 
 | |
| We still have a cache line miss to access icsk->icsk_mtup.enabled,
 | |
| we will probably have to reorganize fields to help data locality.
 | |
| 
 | |
| Signed-off-by: Eric Dumazet <edumazet@google.com>
 | |
| Signed-off-by: David S. Miller <davem@davemloft.net>
 | |
| ---
 | |
|  net/ipv4/tcp_output.c | 18 +++++++++---------
 | |
|  1 file changed, 9 insertions(+), 9 deletions(-)
 | |
| 
 | |
| --- a/net/ipv4/tcp_output.c
 | |
| +++ b/net/ipv4/tcp_output.c
 | |
| @@ -1928,26 +1928,26 @@ static inline void tcp_mtu_check_reprobe
 | |
|   */
 | |
|  static int tcp_mtu_probe(struct sock *sk)
 | |
|  {
 | |
| -	struct tcp_sock *tp = tcp_sk(sk);
 | |
|  	struct inet_connection_sock *icsk = inet_csk(sk);
 | |
| +	struct tcp_sock *tp = tcp_sk(sk);
 | |
|  	struct sk_buff *skb, *nskb, *next;
 | |
|  	struct net *net = sock_net(sk);
 | |
| -	int len;
 | |
|  	int probe_size;
 | |
|  	int size_needed;
 | |
| -	int copy;
 | |
| +	int copy, len;
 | |
|  	int mss_now;
 | |
|  	int interval;
 | |
|  
 | |
|  	/* Not currently probing/verifying,
 | |
|  	 * not in recovery,
 | |
|  	 * have enough cwnd, and
 | |
| -	 * not SACKing (the variable headers throw things off) */
 | |
| -	if (!icsk->icsk_mtup.enabled ||
 | |
| -	    icsk->icsk_mtup.probe_size ||
 | |
| -	    inet_csk(sk)->icsk_ca_state != TCP_CA_Open ||
 | |
| -	    tp->snd_cwnd < 11 ||
 | |
| -	    tp->rx_opt.num_sacks || tp->rx_opt.dsack)
 | |
| +	 * not SACKing (the variable headers throw things off)
 | |
| +	 */
 | |
| +	if (likely(!icsk->icsk_mtup.enabled ||
 | |
| +		   icsk->icsk_mtup.probe_size ||
 | |
| +		   inet_csk(sk)->icsk_ca_state != TCP_CA_Open ||
 | |
| +		   tp->snd_cwnd < 11 ||
 | |
| +		   tp->rx_opt.num_sacks || tp->rx_opt.dsack))
 | |
|  		return -1;
 | |
|  
 | |
|  	/* Use binary search for probe_size between tcp_mss_base,
 |