Skip to content

Commit 414fd08

Browse files
yuzhaogoogletorvalds
authored andcommitted
mm/gup: fix gup_pmd_range() for dax
For dax pmd, pmd_trans_huge() returns false but pmd_huge() returns true on x86. So the function works as long as hugetlb is configured. However, dax doesn't depend on hugetlb. Link: http://lkml.kernel.org/r/20190111034033.601-1-yuzhao@google.com Signed-off-by: Yu Zhao <yuzhao@google.com> Reviewed-by: Jan Kara <jack@suse.cz> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Huang Ying <ying.huang@intel.com> Cc: Matthew Wilcox <willy@infradead.org> Cc: Keith Busch <keith.busch@intel.com> Cc: "Michael S . Tsirkin" <mst@redhat.com> Cc: John Hubbard <jhubbard@nvidia.com> Cc: Wei Yang <richard.weiyang@gmail.com> Cc: Mike Rapoport <rppt@linux.ibm.com> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: "Kirill A . Shutemov" <kirill.shutemov@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent a9a238e commit 414fd08

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

mm/gup.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1674,7 +1674,8 @@ static int gup_pmd_range(pud_t pud, unsigned long addr, unsigned long end,
16741674
if (!pmd_present(pmd))
16751675
return 0;
16761676

1677-
if (unlikely(pmd_trans_huge(pmd) || pmd_huge(pmd))) {
1677+
if (unlikely(pmd_trans_huge(pmd) || pmd_huge(pmd) ||
1678+
pmd_devmap(pmd))) {
16781679
/*
16791680
* NUMA hinting faults need to be handled in the GUP
16801681
* slowpath for accounting purposes and so that they

0 commit comments

Comments
 (0)