irq: use kcalloc() instead of the bootmem allocator
Fixes the following problem:
[ 0.000000] Experimental hierarchical RCU init done.
[ 0.000000] NR_IRQS:4352 nr_irqs:256
[ 0.000000] ------------[ cut here ]------------
[ 0.000000] WARNING: at mm/bootmem.c:537 alloc_arch_preferred_bootmem+0x40/0x7e()
[ 0.000000] Hardware name: To Be Filled By O.E.M.
[ 0.000000] Pid: 0, comm: swapper Not tainted
2.6.30-tip-02161-g7a74539-dirty #59709
[ 0.000000] Call Trace:
[ 0.000000] [<
ffffffff823f8c8e>] ? alloc_arch_preferred_bootmem+0x40/0x7e
[ 0.000000] [<
ffffffff81067168>] warn_slowpath_common+0x88/0xcb
[ 0.000000] [<
ffffffff810671d2>] warn_slowpath_null+0x27/0x3d
[ 0.000000] [<
ffffffff823f8c8e>] alloc_arch_preferred_bootmem+0x40/0x7e
[ 0.000000] [<
ffffffff823f9307>] ___alloc_bootmem_nopanic+0x4e/0xec
[ 0.000000] [<
ffffffff823f93c5>] ___alloc_bootmem+0x20/0x61
[ 0.000000] [<
ffffffff823f962e>] __alloc_bootmem+0x1e/0x34
[ 0.000000] [<
ffffffff823f757c>] early_irq_init+0x6d/0x118
[ 0.000000] [<
ffffffff823e0140>] ? early_idt_handler+0x0/0x71
[ 0.000000] [<
ffffffff823e0cf7>] start_kernel+0x192/0x394
[ 0.000000] [<
ffffffff823e0140>] ? early_idt_handler+0x0/0x71
[ 0.000000] [<
ffffffff823e02ad>] x86_64_start_reservations+0xb4/0xcf
[ 0.000000] [<
ffffffff823e0000>] ? __init_begin+0x0/0x140
[ 0.000000] [<
ffffffff823e0420>] x86_64_start_kernel+0x158/0x17b
[ 0.000000] ---[ end trace
a7919e7f17c0a725 ]---
[ 0.000000] Fast TSC calibration using PIT
[ 0.000000] Detected 2002.510 MHz processor.
[ 0.004000] Console: colour VGA+ 80x25
Reported-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>