Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
This commit is contained in:
@ -5783,10 +5783,11 @@ static void gro_normal_list(struct napi_struct *napi)
|
||||
/* Queue one GRO_NORMAL SKB up for list processing. If batch size exceeded,
|
||||
* pass the whole batch up to the stack.
|
||||
*/
|
||||
static void gro_normal_one(struct napi_struct *napi, struct sk_buff *skb)
|
||||
static void gro_normal_one(struct napi_struct *napi, struct sk_buff *skb, int segs)
|
||||
{
|
||||
list_add_tail(&skb->list, &napi->rx_list);
|
||||
if (++napi->rx_count >= gro_normal_batch)
|
||||
napi->rx_count += segs;
|
||||
if (napi->rx_count >= gro_normal_batch)
|
||||
gro_normal_list(napi);
|
||||
}
|
||||
|
||||
@ -5823,7 +5824,7 @@ static int napi_gro_complete(struct napi_struct *napi, struct sk_buff *skb)
|
||||
}
|
||||
|
||||
out:
|
||||
gro_normal_one(napi, skb);
|
||||
gro_normal_one(napi, skb, NAPI_GRO_CB(skb)->count);
|
||||
return NET_RX_SUCCESS;
|
||||
}
|
||||
|
||||
@ -6109,7 +6110,7 @@ static gro_result_t napi_skb_finish(struct napi_struct *napi,
|
||||
{
|
||||
switch (ret) {
|
||||
case GRO_NORMAL:
|
||||
gro_normal_one(napi, skb);
|
||||
gro_normal_one(napi, skb, 1);
|
||||
break;
|
||||
|
||||
case GRO_MERGED_FREE:
|
||||
@ -6193,7 +6194,7 @@ static gro_result_t napi_frags_finish(struct napi_struct *napi,
|
||||
__skb_push(skb, ETH_HLEN);
|
||||
skb->protocol = eth_type_trans(skb, skb->dev);
|
||||
if (ret == GRO_NORMAL)
|
||||
gro_normal_one(napi, skb);
|
||||
gro_normal_one(napi, skb, 1);
|
||||
break;
|
||||
|
||||
case GRO_MERGED_FREE:
|
||||
|
||||
Reference in New Issue
Block a user