[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 10/64] block/nvme: Replace qemu_try_blockalign0 by qemu_try_blocka
From: |
Kevin Wolf |
Subject: |
[PULL 10/64] block/nvme: Replace qemu_try_blockalign0 by qemu_try_blockalign/memset |
Date: |
Mon, 7 Sep 2020 13:08:42 +0200 |
From: Philippe Mathieu-Daudé <philmd@redhat.com>
In the next commit we'll get rid of qemu_try_blockalign().
To ease review, first replace qemu_try_blockalign0() by explicit
calls to qemu_try_blockalign() and memset().
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200821195359.1285345-10-philmd@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
block/nvme.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/block/nvme.c b/block/nvme.c
index b0d55ecfb2..60e39b69a2 100644
--- a/block/nvme.c
+++ b/block/nvme.c
@@ -174,12 +174,12 @@ static void nvme_init_queue(BlockDriverState *bs,
NVMeQueue *q,
bytes = ROUND_UP(nentries * entry_bytes, s->page_size);
q->head = q->tail = 0;
- q->queue = qemu_try_blockalign0(bs, bytes);
-
+ q->queue = qemu_try_blockalign(bs, bytes);
if (!q->queue) {
error_setg(errp, "Cannot allocate queue");
return;
}
+ memset(q->queue, 0, bytes);
r = qemu_vfio_dma_map(s->vfio, q->queue, bytes, false, &q->iova);
if (r) {
error_setg(errp, "Cannot map queue");
@@ -223,11 +223,12 @@ static NVMeQueuePair
*nvme_create_queue_pair(BlockDriverState *bs,
if (!q) {
return NULL;
}
- q->prp_list_pages = qemu_try_blockalign0(bs,
+ q->prp_list_pages = qemu_try_blockalign(bs,
s->page_size * NVME_NUM_REQS);
if (!q->prp_list_pages) {
goto fail;
}
+ memset(q->prp_list_pages, 0, s->page_size * NVME_NUM_REQS);
qemu_mutex_init(&q->lock);
q->s = s;
q->index = idx;
@@ -521,7 +522,7 @@ static void nvme_identify(BlockDriverState *bs, int
namespace, Error **errp)
.cdw10 = cpu_to_le32(0x1),
};
- id = qemu_try_blockalign0(bs, sizeof(*id));
+ id = qemu_try_blockalign(bs, sizeof(*id));
if (!id) {
error_setg(errp, "Cannot allocate buffer for identify response");
goto out;
@@ -531,8 +532,9 @@ static void nvme_identify(BlockDriverState *bs, int
namespace, Error **errp)
error_setg(errp, "Cannot map buffer for DMA");
goto out;
}
- cmd.dptr.prp1 = cpu_to_le64(iova);
+ memset(id, 0, sizeof(*id));
+ cmd.dptr.prp1 = cpu_to_le64(iova);
if (nvme_cmd_sync(bs, s->queues[INDEX_ADMIN], &cmd)) {
error_setg(errp, "Failed to identify controller");
goto out;
@@ -1283,11 +1285,11 @@ static int coroutine_fn
nvme_co_pdiscard(BlockDriverState *bs,
assert(s->nr_queues > 1);
- buf = qemu_try_blockalign0(bs, s->page_size);
+ buf = qemu_try_blockalign(bs, s->page_size);
if (!buf) {
return -ENOMEM;
}
-
+ memset(buf, 0, s->page_size);
buf->nlb = cpu_to_le32(bytes >> s->blkshift);
buf->slba = cpu_to_le64(offset >> s->blkshift);
buf->cattr = 0;
--
2.25.4
- [PULL 00/64] Block layer patches, Kevin Wolf, 2020/09/07
- [PULL 02/64] block/nvme: Replace magic value by SCALE_MS definition, Kevin Wolf, 2020/09/07
- [PULL 04/64] block/nvme: Let nvme_create_queue_pair() fail gracefully, Kevin Wolf, 2020/09/07
- [PULL 03/64] block/nvme: Avoid further processing if trace event not enabled, Kevin Wolf, 2020/09/07
- [PULL 01/64] block: Raise an error when backing file parameter is an empty string, Kevin Wolf, 2020/09/07
- [PULL 06/64] block/nvme: Improve error message when IO queue creation failed, Kevin Wolf, 2020/09/07
- [PULL 07/64] block/nvme: Use common error path in nvme_add_io_queue(), Kevin Wolf, 2020/09/07
- [PULL 05/64] block/nvme: Define INDEX macros to ease code review, Kevin Wolf, 2020/09/07
- [PULL 09/64] block/nvme: Use union of NvmeIdCtrl / NvmeIdNs structures, Kevin Wolf, 2020/09/07
- [PULL 10/64] block/nvme: Replace qemu_try_blockalign0 by qemu_try_blockalign/memset,
Kevin Wolf <=
- [PULL 11/64] block/nvme: Replace qemu_try_blockalign(bs) by qemu_try_memalign(pg_sz), Kevin Wolf, 2020/09/07
- [PULL 12/64] block/nvme: Simplify nvme_init_queue() arguments, Kevin Wolf, 2020/09/07
- [PULL 13/64] block/nvme: Replace BDRV_POLL_WHILE by AIO_WAIT_WHILE, Kevin Wolf, 2020/09/07
- [PULL 08/64] block/nvme: Rename local variable, Kevin Wolf, 2020/09/07
- [PULL 14/64] block/nvme: Simplify nvme_create_queue_pair() arguments, Kevin Wolf, 2020/09/07
- [PULL 15/64] block/nvme: Extract nvme_poll_queue(), Kevin Wolf, 2020/09/07
- [PULL 17/64] block: Add child access functions, Kevin Wolf, 2020/09/07
- [PULL 18/64] block: Add chain helper functions, Kevin Wolf, 2020/09/07
- [PULL 19/64] block: bdrv_cow_child() for bdrv_has_zero_init(), Kevin Wolf, 2020/09/07
- [PULL 16/64] block/nvme: Use an array of EventNotifier, Kevin Wolf, 2020/09/07