On Jul 5 18:56, Changqi Lu wrote: > This commit enables ONCS to support the reservation > function at the controller level. Also enables rescap > function in the namespace by detecting the supported reservation > function in the backend driver. > > Signed-off-by: Changqi Lu <luchangqi....@bytedance.com> > Signed-off-by: zhenwei pi <pizhen...@bytedance.com> > --- > hw/nvme/ctrl.c | 3 ++- > hw/nvme/ns.c | 5 +++++ > include/block/nvme.h | 2 +- > 3 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c > index 127c3d2383..ad212de723 100644 > --- a/hw/nvme/ctrl.c > +++ b/hw/nvme/ctrl.c > @@ -8248,7 +8248,8 @@ static void nvme_init_ctrl(NvmeCtrl *n, PCIDevice > *pci_dev) > id->nn = cpu_to_le32(NVME_MAX_NAMESPACES); > id->oncs = cpu_to_le16(NVME_ONCS_WRITE_ZEROES | NVME_ONCS_TIMESTAMP | > NVME_ONCS_FEATURES | NVME_ONCS_DSM | > - NVME_ONCS_COMPARE | NVME_ONCS_COPY); > + NVME_ONCS_COMPARE | NVME_ONCS_COPY | > + NVME_ONCS_RESERVATIONS); > > /* > * NOTE: If this device ever supports a command set that does NOT use 0x0 > diff --git a/hw/nvme/ns.c b/hw/nvme/ns.c > index ea8db175db..a5c903d727 100644 > --- a/hw/nvme/ns.c > +++ b/hw/nvme/ns.c > @@ -20,6 +20,7 @@ > #include "qemu/bitops.h" > #include "sysemu/sysemu.h" > #include "sysemu/block-backend.h" > +#include "block/block_int.h" > > #include "nvme.h" > #include "trace.h" > @@ -33,6 +34,7 @@ void nvme_ns_init_format(NvmeNamespace *ns) > BlockDriverInfo bdi; > int npdg, ret; > int64_t nlbas; > + uint8_t blk_pr_cap; > > ns->lbaf = id_ns->lbaf[NVME_ID_NS_FLBAS_INDEX(id_ns->flbas)]; > ns->lbasz = 1 << ns->lbaf.ds; > @@ -55,6 +57,9 @@ void nvme_ns_init_format(NvmeNamespace *ns) > } > > id_ns->npda = id_ns->npdg = npdg - 1; > + > + blk_pr_cap = blk_bs(ns->blkconf.blk)->bl.pr_cap; > + id_ns->rescap = block_pr_cap_to_nvme(blk_pr_cap); > } > > static int nvme_ns_init(NvmeNamespace *ns, Error **errp) > diff --git a/include/block/nvme.h b/include/block/nvme.h > index 8b125f7769..9b9eaeb3a7 100644 > --- a/include/block/nvme.h > +++ b/include/block/nvme.h > @@ -1251,7 +1251,7 @@ enum NvmeIdCtrlOncs { > NVME_ONCS_DSM = 1 << 2, > NVME_ONCS_WRITE_ZEROES = 1 << 3, > NVME_ONCS_FEATURES = 1 << 4, > - NVME_ONCS_RESRVATIONS = 1 << 5, > + NVME_ONCS_RESERVATIONS = 1 << 5, > NVME_ONCS_TIMESTAMP = 1 << 6, > NVME_ONCS_VERIFY = 1 << 7, > NVME_ONCS_COPY = 1 << 8, > -- > 2.20.1 >
Reviewed-by: Klaus Jensen <k.jen...@samsung.com> -- One of us - No more doubt, silence or taboo about mental illness.
signature.asc
Description: PGP signature