• Mike Rapoport's avatar
    ia64: fix build failure caused by memory model changes · 32c2bc8f
    Mike Rapoport authored
    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: 214496cb ("ia64: make SPARSEMEM default and disable DISCONTIGMEM")
    Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Signed-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
    32c2bc8f
sparsemem.h 785 Bytes