Commit 53bcddb9 authored by Stephen Rothwell's avatar Stephen Rothwell Committed by Paul Mackerras

[POWERPC] Fix MAX_ORDER config problem

The allyesconfig (among others) build was giving this:

In file included from include/linux/gfp.h:4,
                 from include/linux/slab.h:14,
                 from include/linux/percpu.h:5,
                 from include2/asm/time.h:18,
                 from include2/asm/cputime.h:26,
                 from include/linux/sched.h:67,
                 from
arch/powerpc/kernel/asm-offsets.c:17:
include/linux/mmzone.h:791:2: error: #error Allocator MAX_ORDER exceeds SECTION_SIZE

Kconfig options are order depenendent, so move the setting of
FORCE_MAX_ZONEORDER to after the setting of PPC_64K_PAGES. Also add an
explicit !PPC_64K_PAGES.
Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 320787c7
...@@ -211,26 +211,6 @@ source kernel/Kconfig.hz ...@@ -211,26 +211,6 @@ source kernel/Kconfig.hz
source kernel/Kconfig.preempt source kernel/Kconfig.preempt
source "fs/Kconfig.binfmt" source "fs/Kconfig.binfmt"
config FORCE_MAX_ZONEORDER
int "Maximum zone order"
default "9" if PPC_64K_PAGES
default "13" if PPC64
default "11"
help
The kernel memory allocator divides physically contiguous memory
blocks into "zones", where each zone is a power of two number of
pages. This option selects the largest power of two that the kernel
keeps in the memory allocator. If you need to allocate very large
blocks of physically contiguous memory, then you may need to
increase this value.
This config option is actually maximum order plus one. For example,
a value of 11 means that the largest free memory block is 2^10 pages.
The page size is not necessarily 4KB. For example, on 64-bit
systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES. Keep
this in mind when choosing a value for this option.
config HUGETLB_PAGE_SIZE_VARIABLE config HUGETLB_PAGE_SIZE_VARIABLE
bool bool
depends on HUGETLB_PAGE depends on HUGETLB_PAGE
...@@ -403,6 +383,26 @@ config PPC_64K_PAGES ...@@ -403,6 +383,26 @@ config PPC_64K_PAGES
while on hardware with such support, it will be used to map while on hardware with such support, it will be used to map
normal application pages. normal application pages.
config FORCE_MAX_ZONEORDER
int "Maximum zone order"
default "9" if PPC_64K_PAGES
default "13" if PPC64 && !PPC_64K_PAGES
default "11"
help
The kernel memory allocator divides physically contiguous memory
blocks into "zones", where each zone is a power of two number of
pages. This option selects the largest power of two that the kernel
keeps in the memory allocator. If you need to allocate very large
blocks of physically contiguous memory, then you may need to
increase this value.
This config option is actually maximum order plus one. For example,
a value of 11 means that the largest free memory block is 2^10 pages.
The page size is not necessarily 4KB. For example, on 64-bit
systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES. Keep
this in mind when choosing a value for this option.
config PPC_SUBPAGE_PROT config PPC_SUBPAGE_PROT
bool "Support setting protections for 4k subpages" bool "Support setting protections for 4k subpages"
depends on PPC_64K_PAGES depends on PPC_64K_PAGES
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment