Patchwork [03/13] xen: flush queue when getting an event

login
register
mail settings
Submitter Stefan Hajnoczi
Date Sept. 14, 2012, 8:46 a.m.
Message ID <1347612420-5704-4-git-send-email-stefanha@gmail.com>
Download mbox | patch
Permalink /patch/183851/
State New
Headers show

Comments

Stefan Hajnoczi - Sept. 14, 2012, 8:46 a.m.
From: Paolo Bonzini <pbonzini@redhat.com>

xen does not have a register that, when written, will cause can_receive
to go from false to true.  However, flushing the queue can be attempted
whenever the front-end raises its side of the Xen event channel.  There
is a single event channel for tx and rx.

Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Amos Kong <akong@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
---
 hw/xen_nic.c |    1 +
 1 file changed, 1 insertion(+)

Patch

diff --git a/hw/xen_nic.c b/hw/xen_nic.c
index 8b79bfb..cf7d559 100644
--- a/hw/xen_nic.c
+++ b/hw/xen_nic.c
@@ -415,6 +415,7 @@  static void net_event(struct XenDevice *xendev)
 {
     struct XenNetDev *netdev = container_of(xendev, struct XenNetDev, xendev);
     net_tx_packets(netdev);
+    qemu_flush_queued_packets(&netdev->nic->nc);
 }
 
 static int net_free(struct XenDevice *xendev)