|
@@ -4,9 +4,11 @@
|
|
|
#include <asm/tlb.h>
|
|
|
#include <asm/fixmap.h>
|
|
|
|
|
|
+#define PGALLOC_GFP GFP_KERNEL | __GFP_NOTRACK | __GFP_REPEAT | __GFP_ZERO
|
|
|
+
|
|
|
pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
|
|
|
{
|
|
|
- return (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO);
|
|
|
+ return (pte_t *)__get_free_page(PGALLOC_GFP);
|
|
|
}
|
|
|
|
|
|
pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address)
|
|
@@ -14,9 +16,9 @@ pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address)
|
|
|
struct page *pte;
|
|
|
|
|
|
#ifdef CONFIG_HIGHPTE
|
|
|
- pte = alloc_pages(GFP_KERNEL|__GFP_HIGHMEM|__GFP_REPEAT|__GFP_ZERO, 0);
|
|
|
+ pte = alloc_pages(PGALLOC_GFP | __GFP_HIGHMEM, 0);
|
|
|
#else
|
|
|
- pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0);
|
|
|
+ pte = alloc_pages(PGALLOC_GFP, 0);
|
|
|
#endif
|
|
|
if (pte)
|
|
|
pgtable_page_ctor(pte);
|
|
@@ -161,7 +163,7 @@ static int preallocate_pmds(pmd_t *pmds[])
|
|
|
bool failed = false;
|
|
|
|
|
|
for(i = 0; i < PREALLOCATED_PMDS; i++) {
|
|
|
- pmd_t *pmd = (pmd_t *)get_zeroed_page(GFP_KERNEL|__GFP_REPEAT);
|
|
|
+ pmd_t *pmd = (pmd_t *)__get_free_page(PGALLOC_GFP);
|
|
|
if (pmd == NULL)
|
|
|
failed = true;
|
|
|
pmds[i] = pmd;
|
|
@@ -228,7 +230,7 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
|
|
|
pmd_t *pmds[PREALLOCATED_PMDS];
|
|
|
unsigned long flags;
|
|
|
|
|
|
- pgd = (pgd_t *)__get_free_page(GFP_KERNEL | __GFP_ZERO);
|
|
|
+ pgd = (pgd_t *)__get_free_page(PGALLOC_GFP);
|
|
|
|
|
|
if (pgd == NULL)
|
|
|
goto out;
|