On Wed, Mar 24, 2021 at 09:09:06PM +0100, Klaus Jensen wrote: >From: Klaus Jensen > >The Non-MDTS DMSRL limit must be recomputed when namespaces are >detached. > >Fixes: 645ce1a70cb6 ("hw/block/nvme: support namespace attachment command") >Signed-off-by: Klaus Jensen >--- > hw/block/nvme.c | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > >diff --git a/hw/block/nvme.c b/hw/block/nvme.c >index 403c8381a498..e84e43b2692d 100644 >--- a/hw/block/nvme.c >+++ b/hw/block/nvme.c >@@ -4876,6 +4876,21 @@ static uint16_t nvme_aer(NvmeCtrl *n, NvmeRequest *req) > return NVME_NO_COMPLETE; > } > >+static void __nvme_update_dmrsl(NvmeCtrl *n) >+{ >+ int nsid; >+ >+ for (nsid = 1; nsid <= NVME_MAX_NAMESPACES; nsid++) { >+ NvmeNamespace *ns = nvme_ns(n, nsid); >+ if (!ns) { >+ continue; >+ } >+ >+ n->dmrsl = MIN_NON_ZERO(n->dmrsl, >+ BDRV_REQUEST_MAX_BYTES / nvme_l2b(ns, 1)); >+ } >+} >+ Looks good to me! > static void __nvme_select_ns_iocs(NvmeCtrl *n, NvmeNamespace *ns); > static uint16_t nvme_ns_attachment(NvmeCtrl *n, NvmeRequest *req) > { >@@ -4925,6 +4940,8 @@ static uint16_t nvme_ns_attachment(NvmeCtrl *n, NvmeRequest *req) > } > > nvme_ns_detach(ctrl, ns); >+ >+ __nvme_update_dmrsl(ctrl); > } > > /* >-- >2.31.0 > > Reviwed-by: Gollu Appalanaidu