Most of the functions already check. Do the ones that didn't.
Signed-off-by: Matthew Wilcox <matthew@wil.cx>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
 {
        struct irq_desc *desc = irq_desc + irq;
 
+       if (irq >= NR_IRQS)
+               return;
+
        while (desc->status & IRQ_INPROGRESS)
                cpu_relax();
 }
        irq_desc_t *desc = irq_desc + irq;
        unsigned long flags;
 
+       if (irq >= NR_IRQS)
+               return;
+
        spin_lock_irqsave(&desc->lock, flags);
        if (!desc->depth++) {
                desc->status |= IRQ_DISABLED;
 {
        irq_desc_t *desc = irq_desc + irq;
 
+       if (irq >= NR_IRQS)
+               return;
+
        disable_irq_nosync(irq);
        if (desc->action)
                synchronize_irq(irq);
        irq_desc_t *desc = irq_desc + irq;
        unsigned long flags;
 
+       if (irq >= NR_IRQS)
+               return;
+
        spin_lock_irqsave(&desc->lock, flags);
        switch (desc->depth) {
        case 0:
        unsigned long flags;
        int shared = 0;
 
+       if (irq >= NR_IRQS)
+               return -EINVAL;
+
        if (desc->handler == &no_irq_type)
                return -ENOSYS;
        /*