All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: "Michael S. Tsirkin" <mst@redhat.com>,
	qemu-devel@nongnu.org, Jason Wang <jasowang@redhat.com>,
	stefanha@linux.vnet.ibm.com, aurelien@aurel32.net
Subject: Re: [Qemu-devel] [PATCH 06/14] virtio-net: refactor receive_hdr
Date: Mon, 24 Sep 2012 19:39:09 -0500	[thread overview]
Message-ID: <874nmn0wcy.fsf@codemonkey.ws> (raw)
In-Reply-To: <ad7590dcf01aa24545419985a79a121a33aa2dfa.1348527749.git.mst@redhat.com>

"Michael S. Tsirkin" <mst@redhat.com> writes:

> Now that we know host hdr length, we don't need to
> duplicate the logic in receive_hdr: caller can
> figure out the offset itself.
>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>

Regards,

Anthony Liguori

> ---
>  hw/virtio-net.c | 18 +++++++-----------
>  1 file changed, 7 insertions(+), 11 deletions(-)
>
> diff --git a/hw/virtio-net.c b/hw/virtio-net.c
> index 9611d95..3a0d1a7 100644
> --- a/hw/virtio-net.c
> +++ b/hw/virtio-net.c
> @@ -517,15 +517,13 @@ static void work_around_broken_dhclient(const struct virtio_net_hdr *hdr,
>      }
>  }
>  
> -static int receive_header(VirtIONet *n, const struct iovec *iov, int iov_cnt,
> -                          const void *buf, size_t size)
> +static void receive_header(VirtIONet *n, const struct iovec *iov, int iov_cnt,
> +                           const void *buf, size_t size)
>  {
> -    int offset = 0;
> -
>      if (n->has_vnet_hdr) {
> -        work_around_broken_dhclient(buf, buf + offset, size - offset);
> -        offset = sizeof(struct virtio_net_hdr);
> -        iov_from_buf(iov, iov_cnt, 0, buf, offset);
> +        work_around_broken_dhclient(buf, buf + n->host_hdr_len,
> +                                    size - n->host_hdr_len);
> +        iov_from_buf(iov, iov_cnt, 0, buf, sizeof(struct virtio_net_hdr));
>      } else {
>          struct virtio_net_hdr hdr = {
>              .flags = 0,
> @@ -533,8 +531,6 @@ static int receive_header(VirtIONet *n, const struct iovec *iov, int iov_cnt,
>          };
>          iov_from_buf(iov, iov_cnt, 0, &hdr, sizeof hdr);
>      }
> -
> -    return offset;
>  }
>  
>  static int receive_filter(VirtIONet *n, const uint8_t *buf, int size)
> @@ -641,8 +637,8 @@ static ssize_t virtio_net_receive(NetClientState *nc, const uint8_t *buf, size_t
>                                     sizeof(mhdr.num_buffers));
>              }
>  
> -            offset += receive_header(n, sg, elem.in_num,
> -                                     buf + offset, size - offset);
> +            receive_header(n, sg, elem.in_num, buf + offset, size - offset);
> +            offset += n->host_hdr_len;
>              total += n->guest_hdr_len;
>              guest_offset = n->guest_hdr_len;
>          } else {
> -- 
> MST

  reply	other threads:[~2012-09-25  0:39 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-24 23:04 [Qemu-devel] [PATCH 00/14] virtio-net: iovec handling cleanup Michael S. Tsirkin
2012-09-24 23:04 ` [Qemu-devel] [PATCH 01/14] virtio-net: track host/guest header length Michael S. Tsirkin
2012-09-24 23:04 ` [Qemu-devel] [PATCH 02/14] iov: add const annotation Michael S. Tsirkin
2012-09-24 23:04 ` [Qemu-devel] [PATCH 03/14] iov: add iov_cpy Michael S. Tsirkin
2012-09-25  0:34   ` Anthony Liguori
2012-09-25  0:45     ` Michael S. Tsirkin
2012-09-24 23:04 ` [Qemu-devel] [PATCH 04/14] virtio-net: avoid sg copy Michael S. Tsirkin
2012-09-25  0:37   ` Anthony Liguori
2012-09-25  0:44     ` Michael S. Tsirkin
2012-09-24 23:04 ` [Qemu-devel] [PATCH 05/14] virtio-net: use safe iov operations for rx Michael S. Tsirkin
2012-09-25  0:38   ` Anthony Liguori
2012-09-24 23:04 ` [Qemu-devel] [PATCH 06/14] virtio-net: refactor receive_hdr Michael S. Tsirkin
2012-09-25  0:39   ` Anthony Liguori [this message]
2012-09-24 23:04 ` [Qemu-devel] [PATCH 07/14] virtio-net: first s/g is always at start of buf Michael S. Tsirkin
2012-09-25  0:39   ` Anthony Liguori
2012-09-24 23:04 ` [Qemu-devel] [PATCH 08/14] virtio-net: switch tx to safe iov functions Michael S. Tsirkin
2012-09-24 23:04 ` [Qemu-devel] [PATCH 09/14] virtio-net: simplify rx code Michael S. Tsirkin
2012-09-24 23:04 ` [Qemu-devel] [PATCH 10/14] virtio: don't mark unaccessed memory as dirty Michael S. Tsirkin
2012-09-24 23:05 ` [Qemu-devel] [PATCH 11/14] virtio-net: fix used len for tx Michael S. Tsirkin
2012-09-25  6:15   ` Jason Wang
2012-09-25  7:20     ` Michael S. Tsirkin
2012-09-24 23:05 ` [Qemu-devel] [PATCH 12/14] virtio-net: minor code simplification Michael S. Tsirkin
2012-09-24 23:05 ` [Qemu-devel] [PATCH 13/14] virtio-net: test peer header support at init time Michael S. Tsirkin
2012-09-24 23:05 ` [Qemu-devel] [PATCH 14/14] virtio-net: enable mrg buf header in tap on linux Michael S. Tsirkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874nmn0wcy.fsf@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=aurelien@aurel32.net \
    --cc=jasowang@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.