tcp: cleanup tcp_remove_empty_skb() use
authorEric Dumazet <edumazet@google.com>
Wed, 27 Oct 2021 20:19:18 +0000 (13:19 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 28 Oct 2021 11:44:38 +0000 (12:44 +0100)
All tcp_remove_empty_skb() callers now use tcp_write_queue_tail()
for the skb argument, we can therefore factorize code.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tcp.h
net/ipv4/tcp.c
net/mptcp/protocol.c

index 701587a..8e8c592 100644 (file)
@@ -311,7 +311,7 @@ void tcp_shutdown(struct sock *sk, int how);
 int tcp_v4_early_demux(struct sk_buff *skb);
 int tcp_v4_rcv(struct sk_buff *skb);
 
-void tcp_remove_empty_skb(struct sock *sk, struct sk_buff *skb);
+void tcp_remove_empty_skb(struct sock *sk);
 int tcp_v4_tw_remember_stamp(struct inet_timewait_sock *tw);
 int tcp_sendmsg(struct sock *sk, struct msghdr *msg, size_t size);
 int tcp_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t size);
index 4053ace..68b946c 100644 (file)
@@ -933,8 +933,10 @@ int tcp_send_mss(struct sock *sk, int *size_goal, int flags)
  * importantly be able to generate EPOLLOUT for Edge Trigger epoll()
  * users.
  */
-void tcp_remove_empty_skb(struct sock *sk, struct sk_buff *skb)
+void tcp_remove_empty_skb(struct sock *sk)
 {
+       struct sk_buff *skb = tcp_write_queue_tail(sk);
+
        if (skb && TCP_SKB_CB(skb)->seq == TCP_SKB_CB(skb)->end_seq) {
                tcp_unlink_write_queue(skb, sk);
                if (tcp_write_queue_empty(sk))
@@ -1087,7 +1089,7 @@ out:
        return copied;
 
 do_error:
-       tcp_remove_empty_skb(sk, tcp_write_queue_tail(sk));
+       tcp_remove_empty_skb(sk);
        if (copied)
                goto out;
 out_err:
@@ -1408,8 +1410,7 @@ out_nopush:
        return copied + copied_syn;
 
 do_error:
-       skb = tcp_write_queue_tail(sk);
-       tcp_remove_empty_skb(sk, skb);
+       tcp_remove_empty_skb(sk);
 
        if (copied + copied_syn)
                goto out;
index eb316bd..10b336d 100644 (file)
@@ -1291,7 +1291,7 @@ alloc_skb:
                u64 snd_una = READ_ONCE(msk->snd_una);
 
                if (snd_una != msk->snd_nxt) {
-                       tcp_remove_empty_skb(ssk, tcp_write_queue_tail(ssk));
+                       tcp_remove_empty_skb(ssk);
                        return 0;
                }
 
@@ -1307,7 +1307,7 @@ alloc_skb:
 
        copy = min_t(size_t, copy, info->limit - info->sent);
        if (!sk_wmem_schedule(ssk, copy)) {
-               tcp_remove_empty_skb(ssk, tcp_write_queue_tail(ssk));
+               tcp_remove_empty_skb(ssk);
                return -ENOMEM;
        }