From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:54345) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UY9Nr-0003uB-Go for qemu-devel@nongnu.org; Fri, 03 May 2013 02:22:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UY9Nq-00008R-DP for qemu-devel@nongnu.org; Fri, 03 May 2013 02:22:19 -0400 Received: from mail-pb0-x230.google.com ([2607:f8b0:400e:c01::230]:34875) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UY9Nq-000088-6z for qemu-devel@nongnu.org; Fri, 03 May 2013 02:22:18 -0400 Received: by mail-pb0-f48.google.com with SMTP id ma3so739037pbc.35 for ; Thu, 02 May 2013 23:22:16 -0700 (PDT) From: Alexey Kardashevskiy Date: Fri, 3 May 2013 16:22:03 +1000 Message-Id: <1367562123-1686-1-git-send-email-aik@ozlabs.ru> Subject: [Qemu-devel] [PATCH] spapr_llan: fix device reenabling List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Alexey Kardashevskiy , qemu-ppc@nongnu.org, Alexander Graf , David Gibson 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 tap_update_fd_handler(). 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 --- hw/net/spapr_llan.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/net/spapr_llan.c b/hw/net/spapr_llan.c index cca3d1a..46f7d5f 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; } -- 1.7.10.4