Skip to content

Commit

Permalink
sparseirq: fix hang with !SPARSE_IRQ
Browse files Browse the repository at this point in the history
Impact: fix hang

Suresh report his two sockets system only works with SPARSE_IRQ enable
it turns out we miss the setting desc->irq

so provide early_irq_init() even !SPARSE_IRQ to set desc->irq

Reported-by: "Siddha, Suresh B" <suresh.b.siddha@intel.com>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Yinghai Lu authored and Ingo Molnar committed Dec 27, 2008
1 parent fa6beb3 commit 12026ea
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions kernel/irq/handle.c
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,21 @@ struct irq_desc irq_desc[NR_IRQS] __cacheline_aligned_in_smp = {
}
};

int __init early_irq_init(void)
{
struct irq_desc *desc;
int count;
int i;

desc = irq_desc;
count = ARRAY_SIZE(irq_desc);

for (i = 0; i < count; i++)
desc[i].irq = i;

return arch_early_irq_init();
}

struct irq_desc *irq_to_desc(unsigned int irq)
{
return (irq < NR_IRQS) ? irq_desc + irq : NULL;
Expand Down

0 comments on commit 12026ea

Please sign in to comment.