|
@@ -14,6 +14,30 @@ struct ctl_table;
|
|
|
struct user_struct;
|
|
|
struct mmu_gather;
|
|
|
|
|
|
+#ifndef is_hugepd
|
|
|
+/*
|
|
|
+ * Some architectures requires a hugepage directory format that is
|
|
|
+ * required to support multiple hugepage sizes. For example
|
|
|
+ * a4fe3ce76 "powerpc/mm: Allow more flexible layouts for hugepage pagetables"
|
|
|
+ * introduced the same on powerpc. This allows for a more flexible hugepage
|
|
|
+ * pagetable layout.
|
|
|
+ */
|
|
|
+typedef struct { unsigned long pd; } hugepd_t;
|
|
|
+#define is_hugepd(hugepd) (0)
|
|
|
+#define __hugepd(x) ((hugepd_t) { (x) })
|
|
|
+static inline int gup_huge_pd(hugepd_t hugepd, unsigned long addr,
|
|
|
+ unsigned pdshift, unsigned long end,
|
|
|
+ int write, struct page **pages, int *nr)
|
|
|
+{
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+#else
|
|
|
+extern int gup_huge_pd(hugepd_t hugepd, unsigned long addr,
|
|
|
+ unsigned pdshift, unsigned long end,
|
|
|
+ int write, struct page **pages, int *nr);
|
|
|
+#endif
|
|
|
+
|
|
|
+
|
|
|
#ifdef CONFIG_HUGETLB_PAGE
|
|
|
|
|
|
#include <linux/mempolicy.h>
|
|
@@ -222,29 +246,6 @@ static inline int pud_write(pud_t pud)
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
-#ifndef is_hugepd
|
|
|
-/*
|
|
|
- * Some architectures requires a hugepage directory format that is
|
|
|
- * required to support multiple hugepage sizes. For example
|
|
|
- * a4fe3ce76 "powerpc/mm: Allow more flexible layouts for hugepage pagetables"
|
|
|
- * introduced the same on powerpc. This allows for a more flexible hugepage
|
|
|
- * pagetable layout.
|
|
|
- */
|
|
|
-typedef struct { unsigned long pd; } hugepd_t;
|
|
|
-#define is_hugepd(hugepd) (0)
|
|
|
-#define __hugepd(x) ((hugepd_t) { (x) })
|
|
|
-static inline int gup_huge_pd(hugepd_t hugepd, unsigned long addr,
|
|
|
- unsigned pdshift, unsigned long end,
|
|
|
- int write, struct page **pages, int *nr)
|
|
|
-{
|
|
|
- return 0;
|
|
|
-}
|
|
|
-#else
|
|
|
-extern int gup_huge_pd(hugepd_t hugepd, unsigned long addr,
|
|
|
- unsigned pdshift, unsigned long end,
|
|
|
- int write, struct page **pages, int *nr);
|
|
|
-#endif
|
|
|
-
|
|
|
#define HUGETLB_ANON_FILE "anon_hugepage"
|
|
|
|
|
|
enum {
|