linux/arch
Yinghai Lu 51b361b400 x86-64, NUMA: Fix numa_emulation code with node0 without RAM
On one system that does not have RAM on node0.

When numa_emulation is compiled in, and
1. boot system without numa=fake...
2. or boot system with numa=fake=128 to make emulation fail

will get:

[    0.092026] ------------[ cut here ]------------
[    0.096005] kernel BUG at arch/x86/mm/numa_emulation.c:439!
[    0.096005] invalid opcode: 0000 [#1] SMP
[    0.096005] last sysfs file:
[    0.096005] CPU 0
[    0.096005] Modules linked in:
[    0.096005]
[    0.096005] Pid: 0, comm: swapper Not tainted 2.6.38-rc6-tip-yh-03869-gcb0491d-dirty #684 Sun Microsystems     Sun Fire X4240/Sun Fire X4240
[    0.096005] RIP: 0010:[<ffffffff81cdc65b>]  [<ffffffff81cdc65b>] numa_add_cpu+0x56/0xcf
[    0.096005] RSP: 0000:ffffffff82437ed8  EFLAGS: 00010246
...
[    0.096005] Call Trace:
[    0.096005]  [<ffffffff81cd7931>] identify_cpu+0x2d7/0x2df
[    0.096005]  [<ffffffff827e54fa>] identify_boot_cpu+0x10/0x30
[    0.096005]  [<ffffffff827e5704>] check_bugs+0x9/0x2d
[    0.096005]  [<ffffffff827dceda>] start_kernel+0x3d7/0x3f1
[    0.096005]  [<ffffffff827dc2cc>] x86_64_start_reservations+0x9c/0xa0
[    0.096005]  [<ffffffff827dc4ad>] x86_64_start_kernel+0x1dd/0x1e8
[    0.096005] Code: 74 06 48 8d 04 90 eb 0f 48 c7 c0 30 d9 00 00 48 03 04 d5 90 0f 60 82 8b 00 83 f8 ff 74 0d 0f a3 05 8b 7e 92 00 19 d2 85 d2 75 02 <0f> 0b 48 98 be 00 01 00 00 48 c7 c7 e0 44 60 82 44 8b 2c 85 e0
[    0.096005] RIP  [<ffffffff81cdc65b>] numa_add_cpu+0x56/0xcf
[    0.096005]  RSP <ffffffff82437ed8>
[    0.096026] ---[ end trace a7919e7f17c0a725 ]---

We need to use early_cpu_to_node() directly, because numa_cpu_node()
will return node0 that is not onlined.

Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Tejun Heo <tj@kernel.org>
2011-03-04 14:49:28 +01:00
..
alpha alpha: Use generic irq Kconfig 2011-01-21 11:55:31 +01:00
arm ARM: SAMSUNG: Ensure struct sys_device is declared in plat/pm.h 2011-02-11 10:25:57 +09:00
avr32 avr32: add missing include causing undefined pgtable_page_* references 2011-01-26 12:35:15 +01:00
blackfin serial: bfin_5xx: split uart RX lock from uart port lock to avoid deadlock 2011-02-03 14:44:54 -08:00
cris cris: Use generic irq Kconfig 2011-01-21 11:55:25 +01:00
frv frv: Use generic irq Kconfig 2011-01-21 11:55:32 +01:00
h8300 h8300: Use generic irq Kconfig 2011-01-21 11:55:24 +01:00
ia64 ia64: Use generic irq Kconfig 2011-01-21 11:55:32 +01:00
m32r m32r: Fixup last __do_IRQ leftover 2011-02-05 21:46:35 +01:00
m68k m68k/amiga: Fix "debug=mem" 2011-01-23 11:24:42 +01:00
m68knommu m68knommu: Use generic irq Kconfig 2011-01-21 11:55:32 +01:00
microblaze microblaze: Fix msr instruction detection 2011-02-07 19:13:01 +01:00
mips genirq: Remove __do_IRQ 2011-01-21 11:55:31 +01:00
mn10300 mn10300: Use generic irq Kconfig 2011-01-21 11:55:33 +01:00
parisc console: rename acquire/release_console_sem() to console_lock/unlock() 2011-01-26 10:50:06 +10:00
powerpc powerpc: Fix hcall tracepoint recursion 2011-02-07 13:06:08 +11:00
s390 [S390] reset default for CONFIG_CHSC_SCH 2011-01-31 11:30:21 +01:00
score score: Use generic irq Kconfig 2011-01-21 11:55:34 +01:00
sh Merge branch 'sh-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2011-01-26 09:00:17 +10:00
sparc sparc: Use generic irq Kconfig 2011-01-21 11:55:34 +01:00
tile tile: Use generic irq Kconfig 2011-01-21 11:55:34 +01:00
um um: Use generic irq Kconfig 2011-01-21 11:55:35 +01:00
x86 x86-64, NUMA: Fix numa_emulation code with node0 without RAM 2011-03-04 14:49:28 +01:00
xtensa kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT 2011-01-20 17:02:05 -08:00
.gitignore
Kconfig [S390] mutex: Introduce arch_mutex_cpu_relax() 2011-01-05 12:47:31 +01:00