aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/irq
diff options
context:
space:
mode:
authorPekka Enberg <penberg@cs.helsinki.fi>2009-06-11 07:46:49 -0400
committerPekka Enberg <penberg@cs.helsinki.fi>2009-06-11 12:27:13 -0400
commit22fb4e71e646695c7e0f379ada66b372c2d1aa1a (patch)
treef4af9544ae6c0f6c6e9f52965ce387d5b529a3b5 /kernel/irq
parent0fb530291621c8b8a1b16abeeab05d9262489f71 (diff)
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>
Diffstat (limited to 'kernel/irq')
-rw-r--r--kernel/irq/handle.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c
index e161999b6683..104578541230 100644
--- a/kernel/irq/handle.c
+++ b/kernel/irq/handle.c
@@ -164,7 +164,7 @@ int __init early_irq_init(void)
164 node = first_online_node; 164 node = first_online_node;
165 165
166 /* allocate irq_desc_ptrs array based on nr_irqs */ 166 /* allocate irq_desc_ptrs array based on nr_irqs */
167 irq_desc_ptrs = alloc_bootmem(nr_irqs * sizeof(void *)); 167 irq_desc_ptrs = kcalloc(nr_irqs, sizeof(void *), GFP_NOWAIT);
168 168
169 /* allocate based on nr_cpu_ids */ 169 /* allocate based on nr_cpu_ids */
170 kstat_irqs_legacy = kzalloc_node(NR_IRQS_LEGACY * nr_cpu_ids * 170 kstat_irqs_legacy = kzalloc_node(NR_IRQS_LEGACY * nr_cpu_ids *