diff options
| author | 2005-11-28 13:43:56 -0800 | |
|---|---|---|
| committer | 2005-11-28 14:42:23 -0800 | |
| commit | bce61dd49d6ba7799be2de17c772e4c701558f14 (patch) | |
| tree | a8fd75afc85ffef3c9af0bafa1989d7a14e1a187 /arch/m32r/kernel/sys_m32r.c | |
| parent | [PATCH] fix 32bit overflow in timespec_to_sample() (diff) | |
| download | wireguard-linux-bce61dd49d6ba7799be2de17c772e4c701558f14.tar.xz wireguard-linux-bce61dd49d6ba7799be2de17c772e4c701558f14.zip | |
[PATCH] Fix hardcoded cpu=0 in workqueue for per_cpu_ptr() calls
Tracked this down on an Ultra Enterprise 3000. It's a 6-way machine. Odd
thing about this machine (and it's good for finding bugs like this) is that
the CPU id's are not 0 based. For instance, on my machine the CPU's are
6/7/10/11/14/15.
This caused some NULL pointer dereference in kernel/workqueue.c because for
single_threaded workqueue's, it hardcoded the cpu to 0.
I changed the 0's to any_online_cpu(cpu_online_mask), which cpumask.h
claims is "First cpu in mask". So this fits the same usage.
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/m32r/kernel/sys_m32r.c')
0 files changed, 0 insertions, 0 deletions
