lkml.org 
[lkml]   [2008]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: x86/non-x86: percpu, node ids, apic ids x86.git fixup
    Geert Uytterhoeven wrote:
    > On Wed, 30 Jan 2008, Linux Kernel Mailing List wrote:
    >> Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dd5af90a7f3d79e04b7eace9a98644dbf2038f4d
    >> Commit: dd5af90a7f3d79e04b7eace9a98644dbf2038f4d
    >> Parent: 3212bff370c2f22e4987c6679ba485654cefb178
    >> Author: Mike Travis <travis@sgi.com>
    >> AuthorDate: Wed Jan 30 13:33:32 2008 +0100
    >> Committer: Ingo Molnar <mingo@elte.hu>
    >> CommitDate: Wed Jan 30 13:33:32 2008 +0100
    >>
    >> x86/non-x86: percpu, node ids, apic ids x86.git fixup
    >>
    >> Signed-off-by: Ingo Molnar <mingo@elte.hu>
    >> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    >> ---
    >> arch/x86/Kconfig | 2 +-
    >> include/asm-generic/percpu.h | 12 ++----------
    >> init/main.c | 4 ++--
    >> kernel/module.c | 8 ++++++++
    >
    > This broke powerpc (and presumably ia64 and sparc64) in current linux-2.6.git:

    I'm generating a "fixup patch" right now...

    -Mike
    >
    > | init/main.c:376: error: static declaration of 'setup_per_cpu_areas' follows non-static declaration
    > | include2/asm/percpu.h:33: error: previous declaration of 'setup_per_cpu_areas' was here
    >
    > as the generic and x86-specific parts were integrated, while the
    > powerpc/ia64/sparc64-specific parts are still missing.
    >
    >> 4 files changed, 13 insertions(+), 13 deletions(-)
    >>
    >> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
    >> index f0887d1..8e1b33c 100644
    >> --- a/arch/x86/Kconfig
    >> +++ b/arch/x86/Kconfig
    >> @@ -97,7 +97,7 @@ config GENERIC_TIME_VSYSCALL
    >> bool
    >> default X86_64
    >>
    >> -config ARCH_SETS_UP_PER_CPU_AREA
    >> +config HAVE_SETUP_PER_CPU_AREA
    >> def_bool X86_64
    >>
    >> config ARCH_SUPPORTS_OPROFILE
    >> diff --git a/include/asm-generic/percpu.h b/include/asm-generic/percpu.h
    >> index c41b1a7..4b8d31c 100644
    >> --- a/include/asm-generic/percpu.h
    >> +++ b/include/asm-generic/percpu.h
    >> @@ -47,7 +47,7 @@ extern unsigned long __per_cpu_offset[NR_CPUS];
    >> #endif
    >>
    >> /*
    >> - * A percpu variable may point to a discarded reghions. The following are
    >> + * A percpu variable may point to a discarded regions. The following are
    >> * established ways to produce a usable pointer from the percpu variable
    >> * offset.
    >> */
    >> @@ -59,18 +59,10 @@ extern unsigned long __per_cpu_offset[NR_CPUS];
    >> (*SHIFT_PERCPU_PTR(&per_cpu_var(var), __my_cpu_offset))
    >>
    >>
    >> -#ifdef CONFIG_ARCH_SETS_UP_PER_CPU_AREA
    >> +#ifdef CONFIG_HAVE_SETUP_PER_CPU_AREA
    >> extern void setup_per_cpu_areas(void);
    >> #endif
    >>
    >> -/* A macro to avoid #include hell... */
    >> -#define percpu_modcopy(pcpudst, src, size) \
    >> -do { \
    >> - unsigned int __i; \
    >> - for_each_possible_cpu(__i) \
    >> - memcpy((pcpudst)+per_cpu_offset(__i), \
    >> - (src), (size)); \
    >> -} while (0)
    >> #else /* ! SMP */
    >>
    >> #define per_cpu(var, cpu) (*((void)(cpu), &per_cpu_var(var)))
    >> diff --git a/init/main.c b/init/main.c
    >> index 5843fe9..3316dff 100644
    >> --- a/init/main.c
    >> +++ b/init/main.c
    >> @@ -363,7 +363,7 @@ static inline void smp_prepare_cpus(unsigned int maxcpus) { }
    >>
    >> #else
    >>
    >> -#ifndef CONFIG_ARCH_SETS_UP_PER_CPU_AREA
    >> +#ifndef CONFIG_HAVE_SETUP_PER_CPU_AREA
    >> unsigned long __per_cpu_offset[NR_CPUS] __read_mostly;
    >>
    >> EXPORT_SYMBOL(__per_cpu_offset);
    >> @@ -384,7 +384,7 @@ static void __init setup_per_cpu_areas(void)
    >> ptr += size;
    >> }
    >> }
    >> -#endif /* CONFIG_ARCH_SETS_UP_CPU_AREA */
    >> +#endif /* CONFIG_HAVE_SETUP_PER_CPU_AREA */
    >>
    >> /* Called by boot processor to activate the rest. */
    >> static void __init smp_init(void)
    >> diff --git a/kernel/module.c b/kernel/module.c
    >> index f6a4e72..bd60278 100644
    >> --- a/kernel/module.c
    >> +++ b/kernel/module.c
    >> @@ -430,6 +430,14 @@ static unsigned int find_pcpusec(Elf_Ehdr *hdr,
    >> return find_sec(hdr, sechdrs, secstrings, ".data.percpu");
    >> }
    >>
    >> +static void percpu_modcopy(void *pcpudest, const void *from, unsigned long size)
    >> +{
    >> + int cpu;
    >> +
    >> + for_each_possible_cpu(cpu)
    >> + memcpy(pcpudest + per_cpu_offset(cpu), from, size);
    >> +}
    >> +
    >> static int percpu_modinit(void)
    >> {
    >> pcpu_num_used = 2;
    >> -
    >> To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
    >> the body of a message to majordomo@vger.kernel.org
    >> More majordomo info at http://vger.kernel.org/majordomo-info.html
    >>
    >
    > With kind regards,
    >
    > Geert Uytterhoeven
    > Software Architect
    >
    > Sony Network and Software Technology Center Europe
    > The Corporate Village · Da Vincilaan 7-D1 · B-1935 Zaventem · Belgium
    >
    > Phone: +32 (0)2 700 8453
    > Fax: +32 (0)2 700 8622
    > E-mail: Geert.Uytterhoeven@sonycom.com
    > Internet: http://www.sony-europe.com/
    >
    > Sony Network and Software Technology Center Europe
    > A division of Sony Service Centre (Europe) N.V.
    > Registered office: Technologielaan 7 · B-1840 Londerzeel · Belgium
    > VAT BE 0413.825.160 · RPR Brussels
    > Fortis Bank Zaventem · Swift GEBABEBB08A · IBAN BE39001382358619

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2008-01-30 17:05    [W:0.049 / U:0.216 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site