Message ID | 20200928023528.15260-2-dmitry.fomichev@wdc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/block/nvme: Support Namespace Types and Zoned Namespace Command Set | expand |
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 <dmitry.fomichev@wdc.com> > Reviewed-by: Klaus Jensen <k.jensen@samsung.com> > --- > 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.
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); + return 0; }