Merge commit '63cc8c75156462d4b42cbdd76c293b7eee7ddbfe':
authorIngo Molnar <mingo@elte.hu>
Fri, 5 Sep 2008 07:24:30 +0000 (09:24 +0200)
committerIngo Molnar <mingo@elte.hu>
Fri, 5 Sep 2008 07:24:30 +0000 (09:24 +0200)
  "percpu: introduce DEFINE_PER_CPU_PAGE_ALIGNED() macro"

into x86/core

Conflicts:
arch/x86/kernel/cpu/common.c

Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/cpu/common.c
arch/x86/kernel/vmlinux_32.lds.S
include/asm-generic/vmlinux.lds.h
include/linux/percpu.h

index 008c73796bbb9391e6c61e629ca5b03db6f824b8..7d5a07f0fd243ee831d3c37afd7b4caeb4eca645 100644 (file)
@@ -24,7 +24,7 @@
 
 static struct cpu_dev *this_cpu __cpuinitdata;
 
-DEFINE_PER_CPU(struct gdt_page, gdt_page) = { .gdt = {
+DEFINE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page) = { .gdt = {
        [GDT_ENTRY_KERNEL_CS] = { { { 0x0000ffff, 0x00cf9a00 } } },
        [GDT_ENTRY_KERNEL_DS] = { { { 0x0000ffff, 0x00cf9200 } } },
        [GDT_ENTRY_DEFAULT_USER_CS] = { { { 0x0000ffff, 0x00cffa00 } } },
index 21b4f7eefaab61e6d52f8fa1c0b4056cb048dc8d..a9b8560adbc22ebe37cfde9abcb7c46237fca3db 100644 (file)
@@ -180,6 +180,7 @@ SECTIONS
   . = ALIGN(PAGE_SIZE);
   .data.percpu  : AT(ADDR(.data.percpu) - LOAD_OFFSET) {
        __per_cpu_start = .;
+       *(.data.percpu.page_aligned)
        *(.data.percpu)
        *(.data.percpu.shared_aligned)
        __per_cpu_end = .;
index cb752ba7246611d7f326af760bfbe96a1e4b2592..7440a0dceddba276b59199d14e64a1ee2f232b36 100644 (file)
        . = ALIGN(align);                                               \
        VMLINUX_SYMBOL(__per_cpu_start) = .;                            \
        .data.percpu  : AT(ADDR(.data.percpu) - LOAD_OFFSET) {          \
+               *(.data.percpu.page_aligned)                            \
                *(.data.percpu)                                         \
                *(.data.percpu.shared_aligned)                          \
        }                                                               \
index fac3337547eb862e268587e082d885e0c01577d8..9f2a3751873a8d41e8d438b028c432c0a12b2781 100644 (file)
        __attribute__((__section__(SHARED_ALIGNED_SECTION)))            \
        PER_CPU_ATTRIBUTES __typeof__(type) per_cpu__##name             \
        ____cacheline_aligned_in_smp
+
+#define DEFINE_PER_CPU_PAGE_ALIGNED(type, name)                        \
+       __attribute__((__section__(".data.percpu.page_aligned")))       \
+       PER_CPU_ATTRIBUTES __typeof__(type) per_cpu__##name
 #else
 #define DEFINE_PER_CPU(type, name)                                     \
        PER_CPU_ATTRIBUTES __typeof__(type) per_cpu__##name
 
 #define DEFINE_PER_CPU_SHARED_ALIGNED(type, name)                    \
        DEFINE_PER_CPU(type, name)
+
+#define DEFINE_PER_CPU_PAGE_ALIGNED(type, name)                      \
+       DEFINE_PER_CPU(type, name)
 #endif
 
 #define EXPORT_PER_CPU_SYMBOL(var) EXPORT_SYMBOL(per_cpu__##var)