Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdim...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 14 Nov 2015 01:35:48 +0000 (17:35 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 14 Nov 2015 01:35:48 +0000 (17:35 -0800)
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

1  2 
fs/dax.c

diff --combined fs/dax.c
index 8e17b371aeb894620ac2cc5d7a7e2aaee7095310,bff20cc5613040342c898ff56792abab4bbc61ab..d1e5cb7311a1de295ecd4348360a9a9947e71142
+++ b/fs/dax.c
@@@ -174,10 -174,8 +174,10 @@@ static ssize_t dax_io(struct inode *ino
                else
                        len = iov_iter_zero(max - pos, iter);
  
 -              if (!len)
 +              if (!len) {
 +                      retval = -EFAULT;
                        break;
 +              }
  
                pos += len;
                addr += len;
@@@ -629,6 -627,13 +629,13 @@@ int __dax_pmd_fault(struct vm_area_stru
                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++)