diff options
author | Tejun Heo <tj@kernel.org> | 2009-08-14 01:41:02 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2009-08-14 01:45:31 -0400 |
commit | 384be2b18a5f9475eab9ca2bdfa95cc1a04ef59c (patch) | |
tree | 04c93f391a1b65c8bf8d7ba8643c07d26c26590a /include/asm-generic/vmlinux.lds.h | |
parent | a76761b621bcd8336065c4fe3a74f046858bc34c (diff) | |
parent | 142d44b0dd6741a64a7bdbe029110e7c1dcf1d23 (diff) |
Merge branch 'percpu-for-linus' into percpu-for-next
Conflicts:
arch/sparc/kernel/smp_64.c
arch/x86/kernel/cpu/perf_counter.c
arch/x86/kernel/setup_percpu.c
drivers/cpufreq/cpufreq_ondemand.c
mm/percpu.c
Conflicts in core and arch percpu codes are mostly from commit
ed78e1e078dd44249f88b1dd8c76dafb39567161 which substituted many
num_possible_cpus() with nr_cpu_ids. As for-next branch has moved all
the first chunk allocators into mm/percpu.c, the changes are moved
from arch code to mm/percpu.c.
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'include/asm-generic/vmlinux.lds.h')
-rw-r--r-- | include/asm-generic/vmlinux.lds.h | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index ab8ea9b7741e..a43223af98b6 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h | |||
@@ -30,9 +30,7 @@ | |||
30 | * EXCEPTION_TABLE(...) | 30 | * EXCEPTION_TABLE(...) |
31 | * NOTES | 31 | * NOTES |
32 | * | 32 | * |
33 | * __bss_start = .; | 33 | * BSS_SECTION(0, 0, 0) |
34 | * BSS_SECTION(0, 0) | ||
35 | * __bss_stop = .; | ||
36 | * _end = .; | 34 | * _end = .; |
37 | * | 35 | * |
38 | * STABS_DEBUG | 36 | * STABS_DEBUG |
@@ -188,7 +186,7 @@ | |||
188 | . = ALIGN(align); \ | 186 | . = ALIGN(align); \ |
189 | *(.data.cacheline_aligned) | 187 | *(.data.cacheline_aligned) |
190 | 188 | ||
191 | #define INIT_TASK(align) \ | 189 | #define INIT_TASK_DATA(align) \ |
192 | . = ALIGN(align); \ | 190 | . = ALIGN(align); \ |
193 | *(.data.init_task) | 191 | *(.data.init_task) |
194 | 192 | ||
@@ -431,10 +429,10 @@ | |||
431 | /* | 429 | /* |
432 | * Init task | 430 | * Init task |
433 | */ | 431 | */ |
434 | #define INIT_TASK_DATA(align) \ | 432 | #define INIT_TASK_DATA_SECTION(align) \ |
435 | . = ALIGN(align); \ | 433 | . = ALIGN(align); \ |
436 | .data.init_task : { \ | 434 | .data.init_task : { \ |
437 | INIT_TASK \ | 435 | INIT_TASK_DATA(align) \ |
438 | } | 436 | } |
439 | 437 | ||
440 | #ifdef CONFIG_CONSTRUCTORS | 438 | #ifdef CONFIG_CONSTRUCTORS |
@@ -486,7 +484,8 @@ | |||
486 | * bss (Block Started by Symbol) - uninitialized data | 484 | * bss (Block Started by Symbol) - uninitialized data |
487 | * zeroed during startup | 485 | * zeroed during startup |
488 | */ | 486 | */ |
489 | #define SBSS \ | 487 | #define SBSS(sbss_align) \ |
488 | . = ALIGN(sbss_align); \ | ||
490 | .sbss : AT(ADDR(.sbss) - LOAD_OFFSET) { \ | 489 | .sbss : AT(ADDR(.sbss) - LOAD_OFFSET) { \ |
491 | *(.sbss) \ | 490 | *(.sbss) \ |
492 | *(.scommon) \ | 491 | *(.scommon) \ |
@@ -495,12 +494,10 @@ | |||
495 | #define BSS(bss_align) \ | 494 | #define BSS(bss_align) \ |
496 | . = ALIGN(bss_align); \ | 495 | . = ALIGN(bss_align); \ |
497 | .bss : AT(ADDR(.bss) - LOAD_OFFSET) { \ | 496 | .bss : AT(ADDR(.bss) - LOAD_OFFSET) { \ |
498 | VMLINUX_SYMBOL(__bss_start) = .; \ | ||
499 | *(.bss.page_aligned) \ | 497 | *(.bss.page_aligned) \ |
500 | *(.dynbss) \ | 498 | *(.dynbss) \ |
501 | *(.bss) \ | 499 | *(.bss) \ |
502 | *(COMMON) \ | 500 | *(COMMON) \ |
503 | VMLINUX_SYMBOL(__bss_stop) = .; \ | ||
504 | } | 501 | } |
505 | 502 | ||
506 | /* | 503 | /* |
@@ -719,15 +716,15 @@ | |||
719 | * matches the requirment of PAGE_ALIGNED_DATA. | 716 | * matches the requirment of PAGE_ALIGNED_DATA. |
720 | * | 717 | * |
721 | * use 0 as page_align if page_aligned data is not used */ | 718 | * use 0 as page_align if page_aligned data is not used */ |
722 | #define RW_DATA_SECTION(cacheline, nosave, pagealigned, inittask) \ | 719 | #define RW_DATA_SECTION(cacheline, pagealigned, inittask) \ |
723 | . = ALIGN(PAGE_SIZE); \ | 720 | . = ALIGN(PAGE_SIZE); \ |
724 | .data : AT(ADDR(.data) - LOAD_OFFSET) { \ | 721 | .data : AT(ADDR(.data) - LOAD_OFFSET) { \ |
725 | INIT_TASK(inittask) \ | 722 | INIT_TASK_DATA(inittask) \ |
726 | CACHELINE_ALIGNED_DATA(cacheline) \ | 723 | CACHELINE_ALIGNED_DATA(cacheline) \ |
727 | READ_MOSTLY_DATA(cacheline) \ | 724 | READ_MOSTLY_DATA(cacheline) \ |
728 | DATA_DATA \ | 725 | DATA_DATA \ |
729 | CONSTRUCTORS \ | 726 | CONSTRUCTORS \ |
730 | NOSAVE_DATA(nosave) \ | 727 | NOSAVE_DATA \ |
731 | PAGE_ALIGNED_DATA(pagealigned) \ | 728 | PAGE_ALIGNED_DATA(pagealigned) \ |
732 | } | 729 | } |
733 | 730 | ||
@@ -749,8 +746,10 @@ | |||
749 | INIT_RAM_FS \ | 746 | INIT_RAM_FS \ |
750 | } | 747 | } |
751 | 748 | ||
752 | #define BSS_SECTION(sbss_align, bss_align) \ | 749 | #define BSS_SECTION(sbss_align, bss_align, stop_align) \ |
753 | SBSS \ | 750 | . = ALIGN(sbss_align); \ |
751 | VMLINUX_SYMBOL(__bss_start) = .; \ | ||
752 | SBSS(sbss_align) \ | ||
754 | BSS(bss_align) \ | 753 | BSS(bss_align) \ |
755 | . = ALIGN(4); | 754 | . = ALIGN(stop_align); \ |
756 | 755 | VMLINUX_SYMBOL(__bss_stop) = .; | |