When virtio_net_flush_tx() reaches the tx_burst value all the queue is not flushed and nothing restart the timer or the bottom half function.
For BH, this is only missing in the virtio_net_tx_complete() function. For the timer, the same fix is needed in virtio_net_tx_complete() but it must be also managed in the TX timer function. v2: - fix also tx timer Laurent Vivier (2): virtio-net: fix bottom-half packet TX on asynchronous completion virtio-net: fix TX timer with tx_burst hw/net/virtio-net.c | 68 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 56 insertions(+), 12 deletions(-) -- 2.37.3