From: Klaus Jensen <[email protected]> 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 <[email protected]> --- 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
