mirror of https://github.com/xemu-project/xemu.git
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: Mark McLoughlin <markmc@redhat.com>
This commit is contained in:
parent
5a6d881574
commit
5b01e886d9
6
net.c
6
net.c
|
@ -921,6 +921,7 @@ typedef struct TAPState {
|
||||||
int fd;
|
int fd;
|
||||||
char down_script[1024];
|
char down_script[1024];
|
||||||
char down_script_arg[128];
|
char down_script_arg[128];
|
||||||
|
uint8_t buf[4096];
|
||||||
} TAPState;
|
} TAPState;
|
||||||
|
|
||||||
static int launch_script(const char *setup_script, const char *ifname, int fd);
|
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)
|
static void tap_send(void *opaque)
|
||||||
{
|
{
|
||||||
TAPState *s = opaque;
|
TAPState *s = opaque;
|
||||||
uint8_t buf[4096];
|
|
||||||
int size;
|
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) {
|
if (size > 0) {
|
||||||
qemu_send_packet(s->vc, buf, size);
|
qemu_send_packet(s->vc, s->buf, size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue