mm/gup: make __gup_device_* require THP
These functions are the only bits of generic code that use {pud,pmd}_pfn() without checking for CONFIG_TRANSPARENT_HUGEPAGE. This works fine on x86, the only arch with devmap support, since the *_pfn() functions are always defined there, but this isn't true for every architecture. Link: http://lkml.kernel.org/r/20170626063833.11094-1-oohall@gmail.com Signed-off-by: Oliver O'Halloran <oohall@gmail.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>
This commit is contained in:
parent
dba58d3b8c
commit
09180ca4b3
2
mm/gup.c
2
mm/gup.c
|
@ -1352,7 +1352,7 @@ static int gup_pte_range(pmd_t pmd, unsigned long addr, unsigned long end,
|
||||||
}
|
}
|
||||||
#endif /* __HAVE_ARCH_PTE_SPECIAL */
|
#endif /* __HAVE_ARCH_PTE_SPECIAL */
|
||||||
|
|
||||||
#ifdef __HAVE_ARCH_PTE_DEVMAP
|
#if defined(__HAVE_ARCH_PTE_DEVMAP) && defined(CONFIG_TRANSPARENT_HUGEPAGE)
|
||||||
static int __gup_device_huge(unsigned long pfn, unsigned long addr,
|
static int __gup_device_huge(unsigned long pfn, unsigned long addr,
|
||||||
unsigned long end, struct page **pages, int *nr)
|
unsigned long end, struct page **pages, int *nr)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue