• Nobuhiro Iwamatsu's avatar
    SLQB: Fix UP + NUMA build · 6e19df96
    Nobuhiro Iwamatsu authored
    This patch fixes the following build breakage which happens when CONFIG_NUMA is
    enabled but CONFIG_SMP is disabled:
    
        CC      mm/slqb.o
      mm/slqb.c: In function '__slab_free':
      mm/slqb.c:1735: error: implicit declaration of function 'slab_free_to_remote'
      mm/slqb.c: In function 'kmem_cache_open':
      mm/slqb.c:2274: error: implicit declaration of function 'kmem_cache_dyn_array_free'
      mm/slqb.c:2275: warning: label 'error_cpu_array' defined but not used
      mm/slqb.c: In function 'kmem_cache_destroy':
      mm/slqb.c:2395: error: implicit declaration of function 'claim_remote_free_list'
      mm/slqb.c: In function 'kmem_cache_init':
      mm/slqb.c:2885: error: 'per_cpu__kmem_cpu_nodes' undeclared (first use in this function)
      mm/slqb.c:2885: error: (Each undeclared identifier is reported only once
      mm/slqb.c:2885: error: for each function it appears in.)
      mm/slqb.c:2886: error: 'kmem_cpu_cache' undeclared (first use in this function)
      make[1]: *** [mm/slqb.o] Error 1
      make: *** [mm] Error 2
    
    As x86 Kconfig doesn't even allow this combination, one is tempted to
    think it's an architecture Kconfig bug. But as it turns out, it's a
    perfecly valid configuration. Tony Luck explains:
    
      UP + NUMA is a special case of memory-only nodes.  There are some (crazy?)
      customers with problems that require very large amounts of memory, but not very
      much cpu horse power.  They buy large multi-node systems and populate all the
      nodes with as much memory as they can afford, but most nodes get zero cpus.
    
    So lets fix that up.
    
    [ tony.luck@intel.com: #ifdef cleanups ]
    Signed-off-by: default avatarNobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
    Acked-by: default avatarTony Luck <tony.luck@intel.com>
    Signed-off-by: default avatarPekka Enberg <penberg@cs.helsinki.fi>
    6e19df96
slqb.c 83.2 KB