[TCP]: Remove TCPCB_URG & TCPCB_AT_TAIL as unnecessary
authorIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
Mon, 31 Dec 2007 12:50:19 +0000 (04:50 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jan 2008 23:00:23 +0000 (15:00 -0800)
The snd_up check should be enough. I suspect this has been
there to provide a minor optimization in clean_rtx_queue which
used to have a small if (!->sacked) block which could skip
snd_up check among the other work.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tcp.h
net/ipv4/tcp.c
net/ipv4/tcp_input.c
net/ipv4/tcp_output.c

index 6a732d4919fe2f91e47b583f87447236c5e8e3a9..48081ada92a7fe1746ebdc7035f5fd8b8cb987c8 100644 (file)
@@ -578,10 +578,6 @@ struct tcp_skb_cb {
 #define TCPCB_EVER_RETRANS     0x80    /* Ever retransmitted frame     */
 #define TCPCB_RETRANS          (TCPCB_SACKED_RETRANS|TCPCB_EVER_RETRANS)
 
-#define TCPCB_URG              0x20    /* Urgent pointer advanced here */
-
-#define TCPCB_AT_TAIL          (TCPCB_URG)
-
        __u16           urg_ptr;        /* Valid w/URG flags is set.    */
        __u32           ack_seq;        /* Sequence number ACK'd        */
 };
index 2cbfa6df7976cc5a732ac9944ee26380054794de..34085e3a40965b711b8badd810852a3ee6da6c3f 100644 (file)
@@ -497,7 +497,6 @@ static inline void tcp_mark_urg(struct tcp_sock *tp, int flags,
        if (flags & MSG_OOB) {
                tp->urg_mode = 1;
                tp->snd_up = tp->write_seq;
-               TCP_SKB_CB(skb)->sacked |= TCPCB_URG;
        }
 }
 
index 7bac1fac065fd32fdb80168a6e497600c2fa9271..1e7fd8113663424a0fda7c9aad9d2d70eb0d4831 100644 (file)
@@ -2821,8 +2821,7 @@ static int tcp_clean_rtx_queue(struct sock *sk, int prior_fackets)
                if (sacked & TCPCB_LOST)
                        tp->lost_out -= acked_pcount;
 
-               if (unlikely((sacked & TCPCB_URG) && tp->urg_mode &&
-                            !before(end_seq, tp->snd_up)))
+               if (unlikely(tp->urg_mode && !before(end_seq, tp->snd_up)))
                        tp->urg_mode = 0;
 
                tp->packets_out -= acked_pcount;
index 821fae271428338312acd7d131424ce32783c636..cd21528665f3977f6a3c33062a0cbc266f69e7a3 100644 (file)
@@ -711,7 +711,6 @@ int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len, unsigned int mss
        TCP_SKB_CB(skb)->flags = flags & ~(TCPCB_FLAG_FIN|TCPCB_FLAG_PSH);
        TCP_SKB_CB(buff)->flags = flags;
        TCP_SKB_CB(buff)->sacked = TCP_SKB_CB(skb)->sacked;
-       TCP_SKB_CB(skb)->sacked &= ~TCPCB_AT_TAIL;
 
        if (!skb_shinfo(skb)->nr_frags && skb->ip_summed != CHECKSUM_PARTIAL) {
                /* Copy and checksum data tail into the new buffer. */
@@ -1726,7 +1725,7 @@ static void tcp_retrans_try_collapse(struct sock *sk, struct sk_buff *skb, int m
                /* All done, get rid of second SKB and account for it so
                 * packet counting does not break.
                 */
-               TCP_SKB_CB(skb)->sacked |= TCP_SKB_CB(next_skb)->sacked&(TCPCB_EVER_RETRANS|TCPCB_AT_TAIL);
+               TCP_SKB_CB(skb)->sacked |= TCP_SKB_CB(next_skb)->sacked & TCPCB_EVER_RETRANS;
                if (TCP_SKB_CB(next_skb)->sacked&TCPCB_SACKED_RETRANS)
                        tp->retrans_out -= tcp_skb_pcount(next_skb);
                if (TCP_SKB_CB(next_skb)->sacked&TCPCB_LOST)
@@ -2475,7 +2474,7 @@ static int tcp_xmit_probe_skb(struct sock *sk, int urgent)
        skb_reserve(skb, MAX_TCP_HEADER);
        skb->csum = 0;
        TCP_SKB_CB(skb)->flags = TCPCB_FLAG_ACK;
-       TCP_SKB_CB(skb)->sacked = urgent;
+       TCP_SKB_CB(skb)->sacked = 0;
        skb_shinfo(skb)->gso_segs = 1;
        skb_shinfo(skb)->gso_size = 0;
        skb_shinfo(skb)->gso_type = 0;
@@ -2527,7 +2526,7 @@ int tcp_write_wakeup(struct sock *sk)
                } else {
                        if (tp->urg_mode &&
                            between(tp->snd_up, tp->snd_una+1, tp->snd_una+0xFFFF))
-                               tcp_xmit_probe_skb(sk, TCPCB_URG);
+                               tcp_xmit_probe_skb(sk, 1);
                        return tcp_xmit_probe_skb(sk, 0);
                }
        }