generic: add irq_desc in function in parameter

So we could remove some duplicated calling to irq_desc

v2: make sure irq_desc in  init/main.c is not used without generic_hardirqs

Signed-off-by: Yinghai Lu <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
This commit is contained in:
Yinghai Lu 2008-08-19 20:50:15 -07:00 • committed by Ingo Molnar
commit 46926b67fc
4 changed files with 47 additions and 5 deletions

View file

@ -197,6 +197,21 @@ struct irq_desc *irq_to_desc(unsigned int irq)
* we run out of pre-allocate ones, allocate more
*/
printk(KERN_DEBUG "try to get more irq_desc %d\n", nr_irq_desc);
{
/* double check if some one mess up the list */
struct irq_desc *desc;
int count = 0;
desc = &sparse_irqs[0];
while (desc) {
printk(KERN_DEBUG "found irq_desc for irq %d\n", desc->irq);
if (desc->next)
printk(KERN_DEBUG "found irq_desc for irq %d and next will be irq %d\n", desc->irq, desc->next->irq);
desc = desc->next;
count++;
}
printk(KERN_DEBUG "all preallocted %d\n", count);
}
total_bytes = sizeof(struct irq_desc) * nr_irq_desc;
if (after_bootmem)
@ -221,6 +236,21 @@ struct irq_desc *irq_to_desc(unsigned int irq)
desc->irq = irq;
desc_pri->next = desc;
{
/* double check if some one mess up the list */
struct irq_desc *desc;
int count = 0;
desc = &sparse_irqs[0];
while (desc) {
printk(KERN_DEBUG "1 found irq_desc for irq %d\n", desc->irq);
if (desc->next)
printk(KERN_DEBUG "1 found irq_desc for irq %d and next will be irq %d\n", desc->irq, desc->next->irq);
desc = desc->next;
count++;
}
printk(KERN_DEBUG "1 all preallocted %d\n", count);
}
return desc;
}