lkml.org 
[lkml]   [2008]   [May]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 1/1] mm: define default cpu_to_node
      * Some architectures have CONFIG_NUMA=y but do not define a
    default cpu_to_node macro. This provides the default in
    asm-generic/topology.h but it relies on the fact that
    cpu_to_node is a defined macro (and not an inline function).

    Which means that those architecutures that define cpu_to_node
    as a function are changed to:

    #define cpu_to_node(cpu) _cpu_to_node(cpu)
    < ... declare the _cpu_to_node(int cpu) function. ... >

    Based on:
    //git.kernel.org/pub/scm/linux/kernel/git/sfr/linux-next.git

    Signed-off-by: Mike Travis <travis@sgi.com>

    # alpha
    Cc: Richard Henderson <rth@twiddle.net>

    # powerpc
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Anton Blanchard <anton@samba.org>

    # sh
    Cc: Adrian Bunk <bunk@kernel.org>
    Cc: lethal@linux-sh.org
    Cc: linux-sh@vger.kernel.org

    # sparc
    Cc: David S. Miller <davem@davemloft.net>
    Cc: William L. Irwin <wli@holomorphy.com>

    # x86
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    ---
    include/asm-alpha/topology.h | 3 ++-
    include/asm-generic/topology.h | 11 ++++++++---
    include/asm-powerpc/topology.h | 3 ++-
    include/asm-sparc64/topology.h | 3 ++-
    include/asm-x86/topology.h | 6 ++++--
    5 files changed, 18 insertions(+), 8 deletions(-)

    --- linux-2.6-next.orig/include/asm-alpha/topology.h
    +++ linux-2.6-next/include/asm-alpha/topology.h
    @@ -6,7 +6,8 @@
    #include <asm/machvec.h>

    #ifdef CONFIG_NUMA
    -static inline int cpu_to_node(int cpu)
    +#define cpu_to_node(cpu) _cpu_to_node(cpu)
    +static inline int _cpu_to_node(int cpu)
    {
    int node;

    --- linux-2.6-next.orig/include/asm-generic/topology.h
    +++ linux-2.6-next/include/asm-generic/topology.h
    @@ -27,13 +27,18 @@
    #ifndef _ASM_GENERIC_TOPOLOGY_H
    #define _ASM_GENERIC_TOPOLOGY_H

    +/*
    + * cpu_to_node is referenced but not defined in some arch's that
    + * have CONFIG_NUMA=y
    + */
    +#ifndef cpu_to_node
    +#define cpu_to_node(cpu) ((void)(cpu),0)
    +#endif
    +
    #ifndef CONFIG_NUMA

    /* Other architectures wishing to use this simple topology API should fill
    in the below functions as appropriate in their own <asm/topology.h> file. */
    -#ifndef cpu_to_node
    -#define cpu_to_node(cpu) ((void)(cpu),0)
    -#endif
    #ifndef parent_node
    #define parent_node(node) ((void)(node),0)
    #endif
    --- linux-2.6-next.orig/include/asm-powerpc/topology.h
    +++ linux-2.6-next/include/asm-powerpc/topology.h
    @@ -10,7 +10,8 @@ struct device_node;

    #include <asm/mmzone.h>

    -static inline int cpu_to_node(int cpu)
    +#define cpu_to_node(cpu) _cpu_to_node(cpu)
    +static inline int _cpu_to_node(int cpu)
    {
    return numa_cpu_lookup_table[cpu];
    }
    --- linux-2.6-next.orig/include/asm-sparc64/topology.h
    +++ linux-2.6-next/include/asm-sparc64/topology.h
    @@ -5,7 +5,8 @@

    #include <asm/mmzone.h>

    -static inline int cpu_to_node(int cpu)
    +#define cpu_to_node(cpu) _cpu_to_node(cpu)
    +static inline int _cpu_to_node(int cpu)
    {
    return numa_cpu_lookup_table[cpu];
    }
    --- linux-2.6-next.orig/include/asm-x86/topology.h
    +++ linux-2.6-next/include/asm-x86/topology.h
    @@ -53,7 +53,8 @@ extern cpumask_t node_to_cpumask_map[];
    /* Returns the number of the node containing CPU 'cpu' */
    #ifdef CONFIG_X86_32
    #define early_cpu_to_node(cpu) cpu_to_node(cpu)
    -static inline int cpu_to_node(int cpu)
    +#define cpu_to_node(cpu) _cpu_to_node(cpu)
    +static inline int _cpu_to_node(int cpu)
    {
    return cpu_to_node_map[cpu];
    }
    @@ -76,7 +77,8 @@ static inline int early_cpu_to_node(int
    #define early_cpu_to_node(cpu) cpu_to_node(cpu)
    #endif

    -static inline int cpu_to_node(int cpu)
    +#define cpu_to_node(cpu) _cpu_to_node(cpu)
    +static inline int _cpu_to_node(int cpu)
    {
    #ifdef CONFIG_DEBUG_PER_CPU_MAPS
    if (x86_cpu_to_node_map_early_ptr) {
    --


    \
     
     \ /
      Last update: 2008-05-09 01:05    [W:0.025 / U:1.620 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site