linux/arch/arm/kernel
Paul Gortmaker 122214428a [ARM] 3911/2: Simplify alloc_thread_info on ARM
Remove ARM local cache of 4 struct thread_info.
Can cause oops under certain circumstances.

Russell indicated the original optimization was
required on older kernels to avoid thread starvation
on memory fragmentation, but may no longer be
required.  I've updated the patch to 19rc4 and
ensured no <config.h> dain-bramage slipped in this
time (sorry about that).

Original description follows:

I was given some test results which pointed to an
Oops in alloc_thread_info (happened 2x), and after
looking at the code, I see that ARM has its own
local cache of 4 struct thread_info. There wasn't
any clear (to me) synchronization between the
alloc_thread_info and the free_thread_info.

I looked over the other arch, and they all simply
allocate them on an as needed basis, so I simplified
the ARM to do the same, based on the other arch
(e.g. PPC) and the folks doing the testing have
indicated that this fixed the oops.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-11-30 15:27:03 +00:00
..
apm.c [ARM] Convert apm.c to use mutexes instead of semaphores 2006-11-30 12:24:46 +00:00
armksyms.c [PATCH] remove bogus arch-specific syscall exports 2006-10-11 11:17:07 -07:00
arthur.c
asm-offsets.c [ARM] Include asm/elf.h instead of asm/procinfo.h 2006-11-30 12:24:46 +00:00
bios32.c [ARM] arch/arm/kernel/bios32.c: no need to set isa_bridge 2006-07-13 16:14:26 +01:00
calls.S [ARM] 3338/1: old ABI compat: sys_socketcall 2006-02-16 22:36:13 +00:00
compat.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
compat.h [ARM] 3365/1: [cleanup] header for compat.c exported functions 2006-03-15 23:17:30 +00:00
crunch-bits.S [ARM] 3370/2: ep93xx: add crunch support 2006-06-28 17:55:01 +01:00
crunch.c Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
debug.S [ARM] 3838/1: ARM: DCC debug console support for ARM11 2006-09-25 10:36:09 +01:00
dma-isa.c [ARM] arch/arm/kernel/dma-isa.c: named initializers 2006-05-16 22:09:46 +01:00
dma.c
ecard.c [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
entry-armv.S [ARM] Add ARM irqtrace support 2006-09-20 14:58:35 +01:00
entry-common.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
entry-header.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
fiq.c [ARM] 3692/1: ARM: coswitch irq handling to the generic implementation 2006-07-01 22:30:09 +01:00
head-common.S [ARM] nommu: start-up code 2006-03-27 14:58:25 +01:00
head-nommu.S [ARM] Include asm/elf.h instead of asm/procinfo.h 2006-11-30 12:24:46 +00:00
head.S [ARM] Include asm/elf.h instead of asm/procinfo.h 2006-11-30 12:24:46 +00:00
init_task.c [PATCH] nsproxy: move init_nsproxy into kernel/nsproxy.c 2006-10-02 07:57:20 -07:00
io.c
irq.c [ARM] Remove compatibility layer for ARM irqs 2006-11-30 12:24:47 +00:00
isa.c [ARM] Arrange for isa.c to use named initialisers 2006-08-28 12:44:03 +01:00
iwmmxt-notifier.c Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
iwmmxt.S [ARM] 3707/1: iwmmxt: use the generic thread notifier infrastructure 2006-07-01 19:56:48 +01:00
Makefile [ARM] Add Integrator support for glibc outb() and friends 2006-08-28 12:47:05 +01:00
module.c [ARM] nommu: allows to support module in nommu 2006-09-27 17:02:50 +01:00
process.c [ARM] 3911/2: Simplify alloc_thread_info on ARM 2006-11-30 15:27:03 +00:00
ptrace.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ptrace.h
semaphore.c
setup.c [ARM] 3912/1: Make PXA270 advertise HWCAP_IWMMXT capability 2006-11-02 22:58:53 +00:00
signal.c [ARM] Include asm/elf.h instead of asm/procinfo.h 2006-11-30 12:24:46 +00:00
signal.h [ARM] nommu: fixups for the exception vectors 2006-03-27 15:18:50 +01:00
smp.c [ARM] Export smp_call_function() 2006-11-26 16:39:00 +00:00
sys_arm.c [PATCH] rename the provided execve functions to kernel_execve 2006-10-02 07:57:23 -07:00
sys_oabi-compat.c [ARM] 3338/1: old ABI compat: sys_socketcall 2006-02-16 22:36:13 +00:00
time.c [ARM] 3926/1: make timer led handle HZ != 100 2006-11-07 19:37:56 +00:00
traps.c [ARM] 3759/2: Remove uses of %? 2006-09-20 14:58:35 +01:00
vmlinux.lds.S [PATCH] vmlinux.lds: consolidate initcall sections 2006-10-27 15:34:51 -07:00