From: Akihiko Odaki Date: Tue, 23 May 2023 02:43:14 +0000 (+0900) Subject: vmxnet3: Reset packet state after emptying Tx queue X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=1c5618a267640c8d315bf25ab0b84b24980d2458;p=qmiga%2Fqemu.git vmxnet3: Reset packet state after emptying Tx queue Keeping Tx packet state after the transmit queue is emptied but this behavior is unreliable as the state can be reset anytime the migration happens. Always reset Tx packet state always after the queue is emptied. Signed-off-by: Akihiko Odaki Signed-off-by: Jason Wang --- diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c index 05f41b6dfa..18b9edfdb2 100644 --- a/hw/net/vmxnet3.c +++ b/hw/net/vmxnet3.c @@ -681,6 +681,8 @@ static void vmxnet3_process_tx_queue(VMXNET3State *s, int qidx) net_tx_pkt_unmap_frag_pci, PCI_DEVICE(s)); } } + + net_tx_pkt_reset(s->tx_pkt, net_tx_pkt_unmap_frag_pci, PCI_DEVICE(s)); } static inline void @@ -1159,7 +1161,6 @@ static void vmxnet3_deactivate_device(VMXNET3State *s) { if (s->device_active) { VMW_CBPRN("Deactivating vmxnet3..."); - net_tx_pkt_reset(s->tx_pkt, net_tx_pkt_unmap_frag_pci, PCI_DEVICE(s)); net_tx_pkt_uninit(s->tx_pkt); net_rx_pkt_uninit(s->rx_pkt); s->device_active = false;