qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 13/13] virtio-net: implement rx packet queueing


From: Mark McLoughlin
Subject: [Qemu-devel] [PATCH 13/13] virtio-net: implement rx packet queueing
Date: Fri, 22 May 2009 15:25:30 +0100

If we don't have room to receive a packet, we return zero
from virtio_net_receive() and call qemu_flush_queued_packets()
as soon as space becomes available.

Signed-off-by: Mark McLoughlin <address@hidden>
---
 hw/virtio-net.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/hw/virtio-net.c b/hw/virtio-net.c
index 6b34c5a..a3ba890 100644
--- a/hw/virtio-net.c
+++ b/hw/virtio-net.c
@@ -269,6 +269,9 @@ static void virtio_net_handle_ctrl(VirtIODevice *vdev, 
VirtQueue *vq)
 
 static void virtio_net_handle_rx(VirtIODevice *vdev, VirtQueue *vq)
 {
+    VirtIONet *n = to_virtio_net(vdev);
+
+    qemu_flush_queued_packets(n->vc);
 }
 
 static int do_virtio_net_can_receive(VirtIONet *n, int bufsize)
@@ -368,7 +371,7 @@ static ssize_t virtio_net_receive(VLANClientState *vc, 
const uint8_t *buf, size_
     size_t hdr_len, offset, i;
 
     if (!do_virtio_net_can_receive(n, size))
-        return -1;
+        return 0;
 
     if (!receive_filter(n, buf, size))
         return size;
-- 
1.6.0.6





reply via email to

[Prev in Thread] Current Thread [Next in Thread]