aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_offload.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4/tcp_offload.c')
-rw-r--r--net/ipv4/tcp_offload.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/ipv4/tcp_offload.c b/net/ipv4/tcp_offload.c
index a2b68a108eae..55aeec930140 100644
--- a/net/ipv4/tcp_offload.c
+++ b/net/ipv4/tcp_offload.c
@@ -276,6 +276,10 @@ static struct sk_buff **tcp4_gro_receive(struct sk_buff **head, struct sk_buff *
276 __wsum wsum; 276 __wsum wsum;
277 __sum16 sum; 277 __sum16 sum;
278 278
279 /* Don't bother verifying checksum if we're going to flush anyway. */
280 if (NAPI_GRO_CB(skb)->flush)
281 goto skip_csum;
282
279 switch (skb->ip_summed) { 283 switch (skb->ip_summed) {
280 case CHECKSUM_COMPLETE: 284 case CHECKSUM_COMPLETE:
281 if (!tcp_v4_check(skb_gro_len(skb), iph->saddr, iph->daddr, 285 if (!tcp_v4_check(skb_gro_len(skb), iph->saddr, iph->daddr,
@@ -301,6 +305,7 @@ flush:
301 break; 305 break;
302 } 306 }
303 307
308skip_csum:
304 return tcp_gro_receive(head, skb); 309 return tcp_gro_receive(head, skb);
305} 310}
306 311