On Wed, Jul 12, 2017 at 8:04 AM, Matthew Wilcox <willy(a)infradead.org> 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 <mawilcox(a)microsoft.com>
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 <soccerl(a)microsoft.com>
Signed-off-by: Matthew Wilcox <mawilcox(a)microsoft.com>
---
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.