|
@@ -68,13 +68,11 @@ extern void purge_tlb_entries(struct mm_struct *, unsigned long);
|
|
|
#define KERNEL_INITIAL_ORDER 24 /* 0 to 1<<24 = 16MB */
|
|
|
#define KERNEL_INITIAL_SIZE (1 << KERNEL_INITIAL_ORDER)
|
|
|
|
|
|
-#if defined(CONFIG_64BIT) && defined(CONFIG_PARISC_PAGE_SIZE_4KB)
|
|
|
-#define PT_NLEVELS 3
|
|
|
+#if CONFIG_PGTABLE_LEVELS == 3
|
|
|
#define PGD_ORDER 1 /* Number of pages per pgd */
|
|
|
#define PMD_ORDER 1 /* Number of pages per pmd */
|
|
|
#define PGD_ALLOC_ORDER 2 /* first pgd contains pmd */
|
|
|
#else
|
|
|
-#define PT_NLEVELS 2
|
|
|
#define PGD_ORDER 1 /* Number of pages per pgd */
|
|
|
#define PGD_ALLOC_ORDER PGD_ORDER
|
|
|
#endif
|
|
@@ -93,7 +91,7 @@ extern void purge_tlb_entries(struct mm_struct *, unsigned long);
|
|
|
#define PMD_SHIFT (PLD_SHIFT + BITS_PER_PTE)
|
|
|
#define PMD_SIZE (1UL << PMD_SHIFT)
|
|
|
#define PMD_MASK (~(PMD_SIZE-1))
|
|
|
-#if PT_NLEVELS == 3
|
|
|
+#if CONFIG_PGTABLE_LEVELS == 3
|
|
|
#define BITS_PER_PMD (PAGE_SHIFT + PMD_ORDER - BITS_PER_PMD_ENTRY)
|
|
|
#else
|
|
|
#define __PAGETABLE_PMD_FOLDED
|
|
@@ -277,7 +275,7 @@ extern unsigned long *empty_zero_page;
|
|
|
#define pgd_flag(x) (pgd_val(x) & PxD_FLAG_MASK)
|
|
|
#define pgd_address(x) ((unsigned long)(pgd_val(x) &~ PxD_FLAG_MASK) << PxD_VALUE_SHIFT)
|
|
|
|
|
|
-#if PT_NLEVELS == 3
|
|
|
+#if CONFIG_PGTABLE_LEVELS == 3
|
|
|
/* The first entry of the permanent pmd is not there if it contains
|
|
|
* the gateway marker */
|
|
|
#define pmd_none(x) (!pmd_val(x) || pmd_flag(x) == PxD_FLAG_ATTACHED)
|
|
@@ -287,7 +285,7 @@ extern unsigned long *empty_zero_page;
|
|
|
#define pmd_bad(x) (!(pmd_flag(x) & PxD_FLAG_VALID))
|
|
|
#define pmd_present(x) (pmd_flag(x) & PxD_FLAG_PRESENT)
|
|
|
static inline void pmd_clear(pmd_t *pmd) {
|
|
|
-#if PT_NLEVELS == 3
|
|
|
+#if CONFIG_PGTABLE_LEVELS == 3
|
|
|
if (pmd_flag(*pmd) & PxD_FLAG_ATTACHED)
|
|
|
/* This is the entry pointing to the permanent pmd
|
|
|
* attached to the pgd; cannot clear it */
|
|
@@ -299,7 +297,7 @@ static inline void pmd_clear(pmd_t *pmd) {
|
|
|
|
|
|
|
|
|
|
|
|
-#if PT_NLEVELS == 3
|
|
|
+#if CONFIG_PGTABLE_LEVELS == 3
|
|
|
#define pgd_page_vaddr(pgd) ((unsigned long) __va(pgd_address(pgd)))
|
|
|
#define pgd_page(pgd) virt_to_page((void *)pgd_page_vaddr(pgd))
|
|
|
|
|
@@ -309,7 +307,7 @@ static inline void pmd_clear(pmd_t *pmd) {
|
|
|
#define pgd_bad(x) (!(pgd_flag(x) & PxD_FLAG_VALID))
|
|
|
#define pgd_present(x) (pgd_flag(x) & PxD_FLAG_PRESENT)
|
|
|
static inline void pgd_clear(pgd_t *pgd) {
|
|
|
-#if PT_NLEVELS == 3
|
|
|
+#if CONFIG_PGTABLE_LEVELS == 3
|
|
|
if(pgd_flag(*pgd) & PxD_FLAG_ATTACHED)
|
|
|
/* This is the permanent pmd attached to the pgd; cannot
|
|
|
* free it */
|
|
@@ -393,7 +391,7 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
|
|
|
|
|
|
/* Find an entry in the second-level page table.. */
|
|
|
|
|
|
-#if PT_NLEVELS == 3
|
|
|
+#if CONFIG_PGTABLE_LEVELS == 3
|
|
|
#define pmd_offset(dir,address) \
|
|
|
((pmd_t *) pgd_page_vaddr(*(dir)) + (((address)>>PMD_SHIFT) & (PTRS_PER_PMD-1)))
|
|
|
#else
|