aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4
diff options
context:
space:
mode:
authorIlpo Järvinen <ilpo.jarvinen@helsinki.fi>2009-03-14 10:23:01 -0400
committerDavid S. Miller <davem@davemloft.net>2009-03-15 23:09:51 -0400
commit5861f8e58dd84fc34b691c2e8d4824dea68c360e (patch)
tree5c202f6866cca91ded45213cbb1a3d7f75fc6749 /net/ipv4
parent7cd0a63872ac6ef97265f07adc367ca4f984468e (diff)
tcp: remove pointless .dsack/.num_sacks code
In the pure assignment case, the earlier zeroing is still in effect. David S. Miller raised concerns if the ifs are there to avoid dirtying cachelines. I came to these conclusions: > We'll be dirty it anyway (now that I check), the first "real" statement > in tcp_rcv_established is: > > tp->rx_opt.saw_tstamp = 0; > > ...that'll land on the same dword. :-/ > > I suppose the blocks are there just because they had more complexity > inside when they had to calculate the eff_sacks too (maybe it would > have been better to just remove them in that drop-patch so you would > have had less head-ache :-)). Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r--net/ipv4/tcp_input.c7
-rw-r--r--net/ipv4/tcp_output.c3
2 files changed, 3 insertions, 7 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 5ecd7aa25979..cd39d1d02dc3 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -4248,8 +4248,7 @@ static void tcp_sack_remove(struct tcp_sock *tp)
4248 this_sack++; 4248 this_sack++;
4249 sp++; 4249 sp++;
4250 } 4250 }
4251 if (num_sacks != tp->rx_opt.num_sacks) 4251 tp->rx_opt.num_sacks = num_sacks;
4252 tp->rx_opt.num_sacks = num_sacks;
4253} 4252}
4254 4253
4255/* This one checks to see if we can put data from the 4254/* This one checks to see if we can put data from the
@@ -4325,8 +4324,7 @@ static void tcp_data_queue(struct sock *sk, struct sk_buff *skb)
4325 4324
4326 TCP_ECN_accept_cwr(tp, skb); 4325 TCP_ECN_accept_cwr(tp, skb);
4327 4326
4328 if (tp->rx_opt.dsack) 4327 tp->rx_opt.dsack = 0;
4329 tp->rx_opt.dsack = 0;
4330 4328
4331 /* Queue data for delivery to the user. 4329 /* Queue data for delivery to the user.
4332 * Packets in sequence go to the receive queue. 4330 * Packets in sequence go to the receive queue.
@@ -4445,7 +4443,6 @@ drop:
4445 /* Initial out of order segment, build 1 SACK. */ 4443 /* Initial out of order segment, build 1 SACK. */
4446 if (tcp_is_sack(tp)) { 4444 if (tcp_is_sack(tp)) {
4447 tp->rx_opt.num_sacks = 1; 4445 tp->rx_opt.num_sacks = 1;
4448 tp->rx_opt.dsack = 0;
4449 tp->selective_acks[0].start_seq = TCP_SKB_CB(skb)->seq; 4446 tp->selective_acks[0].start_seq = TCP_SKB_CB(skb)->seq;
4450 tp->selective_acks[0].end_seq = 4447 tp->selective_acks[0].end_seq =
4451 TCP_SKB_CB(skb)->end_seq; 4448 TCP_SKB_CB(skb)->end_seq;
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index eb285befdf3b..325658039139 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -441,8 +441,7 @@ static void tcp_options_write(__be32 *ptr, struct tcp_sock *tp,
441 *ptr++ = htonl(sp[this_sack].end_seq); 441 *ptr++ = htonl(sp[this_sack].end_seq);
442 } 442 }
443 443
444 if (tp->rx_opt.dsack) 444 tp->rx_opt.dsack = 0;
445 tp->rx_opt.dsack = 0;
446 } 445 }
447} 446}
448 447