[9/9] spapr_llan: fix device reenabling

Message ID 1367853917-2015-10-git-send-email-agraf@suse.de
State New
Headers show

Commit Message

Alexander Graf May 6, 2013, 3:25 p.m.
From: Alexey Kardashevskiy <aik@ozlabs.ru>

Normally, the "tap" device is polled by QEMU if a guest NIC can
receive packets. If a guest NIC is stopped during transfer (rmmod or
ifdown), it may still have packets in a queue which have to be send
to the guest before QEMU enables polling of a "tap" interface via

However the spapr_llan device was missing the qemu_flush_queued_packets()
call so the tap_send_completed() callback was never called and therefore
"tap" interface polling was not enabled ever.

The patch fixes this problem.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Alexander Graf <agraf@suse.de>
 hw/net/spapr_llan.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)


diff --git a/hw/net/spapr_llan.c b/hw/net/spapr_llan.c
index 3150add..03a09f2 100644
--- a/hw/net/spapr_llan.c
+++ b/hw/net/spapr_llan.c
@@ -336,6 +336,8 @@  static target_ulong h_register_logical_lan(PowerPCCPU *cpu,
     spapr_vio_dma_set(sdev, VLAN_BD_ADDR(rec_queue), 0, VLAN_BD_LEN(rec_queue));
     dev->isopen = 1;
+    qemu_flush_queued_packets(qemu_get_queue(dev->nic));
     return H_SUCCESS;