|
@@ -162,7 +162,7 @@ Signe-off-by: Felix Fietkau <[email protected]>
|
|
|
if (unlikely(skb->ip_summed != CHECKSUM_PARTIAL)) {
|
|
|
const struct iphdr *iph = ip_hdr(skb);
|
|
|
struct tcphdr *th = tcp_hdr(skb);
|
|
|
-@@ -178,61 +245,76 @@ out:
|
|
|
+@@ -181,61 +248,76 @@ out:
|
|
|
return segs;
|
|
|
}
|
|
|
|
|
@@ -269,7 +269,7 @@ Signe-off-by: Felix Fietkau <[email protected]>
|
|
|
flush = NAPI_GRO_CB(p)->flush;
|
|
|
flush |= (__force int)(flags & TCP_FLAG_CWR);
|
|
|
flush |= (__force int)((flags ^ tcp_flag_word(th2)) &
|
|
|
-@@ -269,6 +351,19 @@ found:
|
|
|
+@@ -272,6 +354,19 @@ found:
|
|
|
flush |= p->decrypted ^ skb->decrypted;
|
|
|
#endif
|
|
|
|
|
@@ -289,7 +289,7 @@ Signe-off-by: Felix Fietkau <[email protected]>
|
|
|
if (flush || skb_gro_receive(p, skb)) {
|
|
|
mss = 1;
|
|
|
goto out_check_final;
|
|
|
-@@ -290,7 +385,6 @@ out_check_final:
|
|
|
+@@ -293,7 +388,6 @@ out_check_final:
|
|
|
if (p && (!NAPI_GRO_CB(skb)->same_flow || flush))
|
|
|
pp = p;
|
|
|
|
|
@@ -297,7 +297,7 @@ Signe-off-by: Felix Fietkau <[email protected]>
|
|
|
NAPI_GRO_CB(skb)->flush |= (flush != 0);
|
|
|
|
|
|
return pp;
|
|
|
-@@ -314,18 +408,58 @@ void tcp_gro_complete(struct sk_buff *sk
|
|
|
+@@ -317,18 +411,58 @@ void tcp_gro_complete(struct sk_buff *sk
|
|
|
}
|
|
|
EXPORT_SYMBOL(tcp_gro_complete);
|
|
|
|
|
@@ -361,7 +361,7 @@ Signe-off-by: Felix Fietkau <[email protected]>
|
|
|
}
|
|
|
|
|
|
INDIRECT_CALLABLE_SCOPE int tcp4_gro_complete(struct sk_buff *skb, int thoff)
|
|
|
-@@ -333,6 +467,15 @@ INDIRECT_CALLABLE_SCOPE int tcp4_gro_com
|
|
|
+@@ -336,6 +470,15 @@ INDIRECT_CALLABLE_SCOPE int tcp4_gro_com
|
|
|
const struct iphdr *iph = ip_hdr(skb);
|
|
|
struct tcphdr *th = tcp_hdr(skb);
|
|
|
|
|
@@ -379,7 +379,7 @@ Signe-off-by: Felix Fietkau <[email protected]>
|
|
|
skb_shinfo(skb)->gso_type |= SKB_GSO_TCPV4;
|
|
|
--- a/net/ipv4/udp_offload.c
|
|
|
+++ b/net/ipv4/udp_offload.c
|
|
|
-@@ -447,33 +447,6 @@ out:
|
|
|
+@@ -451,33 +451,6 @@ out:
|
|
|
return segs;
|
|
|
}
|
|
|
|