Re: [PATCH] tcp: remove redundant check on tskb

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 4/4/2019 8:16 PM, Colin King wrote:
From: Colin Ian King <colin.king@xxxxxxxxxxxxx>

The non-null check on tskb is always false because it is in an else
path of a check on tskb and hence tskb is null in this code block.
This is check is therefore redundant and can be removed as well
as the label coalesc.

if (tsbk) {
         ...
} else {
         ...
         if (unlikely(!skb)) {
                 if (tskb)       /* can never be true, redundant code */
                         goto coalesc;
                 return;
         }
}

Addresses-Coverity: ("Logically dead code")
Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
Reviewed-by: Mukesh Ojha <mojha@xxxxxxxxxxxxxx>

Cheers,
-Mukesh
---
  net/ipv4/tcp_output.c | 7 ++-----
  1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index e265d1aeeb66..32061928b054 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -3088,7 +3088,6 @@ void tcp_send_fin(struct sock *sk)
  		tskb = skb_rb_last(&sk->tcp_rtx_queue);
if (tskb) {
-coalesce:
  		TCP_SKB_CB(tskb)->tcp_flags |= TCPHDR_FIN;
  		TCP_SKB_CB(tskb)->end_seq++;
  		tp->write_seq++;
@@ -3104,11 +3103,9 @@ void tcp_send_fin(struct sock *sk)
  		}
  	} else {
  		skb = alloc_skb_fclone(MAX_TCP_HEADER, sk->sk_allocation);
-		if (unlikely(!skb)) {
-			if (tskb)
-				goto coalesce;
+		if (unlikely(!skb))
  			return;
-		}
+
  		INIT_LIST_HEAD(&skb->tcp_tsorted_anchor);
  		skb_reserve(skb, MAX_TCP_HEADER);
  		sk_forced_mem_schedule(sk, skb->truesize);



[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux