aboutsummaryrefslogtreecommitdiffstats
path: root/mm/allocpercpu.c
diff options
context:
space:
mode:
authorJiri Kosina <jkosina@suse.cz>2009-10-29 00:25:59 +0900
committerTejun Heo <tj@kernel.org>2009-10-29 00:25:59 +0900
commit403a91b1659cb149dbddc5885f892734ae4542d8 (patch)
treec953c271057033b5fbc47b8ddb77c78d926c221e /mm/allocpercpu.c
parentpercpu: fix compile warnings (diff)
downloadlinux-dev-403a91b1659cb149dbddc5885f892734ae4542d8.tar.xz
linux-dev-403a91b1659cb149dbddc5885f892734ae4542d8.zip
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 'mm/allocpercpu.c')
0 files changed, 0 insertions, 0 deletions