tile: Replace __get_cpu_var uses
[pandora-kernel.git] / arch / tile / kernel / irq.c
index 637f2ff..ba85765 100644 (file)
@@ -73,7 +73,7 @@ static DEFINE_PER_CPU(int, irq_depth);
  */
 void tile_dev_intr(struct pt_regs *regs, int intnum)
 {
-       int depth = __get_cpu_var(irq_depth)++;
+       int depth = __this_cpu_inc_return(irq_depth);
        unsigned long original_irqs;
        unsigned long remaining_irqs;
        struct pt_regs *old_regs;
@@ -120,7 +120,7 @@ void tile_dev_intr(struct pt_regs *regs, int intnum)
 
                /* Count device irqs; Linux IPIs are counted elsewhere. */
                if (irq != IRQ_RESCHEDULE)
-                       __get_cpu_var(irq_stat).irq_dev_intr_count++;
+                       __this_cpu_inc(irq_stat.irq_dev_intr_count);
 
                generic_handle_irq(irq);
        }
@@ -130,10 +130,10 @@ void tile_dev_intr(struct pt_regs *regs, int intnum)
         * including any that were reenabled during interrupt
         * handling.
         */
-       if (depth == 0)
-               unmask_irqs(~__get_cpu_var(irq_disable_mask));
+       if (depth == 1)
+               unmask_irqs(~__this_cpu_read(irq_disable_mask));
 
-       __get_cpu_var(irq_depth)--;
+       __this_cpu_dec(irq_depth);
 
        /*
         * Track time spent against the current process again and
@@ -151,7 +151,7 @@ void tile_dev_intr(struct pt_regs *regs, int intnum)
 static void tile_irq_chip_enable(struct irq_data *d)
 {
        get_cpu_var(irq_disable_mask) &= ~(1UL << d->irq);
-       if (__get_cpu_var(irq_depth) == 0)
+       if (__this_cpu_read(irq_depth) == 0)
                unmask_irqs(1UL << d->irq);
        put_cpu_var(irq_disable_mask);
 }
@@ -197,7 +197,7 @@ static void tile_irq_chip_ack(struct irq_data *d)
  */
 static void tile_irq_chip_eoi(struct irq_data *d)
 {
-       if (!(__get_cpu_var(irq_disable_mask) & (1UL << d->irq)))
+       if (!(__this_cpu_read(irq_disable_mask) & (1UL << d->irq)))
                unmask_irqs(1UL << d->irq);
 }