Skip to content

Commit 526c37c

Browse files
philmdstefanhaRH
authored andcommitted
block/nvme: Have nvme_create_queue_pair() report errors consistently
nvme_create_queue_pair() does not return a boolean value (indicating eventual error) but a pointer, and is inconsistent in how it fills the error handler. To fulfill callers expectations, always set an error message on failure. Reported-by: Auger Eric <[email protected]> Reviewed-by: Klaus Jensen <[email protected]> Signed-off-by: Philippe Mathieu-Daudé <[email protected]> Message-id: [email protected] Signed-off-by: Stefan Hajnoczi <[email protected]>
1 parent 3f4c0af commit 526c37c

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

block/nvme.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ static NVMeQueuePair *nvme_create_queue_pair(BDRVNVMeState *s,
220220

221221
q = g_try_new0(NVMeQueuePair, 1);
222222
if (!q) {
223+
error_setg(errp, "Cannot allocate queue pair");
223224
return NULL;
224225
}
225226
trace_nvme_create_queue_pair(idx, q, size, aio_context,
@@ -228,6 +229,7 @@ static NVMeQueuePair *nvme_create_queue_pair(BDRVNVMeState *s,
228229
qemu_real_host_page_size);
229230
q->prp_list_pages = qemu_try_memalign(qemu_real_host_page_size, bytes);
230231
if (!q->prp_list_pages) {
232+
error_setg(errp, "Cannot allocate PRP page list");
231233
goto fail;
232234
}
233235
memset(q->prp_list_pages, 0, bytes);
@@ -239,6 +241,7 @@ static NVMeQueuePair *nvme_create_queue_pair(BDRVNVMeState *s,
239241
r = qemu_vfio_dma_map(s->vfio, q->prp_list_pages, bytes,
240242
false, &prp_list_iova);
241243
if (r) {
244+
error_setg_errno(errp, -r, "Cannot map buffer for DMA");
242245
goto fail;
243246
}
244247
q->free_req_head = -1;

0 commit comments

Comments
 (0)