[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCHv2 09/14] virtio-net: simplify rx code
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] [PATCHv2 09/14] virtio-net: simplify rx code |
Date: |
Tue, 25 Sep 2012 13:12:41 +0200 |
Remove code duplication using guest header length that we track.
Drop specific layout requirement for rx buffers: things work
using generic iovec functions in any case.
Signed-off-by: Michael S. Tsirkin <address@hidden>
---
hw/virtio-net.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/hw/virtio-net.c b/hw/virtio-net.c
index 358093e..86cd4a9 100644
--- a/hw/virtio-net.c
+++ b/hw/virtio-net.c
@@ -720,12 +720,7 @@ static int32_t virtio_net_flush_tx(VirtIONet *n, VirtQueue
*vq)
struct iovec *out_sg = &elem.out_sg[0];
struct iovec sg[VIRTQUEUE_MAX_SIZE];
- /* hdr_len refers to the header received from the guest */
- hdr_len = n->mergeable_rx_bufs ?
- sizeof(struct virtio_net_hdr_mrg_rxbuf) :
- sizeof(struct virtio_net_hdr);
-
- if (out_num < 1 || out_sg->iov_len != hdr_len) {
+ if (out_num < 1) {
error_report("virtio-net header not in first element");
exit(1);
}
@@ -747,7 +742,7 @@ static int32_t virtio_net_flush_tx(VirtIONet *n, VirtQueue
*vq)
out_sg = sg;
}
- len = hdr_len;
+ len = n->guest_hdr_len;
ret = qemu_sendv_packet_async(&n->nic->nc, out_sg, out_num,
virtio_net_tx_complete);
--
MST
- [Qemu-devel] [PATCHv2 00/14] virtio-net: iovec handling cleanup, Michael S. Tsirkin, 2012/09/25
- [Qemu-devel] [PATCHv2 01/14] virtio-net: track host/guest header length, Michael S. Tsirkin, 2012/09/25
- [Qemu-devel] [PATCHv2 04/14] virtio-net: avoid sg copy, Michael S. Tsirkin, 2012/09/25
- [Qemu-devel] [PATCHv2 02/14] iov: add const annotation, Michael S. Tsirkin, 2012/09/25
- [Qemu-devel] [PATCHv2 03/14] iov: add iov_cpy, Michael S. Tsirkin, 2012/09/25
- [Qemu-devel] [PATCHv2 06/14] virtio-net: refactor receive_hdr, Michael S. Tsirkin, 2012/09/25
- [Qemu-devel] [PATCHv2 05/14] virtio-net: use safe iov operations for rx, Michael S. Tsirkin, 2012/09/25
- [Qemu-devel] [PATCHv2 07/14] virtio-net: first s/g is always at start of buf, Michael S. Tsirkin, 2012/09/25
- [Qemu-devel] [PATCHv2 08/14] virtio-net: switch tx to safe iov functions, Michael S. Tsirkin, 2012/09/25
- [Qemu-devel] [PATCHv2 09/14] virtio-net: simplify rx code,
Michael S. Tsirkin <=
- [Qemu-devel] [PATCHv2 12/14] virtio-net: minor code simplification, Michael S. Tsirkin, 2012/09/25
- [Qemu-devel] [PATCHv2 14/14] virtio-net: enable mrg buf header in tap on linux, Michael S. Tsirkin, 2012/09/25
- [Qemu-devel] [PATCHv2 10/14] virtio: don't mark unaccessed memory as dirty, Michael S. Tsirkin, 2012/09/25
- [Qemu-devel] [PATCHv2 11/14] virtio-net: fix used len for tx, Michael S. Tsirkin, 2012/09/25
- [Qemu-devel] [PATCHv2 13/14] virtio-net: test peer header support at init time, Michael S. Tsirkin, 2012/09/25