sparseirq: Allow early irq_desc allocation
authorPaul Mundt <lethal@linux-sh.org>
Fri, 22 May 2009 01:40:09 +0000 (10:40 +0900)
committerIngo Molnar <mingo@elte.hu>
Sat, 23 May 2009 12:55:24 +0000 (14:55 +0200)
commit948cd52906baf1f92aeea2f9b5c515db1b2e592a
treea03482aebb7f8ed0b1706db8d6cd105f79ea53cc
parent4c6f18fc81565967da20f2d4a3922cdba33f8e2b
sparseirq: Allow early irq_desc allocation

Presently non-legacy IRQs have their irq_desc allocated with
kzalloc_node(). This assumes that all callers of irq_to_desc_node_alloc()
will be sufficiently late in the boot process that kmalloc is available.

While porting sparseirq support to sh this blew up immediately, as at the
time that we register the CPU's interrupt vector map only bootmem is
available. Check slab_is_available() to work out which path to use.

[ Impact: fix SH early boot crash with sparseirq enabled ]

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Acked-by: Yinghai Lu <yinghai@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Mel Gorman <mel@csn.ul.ie>
LKML-Reference: <20090522014008.GA2806@linux-sh.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/irq/handle.c