diff options
author | Jiri Kosina <jkosina@suse.cz> | 2009-10-29 00:25:59 +0900 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2009-10-29 00:25:59 +0900 |
commit | 403a91b1659cb149dbddc5885f892734ae4542d8 (patch) | |
tree | c953c271057033b5fbc47b8ddb77c78d926c221e /kernel/softirq.c | |
parent | 1a0c3298d6c6bfc357c38772e7f32d193c60c77d (diff) |
percpu: allow pcpu_alloc() to be called with IRQs off
pcpu_alloc() and pcpu_extend_area_map() perform a series of
spin_lock_irq()/spin_unlock_irq() calls, which make them unsafe
with respect to being called from contexts which have IRQs off.
This patch converts the code to perform save/restore of flags instead,
making pcpu_alloc() (or __alloc_percpu() respectively) to be called
from early kernel startup stage, where IRQs are off.
This is needed for proper initialization of per-cpu rq_weight data from
sched_init().
tj: added comment explaining why irqsave/restore is used in alloc path.
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'kernel/softirq.c')
0 files changed, 0 insertions, 0 deletions