On Fri, Dec 18, 2020 at 06:35:50PM +0200, Mike Rapoport wrote: > From: Mike Rapoport <r...@linux.ibm.com> > > The change of ia64's default memory model to SPARSEMEM causes defconfig > build to fail: > > CC kernel/async.o > In file included from include/linux/numa.h:25, > from include/linux/async.h:13, > from kernel/async.c:47: > arch/ia64/include/asm/sparsemem.h:14:40: warning: "PAGE_SHIFT" is not > defined, evaluates to 0 [-Wundef] > 14 | #if ((CONFIG_FORCE_MAX_ZONEORDER - 1 + PAGE_SHIFT) > > SECTION_SIZE_BITS) > | ^~~~~~~~~~ > In file included from include/linux/gfp.h:6, > from include/linux/xarray.h:14, > from include/linux/radix-tree.h:19, > from include/linux/idr.h:15, > from include/linux/kernfs.h:13, > from include/linux/sysfs.h:16, > from include/linux/kobject.h:20, > from include/linux/energy_model.h:7, > from include/linux/device.h:16, > from include/linux/async.h:14, > from kernel/async.c:47: > include/linux/mmzone.h:1156:2: error: #error Allocator MAX_ORDER exceeds > SECTION_SIZE > 1156 | #error Allocator MAX_ORDER exceeds SECTION_SIZE > | ^~~~~ > > The error cause is the missing definition of PAGE_SHIFT in the calculation > of SECTION_SIZE_BITS. > > Add include of <asm/page.h> to arch/ia64/include/asm/sparsemem.h to solve > the problem. > > Fixes: 214496cb1870 ("ia64: make SPARSEMEM default and disable DISCONTIGMEM") > Reported-by: Guenter Roeck <li...@roeck-us.net> > Signed-off-by: Mike Rapoport <r...@linux.ibm.com>
Tested-by: Guenter Roeck <li...@roeck-us.net> > --- > > Surprisingly, only Guenter's bot caught this. > > @Andrew, if you prefer I can take this via memblock tree. > > arch/ia64/include/asm/sparsemem.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/ia64/include/asm/sparsemem.h > b/arch/ia64/include/asm/sparsemem.h > index dd8c166ffd7b..42ed5248fae9 100644 > --- a/arch/ia64/include/asm/sparsemem.h > +++ b/arch/ia64/include/asm/sparsemem.h > @@ -3,6 +3,7 @@ > #define _ASM_IA64_SPARSEMEM_H > > #ifdef CONFIG_SPARSEMEM > +#include <asm/page.h> > /* > * 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 > -- > 2.28.0 >