Commit 5b01e886 authored by Mark McLoughlin's avatar Mark McLoughlin
Browse files

net: move the tap buffer into TAPState



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: default avatarMark McLoughlin <markmc@redhat.com>
parent 5a6d8815
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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);
    }
}