]> xenbits.xensource.com Git - qemu-xen-4.5-testing.git/commitdiff
net: move the tap buffer into TAPState
authorMark McLoughlin <markmc@redhat.com>
Mon, 18 May 2009 11:05:44 +0000 (12:05 +0100)
committerMark McLoughlin <markmc@redhat.com>
Tue, 9 Jun 2009 10:38:49 +0000 (11:38 +0100)
KVM uses a 64k buffer for reading from tapfd (for GSO support)
and allocates the buffer with TAPState rather than on the stack.

Not allocating it on the stack probably makes sense for qemu
anyway, so merge it in advance of GSO support.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
net.c

diff --git a/net.c b/net.c
index da18f0f649069ef05e4c9ac7e7a689c92df46a53..443f769a03fa79f28fb3cf5fe6dddb3802f2b233 100644 (file)
--- a/net.c
+++ b/net.c
@@ -921,6 +921,7 @@ typedef struct TAPState {
     int fd;
     char down_script[1024];
     char down_script_arg[128];
+    uint8_t buf[4096];
 } TAPState;
 
 static int launch_script(const char *setup_script, const char *ifname, int fd);
@@ -972,12 +973,11 @@ static ssize_t tap_read_packet(int tapfd, uint8_t *buf, int maxlen)
 static void tap_send(void *opaque)
 {
     TAPState *s = opaque;
-    uint8_t buf[4096];
     int size;
 
-    size = tap_read_packet(s->fd, buf, sizeof(buf));
+    size = tap_read_packet(s->fd, s->buf, sizeof(s->buf));
     if (size > 0) {
-        qemu_send_packet(s->vc, buf, size);
+        qemu_send_packet(s->vc, s->buf, size);
     }
 }