diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index d74e6f4aa248a39bdcde000e7bbae3adb5e8f7be..5413dbf3d4ac25ab688bb1a965ccf981f230addc 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -198,8 +198,8 @@ static int virtnet_poll(struct napi_struct *napi, int budget) if (vi->num < vi->max / 2) try_fill_recv(vi); - /* All done? */ - if (!skb) { + /* Out of packets? */ + if (received < budget) { netif_rx_complete(vi->dev, napi); if (unlikely(!vi->rvq->vq_ops->restart(vi->rvq)) && netif_rx_reschedule(vi->dev, napi))