On 10/09/2010 05:12 AM, Thomas Gleixner wrote: > On Sat, 9 Oct 2010, Yinghai Lu wrote: >> On 10/08/2010 11:10 PM, Thomas Gleixner wrote: >>>> [ 59.449366] IP: [<ffffffff8147d715>] acpi_pci_irq_find_prt_entry+0x85/0xb1 >>> >>> I can hardly see how this is related to the irq work. >>> >>>> [ 71.076886] Pid: 1, comm: swapper Tainted: G W 2.6.36-rc7-tip-yh-01944-ge8a4c5f-dirty #171 /Sun Fire x4800 >>>> [ 71.096947] RIP: 0010:[<ffffffff8141e232>] [<ffffffff8141e232>] strcmp+0x4/0x21 >>> >>> Ditto. >> >> don't know. >> >> but without merging your branch, those problems don't come out. >> >> only thing i can think about that you real free irq code could >> stress or expose other subsystem's bug etc. > > The first crash is in early boot and that code just fiddles with acpi > internal stuff. > Need following patch. Please fold it into corresponding commit. Yinghai [PATCH] sparseirq: Fix kstat_irqs allocation Should allocate array according to cpu num. Also remove extra desc_smp_init() calling, because it is called in desc_set_defaults() already Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx> --- kernel/irq/irqdesc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) Index: linux-2.6/kernel/irq/irqdesc.c =================================================================== --- linux-2.6.orig/kernel/irq/irqdesc.c +++ linux-2.6/kernel/irq/irqdesc.c @@ -130,7 +130,9 @@ static struct irq_desc *alloc_desc(int i desc = kzalloc_node(sizeof(*desc), gfp, node); if (!desc) return NULL; - desc->kstat_irqs = kzalloc_node(sizeof(*desc->kstat_irqs), gfp, node); + /* allocate based on nr_cpu_ids */ + desc->kstat_irqs = kzalloc_node(nr_cpu_ids * sizeof(*desc->kstat_irqs), + gfp, node); if (!desc) goto err_desc; @@ -142,7 +144,6 @@ static struct irq_desc *alloc_desc(int i desc_set_defaults(irq, desc, node); - desc_smp_init(desc, node); return desc; err_kstat: -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html