Message ID | 20240226161414.2316610-4-arnd@kernel.org |
---|---|
State | New |
Headers | show |
Series | arch: mm, vdso: consolidate PAGE_SIZE definition | expand |
On Tue, Feb 27, 2024 at 12:15 AM Arnd Bergmann <arnd@kernel.org> wrote: > > From: Arnd Bergmann <arnd@arndb.de> > > Most architectures only support a single hardcoded page size. In order > to ensure that each one of these sets the corresponding Kconfig symbols, > change over the PAGE_SHIFT definition to the common one and allow > only the hardware page size to be selected. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > arch/alpha/Kconfig | 1 + > arch/alpha/include/asm/page.h | 2 +- > arch/arm/Kconfig | 1 + > arch/arm/include/asm/page.h | 2 +- > arch/csky/Kconfig | 1 + > arch/csky/include/asm/page.h | 2 +- > arch/m68k/Kconfig | 3 +++ > arch/m68k/Kconfig.cpu | 2 ++ > arch/m68k/include/asm/page.h | 6 +----- > arch/microblaze/Kconfig | 1 + > arch/microblaze/include/asm/page.h | 2 +- > arch/nios2/Kconfig | 1 + > arch/nios2/include/asm/page.h | 2 +- > arch/openrisc/Kconfig | 1 + > arch/openrisc/include/asm/page.h | 2 +- > arch/riscv/Kconfig | 1 + > arch/riscv/include/asm/page.h | 2 +- > arch/s390/Kconfig | 1 + > arch/s390/include/asm/page.h | 2 +- > arch/sparc/Kconfig | 2 ++ > arch/sparc/include/asm/page_32.h | 2 +- > arch/sparc/include/asm/page_64.h | 3 +-- > arch/um/Kconfig | 1 + > arch/um/include/asm/page.h | 2 +- > arch/x86/Kconfig | 1 + > arch/x86/include/asm/page_types.h | 2 +- > arch/xtensa/Kconfig | 1 + > arch/xtensa/include/asm/page.h | 2 +- > 28 files changed, 32 insertions(+), 19 deletions(-) > > diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig > index d6968d090d49..4f490250d323 100644 > --- a/arch/alpha/Kconfig > +++ b/arch/alpha/Kconfig > @@ -14,6 +14,7 @@ config ALPHA > select PCI_DOMAINS if PCI > select PCI_SYSCALL if PCI > select HAVE_ASM_MODVERSIONS > + select HAVE_PAGE_SIZE_8KB > select HAVE_PCSPKR_PLATFORM > select HAVE_PERF_EVENTS > select NEED_DMA_MAP_STATE > diff --git a/arch/alpha/include/asm/page.h b/arch/alpha/include/asm/page.h > index 4db1ebc0ed99..70419e6be1a3 100644 > --- a/arch/alpha/include/asm/page.h > +++ b/arch/alpha/include/asm/page.h > @@ -6,7 +6,7 @@ > #include <asm/pal.h> > > /* PAGE_SHIFT determines the page size */ > -#define PAGE_SHIFT 13 > +#define PAGE_SHIFT CONFIG_PAGE_SHIFT > #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT) > #define PAGE_MASK (~(PAGE_SIZE-1)) > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index 0af6709570d1..9d52ba3a8ad1 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -116,6 +116,7 @@ config ARM > select HAVE_MOD_ARCH_SPECIFIC > select HAVE_NMI > select HAVE_OPTPROBES if !THUMB2_KERNEL > + select HAVE_PAGE_SIZE_4KB > select HAVE_PCI if MMU > select HAVE_PERF_EVENTS > select HAVE_PERF_REGS > diff --git a/arch/arm/include/asm/page.h b/arch/arm/include/asm/page.h > index 119aa85d1feb..62af9f7f9e96 100644 > --- a/arch/arm/include/asm/page.h > +++ b/arch/arm/include/asm/page.h > @@ -8,7 +8,7 @@ > #define _ASMARM_PAGE_H > > /* PAGE_SHIFT determines the page size */ > -#define PAGE_SHIFT 12 > +#define PAGE_SHIFT CONFIG_PAGE_SHIFT > #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT) > #define PAGE_MASK (~((1 << PAGE_SHIFT) - 1)) > > diff --git a/arch/csky/Kconfig b/arch/csky/Kconfig > index cf2a6fd7dff8..9c2723ab1c94 100644 > --- a/arch/csky/Kconfig > +++ b/arch/csky/Kconfig > @@ -89,6 +89,7 @@ config CSKY > select HAVE_KPROBES if !CPU_CK610 > select HAVE_KPROBES_ON_FTRACE if !CPU_CK610 > select HAVE_KRETPROBES if !CPU_CK610 > + select HAVE_PAGE_SIZE_4KB > select HAVE_PERF_EVENTS > select HAVE_PERF_REGS > select HAVE_PERF_USER_STACK_DUMP > diff --git a/arch/csky/include/asm/page.h b/arch/csky/include/asm/page.h > index 4a0502e324a6..f70f37402d75 100644 > --- a/arch/csky/include/asm/page.h > +++ b/arch/csky/include/asm/page.h > @@ -10,7 +10,7 @@ > /* > * PAGE_SHIFT determines the page size: 4KB > */ > -#define PAGE_SHIFT 12 > +#define PAGE_SHIFT CONFIG_PAGE_SHIFT LGTM, thx. Acked-by: Guo Ren <guoren@kernel.org> > #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) > #define PAGE_MASK (~(PAGE_SIZE - 1)) > #define THREAD_SIZE (PAGE_SIZE * 2) > diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig > index 4b3e93cac723..7b709453d5e7 100644 > --- a/arch/m68k/Kconfig > +++ b/arch/m68k/Kconfig > @@ -84,12 +84,15 @@ config MMU > > config MMU_MOTOROLA > bool > + select HAVE_PAGE_SIZE_4KB > > config MMU_COLDFIRE > + select HAVE_PAGE_SIZE_8KB > bool > > config MMU_SUN3 > bool > + select HAVE_PAGE_SIZE_8KB > depends on MMU && !MMU_MOTOROLA && !MMU_COLDFIRE > > config ARCH_SUPPORTS_KEXEC > diff --git a/arch/m68k/Kconfig.cpu b/arch/m68k/Kconfig.cpu > index 9dcf245c9cbf..c777a129768a 100644 > --- a/arch/m68k/Kconfig.cpu > +++ b/arch/m68k/Kconfig.cpu > @@ -30,6 +30,7 @@ config COLDFIRE > select GENERIC_CSUM > select GPIOLIB > select HAVE_LEGACY_CLK > + select HAVE_PAGE_SIZE_8KB if !MMU > > endchoice > > @@ -45,6 +46,7 @@ config M68000 > select GENERIC_CSUM > select CPU_NO_EFFICIENT_FFS > select HAVE_ARCH_HASH > + select HAVE_PAGE_SIZE_4KB > select LEGACY_TIMER_TICK > help > The Freescale (was Motorola) 68000 CPU is the first generation of > diff --git a/arch/m68k/include/asm/page.h b/arch/m68k/include/asm/page.h > index a5993ad83ed8..8cfb84b49975 100644 > --- a/arch/m68k/include/asm/page.h > +++ b/arch/m68k/include/asm/page.h > @@ -7,11 +7,7 @@ > #include <asm/page_offset.h> > > /* PAGE_SHIFT determines the page size */ > -#if defined(CONFIG_SUN3) || defined(CONFIG_COLDFIRE) > -#define PAGE_SHIFT 13 > -#else > -#define PAGE_SHIFT 12 > -#endif > +#define PAGE_SHIFT CONFIG_PAGE_SHIFT > #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) > #define PAGE_MASK (~(PAGE_SIZE-1)) > #define PAGE_OFFSET (PAGE_OFFSET_RAW) > diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig > index 211f338d6235..f18ec02ddeb2 100644 > --- a/arch/microblaze/Kconfig > +++ b/arch/microblaze/Kconfig > @@ -31,6 +31,7 @@ config MICROBLAZE > select HAVE_FTRACE_MCOUNT_RECORD > select HAVE_FUNCTION_GRAPH_TRACER > select HAVE_FUNCTION_TRACER > + select HAVE_PAGE_SIZE_4KB > select HAVE_PCI > select IRQ_DOMAIN > select XILINX_INTC > diff --git a/arch/microblaze/include/asm/page.h b/arch/microblaze/include/asm/page.h > index 86a4ce07c192..8810f4f1c3b0 100644 > --- a/arch/microblaze/include/asm/page.h > +++ b/arch/microblaze/include/asm/page.h > @@ -20,7 +20,7 @@ > #ifdef __KERNEL__ > > /* PAGE_SHIFT determines the page size */ > -#define PAGE_SHIFT 12 > +#define PAGE_SHIFT CONFIG_PAGE_SHIFT > #define PAGE_SIZE (ASM_CONST(1) << PAGE_SHIFT) > #define PAGE_MASK (~(PAGE_SIZE-1)) > > diff --git a/arch/nios2/Kconfig b/arch/nios2/Kconfig > index 58d9565dc2c7..79d3039b29f1 100644 > --- a/arch/nios2/Kconfig > +++ b/arch/nios2/Kconfig > @@ -15,6 +15,7 @@ config NIOS2 > select GENERIC_IRQ_SHOW > select HAVE_ARCH_TRACEHOOK > select HAVE_ARCH_KGDB > + select HAVE_PAGE_SIZE_4KB > select IRQ_DOMAIN > select LOCK_MM_AND_FIND_VMA > select MODULES_USE_ELF_RELA > diff --git a/arch/nios2/include/asm/page.h b/arch/nios2/include/asm/page.h > index 0ae7d9ce369b..0722f88e63cc 100644 > --- a/arch/nios2/include/asm/page.h > +++ b/arch/nios2/include/asm/page.h > @@ -21,7 +21,7 @@ > /* > * PAGE_SHIFT determines the page size > */ > -#define PAGE_SHIFT 12 > +#define PAGE_SHIFT CONFIG_PAGE_SHIFT > #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) > #define PAGE_MASK (~(PAGE_SIZE - 1)) > > diff --git a/arch/openrisc/Kconfig b/arch/openrisc/Kconfig > index fd9bb76a610b..3586cda55bde 100644 > --- a/arch/openrisc/Kconfig > +++ b/arch/openrisc/Kconfig > @@ -25,6 +25,7 @@ config OPENRISC > select GENERIC_CPU_DEVICES > select HAVE_PCI > select HAVE_UID16 > + select HAVE_PAGE_SIZE_8KB > select GENERIC_ATOMIC64 > select GENERIC_CLOCKEVENTS_BROADCAST > select GENERIC_SMP_IDLE_THREAD > diff --git a/arch/openrisc/include/asm/page.h b/arch/openrisc/include/asm/page.h > index 44fc1fd56717..7925ce09ab5a 100644 > --- a/arch/openrisc/include/asm/page.h > +++ b/arch/openrisc/include/asm/page.h > @@ -18,7 +18,7 @@ > > /* PAGE_SHIFT determines the page size */ > > -#define PAGE_SHIFT 13 > +#define PAGE_SHIFT CONFIG_PAGE_SHIFT > #ifdef __ASSEMBLY__ > #define PAGE_SIZE (1 << PAGE_SHIFT) > #else > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index bffbd869a068..792a337548f6 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -136,6 +136,7 @@ config RISCV > select HAVE_LD_DEAD_CODE_DATA_ELIMINATION if !LD_IS_LLD > select HAVE_MOVE_PMD > select HAVE_MOVE_PUD > + select HAVE_PAGE_SIZE_4KB > select HAVE_PCI > select HAVE_PERF_EVENTS > select HAVE_PERF_REGS > diff --git a/arch/riscv/include/asm/page.h b/arch/riscv/include/asm/page.h > index 57e887bfa34c..2947423b5082 100644 > --- a/arch/riscv/include/asm/page.h > +++ b/arch/riscv/include/asm/page.h > @@ -12,7 +12,7 @@ > #include <linux/pfn.h> > #include <linux/const.h> > > -#define PAGE_SHIFT (12) > +#define PAGE_SHIFT CONFIG_PAGE_SHIFT > #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) > #define PAGE_MASK (~(PAGE_SIZE - 1)) > > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index fe565f3a3a91..b61c74c10050 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -199,6 +199,7 @@ config S390 > select HAVE_MOD_ARCH_SPECIFIC > select HAVE_NMI > select HAVE_NOP_MCOUNT > + select HAVE_PAGE_SIZE_4KB > select HAVE_PCI > select HAVE_PERF_EVENTS > select HAVE_PERF_REGS > diff --git a/arch/s390/include/asm/page.h b/arch/s390/include/asm/page.h > index 73b9c3bf377f..ded9548d11d9 100644 > --- a/arch/s390/include/asm/page.h > +++ b/arch/s390/include/asm/page.h > @@ -11,7 +11,7 @@ > #include <linux/const.h> > #include <asm/types.h> > > -#define _PAGE_SHIFT 12 > +#define _PAGE_SHIFT CONFIG_PAGE_SHIFT > #define _PAGE_SIZE (_AC(1, UL) << _PAGE_SHIFT) > #define _PAGE_MASK (~(_PAGE_SIZE - 1)) > > diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig > index 204c43cb3d43..7e6bc6fff76b 100644 > --- a/arch/sparc/Kconfig > +++ b/arch/sparc/Kconfig > @@ -58,6 +58,7 @@ config SPARC32 > select DMA_DIRECT_REMAP > select GENERIC_ATOMIC64 > select HAVE_UID16 > + select HAVE_PAGE_SIZE_4KB > select LOCK_MM_AND_FIND_VMA > select OLD_SIGACTION > select ZONE_DMA > @@ -75,6 +76,7 @@ config SPARC64 > select HAVE_ARCH_TRANSPARENT_HUGEPAGE > select HAVE_DYNAMIC_FTRACE > select HAVE_FTRACE_MCOUNT_RECORD > + select HAVE_PAGE_SIZE_8KB > select HAVE_SYSCALL_TRACEPOINTS > select HAVE_CONTEXT_TRACKING_USER > select HAVE_TIF_NOHZ > diff --git a/arch/sparc/include/asm/page_32.h b/arch/sparc/include/asm/page_32.h > index 6be6f683f98f..9977c77374cd 100644 > --- a/arch/sparc/include/asm/page_32.h > +++ b/arch/sparc/include/asm/page_32.h > @@ -11,7 +11,7 @@ > > #include <linux/const.h> > > -#define PAGE_SHIFT 12 > +#define PAGE_SHIFT CONFIG_PAGE_SHIFT > #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) > #define PAGE_MASK (~(PAGE_SIZE-1)) > > diff --git a/arch/sparc/include/asm/page_64.h b/arch/sparc/include/asm/page_64.h > index 254dffd85fb1..e9bd24821c93 100644 > --- a/arch/sparc/include/asm/page_64.h > +++ b/arch/sparc/include/asm/page_64.h > @@ -4,8 +4,7 @@ > > #include <linux/const.h> > > -#define PAGE_SHIFT 13 > - > +#define PAGE_SHIFT CONFIG_PAGE_SHIFT > #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT) > #define PAGE_MASK (~(PAGE_SIZE-1)) > > diff --git a/arch/um/Kconfig b/arch/um/Kconfig > index b5e179360534..93a5a8999b07 100644 > --- a/arch/um/Kconfig > +++ b/arch/um/Kconfig > @@ -20,6 +20,7 @@ config UML > select HAVE_UID16 > select HAVE_DEBUG_KMEMLEAK > select HAVE_DEBUG_BUGVERBOSE > + select HAVE_PAGE_SIZE_4KB > select NO_DMA if !UML_DMA_EMULATION > select OF_EARLY_FLATTREE if OF > select GENERIC_IRQ_SHOW > diff --git a/arch/um/include/asm/page.h b/arch/um/include/asm/page.h > index 84866127d074..9ef9a8aedfa6 100644 > --- a/arch/um/include/asm/page.h > +++ b/arch/um/include/asm/page.h > @@ -10,7 +10,7 @@ > #include <linux/const.h> > > /* PAGE_SHIFT determines the page size */ > -#define PAGE_SHIFT 12 > +#define PAGE_SHIFT CONFIG_PAGE_SHIFT > #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) > #define PAGE_MASK (~(PAGE_SIZE-1)) > > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index 5edec175b9bf..ba57eb362ec8 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -255,6 +255,7 @@ config X86 > select HAVE_NOINSTR_VALIDATION if HAVE_OBJTOOL > select HAVE_OBJTOOL if X86_64 > select HAVE_OPTPROBES > + select HAVE_PAGE_SIZE_4KB > select HAVE_PCSPKR_PLATFORM > select HAVE_PERF_EVENTS > select HAVE_PERF_EVENTS_NMI > diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h > index 86bd4311daf8..9da9c8a2f1df 100644 > --- a/arch/x86/include/asm/page_types.h > +++ b/arch/x86/include/asm/page_types.h > @@ -7,7 +7,7 @@ > #include <linux/mem_encrypt.h> > > /* PAGE_SHIFT determines the page size */ > -#define PAGE_SHIFT 12 > +#define PAGE_SHIFT CONFIG_PAGE_SHIFT > #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT) > #define PAGE_MASK (~(PAGE_SIZE-1)) > > diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig > index 6f248d87e496..87ec35b3363b 100644 > --- a/arch/xtensa/Kconfig > +++ b/arch/xtensa/Kconfig > @@ -44,6 +44,7 @@ config XTENSA > select HAVE_GCC_PLUGINS if GCC_VERSION >= 120000 > select HAVE_HW_BREAKPOINT if PERF_EVENTS > select HAVE_IRQ_TIME_ACCOUNTING > + select HAVE_PAGE_SIZE_4KB > select HAVE_PCI > select HAVE_PERF_EVENTS > select HAVE_STACKPROTECTOR > diff --git a/arch/xtensa/include/asm/page.h b/arch/xtensa/include/asm/page.h > index a77d04972eb9..4db56ef052d2 100644 > --- a/arch/xtensa/include/asm/page.h > +++ b/arch/xtensa/include/asm/page.h > @@ -22,7 +22,7 @@ > * PAGE_SHIFT determines the page size > */ > > -#define PAGE_SHIFT 12 > +#define PAGE_SHIFT CONFIG_PAGE_SHIFT > #define PAGE_SIZE (__XTENSA_UL_CONST(1) << PAGE_SHIFT) > #define PAGE_MASK (~(PAGE_SIZE-1)) > > -- > 2.39.2 >
On Mon, Feb 26, 2024 at 05:14:13PM +0100, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > Most architectures only support a single hardcoded page size. In order > to ensure that each one of these sets the corresponding Kconfig symbols, > change over the PAGE_SHIFT definition to the common one and allow > only the hardware page size to be selected. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- ... > arch/s390/Kconfig | 1 + > arch/s390/include/asm/page.h | 2 +- ... > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index fe565f3a3a91..b61c74c10050 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -199,6 +199,7 @@ config S390 > select HAVE_MOD_ARCH_SPECIFIC > select HAVE_NMI > select HAVE_NOP_MCOUNT > + select HAVE_PAGE_SIZE_4KB > select HAVE_PCI > select HAVE_PERF_EVENTS > select HAVE_PERF_REGS > diff --git a/arch/s390/include/asm/page.h b/arch/s390/include/asm/page.h > index 73b9c3bf377f..ded9548d11d9 100644 > --- a/arch/s390/include/asm/page.h > +++ b/arch/s390/include/asm/page.h > @@ -11,7 +11,7 @@ > #include <linux/const.h> > #include <asm/types.h> > > -#define _PAGE_SHIFT 12 > +#define _PAGE_SHIFT CONFIG_PAGE_SHIFT Acked-by: Heiko Carstens <hca@linux.ibm.com>
Hi Arnd, On Mon, Feb 26, 2024 at 5:15 PM Arnd Bergmann <arnd@kernel.org> wrote: > From: Arnd Bergmann <arnd@arndb.de> > > Most architectures only support a single hardcoded page size. In order > to ensure that each one of these sets the corresponding Kconfig symbols, > change over the PAGE_SHIFT definition to the common one and allow > only the hardware page size to be selected. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Thanks for your patch! > --- a/arch/m68k/Kconfig > +++ b/arch/m68k/Kconfig > @@ -84,12 +84,15 @@ config MMU > > config MMU_MOTOROLA > bool > + select HAVE_PAGE_SIZE_4KB > > config MMU_COLDFIRE > + select HAVE_PAGE_SIZE_8KB I think you can do without this... > bool > > config MMU_SUN3 > bool > + select HAVE_PAGE_SIZE_8KB > depends on MMU && !MMU_MOTOROLA && !MMU_COLDFIRE > > config ARCH_SUPPORTS_KEXEC > diff --git a/arch/m68k/Kconfig.cpu b/arch/m68k/Kconfig.cpu > index 9dcf245c9cbf..c777a129768a 100644 > --- a/arch/m68k/Kconfig.cpu > +++ b/arch/m68k/Kconfig.cpu > @@ -30,6 +30,7 @@ config COLDFIRE > select GENERIC_CSUM > select GPIOLIB > select HAVE_LEGACY_CLK > + select HAVE_PAGE_SIZE_8KB if !MMU .... if you would drop the !MMU-dependency here. > > endchoice > > @@ -45,6 +46,7 @@ config M68000 > select GENERIC_CSUM > select CPU_NO_EFFICIENT_FFS > select HAVE_ARCH_HASH > + select HAVE_PAGE_SIZE_4KB Perhaps replace this by config M68KCLASSIC bool "Classic M68K CPU family support" select HAVE_ARCH_PFN_VALID + select HAVE_PAGE_SIZE_4KB if !MMU so it covers all 680x0 CPUs without MMU? > select LEGACY_TIMER_TICK > help > The Freescale (was Motorola) 68000 CPU is the first generation of Gr{oetje,eeting}s, Geert
On Tue, Feb 27, 2024, at 09:54, Geert Uytterhoeven wrote: > Hi Arnd, >> diff --git a/arch/m68k/Kconfig.cpu b/arch/m68k/Kconfig.cpu >> index 9dcf245c9cbf..c777a129768a 100644 >> --- a/arch/m68k/Kconfig.cpu >> +++ b/arch/m68k/Kconfig.cpu >> @@ -30,6 +30,7 @@ config COLDFIRE >> select GENERIC_CSUM >> select GPIOLIB >> select HAVE_LEGACY_CLK >> + select HAVE_PAGE_SIZE_8KB if !MMU > > .... if you would drop the !MMU-dependency here. > >> >> endchoice >> >> @@ -45,6 +46,7 @@ config M68000 >> select GENERIC_CSUM >> select CPU_NO_EFFICIENT_FFS >> select HAVE_ARCH_HASH >> + select HAVE_PAGE_SIZE_4KB > > Perhaps replace this by > > config M68KCLASSIC > bool "Classic M68K CPU family support" > select HAVE_ARCH_PFN_VALID > + select HAVE_PAGE_SIZE_4KB if !MMU > > so it covers all 680x0 CPUs without MMU? I was a bit unsure about how to best do this since there is not really a need for a fixed page size on nommu kernels, whereas the three MMU configs clearly tie the page size to the MMU rather than the platform. There should be no reason for coldfire to have a different page size from dragonball if neither of them actually uses hardware pages, so one of them could be changed later. Let me know if that makes sense to you, or you still prefer me to change it like you suggested. Arnd
Hi Arnd, CC Greg On Tue, Feb 27, 2024 at 11:59 AM Arnd Bergmann <arnd@arndb.de> wrote: > On Tue, Feb 27, 2024, at 09:54, Geert Uytterhoeven wrote: > >> diff --git a/arch/m68k/Kconfig.cpu b/arch/m68k/Kconfig.cpu > >> index 9dcf245c9cbf..c777a129768a 100644 > >> --- a/arch/m68k/Kconfig.cpu > >> +++ b/arch/m68k/Kconfig.cpu > >> @@ -30,6 +30,7 @@ config COLDFIRE > >> select GENERIC_CSUM > >> select GPIOLIB > >> select HAVE_LEGACY_CLK > >> + select HAVE_PAGE_SIZE_8KB if !MMU > > > > .... if you would drop the !MMU-dependency here. > > > >> > >> endchoice > >> > >> @@ -45,6 +46,7 @@ config M68000 > >> select GENERIC_CSUM > >> select CPU_NO_EFFICIENT_FFS > >> select HAVE_ARCH_HASH > >> + select HAVE_PAGE_SIZE_4KB > > > > Perhaps replace this by > > > > config M68KCLASSIC > > bool "Classic M68K CPU family support" > > select HAVE_ARCH_PFN_VALID > > + select HAVE_PAGE_SIZE_4KB if !MMU > > > > so it covers all 680x0 CPUs without MMU? > > I was a bit unsure about how to best do this since there > is not really a need for a fixed page size on nommu kernels, > whereas the three MMU configs clearly tie the page size to > the MMU rather than the platform. > > There should be no reason for coldfire to have a different > page size from dragonball if neither of them actually uses > hardware pages, so one of them could be changed later. Indeed, in theory, PAGE_SIZE doesn't matter for nommu, but the concept of pages is used all over the place in Linux. I'm mostly worried about some Coldfire code relying on the actual value of PAGE_SIZE in some other context. e.g. for configuring non-cacheable regions. And does this impact running nommu binaries on a system with MMU? I.e. if nommu binaries were built with a 4 KiB PAGE_SIZE, do they still run on MMU systems with an 8 KiB PAGE_SIZE (coldfire and sun3), or are there some subtleties to take into account? Gr{oetje,eeting}s, Geert
On Tue, Feb 27, 2024, at 12:12, Geert Uytterhoeven wrote: > On Tue, Feb 27, 2024 at 11:59 AM Arnd Bergmann <arnd@arndb.de> wrote: >> On Tue, Feb 27, 2024, at 09:54, Geert Uytterhoeven wrote: >> I was a bit unsure about how to best do this since there >> is not really a need for a fixed page size on nommu kernels, >> whereas the three MMU configs clearly tie the page size to >> the MMU rather than the platform. >> >> There should be no reason for coldfire to have a different >> page size from dragonball if neither of them actually uses >> hardware pages, so one of them could be changed later. > > Indeed, in theory, PAGE_SIZE doesn't matter for nommu, but the concept > of pages is used all over the place in Linux. > > I'm mostly worried about some Coldfire code relying on the actual value > of PAGE_SIZE in some other context. e.g. for configuring non-cacheable > regions. Right, any change here would have to be carefully tested. I would expect that a 4K page size would reduce memory consumption even on NOMMU systems that should have the same tradeoffs for representing files in the page cache and in mem_map[]. > And does this impact running nommu binaries on a system with MMU? > I.e. if nommu binaries were built with a 4 KiB PAGE_SIZE, do they > still run on MMU systems with an 8 KiB PAGE_SIZE (coldfire and sun3), > or are there some subtleties to take into account? As far as I understand, binaries have to be built and linked for the largest page size they can run on, so running them on a kernel with smaller page size usually works. One notable exception is sys_mmap2(), which on most architectures takes units of 4KiB but on m68k is actually written to take PAGE_SIZE units. As Al pointed out in f8b7256096a2 ("Unify sys_mmap*"), it has always been wrong on sun3, presumably because users of that predate modern glibc. Running coldfire nommu binaries on coldfire mmu kernels would run into the same bug if either of them changes PAGE_SIZE. If you can run coldfire nommu binaries on classic m68k, that is already broken in the same way. Arnd
On Mon, Feb 26, 2024 at 05:14:13PM +0100, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > Most architectures only support a single hardcoded page size. In order > to ensure that each one of these sets the corresponding Kconfig symbols, > change over the PAGE_SHIFT definition to the common one and allow > only the hardware page size to be selected. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > arch/alpha/Kconfig | 1 + > arch/alpha/include/asm/page.h | 2 +- > arch/arm/Kconfig | 1 + > arch/arm/include/asm/page.h | 2 +- > arch/csky/Kconfig | 1 + > arch/csky/include/asm/page.h | 2 +- > arch/m68k/Kconfig | 3 +++ > arch/m68k/Kconfig.cpu | 2 ++ > arch/m68k/include/asm/page.h | 6 +----- > arch/microblaze/Kconfig | 1 + > arch/microblaze/include/asm/page.h | 2 +- > arch/nios2/Kconfig | 1 + > arch/nios2/include/asm/page.h | 2 +- > arch/openrisc/Kconfig | 1 + > arch/openrisc/include/asm/page.h | 2 +- > arch/riscv/Kconfig | 1 + > arch/riscv/include/asm/page.h | 2 +- > arch/s390/Kconfig | 1 + > arch/s390/include/asm/page.h | 2 +- > arch/sparc/Kconfig | 2 ++ > arch/sparc/include/asm/page_32.h | 2 +- > arch/sparc/include/asm/page_64.h | 3 +-- > arch/um/Kconfig | 1 + > arch/um/include/asm/page.h | 2 +- > arch/x86/Kconfig | 1 + > arch/x86/include/asm/page_types.h | 2 +- > arch/xtensa/Kconfig | 1 + > arch/xtensa/include/asm/page.h | 2 +- > 28 files changed, 32 insertions(+), 19 deletions(-) .... > diff --git a/arch/openrisc/Kconfig b/arch/openrisc/Kconfig > index fd9bb76a610b..3586cda55bde 100644 > --- a/arch/openrisc/Kconfig > +++ b/arch/openrisc/Kconfig > @@ -25,6 +25,7 @@ config OPENRISC > select GENERIC_CPU_DEVICES > select HAVE_PCI > select HAVE_UID16 > + select HAVE_PAGE_SIZE_8KB > select GENERIC_ATOMIC64 > select GENERIC_CLOCKEVENTS_BROADCAST > select GENERIC_SMP_IDLE_THREAD > diff --git a/arch/openrisc/include/asm/page.h b/arch/openrisc/include/asm/page.h > index 44fc1fd56717..7925ce09ab5a 100644 > --- a/arch/openrisc/include/asm/page.h > +++ b/arch/openrisc/include/asm/page.h > @@ -18,7 +18,7 @@ > > /* PAGE_SHIFT determines the page size */ > > -#define PAGE_SHIFT 13 > +#define PAGE_SHIFT CONFIG_PAGE_SHIFT > #ifdef __ASSEMBLY__ > #define PAGE_SIZE (1 << PAGE_SHIFT) > #else For the openrisc bits, Acked-by: Stafford Horne <shorne@gmail.com>
On Mon, 2024-02-26 at 17:14 +0100, Arnd Bergmann wrote: > > arch/um/Kconfig | 1 + > arch/um/include/asm/page.h | 2 +- LGTM, thanks. Acked-by: Johannes Berg <johannes@sipsolutions.net> johannes
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index d6968d090d49..4f490250d323 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig @@ -14,6 +14,7 @@ config ALPHA select PCI_DOMAINS if PCI select PCI_SYSCALL if PCI select HAVE_ASM_MODVERSIONS + select HAVE_PAGE_SIZE_8KB select HAVE_PCSPKR_PLATFORM select HAVE_PERF_EVENTS select NEED_DMA_MAP_STATE diff --git a/arch/alpha/include/asm/page.h b/arch/alpha/include/asm/page.h index 4db1ebc0ed99..70419e6be1a3 100644 --- a/arch/alpha/include/asm/page.h +++ b/arch/alpha/include/asm/page.h @@ -6,7 +6,7 @@ #include <asm/pal.h> /* PAGE_SHIFT determines the page size */ -#define PAGE_SHIFT 13 +#define PAGE_SHIFT CONFIG_PAGE_SHIFT #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE-1)) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 0af6709570d1..9d52ba3a8ad1 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -116,6 +116,7 @@ config ARM select HAVE_MOD_ARCH_SPECIFIC select HAVE_NMI select HAVE_OPTPROBES if !THUMB2_KERNEL + select HAVE_PAGE_SIZE_4KB select HAVE_PCI if MMU select HAVE_PERF_EVENTS select HAVE_PERF_REGS diff --git a/arch/arm/include/asm/page.h b/arch/arm/include/asm/page.h index 119aa85d1feb..62af9f7f9e96 100644 --- a/arch/arm/include/asm/page.h +++ b/arch/arm/include/asm/page.h @@ -8,7 +8,7 @@ #define _ASMARM_PAGE_H /* PAGE_SHIFT determines the page size */ -#define PAGE_SHIFT 12 +#define PAGE_SHIFT CONFIG_PAGE_SHIFT #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT) #define PAGE_MASK (~((1 << PAGE_SHIFT) - 1)) diff --git a/arch/csky/Kconfig b/arch/csky/Kconfig index cf2a6fd7dff8..9c2723ab1c94 100644 --- a/arch/csky/Kconfig +++ b/arch/csky/Kconfig @@ -89,6 +89,7 @@ config CSKY select HAVE_KPROBES if !CPU_CK610 select HAVE_KPROBES_ON_FTRACE if !CPU_CK610 select HAVE_KRETPROBES if !CPU_CK610 + select HAVE_PAGE_SIZE_4KB select HAVE_PERF_EVENTS select HAVE_PERF_REGS select HAVE_PERF_USER_STACK_DUMP diff --git a/arch/csky/include/asm/page.h b/arch/csky/include/asm/page.h index 4a0502e324a6..f70f37402d75 100644 --- a/arch/csky/include/asm/page.h +++ b/arch/csky/include/asm/page.h @@ -10,7 +10,7 @@ /* * PAGE_SHIFT determines the page size: 4KB */ -#define PAGE_SHIFT 12 +#define PAGE_SHIFT CONFIG_PAGE_SHIFT #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE - 1)) #define THREAD_SIZE (PAGE_SIZE * 2) diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index 4b3e93cac723..7b709453d5e7 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig @@ -84,12 +84,15 @@ config MMU config MMU_MOTOROLA bool + select HAVE_PAGE_SIZE_4KB config MMU_COLDFIRE + select HAVE_PAGE_SIZE_8KB bool config MMU_SUN3 bool + select HAVE_PAGE_SIZE_8KB depends on MMU && !MMU_MOTOROLA && !MMU_COLDFIRE config ARCH_SUPPORTS_KEXEC diff --git a/arch/m68k/Kconfig.cpu b/arch/m68k/Kconfig.cpu index 9dcf245c9cbf..c777a129768a 100644 --- a/arch/m68k/Kconfig.cpu +++ b/arch/m68k/Kconfig.cpu @@ -30,6 +30,7 @@ config COLDFIRE select GENERIC_CSUM select GPIOLIB select HAVE_LEGACY_CLK + select HAVE_PAGE_SIZE_8KB if !MMU endchoice @@ -45,6 +46,7 @@ config M68000 select GENERIC_CSUM select CPU_NO_EFFICIENT_FFS select HAVE_ARCH_HASH + select HAVE_PAGE_SIZE_4KB select LEGACY_TIMER_TICK help The Freescale (was Motorola) 68000 CPU is the first generation of diff --git a/arch/m68k/include/asm/page.h b/arch/m68k/include/asm/page.h index a5993ad83ed8..8cfb84b49975 100644 --- a/arch/m68k/include/asm/page.h +++ b/arch/m68k/include/asm/page.h @@ -7,11 +7,7 @@ #include <asm/page_offset.h> /* PAGE_SHIFT determines the page size */ -#if defined(CONFIG_SUN3) || defined(CONFIG_COLDFIRE) -#define PAGE_SHIFT 13 -#else -#define PAGE_SHIFT 12 -#endif +#define PAGE_SHIFT CONFIG_PAGE_SHIFT #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE-1)) #define PAGE_OFFSET (PAGE_OFFSET_RAW) diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig index 211f338d6235..f18ec02ddeb2 100644 --- a/arch/microblaze/Kconfig +++ b/arch/microblaze/Kconfig @@ -31,6 +31,7 @@ config MICROBLAZE select HAVE_FTRACE_MCOUNT_RECORD select HAVE_FUNCTION_GRAPH_TRACER select HAVE_FUNCTION_TRACER + select HAVE_PAGE_SIZE_4KB select HAVE_PCI select IRQ_DOMAIN select XILINX_INTC diff --git a/arch/microblaze/include/asm/page.h b/arch/microblaze/include/asm/page.h index 86a4ce07c192..8810f4f1c3b0 100644 --- a/arch/microblaze/include/asm/page.h +++ b/arch/microblaze/include/asm/page.h @@ -20,7 +20,7 @@ #ifdef __KERNEL__ /* PAGE_SHIFT determines the page size */ -#define PAGE_SHIFT 12 +#define PAGE_SHIFT CONFIG_PAGE_SHIFT #define PAGE_SIZE (ASM_CONST(1) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE-1)) diff --git a/arch/nios2/Kconfig b/arch/nios2/Kconfig index 58d9565dc2c7..79d3039b29f1 100644 --- a/arch/nios2/Kconfig +++ b/arch/nios2/Kconfig @@ -15,6 +15,7 @@ config NIOS2 select GENERIC_IRQ_SHOW select HAVE_ARCH_TRACEHOOK select HAVE_ARCH_KGDB + select HAVE_PAGE_SIZE_4KB select IRQ_DOMAIN select LOCK_MM_AND_FIND_VMA select MODULES_USE_ELF_RELA diff --git a/arch/nios2/include/asm/page.h b/arch/nios2/include/asm/page.h index 0ae7d9ce369b..0722f88e63cc 100644 --- a/arch/nios2/include/asm/page.h +++ b/arch/nios2/include/asm/page.h @@ -21,7 +21,7 @@ /* * PAGE_SHIFT determines the page size */ -#define PAGE_SHIFT 12 +#define PAGE_SHIFT CONFIG_PAGE_SHIFT #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE - 1)) diff --git a/arch/openrisc/Kconfig b/arch/openrisc/Kconfig index fd9bb76a610b..3586cda55bde 100644 --- a/arch/openrisc/Kconfig +++ b/arch/openrisc/Kconfig @@ -25,6 +25,7 @@ config OPENRISC select GENERIC_CPU_DEVICES select HAVE_PCI select HAVE_UID16 + select HAVE_PAGE_SIZE_8KB select GENERIC_ATOMIC64 select GENERIC_CLOCKEVENTS_BROADCAST select GENERIC_SMP_IDLE_THREAD diff --git a/arch/openrisc/include/asm/page.h b/arch/openrisc/include/asm/page.h index 44fc1fd56717..7925ce09ab5a 100644 --- a/arch/openrisc/include/asm/page.h +++ b/arch/openrisc/include/asm/page.h @@ -18,7 +18,7 @@ /* PAGE_SHIFT determines the page size */ -#define PAGE_SHIFT 13 +#define PAGE_SHIFT CONFIG_PAGE_SHIFT #ifdef __ASSEMBLY__ #define PAGE_SIZE (1 << PAGE_SHIFT) #else diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index bffbd869a068..792a337548f6 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -136,6 +136,7 @@ config RISCV select HAVE_LD_DEAD_CODE_DATA_ELIMINATION if !LD_IS_LLD select HAVE_MOVE_PMD select HAVE_MOVE_PUD + select HAVE_PAGE_SIZE_4KB select HAVE_PCI select HAVE_PERF_EVENTS select HAVE_PERF_REGS diff --git a/arch/riscv/include/asm/page.h b/arch/riscv/include/asm/page.h index 57e887bfa34c..2947423b5082 100644 --- a/arch/riscv/include/asm/page.h +++ b/arch/riscv/include/asm/page.h @@ -12,7 +12,7 @@ #include <linux/pfn.h> #include <linux/const.h> -#define PAGE_SHIFT (12) +#define PAGE_SHIFT CONFIG_PAGE_SHIFT #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE - 1)) diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index fe565f3a3a91..b61c74c10050 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -199,6 +199,7 @@ config S390 select HAVE_MOD_ARCH_SPECIFIC select HAVE_NMI select HAVE_NOP_MCOUNT + select HAVE_PAGE_SIZE_4KB select HAVE_PCI select HAVE_PERF_EVENTS select HAVE_PERF_REGS diff --git a/arch/s390/include/asm/page.h b/arch/s390/include/asm/page.h index 73b9c3bf377f..ded9548d11d9 100644 --- a/arch/s390/include/asm/page.h +++ b/arch/s390/include/asm/page.h @@ -11,7 +11,7 @@ #include <linux/const.h> #include <asm/types.h> -#define _PAGE_SHIFT 12 +#define _PAGE_SHIFT CONFIG_PAGE_SHIFT #define _PAGE_SIZE (_AC(1, UL) << _PAGE_SHIFT) #define _PAGE_MASK (~(_PAGE_SIZE - 1)) diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index 204c43cb3d43..7e6bc6fff76b 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -58,6 +58,7 @@ config SPARC32 select DMA_DIRECT_REMAP select GENERIC_ATOMIC64 select HAVE_UID16 + select HAVE_PAGE_SIZE_4KB select LOCK_MM_AND_FIND_VMA select OLD_SIGACTION select ZONE_DMA @@ -75,6 +76,7 @@ config SPARC64 select HAVE_ARCH_TRANSPARENT_HUGEPAGE select HAVE_DYNAMIC_FTRACE select HAVE_FTRACE_MCOUNT_RECORD + select HAVE_PAGE_SIZE_8KB select HAVE_SYSCALL_TRACEPOINTS select HAVE_CONTEXT_TRACKING_USER select HAVE_TIF_NOHZ diff --git a/arch/sparc/include/asm/page_32.h b/arch/sparc/include/asm/page_32.h index 6be6f683f98f..9977c77374cd 100644 --- a/arch/sparc/include/asm/page_32.h +++ b/arch/sparc/include/asm/page_32.h @@ -11,7 +11,7 @@ #include <linux/const.h> -#define PAGE_SHIFT 12 +#define PAGE_SHIFT CONFIG_PAGE_SHIFT #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE-1)) diff --git a/arch/sparc/include/asm/page_64.h b/arch/sparc/include/asm/page_64.h index 254dffd85fb1..e9bd24821c93 100644 --- a/arch/sparc/include/asm/page_64.h +++ b/arch/sparc/include/asm/page_64.h @@ -4,8 +4,7 @@ #include <linux/const.h> -#define PAGE_SHIFT 13 - +#define PAGE_SHIFT CONFIG_PAGE_SHIFT #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE-1)) diff --git a/arch/um/Kconfig b/arch/um/Kconfig index b5e179360534..93a5a8999b07 100644 --- a/arch/um/Kconfig +++ b/arch/um/Kconfig @@ -20,6 +20,7 @@ config UML select HAVE_UID16 select HAVE_DEBUG_KMEMLEAK select HAVE_DEBUG_BUGVERBOSE + select HAVE_PAGE_SIZE_4KB select NO_DMA if !UML_DMA_EMULATION select OF_EARLY_FLATTREE if OF select GENERIC_IRQ_SHOW diff --git a/arch/um/include/asm/page.h b/arch/um/include/asm/page.h index 84866127d074..9ef9a8aedfa6 100644 --- a/arch/um/include/asm/page.h +++ b/arch/um/include/asm/page.h @@ -10,7 +10,7 @@ #include <linux/const.h> /* PAGE_SHIFT determines the page size */ -#define PAGE_SHIFT 12 +#define PAGE_SHIFT CONFIG_PAGE_SHIFT #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE-1)) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 5edec175b9bf..ba57eb362ec8 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -255,6 +255,7 @@ config X86 select HAVE_NOINSTR_VALIDATION if HAVE_OBJTOOL select HAVE_OBJTOOL if X86_64 select HAVE_OPTPROBES + select HAVE_PAGE_SIZE_4KB select HAVE_PCSPKR_PLATFORM select HAVE_PERF_EVENTS select HAVE_PERF_EVENTS_NMI diff --git a/arch/x86/include/asm/page_types.h b/arch/x86/include/asm/page_types.h index 86bd4311daf8..9da9c8a2f1df 100644 --- a/arch/x86/include/asm/page_types.h +++ b/arch/x86/include/asm/page_types.h @@ -7,7 +7,7 @@ #include <linux/mem_encrypt.h> /* PAGE_SHIFT determines the page size */ -#define PAGE_SHIFT 12 +#define PAGE_SHIFT CONFIG_PAGE_SHIFT #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE-1)) diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig index 6f248d87e496..87ec35b3363b 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig @@ -44,6 +44,7 @@ config XTENSA select HAVE_GCC_PLUGINS if GCC_VERSION >= 120000 select HAVE_HW_BREAKPOINT if PERF_EVENTS select HAVE_IRQ_TIME_ACCOUNTING + select HAVE_PAGE_SIZE_4KB select HAVE_PCI select HAVE_PERF_EVENTS select HAVE_STACKPROTECTOR diff --git a/arch/xtensa/include/asm/page.h b/arch/xtensa/include/asm/page.h index a77d04972eb9..4db56ef052d2 100644 --- a/arch/xtensa/include/asm/page.h +++ b/arch/xtensa/include/asm/page.h @@ -22,7 +22,7 @@ * PAGE_SHIFT determines the page size */ -#define PAGE_SHIFT 12 +#define PAGE_SHIFT CONFIG_PAGE_SHIFT #define PAGE_SIZE (__XTENSA_UL_CONST(1) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE-1))