]> Pileus Git - ~andy/linux/commitdiff
x86: Use the proper accessors in fixup_irqs()
authorThomas Gleixner <tglx@linutronix.de>
Thu, 10 Feb 2011 20:40:36 +0000 (21:40 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Sat, 12 Mar 2011 13:12:00 +0000 (14:12 +0100)
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/kernel/irq.c

index 78793efd3180de36f9db62e443296ed0139a620b..00bf99df583c311ad4efebe5ce0f491a8e1abbc0 100644 (file)
@@ -293,6 +293,7 @@ void fixup_irqs(void)
        static int warned;
        struct irq_desc *desc;
        struct irq_data *data;
+       struct irq_chip *chip;
 
        for_each_irq_desc(irq, desc) {
                int break_affinity = 0;
@@ -307,7 +308,7 @@ void fixup_irqs(void)
                /* interrupt's are disabled at this point */
                raw_spin_lock(&desc->lock);
 
-               data = &desc->irq_data;
+               data = irq_desc_get_irq_data(desc);
                affinity = data->affinity;
                if (!irq_has_action(irq) ||
                    cpumask_subset(affinity, cpu_online_mask)) {
@@ -327,16 +328,17 @@ void fixup_irqs(void)
                        affinity = cpu_all_mask;
                }
 
-               if (!(desc->status & IRQ_MOVE_PCNTXT) && data->chip->irq_mask)
-                       data->chip->irq_mask(data);
+               chip = irq_data_get_irq_chip(data);
+               if (!irqd_can_move_in_process_context(data) && chip->irq_mask)
+                       chip->irq_mask(data);
 
-               if (data->chip->irq_set_affinity)
-                       data->chip->irq_set_affinity(data, affinity, true);
+               if (chip->irq_set_affinity)
+                       chip->irq_set_affinity(data, affinity, true);
                else if (!(warned++))
                        set_affinity = 0;
 
-               if (!(desc->status & IRQ_MOVE_PCNTXT) && data->chip->irq_unmask)
-                       data->chip->irq_unmask(data);
+               if (!irqd_can_move_in_process_context(data) && chip->irq_unmask)
+                       chip->irq_unmask(data);
 
                raw_spin_unlock(&desc->lock);
 
@@ -368,10 +370,11 @@ void fixup_irqs(void)
                        irq = __this_cpu_read(vector_irq[vector]);
 
                        desc = irq_to_desc(irq);
-                       data = &desc->irq_data;
+                       data = irq_desc_get_irq_data(desc);
+                       chip = irq_data_get_irq_chip(data);
                        raw_spin_lock(&desc->lock);
-                       if (data->chip->irq_retrigger)
-                               data->chip->irq_retrigger(data);
+                       if (chip->irq_retrigger)
+                               chip->irq_retrigger(data);
                        raw_spin_unlock(&desc->lock);
                }
        }