diff options
author | Peter Watkins <treestem@gmail.com> | 2006-08-23 11:15:49 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2006-09-27 13:37:52 +0100 |
commit | 9dbd7b9142e95867ee8a56da5d45c72884c107d3 (patch) | |
tree | a21e246155a5d4e779f161ea7595ada9b1f43a51 /include | |
parent | 663c3d9009c1a41194b8390abdcea61e3ade1c8f (diff) | |
download | op-kernel-dev-9dbd7b9142e95867ee8a56da5d45c72884c107d3.zip op-kernel-dev-9dbd7b9142e95867ee8a56da5d45c72884c107d3.tar.gz |
[MIPS] Fix USER_PTRS_PER_PGD for 64K page size.
The code in pgtable-64.h assumes TASK_SIZE is always bigger than a first
level PGDIR_SIZE. This is not the case for 64K pages, where task size is
40 bits (1TB) and a pgd entry can map 42 bits. This leads to
USER_PTRS_PER_PGD being zero for 64K pages.
Signed-off-by: Peter Watkins <treestem@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-mips/pgtable-64.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/include/asm-mips/pgtable-64.h b/include/asm-mips/pgtable-64.h index c59a1e2..d05fb6f 100644 --- a/include/asm-mips/pgtable-64.h +++ b/include/asm-mips/pgtable-64.h @@ -93,8 +93,12 @@ #define PTRS_PER_PMD ((PAGE_SIZE << PMD_ORDER) / sizeof(pmd_t)) #define PTRS_PER_PTE ((PAGE_SIZE << PTE_ORDER) / sizeof(pte_t)) +#if PGDIR_SIZE >= TASK_SIZE +#define USER_PTRS_PER_PGD (1) +#else #define USER_PTRS_PER_PGD (TASK_SIZE / PGDIR_SIZE) -#define FIRST_USER_ADDRESS 0 +#endif +#define FIRST_USER_ADDRESS 0UL #define VMALLOC_START MAP_BASE #define VMALLOC_END \ |