path: root/fs
diff options
authorLinus Torvalds <torvalds@linux-foundation.org>2015-11-13 17:35:48 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2015-11-13 17:35:48 -0800
commit2870f6c4d136e093e22159b8916918ff42c92218 (patch)
treef822a4fa9f72a901a40eda4a12dc0055ff8f6266 /fs
parentMerge tag 'vfio-v4.4-rc1' of git://github.com/awilliam/linux-vfio (diff)
parentdax: fix __dax_pmd_fault crash (diff)
Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
Pull libnvdimm fixes from Dan Williams: - three fixes tagged for -stable including a crash fix, simple performance tweak, and an invalid i/o error. - build regression fix for the nvdimm unit tests - nvdimm documentation update * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: dax: fix __dax_pmd_fault crash libnvdimm: documentation clarifications libnvdimm, pmem: fix size trim in pmem_direct_access() libnvdimm, e820: fix numa node for e820-type-12 pmem ranges tools/testing/nvdimm, acpica: fix flag rename build breakage
Diffstat (limited to 'fs')
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/dax.c b/fs/dax.c
index 8e17b371aeb8..d1e5cb7311a1 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -629,6 +629,13 @@ int __dax_pmd_fault(struct vm_area_struct *vma, unsigned long address,
if ((length < PMD_SIZE) || (pfn & PG_PMD_COLOUR))
goto fallback;
+ /*
+ * TODO: teach vmf_insert_pfn_pmd() to support
+ * 'pte_special' for pmds
+ */
+ if (pfn_valid(pfn))
+ goto fallback;
if (buffer_unwritten(&bh) || buffer_new(&bh)) {
int i;
for (i = 0; i < PTRS_PER_PMD; i++)