[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 04/30] hw/block/nvme: commonize nvme_rw error handling
From: |
Klaus Jensen |
Subject: |
[PULL 04/30] hw/block/nvme: commonize nvme_rw error handling |
Date: |
Tue, 27 Oct 2020 11:49:06 +0100 |
From: Klaus Jensen <k.jensen@samsung.com>
Move common error handling to a label.
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Keith Busch <kbusch@kernel.org>
---
hw/block/nvme.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 7d328c08b894..0ac9d856632e 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -687,20 +687,18 @@ static uint16_t nvme_rw(NvmeCtrl *n, NvmeRequest *req)
status = nvme_check_mdts(n, data_size);
if (status) {
trace_pci_nvme_err_mdts(nvme_cid(req), data_size);
- block_acct_invalid(blk_get_stats(n->conf.blk), acct);
- return status;
+ goto invalid;
}
status = nvme_check_bounds(n, ns, slba, nlb);
if (status) {
trace_pci_nvme_err_invalid_lba_range(slba, nlb, ns->id_ns.nsze);
- block_acct_invalid(blk_get_stats(n->conf.blk), acct);
- return status;
+ goto invalid;
}
- if (nvme_map_dptr(n, data_size, req)) {
- block_acct_invalid(blk_get_stats(n->conf.blk), acct);
- return NVME_INVALID_FIELD | NVME_DNR;
+ status = nvme_map_dptr(n, data_size, req);
+ if (status) {
+ goto invalid;
}
if (req->qsg.nsg > 0) {
@@ -722,6 +720,10 @@ static uint16_t nvme_rw(NvmeCtrl *n, NvmeRequest *req)
}
return NVME_NO_COMPLETE;
+
+invalid:
+ block_acct_invalid(blk_get_stats(n->conf.blk), acct);
+ return status;
}
static uint16_t nvme_io_cmd(NvmeCtrl *n, NvmeRequest *req)
--
2.29.1
- [PULL 00/30] nvme emulation patches for 5.2, Klaus Jensen, 2020/10/27
- [PULL 01/30] hw/block/nvme: fix typo in trace event, Klaus Jensen, 2020/10/27
- [PULL 02/30] pci: pass along the return value of dma_memory_rw, Klaus Jensen, 2020/10/27
- [PULL 03/30] hw/block/nvme: handle dma errors, Klaus Jensen, 2020/10/27
- [PULL 07/30] hw/block/nvme: fix endian conversion, Klaus Jensen, 2020/10/27
- [PULL 06/30] hw/block/nvme: add a lba to bytes helper, Klaus Jensen, 2020/10/27
- [PULL 08/30] hw/block/nvme: add symbolic command name to trace events, Klaus Jensen, 2020/10/27
- [PULL 09/30] hw/block/nvme: refactor aio submission, Klaus Jensen, 2020/10/27
- [PULL 04/30] hw/block/nvme: commonize nvme_rw error handling,
Klaus Jensen <=
- [PULL 05/30] hw/block/nvme: alignment style fixes, Klaus Jensen, 2020/10/27
- [PULL 11/30] hw/block/nvme: harden cmb access, Klaus Jensen, 2020/10/27
- [PULL 10/30] hw/block/nvme: default request status to success, Klaus Jensen, 2020/10/27
- [PULL 13/30] hw/block/nvme: add support for sgl bit bucket descriptor, Klaus Jensen, 2020/10/27
- [PULL 14/30] hw/block/nvme: refactor identify active namespace id list, Klaus Jensen, 2020/10/27
- [PULL 12/30] hw/block/nvme: add support for scatter gather lists, Klaus Jensen, 2020/10/27
- [PULL 16/30] pci: allocate pci id for nvme, Klaus Jensen, 2020/10/27
- [PULL 15/30] hw/block/nvme: support multiple namespaces, Klaus Jensen, 2020/10/27
- [PULL 18/30] hw/block/nvme: update nsid when registered, Klaus Jensen, 2020/10/27
- [PULL 17/30] hw/block/nvme: change controller pci id, Klaus Jensen, 2020/10/27