• Mike Rapoport's avatar
    MIPS: SGI-IP27: always enable NUMA in Kconfig · 6c86a302
    Mike Rapoport authored
    When a configuration has NUMA disabled and SGI_IP27 enabled, the build
    fails:
    
      CC      kernel/bounds.s
      CC      arch/mips/kernel/asm-offsets.s
    In file included from arch/mips/include/asm/topology.h:11,
                     from include/linux/topology.h:36,
                     from include/linux/gfp.h:9,
                     from include/linux/slab.h:15,
                     from include/linux/crypto.h:19,
                     from include/crypto/hash.h:11,
                     from include/linux/uio.h:10,
                     from include/linux/socket.h:8,
                     from include/linux/compat.h:15,
                     from arch/mips/kernel/asm-offsets.c:12:
    include/linux/topology.h: In function 'numa_node_id':
    arch/mips/include/asm/mach-ip27/topology.h:16:27: error: implicit declaration of function 'cputonasid'; did you mean 'cpu_vpe_id'? [-Werror=implicit-function-declaration]
     #define cpu_to_node(cpu) (cputonasid(cpu))
                               ^~~~~~~~~~
    include/linux/topology.h:119:9: note: in expansion of macro 'cpu_to_node'
      return cpu_to_node(raw_smp_processor_id());
             ^~~~~~~~~~~
    include/linux/topology.h: In function 'cpu_cpu_mask':
    arch/mips/include/asm/mach-ip27/topology.h:19:7: error: implicit declaration of function 'hub_data' [-Werror=implicit-function-declaration]
          &hub_data(node)->h_cpus)
           ^~~~~~~~
    include/linux/topology.h:210:9: note: in expansion of macro 'cpumask_of_node'
      return cpumask_of_node(cpu_to_node(cpu));
             ^~~~~~~~~~~~~~~
    arch/mips/include/asm/mach-ip27/topology.h:19:21: error: invalid type argument of '->' (have 'int')
          &hub_data(node)->h_cpus)
                         ^~
    include/linux/topology.h:210:9: note: in expansion of macro 'cpumask_of_node'
      return cpumask_of_node(cpu_to_node(cpu));
             ^~~~~~~~~~~~~~~
    
    Before switch from discontigmem to sparsemem, there always was
    CONFIG_NEED_MULTIPLE_NODES=y because it was selected by DISCONTIGMEM.
    Without DISCONTIGMEM it is possible to have SPARSEMEM without NUMA for
    SGI_IP27 and as many things there rely on custom node definition, the
    build breaks.
    
    As Thomas noted "... there are right now too many places in IP27 code,
    which assumes NUMA enabled", the simplest solution would be to always
    enable NUMA for SGI-IP27 builds.
    Reported-by: default avatarkernel test robot <lkp@intel.com>
    Fixes: 397dc00e ("mips: sgi-ip27: switch from DISCONTIGMEM to SPARSEMEM")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
    Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
    6c86a302
Kconfig 83.2 KB