diff options
author | David Daney <david.daney@cavium.com> | 2012-05-04 20:09:35 +0200 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2012-05-15 17:47:02 +0200 |
commit | 85f993b807f9e7c843934493559fab430f8d989e (patch) | |
tree | 7960c6cae07fbece64ff1edccd74b4bf3e2c6fc4 /arch/mips | |
parent | MIPS: Include export.h in for EXPORT_SYMBOL in ops-loongson2.c (diff) | |
download | linux-85f993b807f9e7c843934493559fab430f8d989e.tar.xz linux-85f993b807f9e7c843934493559fab430f8d989e.zip |
MIPS: Handle huge pages with 64KB base page size.
When using sparsemem, we need to adjust some constants as the resulting
huge pages are 512MB in size.
Signed-off-by: David Daney <david.daney@cavium.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/3745/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips')
-rw-r--r-- | arch/mips/Kconfig | 10 | ||||
-rw-r--r-- | arch/mips/include/asm/sparsemem.h | 6 |
2 files changed, 11 insertions, 5 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index ce30e2f91d77..6e041639a40d 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -1786,10 +1786,12 @@ endchoice config FORCE_MAX_ZONEORDER int "Maximum zone order" - range 13 64 if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_32KB - default "13" if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_32KB - range 12 64 if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_16KB - default "12" if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_16KB + range 14 64 if HUGETLB_PAGE && PAGE_SIZE_64KB + default "14" if HUGETLB_PAGE && PAGE_SIZE_64KB + range 13 64 if HUGETLB_PAGE && PAGE_SIZE_32KB + default "13" if HUGETLB_PAGE && PAGE_SIZE_32KB + range 12 64 if HUGETLB_PAGE && PAGE_SIZE_16KB + default "12" if HUGETLB_PAGE && PAGE_SIZE_16KB range 11 64 default "11" help diff --git a/arch/mips/include/asm/sparsemem.h b/arch/mips/include/asm/sparsemem.h index 7165333ad043..4461198361c9 100644 --- a/arch/mips/include/asm/sparsemem.h +++ b/arch/mips/include/asm/sparsemem.h @@ -6,7 +6,11 @@ * SECTION_SIZE_BITS 2^N: how big each section will be * MAX_PHYSMEM_BITS 2^N: how much memory we can have in that space */ -#define SECTION_SIZE_BITS 28 +#if defined(CONFIG_HUGETLB_PAGE) && defined(CONFIG_PAGE_SIZE_64KB) +# define SECTION_SIZE_BITS 29 +#else +# define SECTION_SIZE_BITS 28 +#endif #define MAX_PHYSMEM_BITS 35 #endif /* CONFIG_SPARSEMEM */ |