On Wed, Jul 12, 2017 at 8:04 AM, Matthew Wilcox <[email protected]> wrote:
>> You're right. It should return -ENODEV regardless, but the warning
>> should be for non-zero too small namespaces.
>
> OK, try this:
>
> ---- 8< ----
>
> From: Matthew Wilcox <[email protected]>
> Date: Mon, 10 Jul 2017 14:26:59 -0400
> Subject: [PATCH] nvdimm: Remove minimum size requirement
>
> There was no need to have a minimum size of 4MB for NV-DIMMs; it was
> just a sanity check.  Keep a check that it's at least one page in size
> because we really can't add less than a page to the memory map.
>
> Promote the print statement from 'debug' level to 'warning', since there
> was no information for my colleague who stumbled over this problem while
> attempting to add a 2MB chunk of memory.  There may be some zero-sized
> devices on the list, and those are not warned about.
>
> Truncate the resource_size_t to an int and print it using %d rather
> than printing it in hex as a pointer to an address.  We know it's less
> than PAGE_SIZE, so it'll fit in an int.
>
> Reported-by: Cheng-mean Liu <[email protected]>
> Signed-off-by: Matthew Wilcox <[email protected]>
> ---
>  drivers/nvdimm/namespace_devs.c | 7 ++++---
>  include/uapi/linux/ndctl.h      | 4 ----
>  2 files changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/nvdimm/namespace_devs.c b/drivers/nvdimm/namespace_devs.c
> index 5f1c6756e57c..518c3507f67f 100644
> --- a/drivers/nvdimm/namespace_devs.c
> +++ b/drivers/nvdimm/namespace_devs.c
> @@ -1689,9 +1689,10 @@ struct nd_namespace_common 
> *nvdimm_namespace_common_probe(struct device *dev)
>         }
>
>         size = nvdimm_namespace_capacity(ndns);
> -       if (size < ND_MIN_NAMESPACE_SIZE) {
> -               dev_dbg(&ndns->dev, "%pa, too small must be at least %#x\n",
> -                               &size, ND_MIN_NAMESPACE_SIZE);
> +       if (size < PAGE_SIZE) {
> +               if (size)
> +                       dev_warn(&ndns->dev, "%d too small must be at least 
> %ld\n",
> +                                       (int)size, PAGE_SIZE);
>                 return ERR_PTR(-ENODEV);
>         }
>
> diff --git a/include/uapi/linux/ndctl.h b/include/uapi/linux/ndctl.h
> index 6d3c54264d8e..3ad1623bb585 100644
> --- a/include/uapi/linux/ndctl.h
> +++ b/include/uapi/linux/ndctl.h
> @@ -299,10 +299,6 @@ enum nd_driver_flags {
>         ND_DRIVER_DAX_PMEM        = 1 << ND_DEVICE_DAX_PMEM,
>  };
>
> -enum {
> -       ND_MIN_NAMESPACE_SIZE = 0x00400000,
> -};
> -

I ran this patch through the unit tests. We'll need to keep this
definition around until we can kill it's usage in ndctl since it's
part of the uapi. I also need to go fix up the dpa-alloc test to
understand the new assumptions.
_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to