On Sep 28 11:35, Dmitry Fomichev wrote: > 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 > --- > 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..bbd7879492 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(n->conf.logical_block_size); You fix this later in the zoned support patch, but this should use ns->blkconf.conf.logical_block_size.