|
@@ -1630,9 +1630,6 @@ static inline void tcp_check_send_head(struct sock *sk, struct sk_buff *skb_unli
|
|
|
{
|
|
|
if (tcp_write_queue_empty(sk))
|
|
|
tcp_chrono_stop(sk, TCP_CHRONO_BUSY);
|
|
|
-
|
|
|
- if (tcp_sk(sk)->highest_sack == skb_unlinked)
|
|
|
- tcp_sk(sk)->highest_sack = NULL;
|
|
|
}
|
|
|
|
|
|
static inline void __tcp_add_write_queue_tail(struct sock *sk, struct sk_buff *skb)
|
|
@@ -1645,12 +1642,8 @@ static inline void tcp_add_write_queue_tail(struct sock *sk, struct sk_buff *skb
|
|
|
__tcp_add_write_queue_tail(sk, skb);
|
|
|
|
|
|
/* Queue it, remembering where we must start sending. */
|
|
|
- if (sk->sk_write_queue.next == skb) {
|
|
|
+ if (sk->sk_write_queue.next == skb)
|
|
|
tcp_chrono_start(sk, TCP_CHRONO_BUSY);
|
|
|
-
|
|
|
- if (tcp_sk(sk)->highest_sack == NULL)
|
|
|
- tcp_sk(sk)->highest_sack = skb;
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
/* Insert new before skb on the write queue of sk. */
|
|
@@ -1708,9 +1701,7 @@ static inline u32 tcp_highest_sack_seq(struct tcp_sock *tp)
|
|
|
|
|
|
static inline void tcp_advance_highest_sack(struct sock *sk, struct sk_buff *skb)
|
|
|
{
|
|
|
- struct sk_buff *next = skb_rb_next(skb);
|
|
|
-
|
|
|
- tcp_sk(sk)->highest_sack = next ?: tcp_send_head(sk);
|
|
|
+ tcp_sk(sk)->highest_sack = skb_rb_next(skb);
|
|
|
}
|
|
|
|
|
|
static inline struct sk_buff *tcp_highest_sack(struct sock *sk)
|
|
@@ -1720,9 +1711,7 @@ static inline struct sk_buff *tcp_highest_sack(struct sock *sk)
|
|
|
|
|
|
static inline void tcp_highest_sack_reset(struct sock *sk)
|
|
|
{
|
|
|
- struct sk_buff *skb = tcp_rtx_queue_head(sk);
|
|
|
-
|
|
|
- tcp_sk(sk)->highest_sack = skb ?: tcp_send_head(sk);
|
|
|
+ tcp_sk(sk)->highest_sack = tcp_rtx_queue_head(sk);
|
|
|
}
|
|
|
|
|
|
/* Called when old skb is about to be deleted and replaced by new skb */
|