Blob Blame Raw
diff -up ./arch/x86/include/asm/pgtable.h.pud ./arch/x86/include/asm/pgtable.h
--- ./arch/x86/include/asm/pgtable.h.pud	2018-04-15 20:52:06.000000000 +0900
+++ ./arch/x86/include/asm/pgtable.h	2018-04-15 20:59:16.000000000 +0900
@@ -216,6 +216,7 @@ static inline int pud_trans_splitting(pu
 	return pud_val(pud) & _PAGE_SPLITTING;
 }
 
+#define __HAVE_ARCH_PUD_TRANS_HUGE
 static inline int pud_trans_huge(pud_t pud)
 {
 	return (pud_val(pud) & (_PAGE_PSE|_PAGE_DEVMAP)) == _PAGE_PSE;
@@ -234,6 +235,7 @@ static inline int pmd_devmap(pmd_t pmd)
 }
 #endif
 
+#define __HAVE_ARCH_PUD_DEVMAP
 #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD
 static inline int pud_devmap(pud_t pud)
 {
@@ -1033,6 +1035,7 @@ static inline int pmd_write(pmd_t pmd)
 #if !defined(CONFIG_TRANSPARENT_HUGEPAGE) || \
 	(defined(CONFIG_TRANSPARENT_HUGEPAGE) && \
 	 !defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD))
+#define __HAVE_ARCH_PUD_TRANS_HUGE
 static inline int pud_trans_huge(pud_t pud)
 {
 	return 0;
diff -up ./include/asm-generic/pgtable.h.pud ./include/asm-generic/pgtable.h
--- ./include/asm-generic/pgtable.h.pud	2018-03-22 06:40:12.000000000 +0900
+++ ./include/asm-generic/pgtable.h	2018-04-15 20:53:45.000000000 +0900
@@ -629,10 +629,12 @@ static inline int pmd_trans_splitting(pm
 {
 	return 0;
 }
+# ifndef __HAVE_ARCH_PUD_TRANS_HUGE
 static inline int pud_trans_huge(pud_t pud)
 {
 	return 0;
 }
+# endif
 static inline int pud_trans_splitting(pud_t pud)
 {
 	return 0;
@@ -656,10 +658,12 @@ static inline int pud_write(pud_t pud)
 #if !defined(CONFIG_TRANSPARENT_HUGEPAGE) || \
 	(defined(CONFIG_TRANSPARENT_HUGEPAGE) && \
 	 !defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD))
+# ifndef __HAVE_ARCH_PUD_TRANS_HUGE
 static inline int pud_trans_huge(pud_t pud)
 {
 	return 0;
 }
+# endif
 #endif
 
 #ifndef pmd_read_atomic
diff -up ./include/linux/mm.h.pud ./include/linux/mm.h
--- ./include/linux/mm.h.pud	2018-04-15 21:00:18.000000000 +0900
+++ ./include/linux/mm.h	2018-04-15 20:59:43.000000000 +0900
@@ -380,10 +380,12 @@ static inline int pmd_devmap(pmd_t pmd)
 {
 	return 0;
 }
+# ifndef __HAVE_ARCH_PUD_DEVMAP
 static inline int pud_devmap(pud_t pud)
 {
 	return 0;
 }
+# endif
 #endif
 
 /*