mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-28 01:21:58 +00:00
[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
1 changed files with 2 additions and 2 deletions
|
@ -1627,7 +1627,7 @@ u32 __tcp_select_window(struct sock *sk)
|
||||||
if (mss > full_space)
|
if (mss > full_space)
|
||||||
mss = full_space;
|
mss = full_space;
|
||||||
|
|
||||||
if (free_space < full_space/2) {
|
if (free_space < (full_space >> 1)) {
|
||||||
icsk->icsk_ack.quick = 0;
|
icsk->icsk_ack.quick = 0;
|
||||||
|
|
||||||
if (tcp_memory_pressure)
|
if (tcp_memory_pressure)
|
||||||
|
@ -1666,7 +1666,7 @@ u32 __tcp_select_window(struct sock *sk)
|
||||||
if (window <= free_space - mss || window > free_space)
|
if (window <= free_space - mss || window > free_space)
|
||||||
window = (free_space/mss)*mss;
|
window = (free_space/mss)*mss;
|
||||||
else if (mss == full_space &&
|
else if (mss == full_space &&
|
||||||
free_space > window + full_space/2)
|
free_space > window + (full_space >> 1))
|
||||||
window = free_space;
|
window = free_space;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue