All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Fam Zheng <famz@redhat.com>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v2 6/8] virtio-blk: Use VirtIOBlockReq.in to drop VirtIOBlockReq.inhdr
Date: Thu, 05 Jun 2014 04:51:52 +0200	[thread overview]
Message-ID: <538FDB48.6080200@redhat.com> (raw)
In-Reply-To: <1401933526-22436-7-git-send-email-famz@redhat.com>

Il 05/06/2014 03:58, Fam Zheng ha scritto:
>      /* Grab inhdr for later */
> -    in_size = iov_size(in_iov, in_num);
> -    if (in_size < sizeof(struct virtio_blk_inhdr)) {
> -        error_report("virtio_blk request inhdr too short");
> -        return -EFAULT;
> -    }
> -    inhdr = g_slice_new(QEMUIOVector);
> -    qemu_iovec_init(inhdr, 1);
> -    qemu_iovec_concat_iov(inhdr, in_iov, in_num,
> -            in_size - sizeof(struct virtio_blk_inhdr),
> -            sizeof(struct virtio_blk_inhdr));
> -    iov_discard_back(in_iov, &in_num, sizeof(struct virtio_blk_inhdr));
> +    inhdr = (void *)in_iov[in_num - 1].iov_base;

This would assume a particular layout for the virtio buffers.  You need 
to add in_iov[in_num - 1].iov_len - sizeof(struct virtio_blk_header).

It's probably also good to ahve an assertion that in_iov[in_num - 
1].iov_len > sizeof(struct virtio_blk_header), and a comment saying that 
the assertion is always true because the struct is only 1-byte long.

Paolo

  reply	other threads:[~2014-06-05  2:52 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-05  1:58 [Qemu-devel] [PATCH v2 0/8] virtio-blk: Converge VirtIOBlockRequest into VirtIOBlockReq Fam Zheng
2014-06-05  1:58 ` [Qemu-devel] [PATCH v2 1/8] virtio-blk: Move VirtIOBlockReq to header Fam Zheng
2014-06-05  1:58 ` [Qemu-devel] [PATCH v2 2/8] virtio-blk: Convert VirtIOBlockReq.elem to pointer Fam Zheng
2014-06-05  1:58 ` [Qemu-devel] [PATCH v2 3/8] virtio-blk: Drop bounce buffer from dataplane code Fam Zheng
2014-06-05  1:58 ` [Qemu-devel] [PATCH v2 4/8] virtio-blk: Drop VirtIOBlockRequest.read Fam Zheng
2014-06-05  1:58 ` [Qemu-devel] [PATCH v2 5/8] virtio-blk: Replace VirtIOBlockRequest with VirtIOBlockReq Fam Zheng
2014-06-05  1:58 ` [Qemu-devel] [PATCH v2 6/8] virtio-blk: Use VirtIOBlockReq.in to drop VirtIOBlockReq.inhdr Fam Zheng
2014-06-05  2:51   ` Paolo Bonzini [this message]
2014-06-05  1:58 ` [Qemu-devel] [PATCH v2 7/8] virtio-blk: Convert VirtIOBlockReq.out to structrue Fam Zheng
2014-06-05  2:54   ` Paolo Bonzini
2014-06-05  1:58 ` [Qemu-devel] [PATCH v2 8/8] virtio-blk: Fill in VirtIOBlockReq.out in dataplane code Fam Zheng
2014-06-05  2:55   ` Paolo Bonzini
2014-06-05  3:50     ` Fam Zheng
2014-06-05  4:09       ` Paolo Bonzini
2014-06-05  9:20         ` Fam Zheng

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=538FDB48.6080200@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=famz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.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.