linux/arch/x86/kernel
Ingo Molnar 54ffaa45c5 x86: fix CONFIG_NUMA and nosmp | maxcpus=0/1 crash
x86 NUMA kernels crash in the scheduler setup code if "nosmp" or
"maxcpus=0" is passed on the boot command line:

| Brought up 1 CPUs
| BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000
| printing eip: c011f0b5 *pde = 00000000
| Oops: 0000 [#1] SMP
|
| Pid: 1, comm: swapper Not tainted (2.6.23 #67)
| EIP: 0060:[<c011f0b5>] EFLAGS: 00010246 CPU: 0
| EIP is at sd_degenerate+0x35/0x40

the reason is sloppy spaghetti code in smpboot_32.c that resulted in a
missing map_cpu_to_logical_apicid() call - which also had the side-effect
of setting up the cpu_2_node[] entry for the lone CPU. That resulted in
node_to_cpumask(0) resulting in 00000000 - confusing the sched-domains
setup code.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2007-10-19 20:35:02 +02:00
..
acpi s2ram: kill old debugging junk 2007-10-18 14:37:19 -07:00
cpu cpu hotplug: intel_cacheinfo: fix cpu hotplug error handling 2007-10-18 14:37:21 -07:00
cpufreq x86_64: move kernel/cpufreq 2007-10-11 11:17:06 +02:00
.gitignore .gitignore update for x86 arch 2007-10-17 21:19:04 +02:00
alternative.c Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-x86 2007-10-17 13:13:16 -07:00
aperture_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
apic_32.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
apic_64.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
apm_32.c Merge branch 'dmi-const' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6 2007-10-11 19:18:45 -07:00
asm-offsets_32.c paravirt: refactor struct paravirt_ops into smaller pv_*_ops 2007-10-16 11:51:29 -07:00
asm-offsets_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
asm-offsets.c i386: move kernel 2007-10-11 11:17:01 +02:00
audit_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
bootflag.c i386: move kernel 2007-10-11 11:17:01 +02:00
bugs_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
cpuid.c i386: simplify smp_call_function_single() call sequence in cpuid 2007-10-17 20:16:19 +02:00
crash_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
crash_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
crash_dump_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
crash_dump_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
doublefault_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
e820_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
e820_64.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
early_printk.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
early-quirks_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
efi_32.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
efi_stub_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
entry_32.S Merge branch 'xen-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen 2007-10-17 11:10:11 -07:00
entry_64.S x86: return correct error code from child_rip in x86_64 entry.S 2007-10-17 20:15:29 +02:00
genapic_64.c x86: remove x86_cpu_to_log_apicid 2007-10-17 20:16:24 +02:00
genapic_flat_64.c x86: remove x86_cpu_to_log_apicid 2007-10-17 20:16:24 +02:00
geode_32.c x86: Geode Multi-Function General Purpose Timers support 2007-10-12 23:04:06 +02:00
head64.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
head_32.S i386: print better early fault info 2007-10-17 20:16:56 +02:00
head_64.S x86_64: move kernel 2007-10-11 11:17:24 +02:00
hpet.c x86: HPET force enable for ICH5 2007-10-12 23:04:24 +02:00
i386_ksyms_32.c x86: convert mm_context_t semaphore to a mutex 2007-10-17 20:17:05 +02:00
i387_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
i387_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
i8237.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
i8253.c x86_64: remove now unused code 2007-10-12 23:04:23 +02:00
i8259_32.c x86: clean up struct irqaction initializers 2007-10-17 20:16:06 +02:00
i8259_64.c x86: more struct irqaction initializer cleanups 2007-10-17 20:16:07 +02:00
init_task_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
init_task_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
io_apic_32.c x86: make io_apic not connected pin print complete 2007-10-17 20:16:57 +02:00
io_apic_64.c x86: make io_apic not connected pin print complete 2007-10-17 20:16:57 +02:00
ioport_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
ioport_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
irq_32.c x86: also show non-zero IRQ counts for vectors that currently don't have a handler 2007-10-17 20:16:54 +02:00
irq_64.c x86: also show non-zero IRQ counts for vectors that currently don't have a handler 2007-10-17 20:16:54 +02:00
k8.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
kprobes_32.c kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
kprobes_64.c kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
ldt_32.c x86: convert mm_context_t semaphore to a mutex 2007-10-17 20:17:05 +02:00
ldt_64.c x86: convert mm_context_t semaphore to a mutex 2007-10-17 20:17:00 +02:00
machine_kexec_32.c add-vmcore: add a prefix "VMCOREINFO_" to the vmcoreinfo macros 2007-10-17 08:42:54 -07:00
machine_kexec_64.c add-vmcore: add a prefix "VMCOREINFO_" to the vmcoreinfo macros 2007-10-17 08:42:54 -07:00
Makefile x86: delete vsyscall files during make clean 2007-10-17 21:56:01 +02:00
Makefile_32 x86: fix kernel rebuild due to vsyscall fallout 2007-10-17 21:19:23 +02:00
Makefile_64 x86_64: remove now unused code 2007-10-12 23:04:23 +02:00
mca_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
mce_64.c cpu hotplug: mce: fix cpu hotplug error handling 2007-10-18 14:37:21 -07:00
mce_amd_64.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
mce_intel_64.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
mfgpt_32.c x86: Geode MFGPT clock event device support 2007-10-12 23:04:06 +02:00
microcode.c i386: move kernel 2007-10-11 11:17:01 +02:00
module_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
module_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
mpparse_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
mpparse_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
msr.c x86 msr driver: Misc cpuinit annotations 2007-10-18 14:37:28 -07:00
nmi_32.c x86: Fix irq0 / local apic timer accounting 2007-10-12 23:04:06 +02:00
nmi_64.c x86: Fix irq0 / local apic timer accounting 2007-10-12 23:04:07 +02:00
numaq_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
paravirt_32.c paravirt: clean up lazy mode handling 2007-10-16 11:51:29 -07:00
pci-calgary_64.c x86: calgary get rid of translate_phb 2007-10-17 20:16:41 +02:00
pci-dma_32.c i386: Clean up duplicate includes in arch/i386/kernel/ 2007-10-17 20:15:51 +02:00
pci-dma_64.c x86: use dev_to_node() to get node for device in dma_alloc_pages() 2007-10-17 20:15:47 +02:00
pci-gart_64.c x86: Some cleanups for pci gart code 2007-10-17 20:16:10 +02:00
pci-nommu_64.c x86-64: update nommu to sg helpers 2007-10-16 11:26:02 +02:00
pci-swiotlb_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
pcspeaker.c i386: move kernel 2007-10-11 11:17:01 +02:00
pmtimer_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
process_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
process_64.c kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
ptrace_32.c x86: convert mm_context_t semaphore to a mutex 2007-10-17 20:17:05 +02:00
ptrace_64.c x86: convert mm_context_t semaphore to a mutex 2007-10-17 20:17:00 +02:00
quirks.c x86: HPET add another ICH7 PCI id 2007-10-12 23:04:24 +02:00
reboot_32.c Merge branch 'dmi-const' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6 2007-10-11 19:18:45 -07:00
reboot_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
reboot_fixups_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
relocate_kernel_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
relocate_kernel_64.S x86_64: move kernel 2007-10-11 11:17:24 +02:00
scx200_32.c long vs. unsigned long - low-hanging fruits in drivers 2007-10-14 12:41:51 -07:00
setup64.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
setup_32.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
setup_64.c x86: Use string instruction memcpy on AMD Fam11h 2007-10-17 20:16:58 +02:00
sigframe_32.h i386: move kernel 2007-10-11 11:17:01 +02:00
signal_32.c i386: remove unnecessary code 2007-10-17 20:17:01 +02:00
signal_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
smp_32.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
smp_64.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
smpboot_32.c x86: fix CONFIG_NUMA and nosmp | maxcpus=0/1 crash 2007-10-19 20:35:02 +02:00
smpboot_64.c x86: remove x86_cpu_to_log_apicid 2007-10-17 20:16:24 +02:00
smpcommon_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
srat_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
stacktrace.c x86: constify stacktrace_ops 2007-10-17 20:16:11 +02:00
summit_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
suspend_64.c Hibernation: Use temporary page tables for kernel text mapping on x86_64 2007-10-18 14:37:20 -07:00
suspend_asm_64.S Hibernation: Pass CR3 in the image header on x86_64 2007-10-18 14:37:19 -07:00
sys_i386_32.c remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
sys_x86_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
syscall_64.c i386/x86_64: move headers to include/asm-x86 2007-10-11 11:20:03 +02:00
syscall_table_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
sysenter_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
tce_64.c x86: Create clflush() inline, remove hardcoded wbinvd 2007-10-17 20:16:12 +02:00
time_32.c x86: Fix irq0 / local apic timer accounting 2007-10-12 23:04:06 +02:00
time_64.c x86_64: remove now unused code 2007-10-12 23:04:23 +02:00
topology.c i386: no need to make enable_cpu_hotplug a variable 2007-10-17 20:16:16 +02:00
trampoline_32.S x86: misc. constifications 2007-10-17 20:16:08 +02:00
trampoline_64.S x86: misc. constifications 2007-10-17 20:16:08 +02:00
traps_32.c i386: clean up oops/bug reports 2007-10-17 20:16:52 +02:00
traps_64.c x86: constify stacktrace_ops 2007-10-17 20:16:11 +02:00
tsc_32.c x86: do not crash on non-Geode PCs in TSC probe 2007-10-17 20:15:37 +02:00
tsc_64.c x86: unify timex.h variants 2007-10-12 23:04:23 +02:00
tsc_sync.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
verify_cpu_64.S x86_64: move kernel 2007-10-11 11:17:24 +02:00
vm86_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
vmi_32.c paravirt: clean up lazy mode handling 2007-10-16 11:51:29 -07:00
vmiclock_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
vmlinux_32.lds.S i386: move kernel 2007-10-11 11:17:01 +02:00
vmlinux_64.lds.S x86_64: move kernel 2007-10-11 11:17:24 +02:00
vmlinux.lds.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsmp_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
vsyscall_32.lds.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall_64.c x86, vsyscall: fix the oops crash with __pa_vsymbol() 2007-10-19 20:35:02 +02:00
vsyscall-int80_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall-note_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall-sigreturn_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall-sysenter_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
x8664_ksyms_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00