> 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,
-};
-
 enum ars_masks {
        ARS_STATUS_MASK = 0x0000FFFF,
        ARS_EXT_STATUS_SHIFT = 16,
-- 
2.11.0

_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to