From: "KONRAD Frédéric" <fred.konrad@greensocs.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: peter.maydell@linaro.org, aliguori@us.ibm.com, mst@redhat.com,
mark.burton@greensocs.com, qemu-devel@nongnu.org,
Stefan Hajnoczi <stefanha@redhat.com>,
cornelia.huck@de.ibm.com, afaerber@suse.de
Subject: Re: [Qemu-devel] [PATCH v9 03/10] virtio-blk: don't use pointer for configuration.
Date: Tue, 19 Mar 2013 14:38:07 +0100 [thread overview]
Message-ID: <51486A3F.6050003@greensocs.com> (raw)
In-Reply-To: <20130318085943.GA2476@dhcp-200-207.str.redhat.com>
On 18/03/2013 09:59, Kevin Wolf wrote:
> Am 15.03.2013 um 19:48 hat fred.konrad@greensocs.com geschrieben:
>> From: KONRAD Frederic <fred.konrad@greensocs.com>
>>
>> The configuration field must not be a pointer as it will be used for virtio-blk
>> properties. So *blk is replaced by blk in VirtIOBlock structure.
>>
>> Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
>> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
>> ---
>> hw/virtio-blk.c | 8 ++++----
>> hw/virtio-blk.h | 2 +-
>> 2 files changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c
>> index 6714b01..908c316 100644
>> --- a/hw/virtio-blk.c
>> +++ b/hw/virtio-blk.c
>> @@ -151,7 +151,7 @@ static void virtio_blk_handle_scsi(VirtIOBlockReq *req)
>> */
>> req->scsi = (void *)req->elem.in_sg[req->elem.in_num - 2].iov_base;
>>
>> - if (!req->dev->blk->scsi) {
>> + if (!req->dev->blk.scsi) {
>> status = VIRTIO_BLK_S_UNSUPP;
>> goto fail;
>> }
>> @@ -371,7 +371,7 @@ static void virtio_blk_handle_request(VirtIOBlockReq *req,
>> * terminated by '\0' only when shorter than buffer.
>> */
>> strncpy(req->elem.in_sg[0].iov_base,
>> - s->blk->serial ? s->blk->serial : "",
>> + s->blk.serial ? s->blk.serial : "",
>> MIN(req->elem.in_sg[0].iov_len, VIRTIO_BLK_ID_BYTES));
>> virtio_blk_req_complete(req, VIRTIO_BLK_S_OK);
>> g_free(req);
>> @@ -534,7 +534,7 @@ static uint32_t virtio_blk_get_features(VirtIODevice *vdev, uint32_t features)
>> features |= (1 << VIRTIO_BLK_F_BLK_SIZE);
>> features |= (1 << VIRTIO_BLK_F_SCSI);
>>
>> - if (s->blk->config_wce) {
>> + if (s->blk.config_wce) {
>> features |= (1 << VIRTIO_BLK_F_CONFIG_WCE);
>> }
>> if (bdrv_enable_write_cache(s->bs))
>> @@ -650,7 +650,7 @@ VirtIODevice *virtio_blk_init(DeviceState *dev, VirtIOBlkConf *blk)
>> s->vdev.reset = virtio_blk_reset;
>> s->bs = blk->conf.bs;
>> s->conf = &blk->conf;
>> - s->blk = blk;
>> + memcpy(&(s->blk), blk, sizeof(struct VirtIOBlkConf));
> Why not simply s->blk = *blk?
>
> The reason why copying this works is that blk is read-only after
> initialisation. We also get an additional reference to blk->serial, but
> we know that it can only go away after this device has been destroyed
> (the same assumption was necessary for the s->blk pointer in the old
> code).
You mean this copying (s->blk = *blk) ?
>
> Is my understanding of this correct?
>
> Kevin
next prev parent reply other threads:[~2013-03-19 13:38 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-15 18:48 [Qemu-devel] [PATCH v9 00/10] virtio-blk refactoring fred.konrad
2013-03-15 18:48 ` [Qemu-devel] [PATCH v9 01/10] virtio: make virtio device's structures public fred.konrad
2013-03-15 18:48 ` [Qemu-devel] [PATCH v9 02/10] virtio-x-bus: fix allow_hotplug assertion fred.konrad
2013-03-15 18:48 ` [Qemu-devel] [PATCH v9 03/10] virtio-blk: don't use pointer for configuration fred.konrad
2013-03-18 8:59 ` Kevin Wolf
2013-03-19 13:38 ` KONRAD Frédéric [this message]
2013-03-19 13:55 ` Kevin Wolf
2013-03-15 18:48 ` [Qemu-devel] [PATCH v9 04/10] virtio-blk: add the virtio-blk device fred.konrad
2013-03-15 18:48 ` [Qemu-devel] [PATCH v9 05/10] virtio-blk-pci: switch to new API fred.konrad
2013-03-18 13:01 ` Anthony Liguori
2013-03-15 18:48 ` [Qemu-devel] [PATCH v9 06/10] virtio-blk-s390: switch to the " fred.konrad
2013-03-15 18:48 ` [Qemu-devel] [PATCH v9 07/10] virtio-blk-ccw switch to " fred.konrad
2013-03-15 18:48 ` [Qemu-devel] [PATCH v9 08/10] virtio-blk: cleanup: init and exit functions fred.konrad
2013-03-15 18:48 ` [Qemu-devel] [PATCH v9 09/10] virtio-blk: cleanup: QOM cast fred.konrad
2013-03-15 18:48 ` [Qemu-devel] [PATCH v9 10/10] virtio-blk: cleanup: remove qdev field fred.konrad
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=51486A3F.6050003@greensocs.com \
--to=fred.konrad@greensocs.com \
--cc=afaerber@suse.de \
--cc=aliguori@us.ibm.com \
--cc=cornelia.huck@de.ibm.com \
--cc=kwolf@redhat.com \
--cc=mark.burton@greensocs.com \
--cc=mst@redhat.com \
--cc=peter.maydell@linaro.org \
--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.