From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:51597) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TgXUQ-00043X-9r for qemu-devel@nongnu.org; Thu, 06 Dec 2012 04:11:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TgXUK-0000PE-8U for qemu-devel@nongnu.org; Thu, 06 Dec 2012 04:11:30 -0500 Received: from greensocs.com ([87.106.252.221]:53884 helo=s15328186.onlinehome-server.info) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TgXUK-0000P8-1b for qemu-devel@nongnu.org; Thu, 06 Dec 2012 04:11:24 -0500 Message-ID: <50C06130.1090006@greensocs.com> Date: Thu, 06 Dec 2012 10:11:12 +0100 From: =?UTF-8?B?S09OUkFEIEZyw6lkw6lyaWM=?= MIME-Version: 1.0 References: <1354631742-4693-1-git-send-email-fred.konrad@greensocs.com> <1354631742-4693-7-git-send-email-fred.konrad@greensocs.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC PATCH v5 6/6] virtio-blk : Refactor virtio-blk. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: aliguori@us.ibm.com, e.voevodin@samsung.com, mark.burton@greensocs.com, qemu-devel@nongnu.org, stefanha@redhat.com, cornelia.huck@de.ibm.com, afaerber@suse.de On 05/12/2012 17:25, Peter Maydell wrote: > On 4 December 2012 14:35, wrote: >> From: KONRAD Frederic >> >> Create virtio-blk which extends virtio-device, so it can be connected on >> virtio-bus. >> >> Signed-off-by: KONRAD Frederic >> --- >> hw/virtio-blk.c | 170 ++++++++++++++++++++++++++++++++++++++++++++++++-------- >> hw/virtio-blk.h | 4 ++ >> 2 files changed, 150 insertions(+), 24 deletions(-) >> >> diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c >> index e25cc96..ee1ea8b 100644 >> --- a/hw/virtio-blk.c >> +++ b/hw/virtio-blk.c >> @@ -21,24 +21,42 @@ >> #ifdef __linux__ >> # include >> #endif >> +#include "virtio-bus.h" >> >> +/* Take this structure as our device structure. */ >> typedef struct VirtIOBlock >> { >> + /* >> + * Adding parent_obj breaks to_virtio_blk cast function, >> + * and virtio_blk_init. >> + */ >> + DeviceState parent_obj; >> + /* >> + * We don't need that anymore, as we'll use QOM cast to get the >> + * VirtIODevice. Just temporary keep it, for not breaking functionality. >> + */ >> VirtIODevice vdev; > This doesn't make sense. After your previous patch, VirtIODevice > is-a DeviceState, and VirtIOBlock already is-a VirtIODevice, > so there's nothing to do here. Adding this parent_obj field > here is just breaking things (it would make the VirtIOBlock > into a direct child of DeviceState, which isn't what we want). > Ok, I think you're right, I'll check. >> BlockDriverState *bs; >> VirtQueue *vq; >> void *rq; >> QEMUBH *bh; >> BlockConf *conf; >> - VirtIOBlkConf *blk; >> + /* >> + * We can't use pointer with properties. >> + */ >> + VirtIOBlkConf blk; >> unsigned short sector_mask; >> DeviceState *qdev; >> } VirtIOBlock; >> >> -static VirtIOBlock *to_virtio_blk(VirtIODevice *vdev) >> -{ >> - return (VirtIOBlock *)vdev; >> -} >> +/* >> + * Use the QOM cast, so we don't need that anymore. >> + * >> + * static VirtIOBlock *to_virtio_blk(VirtIODevice *vdev) >> + * { >> + * return (VirtIOBlock *)vdev; >> + * } >> + */ > If we don't need it, just delete it. > > -- PMM Yes, sure, I put it in comment to explain, why I deleted it. Thanks, Fred.