Hi, guys, I have a fix patch for this. Could anybody test it? Thanks. diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index af474cc191d0..426d68c2d01d 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -2492,13 +2492,15 @@ static unsigned int get_mergeable_buf_len(struct receive_queue *rq, { struct virtnet_info *vi = rq->vq->vdev->priv; const size_t hdr_len = vi->hdr_len; - unsigned int len; + unsigned int len, max_len; + + max_len = PAGE_SIZE - ALIGN(sizeof(struct virtnet_rq_dma), L1_CACHE_BYTES); if (room) - return PAGE_SIZE - room; + return max_len - room; len = hdr_len + clamp_t(unsigned int, ewma_pkt_len_read(avg_pkt_len), - rq->min_buf_len, PAGE_SIZE - hdr_len); + rq->min_buf_len, max_len - hdr_len); return ALIGN(len, L1_CACHE_BYTES); }