aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/dev.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/core/dev.c')
-rw-r--r--net/core/dev.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index cc9e3652cf93..8cba3d852f25 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4351,6 +4351,7 @@ static void gro_list_prepare(struct napi_struct *napi, struct sk_buff *skb)
4351 4351
4352 diffs = (unsigned long)p->dev ^ (unsigned long)skb->dev; 4352 diffs = (unsigned long)p->dev ^ (unsigned long)skb->dev;
4353 diffs |= p->vlan_tci ^ skb->vlan_tci; 4353 diffs |= p->vlan_tci ^ skb->vlan_tci;
4354 diffs |= skb_metadata_dst_cmp(p, skb);
4354 if (maclen == ETH_HLEN) 4355 if (maclen == ETH_HLEN)
4355 diffs |= compare_ether_header(skb_mac_header(p), 4356 diffs |= compare_ether_header(skb_mac_header(p),
4356 skb_mac_header(skb)); 4357 skb_mac_header(skb));
@@ -4548,10 +4549,12 @@ static gro_result_t napi_skb_finish(gro_result_t ret, struct sk_buff *skb)
4548 break; 4549 break;
4549 4550
4550 case GRO_MERGED_FREE: 4551 case GRO_MERGED_FREE:
4551 if (NAPI_GRO_CB(skb)->free == NAPI_GRO_FREE_STOLEN_HEAD) 4552 if (NAPI_GRO_CB(skb)->free == NAPI_GRO_FREE_STOLEN_HEAD) {
4553 skb_dst_drop(skb);
4552 kmem_cache_free(skbuff_head_cache, skb); 4554 kmem_cache_free(skbuff_head_cache, skb);
4553 else 4555 } else {
4554 __kfree_skb(skb); 4556 __kfree_skb(skb);
4557 }
4555 break; 4558 break;
4556 4559
4557 case GRO_HELD: 4560 case GRO_HELD: