/* Mark the inuse vectors */
        for_each_irq_desc(irq, desc) {
-               if (!desc)
-                       continue;
                cfg = desc->chip_data;
                if (!cpu_isset(cpu, cfg->domain))
                        continue;
        for_each_irq_desc(irq, desc) {
                struct irq_pin_list *entry;
 
-               if (!desc)
-                       continue;
                cfg = desc->chip_data;
                entry = cfg->irq_2_pin;
                if (!entry)
        struct irq_desc *desc;
 
        for_each_irq_desc(irq, desc) {
-               if (!desc)
-                       continue;
-
                if (desc->status & IRQ_MOVE_PENDING) {
                        unsigned long flags;
 
         * 0x80, because int 0x80 is hm, kind of importantish. ;)
         */
        for_each_irq_desc(irq, desc) {
-               if (!desc)
-                       continue;
-
                cfg = desc->chip_data;
                if (IO_APIC_IRQ(irq) && cfg && !cfg->vector) {
                        /*
 
 
        /* By default all event channels notify CPU#0. */
        for_each_irq_desc(i, desc) {
-               if (!desc)
-                       continue;
-
                desc->affinity = cpumask_of_cpu(0);
        }
 #endif
 
 
 # define for_each_irq_desc(irq, desc)                                  \
        for (irq = 0, desc = irq_to_desc(irq); irq < nr_irqs;           \
-            irq++, desc = irq_to_desc(irq))
+            irq++, desc = irq_to_desc(irq))                            \
+               if (desc)
+
+
 # define for_each_irq_desc_reverse(irq, desc)                          \
        for (irq = nr_irqs - 1, desc = irq_to_desc(irq); irq >= 0;      \
-            irq--, desc = irq_to_desc(irq))
+            irq--, desc = irq_to_desc(irq))                            \
+               if (desc)
 
 #endif /* CONFIG_GENERIC_HARDIRQS */
 
 
         * flush such a longstanding irq before considering it as spurious.
         */
        for_each_irq_desc_reverse(i, desc) {
-               if (!desc)
-                       continue;
-
                spin_lock_irq(&desc->lock);
                if (!desc->action && !(desc->status & IRQ_NOPROBE)) {
                        /*
         * happened in the previous stage, it may have masked itself)
         */
        for_each_irq_desc_reverse(i, desc) {
-               if (!desc)
-                       continue;
-
                spin_lock_irq(&desc->lock);
                if (!desc->action && !(desc->status & IRQ_NOPROBE)) {
                        desc->status |= IRQ_AUTODETECT | IRQ_WAITING;
         * Now filter out any obviously spurious interrupts
         */
        for_each_irq_desc(i, desc) {
-               if (!desc)
-                       continue;
-
                spin_lock_irq(&desc->lock);
                status = desc->status;
 
        int i;
 
        for_each_irq_desc(i, desc) {
-               if (!desc)
-                       continue;
-
                spin_lock_irq(&desc->lock);
                status = desc->status;
 
        unsigned int status;
 
        for_each_irq_desc(i, desc) {
-               if (!desc)
-                       continue;
-
                spin_lock_irq(&desc->lock);
                status = desc->status;
 
 
        int i;
 
        for_each_irq_desc(i, desc) {
-               if (!desc)
-                       continue;
-
                lockdep_set_class(&desc->lock, &irq_desc_lock_class);
        }
 }
 
        int i, ok = 0;
 
        for_each_irq_desc(i, desc) {
-               if (!desc)
-                       continue;
-
                if (!i)
                         continue;
 
        for_each_irq_desc(i, desc) {
                unsigned int status;
 
-               if (!desc)
-                       continue;
                if (!i)
                         continue;