[PATCH] x86_64: Let impossible CPUs point to reference per cpu data
Hack for 2.6.16. In 2.6.17 all code that uses NR_CPUs should be audited and changed to only touch possible CPUs. Don't mark the reference per cpu data init data (so it stays around after boot) and point all impossible CPUs to it. This way they reference some valid - although shared memory. Usually this is only initialization like INIT_LIST_HEADs and there won't be races because these CPUs never run. Still somewhat hackish. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
3777a95903
commit
14c3f85587
1 changed files with 5 additions and 3 deletions
|
@ -172,13 +172,15 @@ SECTIONS
|
||||||
. = ALIGN(4096);
|
. = ALIGN(4096);
|
||||||
__initramfs_start = .;
|
__initramfs_start = .;
|
||||||
.init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) { *(.init.ramfs) }
|
.init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) { *(.init.ramfs) }
|
||||||
__initramfs_end = .;
|
__initramfs_end = .;
|
||||||
|
/* temporary here to work around NR_CPUS. If you see this comment in 2.6.17+
|
||||||
|
complain */
|
||||||
|
. = ALIGN(4096);
|
||||||
|
__init_end = .;
|
||||||
. = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
|
. = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
|
||||||
__per_cpu_start = .;
|
__per_cpu_start = .;
|
||||||
.data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) { *(.data.percpu) }
|
.data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) { *(.data.percpu) }
|
||||||
__per_cpu_end = .;
|
__per_cpu_end = .;
|
||||||
. = ALIGN(4096);
|
|
||||||
__init_end = .;
|
|
||||||
|
|
||||||
. = ALIGN(4096);
|
. = ALIGN(4096);
|
||||||
__nosave_begin = .;
|
__nosave_begin = .;
|
||||||
|
|
Loading…
Reference in a new issue