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

Commit 31da185d authored by Patrick McHardy's avatar Patrick McHardy Committed by David S. Miller
Browse files

[NETFILTER]: Don't checksum CHECKSUM_UNNECESSARY skbs in TCP connection tracking

parent b4330957
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -819,6 +819,7 @@ static int tcp_error(struct sk_buff *skb,
	 */
	 */
	/* FIXME: Source route IP option packets --RR */
	/* FIXME: Source route IP option packets --RR */
	if (hooknum == NF_IP_PRE_ROUTING
	if (hooknum == NF_IP_PRE_ROUTING
	    && skb->ip_summed != CHECKSUM_UNNECESSARY
	    && csum_tcpudp_magic(iph->saddr, iph->daddr, tcplen, IPPROTO_TCP,
	    && csum_tcpudp_magic(iph->saddr, iph->daddr, tcplen, IPPROTO_TCP,
			         skb->ip_summed == CHECKSUM_HW ? skb->csum
			         skb->ip_summed == CHECKSUM_HW ? skb->csum
			      	 : skb_checksum(skb, iph->ihl*4, tcplen, 0))) {
			      	 : skb_checksum(skb, iph->ihl*4, tcplen, 0))) {