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. v3: - keep "} else {" 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 | 59 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 51 insertions(+), 8 deletions(-) -- 2.37.3