On Sep 30 15:04, Keith Busch wrote: > From: Dmitry Fomichev > > Calculate the data shift value to report based on the set value of > logical_block_size device property. > > In the process, use a local variable to calculate the LBA format > index instead of the hardcoded value 0. This makes the code more > readable and it will make it easier to add support for multiple LBA > formats in the future. > > Signed-off-by: Dmitry Fomichev > Reviewed-by: Klaus Jensen > Signed-off-by: Keith Busch > --- > hw/block/nvme-ns.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/hw/block/nvme-ns.c b/hw/block/nvme-ns.c > index 2ba0263dda..a85e5fdb42 100644 > --- a/hw/block/nvme-ns.c > +++ b/hw/block/nvme-ns.c > @@ -47,6 +47,8 @@ static void nvme_ns_init(NvmeNamespace *ns) > > static int nvme_ns_init_blk(NvmeCtrl *n, NvmeNamespace *ns, Error **errp) > { > + int lba_index; > + > if (!blkconf_blocksizes(&ns->blkconf, errp)) { > return -1; > } > @@ -67,6 +69,9 @@ static int nvme_ns_init_blk(NvmeCtrl *n, NvmeNamespace *ns, Error **errp) > n->features.vwc = 0x1; > } > > + lba_index = NVME_ID_NS_FLBAS_INDEX(ns->id_ns.flbas); > + ns->id_ns.lbaf[lba_index].ds = 31 - clz32(ns->blkconf.logical_block_size); > + > return 0; > } > I think that back when I reviewed this, it was before the multi-namespace patch. I believe this setup should move to the nvme_ns_init() function instead.