[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 42/42] nvme: make lba data size configurable
From: |
Maxim Levitsky |
Subject: |
Re: [PATCH v6 42/42] nvme: make lba data size configurable |
Date: |
Wed, 25 Mar 2020 12:59:31 +0200 |
On Mon, 2020-03-16 at 07:29 -0700, Klaus Jensen wrote:
> From: Klaus Jensen <address@hidden>
>
> Signed-off-by: Klaus Jensen <address@hidden>
> Acked-by: Keith Busch <address@hidden>
> ---
> hw/block/nvme-ns.c | 7 ++++++-
> hw/block/nvme-ns.h | 4 +++-
> hw/block/nvme.c | 1 +
> 3 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/hw/block/nvme-ns.c b/hw/block/nvme-ns.c
> index 6d975104171d..d7e5c81c5f16 100644
> --- a/hw/block/nvme-ns.c
> +++ b/hw/block/nvme-ns.c
> @@ -18,7 +18,7 @@ static int nvme_ns_init(NvmeNamespace *ns)
> {
> NvmeIdNs *id_ns = &ns->id_ns;
>
> - id_ns->lbaf[0].ds = BDRV_SECTOR_BITS;
> + id_ns->lbaf[0].ds = ns->params.lbads;
> id_ns->nsze = cpu_to_le64(nvme_ns_nlbas(ns));
>
> /* no thin provisioning */
> @@ -78,6 +78,11 @@ static int nvme_ns_check_constraints(NvmeNamespace *ns,
> Error **errp)
> return 1;
> }
>
> + if (ns->params.lbads < 9 || ns->params.lbads > 12) {
> + error_setg(errp, "unsupported lbads (supported: 9-12)");
> + return 1;
> + }
> +
> return 0;
> }
>
> diff --git a/hw/block/nvme-ns.h b/hw/block/nvme-ns.h
> index 3c3651d485d0..43b78f8b8d9c 100644
> --- a/hw/block/nvme-ns.h
> +++ b/hw/block/nvme-ns.h
> @@ -7,10 +7,12 @@
>
> #define DEFINE_NVME_NS_PROPERTIES(_state, _props) \
> DEFINE_PROP_DRIVE("drive", _state, blk), \
> - DEFINE_PROP_UINT32("nsid", _state, _props.nsid, 0)
> + DEFINE_PROP_UINT32("nsid", _state, _props.nsid, 0), \
> + DEFINE_PROP_UINT8("lbads", _state, _props.lbads, BDRV_SECTOR_BITS)
>
> typedef struct NvmeNamespaceParams {
> uint32_t nsid;
> + uint8_t lbads;
> } NvmeNamespaceParams;
>
> typedef struct NvmeNamespace {
> diff --git a/hw/block/nvme.c b/hw/block/nvme.c
> index 4f1504fc00fe..61a9da970d41 100644
> --- a/hw/block/nvme.c
> +++ b/hw/block/nvme.c
> @@ -2624,6 +2624,7 @@ static void nvme_realize(PCIDevice *pci_dev, Error
> **errp)
> if (n->namespace.blk) {
> ns = &n->namespace;
> ns->params.nsid = 1;
> + ns->params.lbads = BDRV_SECTOR_BITS;
>
> if (nvme_ns_setup(n, ns, errp)) {
> return;
Reviewed-by: Maxim Levitsky <address@hidden>
Best regards,
Maxim Levitsky
- [PATCH v6 39/42] pci: allocate pci id for nvme, (continued)
- [PATCH v6 39/42] pci: allocate pci id for nvme, Klaus Jensen, 2020/03/16
- [PATCH v6 37/42] nvme: refactor identify active namespace id list, Klaus Jensen, 2020/03/16
- [PATCH v6 41/42] nvme: remove redundant NvmeCmd pointer parameter, Klaus Jensen, 2020/03/16
- [PATCH v6 38/42] nvme: support multiple namespaces, Klaus Jensen, 2020/03/16
- [PATCH v6 40/42] nvme: change controller pci id, Klaus Jensen, 2020/03/16
- [PATCH v6 35/42] nvme: handle dma errors, Klaus Jensen, 2020/03/16
- [PATCH v6 42/42] nvme: make lba data size configurable, Klaus Jensen, 2020/03/16
- Re: [PATCH v6 42/42] nvme: make lba data size configurable,
Maxim Levitsky <=
- Re: [PATCH v6 00/42] nvme: support NVMe v1.3d, SGLs and multiple namespaces, no-reply, 2020/03/16
- Re: [PATCH v6 00/42] nvme: support NVMe v1.3d, SGLs and multiple namespaces, Maxim Levitsky, 2020/03/25