summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-12-04 11:30:45 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2015-12-04 11:30:45 -0800
commitfb39cbda147082a2e7dc4e2b5f3298448295e3c4 (patch)
tree7dcbed6849a900f66f1d2a0b31d82721c6b4ed1e /arch
parentdb281766baf4f88da2892f329381e9d9baa9756d (diff)
parent6b577c9d772c45448aec784ec235cea228b4d3ad (diff)
downloadlinux-fb39cbda147082a2e7dc4e2b5f3298448295e3c4.tar.gz
linux-fb39cbda147082a2e7dc4e2b5f3298448295e3c4.tar.bz2
linux-fb39cbda147082a2e7dc4e2b5f3298448295e3c4.zip
Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
Pull libnvdimm fixes from Dan Williams: - NFIT parsing regression fixes from Linda. The nvdimm hot-add implementation merged in 4.4-rc1 interpreted the specification in a way that breaks actual HPE platforms. We are also closing the loop with the ACPI Working Group to get this clarification added to the spec. - Andy pointed out that his laptop without nvdimm resources is loading the e820-nvdimm module by default, fix that up to only load the module when an e820-type-12 range is present. * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: nfit: Adjust for different _FIT and NFIT headers nfit: Fix the check for a successful NFIT merge nfit: Account for table size length variation libnvdimm, e820: skip module loading when no type-12
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/pmem.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/x86/kernel/pmem.c b/arch/x86/kernel/pmem.c
index 4f00b63d7ff3..14415aff1813 100644
--- a/arch/x86/kernel/pmem.c
+++ b/arch/x86/kernel/pmem.c
@@ -4,10 +4,22 @@
*/
#include <linux/platform_device.h>
#include <linux/module.h>
+#include <linux/ioport.h>
+
+static int found(u64 start, u64 end, void *data)
+{
+ return 1;
+}
static __init int register_e820_pmem(void)
{
+ char *pmem = "Persistent Memory (legacy)";
struct platform_device *pdev;
+ int rc;
+
+ rc = walk_iomem_res(pmem, IORESOURCE_MEM, 0, -1, NULL, found);
+ if (rc <= 0)
+ return 0;
/*
* See drivers/nvdimm/e820.c for the implementation, this is