[TCP] Avoid two divides in tcp_output.c
Because 'free_space' variable in __tcp_select_window() is signed, expression (free_space / 2) forces compiler to emit an integer divide. This can be changed to a plain right shift, less expensive. Signed-off-by: Eric Dumazet <dada1@cosmosbay.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									68277accb3
								
							
						
					
					
						commit
						b92edbe0b8
					
				| @ -1627,7 +1627,7 @@ u32 __tcp_select_window(struct sock *sk) | ||||
| 	if (mss > full_space) | ||||
| 		mss = full_space; | ||||
| 
 | ||||
| 	if (free_space < full_space/2) { | ||||
| 	if (free_space < (full_space >> 1)) { | ||||
| 		icsk->icsk_ack.quick = 0; | ||||
| 
 | ||||
| 		if (tcp_memory_pressure) | ||||
| @ -1666,7 +1666,7 @@ u32 __tcp_select_window(struct sock *sk) | ||||
| 		if (window <= free_space - mss || window > free_space) | ||||
| 			window = (free_space/mss)*mss; | ||||
| 		else if (mss == full_space && | ||||
| 			 free_space > window + full_space/2) | ||||
| 			 free_space > window + (full_space >> 1)) | ||||
| 			window = free_space; | ||||
| 	} | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user