From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59629) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WroD6-00045k-M9 for qemu-devel@nongnu.org; Tue, 03 Jun 2014 08:53:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WroCy-0003lj-Ne for qemu-devel@nongnu.org; Tue, 03 Jun 2014 08:53:00 -0400 Received: from mx1.redhat.com ([209.132.183.28]:7590) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WroCy-0003lS-Fw for qemu-devel@nongnu.org; Tue, 03 Jun 2014 08:52:52 -0400 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s53CqpP1023903 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 3 Jun 2014 08:52:51 -0400 From: Fam Zheng Date: Tue, 3 Jun 2014 20:52:56 +0800 Message-Id: <1401799978-9558-4-git-send-email-famz@redhat.com> In-Reply-To: <1401799978-9558-1-git-send-email-famz@redhat.com> References: <1401799978-9558-1-git-send-email-famz@redhat.com> Subject: [Qemu-devel] [PATCH 3/5] virtio-blk: Merge VirtIOBlockRequest into VirtIOBlockReq List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kevin Wolf , Paolo Bonzini , Stefan Hajnoczi This puts all the necessary fields into VirtIOBlockReq and replace VirtIOBlockRequest. Signed-off-by: Fam Zheng --- hw/block/dataplane/virtio-blk.c | 21 ++++++--------------- include/hw/virtio/virtio-blk.h | 8 ++++++++ 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/hw/block/dataplane/virtio-blk.c b/hw/block/dataplane/virtio-blk.c index d81652f..968f824 100644 --- a/hw/block/dataplane/virtio-blk.c +++ b/hw/block/dataplane/virtio-blk.c @@ -24,15 +24,6 @@ #include "hw/virtio/virtio-bus.h" #include "qom/object_interfaces.h" -typedef struct { - VirtIOBlockDataPlane *s; - QEMUIOVector *inhdr; /* iovecs for virtio_blk_inhdr */ - VirtQueueElement *elem; /* saved data from the virtqueue */ - QEMUIOVector qiov; /* original request iovecs */ - struct iovec bounce_iov; /* used if guest buffers are unaligned */ - QEMUIOVector bounce_qiov; /* bounce buffer iovecs */ - bool read; /* read or write? */ -} VirtIOBlockRequest; struct VirtIOBlockDataPlane { bool started; @@ -70,7 +61,7 @@ static void notify_guest(VirtIOBlockDataPlane *s) static void complete_rdwr(void *opaque, int ret) { - VirtIOBlockRequest *req = opaque; + VirtIOBlockReq *req = opaque; struct virtio_blk_inhdr hdr; int len; @@ -102,7 +93,7 @@ static void complete_rdwr(void *opaque, int ret) */ vring_push(&req->s->vring, req->elem, len + sizeof(hdr)); notify_guest(req->s); - g_slice_free(VirtIOBlockRequest, req); + g_slice_free(VirtIOBlockReq, req); } static void complete_request_early(VirtIOBlockDataPlane *s, VirtQueueElement *elem, @@ -138,7 +129,7 @@ static void do_rdwr_cmd(VirtIOBlockDataPlane *s, bool read, int64_t sector_num, VirtQueueElement *elem, QEMUIOVector *inhdr) { - VirtIOBlockRequest *req = g_slice_new0(VirtIOBlockRequest); + VirtIOBlockReq *req = g_slice_new0(VirtIOBlockReq); QEMUIOVector *qiov; int nb_sectors; @@ -179,7 +170,7 @@ static void do_rdwr_cmd(VirtIOBlockDataPlane *s, bool read, static void complete_flush(void *opaque, int ret) { - VirtIOBlockRequest *req = opaque; + VirtIOBlockReq *req = opaque; unsigned char status; if (ret == 0) { @@ -189,13 +180,13 @@ static void complete_flush(void *opaque, int ret) } complete_request_early(req->s, req->elem, req->inhdr, status); - g_slice_free(VirtIOBlockRequest, req); + g_slice_free(VirtIOBlockReq, req); } static void do_flush_cmd(VirtIOBlockDataPlane *s, VirtQueueElement *elem, QEMUIOVector *inhdr) { - VirtIOBlockRequest *req = g_slice_new(VirtIOBlockRequest); + VirtIOBlockReq *req = g_slice_new(VirtIOBlockReq); req->s = s; req->elem = elem; req->inhdr = inhdr; diff --git a/include/hw/virtio/virtio-blk.h b/include/hw/virtio/virtio-blk.h index 1932502..d9ff1c9 100644 --- a/include/hw/virtio/virtio-blk.h +++ b/include/hw/virtio/virtio-blk.h @@ -142,6 +142,14 @@ typedef struct VirtIOBlockReq { QEMUIOVector qiov; struct VirtIOBlockReq *next; BlockAcctCookie acct; + +#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE + struct VirtIOBlockDataPlane *s; + QEMUIOVector *inhdr; /* iovecs for virtio_blk_inhdr */ + struct iovec bounce_iov; /* used if guest buffers are unaligned */ + QEMUIOVector bounce_qiov; /* bounce buffer iovecs */ + bool read; /* read or write? */ +#endif } VirtIOBlockReq; #define DEFINE_VIRTIO_BLK_FEATURES(_state, _field) \ -- 1.9.2