diff options
| -rw-r--r-- | drivers/net/virtio_net.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 0778dc88597e..77ae358ec630 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c | |||
| @@ -584,10 +584,12 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, | |||
| 584 | put_page(page); | 584 | put_page(page); |
| 585 | head_skb = page_to_skb(vi, rq, xdp_page, | 585 | head_skb = page_to_skb(vi, rq, xdp_page, |
| 586 | 0, len, PAGE_SIZE); | 586 | 0, len, PAGE_SIZE); |
| 587 | ewma_pkt_len_add(&rq->mrg_avg_pkt_len, len); | ||
| 587 | return head_skb; | 588 | return head_skb; |
| 588 | } | 589 | } |
| 589 | break; | 590 | break; |
| 590 | case XDP_TX: | 591 | case XDP_TX: |
| 592 | ewma_pkt_len_add(&rq->mrg_avg_pkt_len, len); | ||
| 591 | if (unlikely(xdp_page != page)) | 593 | if (unlikely(xdp_page != page)) |
| 592 | goto err_xdp; | 594 | goto err_xdp; |
| 593 | rcu_read_unlock(); | 595 | rcu_read_unlock(); |
| @@ -596,6 +598,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, | |||
| 596 | default: | 598 | default: |
| 597 | if (unlikely(xdp_page != page)) | 599 | if (unlikely(xdp_page != page)) |
| 598 | __free_pages(xdp_page, 0); | 600 | __free_pages(xdp_page, 0); |
| 601 | ewma_pkt_len_add(&rq->mrg_avg_pkt_len, len); | ||
| 599 | goto err_xdp; | 602 | goto err_xdp; |
| 600 | } | 603 | } |
| 601 | } | 604 | } |
