Commit 464fd83e841a16f4ea1325b33eb08170ef5cd1f4
Committed by
Ralf Baechle
1 parent
273f2d7e64
Exists in
master
and in
6 other branches
MIPS: Limit fixrange_init() to the FIXMAP region
fixrange_init() allocates page tables for all addresses higher than FIXADDR_TOP. On processors that override the default FIXADDR_TOP address of 0xfffe_0000, this can consume up to 4 pages (1 page per 4MB) for pgd's that are never used. Signed-off-by: Kevin Cernekee <cernekee@gmail.com> Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/1980/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Showing 3 changed files with 5 additions and 5 deletions Side-by-side Diff
arch/mips/mm/init.c
... | ... | @@ -277,11 +277,11 @@ |
277 | 277 | k = __pmd_offset(vaddr); |
278 | 278 | pgd = pgd_base + i; |
279 | 279 | |
280 | - for ( ; (i < PTRS_PER_PGD) && (vaddr != end); pgd++, i++) { | |
280 | + for ( ; (i < PTRS_PER_PGD) && (vaddr < end); pgd++, i++) { | |
281 | 281 | pud = (pud_t *)pgd; |
282 | - for ( ; (j < PTRS_PER_PUD) && (vaddr != end); pud++, j++) { | |
282 | + for ( ; (j < PTRS_PER_PUD) && (vaddr < end); pud++, j++) { | |
283 | 283 | pmd = (pmd_t *)pud; |
284 | - for (; (k < PTRS_PER_PMD) && (vaddr != end); pmd++, k++) { | |
284 | + for (; (k < PTRS_PER_PMD) && (vaddr < end); pmd++, k++) { | |
285 | 285 | if (pmd_none(*pmd)) { |
286 | 286 | pte = (pte_t *) alloc_bootmem_low_pages(PAGE_SIZE); |
287 | 287 | set_pmd(pmd, __pmd((unsigned long)pte)); |
arch/mips/mm/pgtable-32.c