From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:60774) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UZN9W-0007VR-P2 for qemu-devel@nongnu.org; Mon, 06 May 2013 11:16:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UZN9R-0006zN-Md for qemu-devel@nongnu.org; Mon, 06 May 2013 11:16:34 -0400 Message-ID: <5187C948.30607@suse.de> Date: Mon, 06 May 2013 17:16:24 +0200 From: Alexander Graf MIME-Version: 1.0 References: <1367562123-1686-1-git-send-email-aik@ozlabs.ru> In-Reply-To: <1367562123-1686-1-git-send-email-aik@ozlabs.ru> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] spapr_llan: fix device reenabling List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexey Kardashevskiy Cc: qemu-ppc@nongnu.org, qemu-devel@nongnu.org, David Gibson On 05/03/2013 08:22 AM, Alexey Kardashevskiy wrote: > 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 Thanks, applied to ppc-next. Alex > --- > 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; > } >