From: Klaus Jensen <k.jensen@samsung.com>
With the IOV_MAX restriction lifted at the dma-helpers level, remove the
restriction on MDTS.
Still require mdts to be set (i.e., non-zero) since it has a direct
impact on how much many may be used internally.
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
---
hw/nvme/ctrl.c | 17 ++---------------
1 file changed, 2 insertions(+), 15 deletions(-)
diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c
index cc4593cd427a..480694cc2e14 100644
--- a/hw/nvme/ctrl.c
+++ b/hw/nvme/ctrl.c
@@ -851,10 +851,6 @@ static uint16_t nvme_map_addr(NvmeCtrl *n, NvmeSg *sg, hwaddr addr, size_t len)
return NVME_INVALID_USE_OF_CMB | NVME_DNR;
}
- if (sg->iov.niov + 1 > IOV_MAX) {
- goto max_mappings_exceeded;
- }
-
if (cmb) {
return nvme_map_addr_cmb(n, &sg->iov, addr, len);
} else {
@@ -866,18 +862,9 @@ static uint16_t nvme_map_addr(NvmeCtrl *n, NvmeSg *sg, hwaddr addr, size_t len)
return NVME_INVALID_USE_OF_CMB | NVME_DNR;
}
- if (sg->qsg.nsg + 1 > IOV_MAX) {
- goto max_mappings_exceeded;
- }
-
qemu_sglist_add(&sg->qsg, addr, len);
return NVME_SUCCESS;
-
-max_mappings_exceeded:
- NVME_GUEST_ERR(pci_nvme_ub_too_many_mappings,
- "number of mappings exceed 1024");
- return NVME_INTERNAL_DEV_ERROR | NVME_DNR;
}
static inline bool nvme_addr_is_dma(NvmeCtrl *n, hwaddr addr)
@@ -8626,8 +8613,8 @@ static bool nvme_check_params(NvmeCtrl *n, Error **errp)
host_memory_backend_set_mapped(n->pmr.dev, true);
}
- if (!n->params.mdts || ((1 << n->params.mdts) + 1) > IOV_MAX) {
- error_setg(errp, "mdts exceeds IOV_MAX");
+ if (!n->params.mdts) {
+ error_setg(errp, "mdts must be set");
return false;
}
--
2.51.0