• Paul Burton's avatar
    MIPS: Only include mmzone.h when CONFIG_NEED_MULTIPLE_NODES=y · fc9e3f49
    Paul Burton authored
    commit 66a4059ba72c23ae74a7c702894ff76c4b7eac1f upstream.
    
    MIPS' asm/mmzone.h includes the machine/platform mmzone.h
    unconditionally, but since commit bb53fdf395ee ("MIPS: c-r4k: Add
    r4k_blast_scache_node for Loongson-3") is included by asm/rk4cache.h for
    all r4k-style configs regardless of CONFIG_NEED_MULTIPLE_NODES.
    
    This is problematic when CONFIG_NEED_MULTIPLE_NODES=n because both the
    loongson3 & ip27 mmzone.h headers unconditionally define the NODE_DATA
    preprocessor macro which is aready defined by linux/mmzone.h, resulting
    in the following build error:
    
      In file included from ./arch/mips/include/asm/mmzone.h:10,
                       from ./arch/mips/include/asm/r4kcache.h:23,
                       from arch/mips/mm/c-r4k.c:33:
      ./arch/mips/include/asm/mach-loongson64/mmzone.h:48: error: "NODE_DATA" redefined [-Werror]
       #define NODE_DATA(n)  (&__node_data[(n)]->pglist)
    
      In file included from ./include/linux/topology.h:32,
                       from ./include/linux/irq.h:19,
                       from ./include/asm-generic/hardirq.h:13,
                       from ./arch/mips/include/asm/hardirq.h:16,
                       from ./include/linux/hardirq.h:9,
                       from arch/mips/mm/c-r4k.c:11:
      ./include/linux/mmzone.h:907: note: this is the location of the previous definition
       #define NODE_DATA(nid)  (&contig_page_data)
    
    Resolve this by only including the machine mmzone.h when
    CONFIG_NEED_MULTIPLE_NODES=y, which also removes the need for the empty
    mach-generic version of the header which we delete.
    Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
    Fixes: bb53fdf395ee ("MIPS: c-r4k: Add r4k_blast_scache_node for Loongson-3")
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    fc9e3f49
mmzone.h 561 Bytes