irq: simplify for_each_irq_desc() usage
authorKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Fri, 26 Dec 2008 03:29:48 +0000 (12:29 +0900)
committerIngo Molnar <mingo@elte.hu>
Fri, 26 Dec 2008 08:48:18 +0000 (09:48 +0100)
Impact: cleanup

all for_each_irq_desc() usage point have !desc check.
then its check can move into for_each_irq_desc() macro.

Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Acked-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/io_apic.c
drivers/xen/events.c
include/linux/irqnr.h
kernel/irq/autoprobe.c
kernel/irq/handle.c
kernel/irq/spurious.c

index a74887b..2fe543f 100644 (file)
@@ -1345,8 +1345,6 @@ void __setup_vector_irq(int cpu)
 
        /* Mark the inuse vectors */
        for_each_irq_desc(irq, desc) {
-               if (!desc)
-                       continue;
                cfg = desc->chip_data;
                if (!cpu_isset(cpu, cfg->domain))
                        continue;
@@ -1730,8 +1728,6 @@ __apicdebuginit(void) print_IO_APIC(void)
        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)
@@ -2378,9 +2374,6 @@ static void ir_irq_migration(struct work_struct *work)
        struct irq_desc *desc;
 
        for_each_irq_desc(irq, desc) {
-               if (!desc)
-                       continue;
-
                if (desc->status & IRQ_MOVE_PENDING) {
                        unsigned long flags;
 
@@ -2671,9 +2664,6 @@ static inline void init_IO_APIC_traps(void)
         * 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) {
                        /*
index 46625cd..e26733a 100644 (file)
@@ -142,9 +142,6 @@ static void init_evtchn_cpu_bindings(void)
 
        /* By default all event channels notify CPU#0. */
        for_each_irq_desc(i, desc) {
-               if (!desc)
-                       continue;
-
                desc->affinity = cpumask_of_cpu(0);
        }
 #endif
index c4a59c7..5504a5c 100644 (file)
@@ -22,10 +22,14 @@ extern struct irq_desc *irq_to_desc(unsigned int irq);
 
 # 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 */
 
index 650ce41..cc0f732 100644 (file)
@@ -40,9 +40,6 @@ unsigned long probe_irq_on(void)
         * 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)) {
                        /*
@@ -71,9 +68,6 @@ unsigned long probe_irq_on(void)
         * 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;
@@ -92,9 +86,6 @@ unsigned long probe_irq_on(void)
         * Now filter out any obviously spurious interrupts
         */
        for_each_irq_desc(i, desc) {
-               if (!desc)
-                       continue;
-
                spin_lock_irq(&desc->lock);
                status = desc->status;
 
@@ -133,9 +124,6 @@ unsigned int probe_irq_mask(unsigned long val)
        int i;
 
        for_each_irq_desc(i, desc) {
-               if (!desc)
-                       continue;
-
                spin_lock_irq(&desc->lock);
                status = desc->status;
 
@@ -178,9 +166,6 @@ int probe_irq_off(unsigned long val)
        unsigned int status;
 
        for_each_irq_desc(i, desc) {
-               if (!desc)
-                       continue;
-
                spin_lock_irq(&desc->lock);
                status = desc->status;
 
index 03479df..7dbdfe5 100644 (file)
@@ -437,9 +437,6 @@ void early_init_irq_lock_class(void)
        int i;
 
        for_each_irq_desc(i, desc) {
-               if (!desc)
-                       continue;
-
                lockdep_set_class(&desc->lock, &irq_desc_lock_class);
        }
 }
index 3738107..dd364c1 100644 (file)
@@ -91,9 +91,6 @@ static int misrouted_irq(int irq)
        int i, ok = 0;
 
        for_each_irq_desc(i, desc) {
-               if (!desc)
-                       continue;
-
                if (!i)
                         continue;
 
@@ -115,8 +112,6 @@ static void poll_spurious_irqs(unsigned long dummy)
        for_each_irq_desc(i, desc) {
                unsigned int status;
 
-               if (!desc)
-                       continue;
                if (!i)
                         continue;