linux/drivers/nvdimm
Dan Williams 658922e57b libnvdimm, pfn: fix memmap reservation sizing
When configuring a pfn-device instance to allocate the memmap array it
needs to account for the fact that vmemmap_populate_hugepages()
allocates struct page blocks in HPAGE_SIZE chunks.  We need to align the
reserved area size to 2MB otherwise arch_add_memory() runs out of memory
while establishing the memmap:

 WARNING: CPU: 0 PID: 496 at arch/x86/mm/init_64.c:704 arch_add_memory+0xe7/0xf0
 [..]
 Call Trace:
  [<ffffffff8148bdb3>] dump_stack+0x85/0xc2
  [<ffffffff810a749b>] __warn+0xcb/0xf0
  [<ffffffff810a75cd>] warn_slowpath_null+0x1d/0x20
  [<ffffffff8106a497>] arch_add_memory+0xe7/0xf0
  [<ffffffff811d2097>] devm_memremap_pages+0x287/0x450
  [<ffffffff811d1ffa>] ? devm_memremap_pages+0x1ea/0x450
  [<ffffffffa0000298>] __wrap_devm_memremap_pages+0x58/0x70 [nfit_test_iomap]
  [<ffffffffa0047a58>] pmem_attach_disk+0x318/0x420 [nd_pmem]
  [<ffffffffa0047bcf>] nd_pmem_probe+0x6f/0x90 [nd_pmem]
  [<ffffffffa0009469>] nvdimm_bus_probe+0x69/0x110 [libnvdimm]
 [..]
  ndbus0: nd_pmem.probe(pfn3.0) = -12
 nd_pmem: probe of pfn3.0 failed with error -12
libndctl: ndctl_pfn_enable: pfn3.0: failed to enable

Reported-by: Namratha Kothapalli <namratha.n.kothapalli@intel.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2016-04-30 13:07:06 -07:00
..
blk.c nvdimm/blk: don't allocate unused major device number 2016-03-09 14:59:41 -08:00
btt_devs.c
btt.c mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
btt.h
bus.c libnvdimm: fix smart data retrieval 2016-04-07 19:58:44 -07:00
claim.c
core.c libnvdimm, pfn: fix nvdimm_namespace_add_poison() vs section alignment 2016-04-07 20:02:06 -07:00
dimm_devs.c
dimm.c
e820.c
Kconfig
label.c
label.h
Makefile
namespace_devs.c libnvdimm, pmem: adjust for section collisions with 'System RAM' 2016-03-05 12:25:45 -08:00
nd-core.h
nd.h libnvdimm, pfn: fix nvdimm_namespace_add_poison() vs section alignment 2016-04-07 20:02:06 -07:00
pfn_devs.c libnvdimm, pfn: fix uuid validation 2016-04-07 19:59:27 -07:00
pfn.h libnvdimm, pmem: adjust for section collisions with 'System RAM' 2016-03-05 12:25:45 -08:00
pmem.c libnvdimm, pfn: fix memmap reservation sizing 2016-04-30 13:07:06 -07:00
region_devs.c
region.c libnvdimm: async notification support 2016-03-05 12:24:06 -08:00