diff options
-rw-r--r-- | include/asm-mips/pgtable-32.h | 9 | ||||
-rw-r--r-- | include/asm-mips/pgtable-64.h | 9 |
2 files changed, 8 insertions, 10 deletions
diff --git a/include/asm-mips/pgtable-32.h b/include/asm-mips/pgtable-32.h index 8d66303eabc..9b4d39d9f2f 100644 --- a/include/asm-mips/pgtable-32.h +++ b/include/asm-mips/pgtable-32.h | |||
@@ -43,10 +43,6 @@ extern int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1, | |||
43 | * works even with the cache aliasing problem the R4k and above have. | 43 | * works even with the cache aliasing problem the R4k and above have. |
44 | */ | 44 | */ |
45 | 45 | ||
46 | /* PMD_SHIFT determines the size of the area a second-level page table can map */ | ||
47 | #define PMD_SIZE (1UL << PMD_SHIFT) | ||
48 | #define PMD_MASK (~(PMD_SIZE-1)) | ||
49 | |||
50 | /* PGDIR_SHIFT determines what a third-level page table entry can map */ | 46 | /* PGDIR_SHIFT determines what a third-level page table entry can map */ |
51 | #ifdef CONFIG_64BIT_PHYS_ADDR | 47 | #ifdef CONFIG_64BIT_PHYS_ADDR |
52 | #define PGDIR_SHIFT 21 | 48 | #define PGDIR_SHIFT 21 |
@@ -78,7 +74,7 @@ extern int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1, | |||
78 | #define USER_PTRS_PER_PGD (0x80000000UL/PGDIR_SIZE) | 74 | #define USER_PTRS_PER_PGD (0x80000000UL/PGDIR_SIZE) |
79 | #define FIRST_USER_ADDRESS 0 | 75 | #define FIRST_USER_ADDRESS 0 |
80 | 76 | ||
81 | #define VMALLOC_START KSEG2 | 77 | #define VMALLOC_START MAP_BASE |
82 | 78 | ||
83 | #ifdef CONFIG_HIGHMEM | 79 | #ifdef CONFIG_HIGHMEM |
84 | # define VMALLOC_END (PKMAP_BASE-2*PAGE_SIZE) | 80 | # define VMALLOC_END (PKMAP_BASE-2*PAGE_SIZE) |
@@ -146,12 +142,13 @@ pfn_pte(unsigned long pfn, pgprot_t prot) | |||
146 | #endif /* defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32) */ | 142 | #endif /* defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32) */ |
147 | 143 | ||
148 | #define __pgd_offset(address) pgd_index(address) | 144 | #define __pgd_offset(address) pgd_index(address) |
145 | #define __pud_offset(address) (((address) >> PUD_SHIFT) & (PTRS_PER_PUD-1)) | ||
149 | #define __pmd_offset(address) (((address) >> PMD_SHIFT) & (PTRS_PER_PMD-1)) | 146 | #define __pmd_offset(address) (((address) >> PMD_SHIFT) & (PTRS_PER_PMD-1)) |
150 | 147 | ||
151 | /* to find an entry in a kernel page-table-directory */ | 148 | /* to find an entry in a kernel page-table-directory */ |
152 | #define pgd_offset_k(address) pgd_offset(&init_mm, address) | 149 | #define pgd_offset_k(address) pgd_offset(&init_mm, address) |
153 | 150 | ||
154 | #define pgd_index(address) ((address) >> PGDIR_SHIFT) | 151 | #define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1)) |
155 | 152 | ||
156 | /* to find an entry in a page-table-directory */ | 153 | /* to find an entry in a page-table-directory */ |
157 | #define pgd_offset(mm,addr) ((mm)->pgd + pgd_index(addr)) | 154 | #define pgd_offset(mm,addr) ((mm)->pgd + pgd_index(addr)) |
diff --git a/include/asm-mips/pgtable-64.h b/include/asm-mips/pgtable-64.h index ac5517fa1ee..35007250ac2 100644 --- a/include/asm-mips/pgtable-64.h +++ b/include/asm-mips/pgtable-64.h | |||
@@ -59,7 +59,7 @@ | |||
59 | * two levels would be easy to implement. | 59 | * two levels would be easy to implement. |
60 | * | 60 | * |
61 | * For 16kB page size we use a 2 level page tree which permits a total of | 61 | * For 16kB page size we use a 2 level page tree which permits a total of |
62 | * 36 bits of virtual address space. We could add a third leve. but it seems | 62 | * 36 bits of virtual address space. We could add a third level but it seems |
63 | * like at the moment there's no need for this. | 63 | * like at the moment there's no need for this. |
64 | * | 64 | * |
65 | * For 64kB page size we use a 2 level page table tree for a total of 42 bits | 65 | * For 64kB page size we use a 2 level page table tree for a total of 42 bits |
@@ -97,7 +97,7 @@ | |||
97 | #define USER_PTRS_PER_PGD (TASK_SIZE / PGDIR_SIZE) | 97 | #define USER_PTRS_PER_PGD (TASK_SIZE / PGDIR_SIZE) |
98 | #define FIRST_USER_ADDRESS 0 | 98 | #define FIRST_USER_ADDRESS 0 |
99 | 99 | ||
100 | #define VMALLOC_START XKSEG | 100 | #define VMALLOC_START MAP_BASE |
101 | #define VMALLOC_END \ | 101 | #define VMALLOC_END \ |
102 | (VMALLOC_START + PTRS_PER_PGD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE) | 102 | (VMALLOC_START + PTRS_PER_PGD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE) |
103 | 103 | ||
@@ -134,7 +134,7 @@ static inline void pmd_clear(pmd_t *pmdp) | |||
134 | } | 134 | } |
135 | 135 | ||
136 | /* | 136 | /* |
137 | * Empty pgd entries point to the invalid_pmd_table. | 137 | * Empty pud entries point to the invalid_pmd_table. |
138 | */ | 138 | */ |
139 | static inline int pud_none(pud_t pud) | 139 | static inline int pud_none(pud_t pud) |
140 | { | 140 | { |
@@ -166,12 +166,13 @@ static inline void pud_clear(pud_t *pudp) | |||
166 | #endif | 166 | #endif |
167 | 167 | ||
168 | #define __pgd_offset(address) pgd_index(address) | 168 | #define __pgd_offset(address) pgd_index(address) |
169 | #define __pud_offset(address) (((address) >> PUD_SHIFT) & (PTRS_PER_PUD-1)) | ||
169 | #define page_pte(page) page_pte_prot(page, __pgprot(0)) | 170 | #define page_pte(page) page_pte_prot(page, __pgprot(0)) |
170 | 171 | ||
171 | /* to find an entry in a kernel page-table-directory */ | 172 | /* to find an entry in a kernel page-table-directory */ |
172 | #define pgd_offset_k(address) pgd_offset(&init_mm, 0) | 173 | #define pgd_offset_k(address) pgd_offset(&init_mm, 0) |
173 | 174 | ||
174 | #define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1)) | 175 | #define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1)) |
175 | 176 | ||
176 | /* to find an entry in a page-table-directory */ | 177 | /* to find an entry in a page-table-directory */ |
177 | #define pgd_offset(mm,addr) ((mm)->pgd + pgd_index(addr)) | 178 | #define pgd_offset(mm,addr) ((mm)->pgd + pgd_index(addr)) |