kernel_optimize_test/arch
Brian Uhrain says 917b1f78a9 [PATCH] alpha: SMP boot fixes
I've encountered two problems with 2.6.16 and newer kernels on my API CS20
(dual 833MHz Alpha 21264b processors).  The first is the kernel OOPSing
because of a NULL pointer dereference while trying to populate SysFS with the
CPU information.  The other is that only one processor was being brought up.
I've included a small Alpha-specific patch that fixes both problems.

The first problem was caused by the CPUs never being properly registered using
register_cpu(), the way it's done on other architectures.

The second problem has to do with the removal of hwrpb_cpu_present_mask in
arch/alpha/kernel/smp.c.  In setup_smp() in the 2.6.15 kernel sources,
hwrpb_cpu_present_mask has a bit set for each processor that is probed, and
afterwards cpu_present_mask is set to the cpumask for the boot CPU.  In the
same function of the same file in the 2.6.16 sources, instead of
hwrpb_cpu_present_mask being set, cpu_possible_map is updated for each probed
CPU.  cpu_present_mask is still set to the cpumask of the boot CPU afterwards.
 The problem lies in include/asm-alpha/smp.h, where cpu_possible_map is
#define'd to be cpu_present_mask.

Cleanups from: Ivan Kokshaysky <ink@jurassic.park.msu.ru>

 - cpu_present_mask and cpu_possible_map are essentially the same thing
   on alpha, as it doesn't support CPU hotplug;
 - allocate "struct cpu" only for present CPUs, like sparc64 does.
   Static array of "struct cpu" is just a waste of memory.

Signed-off-by: Brian Uhrain <buhrain@rosettastone.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-04-11 06:18:34 -07:00
..
alpha [PATCH] alpha: SMP boot fixes 2006-04-11 06:18:34 -07:00
arm [ARM] 3473/1: Use numbers 0-15 for the VFP double registers 2006-04-10 21:32:46 +01:00
arm26 [PATCH] unexport get_wchan 2006-03-31 12:19:01 -08:00
cris [PATCH] unify PFN_* macros 2006-03-27 08:44:48 -08:00
frv [PATCH] frv: define MMU mode specific syscalls as 'cond_syscall' and clean up unneeded macros 2006-04-11 06:18:33 -07:00
h8300 [PATCH] unexport get_wchan 2006-03-31 12:19:01 -08:00
i386 [PATCH] Enable TSC for AMD Geode GX/LX 2006-04-11 06:18:34 -07:00
ia64 [IA64] Avoid "u64 foo : 32;" for gcc3 vs. gcc4 compatibility 2006-03-31 10:28:29 -08:00
m32r [PATCH] unify PFN_* macros 2006-03-27 08:44:48 -08:00
m68k [PATCH] unexport get_wchan 2006-03-31 12:19:01 -08:00
m68knommu [PATCH] unexport get_wchan 2006-03-31 12:19:01 -08:00
mips Manual merge with Linus. 2006-04-02 00:08:05 -05:00
parisc [PARISC] Enabled some NLS modules in a500, b180 and c3000 defconfigs 2006-03-30 17:48:58 +00:00
powerpc Merge master.kernel.org:/pub/scm/linux/kernel/git/dtor/input 2006-04-02 12:49:19 -07:00
ppc [PATCH] for_each_possible_cpu: ppc 2006-03-29 13:44:16 +11:00
s390 [PATCH] for_each_possible_cpu: s390 2006-03-31 12:18:52 -08:00
sh [PATCH] Don't pass boot parameters to argv_init[] 2006-03-31 12:18:53 -08:00
sh64 [PATCH] RTC: Remove some duplicate BCD definitions 2006-03-28 09:16:01 -08:00
sparc [PATCH] for_each_possible_cpu: sparc 2006-04-11 06:18:31 -07:00
sparc64 [PATCH] for_each_possible_cpu: sparc64 2006-04-11 06:18:31 -07:00
um [PATCH] uml: check for differences in host support 2006-03-31 12:18:52 -08:00
v850 [PATCH] bitops: v850: use generic bitops 2006-03-26 08:57:14 -08:00
x86_64 [PATCH] x86_64: Update 32-bit system call table 2006-04-09 11:53:53 -07:00
xtensa [PATCH] unexport get_wchan 2006-03-31 12:19:01 -08:00