Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 98be9b12 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

tcp: remove dead code after CHECKSUM_PARTIAL adoption



Since all skbs in write/rtx queues have CHECKSUM_PARTIAL,
we can remove dead code.

Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4a64fd6c
Loading
Loading
Loading
Loading
+3 −10
Original line number Original line Diff line number Diff line
@@ -561,16 +561,9 @@ void __tcp_v4_send_check(struct sk_buff *skb, __be32 saddr, __be32 daddr)
{
{
	struct tcphdr *th = tcp_hdr(skb);
	struct tcphdr *th = tcp_hdr(skb);


	if (skb->ip_summed == CHECKSUM_PARTIAL) {
	th->check = ~tcp_v4_check(skb->len, saddr, daddr, 0);
	th->check = ~tcp_v4_check(skb->len, saddr, daddr, 0);
	skb->csum_start = skb_transport_header(skb) - skb->head;
	skb->csum_start = skb_transport_header(skb) - skb->head;
	skb->csum_offset = offsetof(struct tcphdr, check);
	skb->csum_offset = offsetof(struct tcphdr, check);
	} else {
		th->check = tcp_v4_check(skb->len, saddr, daddr,
					 csum_partial(th,
						      th->doff << 2,
						      skb->csum));
	}
}
}


/* This routine computes an IPv4 TCP checksum. */
/* This routine computes an IPv4 TCP checksum. */
+5 −33
Original line number Original line Diff line number Diff line
@@ -1335,21 +1335,9 @@ int tcp_fragment(struct sock *sk, enum tcp_queue tcp_queue,
	TCP_SKB_CB(buff)->sacked = TCP_SKB_CB(skb)->sacked;
	TCP_SKB_CB(buff)->sacked = TCP_SKB_CB(skb)->sacked;
	tcp_skb_fragment_eor(skb, buff);
	tcp_skb_fragment_eor(skb, buff);


	if (!skb_shinfo(skb)->nr_frags && skb->ip_summed != CHECKSUM_PARTIAL) {
		/* Copy and checksum data tail into the new buffer. */
		buff->csum = csum_partial_copy_nocheck(skb->data + len,
						       skb_put(buff, nsize),
						       nsize, 0);

		skb_trim(skb, len);

		skb->csum = csum_block_sub(skb->csum, buff->csum, len);
	} else {
		skb->ip_summed = CHECKSUM_PARTIAL;
	skb_split(skb, buff, len);
	skb_split(skb, buff, len);
	}


	buff->ip_summed = skb->ip_summed;
	buff->ip_summed = CHECKSUM_PARTIAL;


	buff->tstamp = skb->tstamp;
	buff->tstamp = skb->tstamp;
	tcp_fragment_tstamp(skb, buff);
	tcp_fragment_tstamp(skb, buff);
@@ -1901,7 +1889,7 @@ static int tso_fragment(struct sock *sk, enum tcp_queue tcp_queue,


	tcp_skb_fragment_eor(skb, buff);
	tcp_skb_fragment_eor(skb, buff);


	buff->ip_summed = skb->ip_summed = CHECKSUM_PARTIAL;
	buff->ip_summed = CHECKSUM_PARTIAL;
	skb_split(skb, buff, len);
	skb_split(skb, buff, len);
	tcp_fragment_tstamp(skb, buff);
	tcp_fragment_tstamp(skb, buff);


@@ -2134,7 +2122,7 @@ static int tcp_mtu_probe(struct sock *sk)
	TCP_SKB_CB(nskb)->tcp_flags = TCPHDR_ACK;
	TCP_SKB_CB(nskb)->tcp_flags = TCPHDR_ACK;
	TCP_SKB_CB(nskb)->sacked = 0;
	TCP_SKB_CB(nskb)->sacked = 0;
	nskb->csum = 0;
	nskb->csum = 0;
	nskb->ip_summed = skb->ip_summed;
	nskb->ip_summed = CHECKSUM_PARTIAL;


	tcp_insert_write_queue_before(nskb, skb, sk);
	tcp_insert_write_queue_before(nskb, skb, sk);
	tcp_highest_sack_replace(sk, skb, nskb);
	tcp_highest_sack_replace(sk, skb, nskb);
@@ -2142,14 +2130,7 @@ static int tcp_mtu_probe(struct sock *sk)
	len = 0;
	len = 0;
	tcp_for_write_queue_from_safe(skb, next, sk) {
	tcp_for_write_queue_from_safe(skb, next, sk) {
		copy = min_t(int, skb->len, probe_size - len);
		copy = min_t(int, skb->len, probe_size - len);
		if (nskb->ip_summed) {
		skb_copy_bits(skb, 0, skb_put(nskb, copy), copy);
		skb_copy_bits(skb, 0, skb_put(nskb, copy), copy);
		} else {
			__wsum csum = skb_copy_and_csum_bits(skb, 0,
							     skb_put(nskb, copy),
							     copy, 0);
			nskb->csum = csum_block_add(nskb->csum, csum, len);
		}


		if (skb->len <= copy) {
		if (skb->len <= copy) {
			/* We've eaten all the data from this skb.
			/* We've eaten all the data from this skb.
@@ -2166,9 +2147,6 @@ static int tcp_mtu_probe(struct sock *sk)
						   ~(TCPHDR_FIN|TCPHDR_PSH);
						   ~(TCPHDR_FIN|TCPHDR_PSH);
			if (!skb_shinfo(skb)->nr_frags) {
			if (!skb_shinfo(skb)->nr_frags) {
				skb_pull(skb, copy);
				skb_pull(skb, copy);
				if (skb->ip_summed != CHECKSUM_PARTIAL)
					skb->csum = csum_partial(skb->data,
								 skb->len, 0);
			} else {
			} else {
				__pskb_trim_head(skb, copy);
				__pskb_trim_head(skb, copy);
				tcp_set_skb_tso_segs(skb, mss_now);
				tcp_set_skb_tso_segs(skb, mss_now);
@@ -2746,12 +2724,6 @@ static bool tcp_collapse_retrans(struct sock *sk, struct sk_buff *skb)
	}
	}
	tcp_highest_sack_replace(sk, next_skb, skb);
	tcp_highest_sack_replace(sk, next_skb, skb);


	if (next_skb->ip_summed == CHECKSUM_PARTIAL)
		skb->ip_summed = CHECKSUM_PARTIAL;

	if (skb->ip_summed != CHECKSUM_PARTIAL)
		skb->csum = csum_block_add(skb->csum, next_skb->csum, skb_size);

	/* Update sequence range on original skb. */
	/* Update sequence range on original skb. */
	TCP_SKB_CB(skb)->end_seq = TCP_SKB_CB(next_skb)->end_seq;
	TCP_SKB_CB(skb)->end_seq = TCP_SKB_CB(next_skb)->end_seq;