|
@@ -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);
|
|
|
}
|
|
|
|