diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2011-03-25 16:36:35 +0100 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-03-29 14:48:12 +0200 |
commit | 7bfbc1f28311d680e45d7122ecd48dec57703750 (patch) | |
tree | 0ea125a5b417aadab4375219d71d22eb7eb99d27 /arch | |
parent | ddaedd1c4aa0762563ca0cfdb22bbd8ef3ef785a (diff) | |
download | linux-3.10-7bfbc1f28311d680e45d7122ecd48dec57703750.tar.gz linux-3.10-7bfbc1f28311d680e45d7122ecd48dec57703750.tar.bz2 linux-3.10-7bfbc1f28311d680e45d7122ecd48dec57703750.zip |
powerpc: irq: Use irqdata based information
We want to tighten the irq_desc access. So use the new accessors for
the same information.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/kernel/irq.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c index 8f7da4402e9..58d40126532 100644 --- a/arch/powerpc/kernel/irq.c +++ b/arch/powerpc/kernel/irq.c @@ -276,7 +276,7 @@ int show_interrupts(struct seq_file *p, void *v) seq_printf(p, " %-16s", chip->name); else seq_printf(p, " %-16s", "None"); - seq_printf(p, " %-8s", (desc->status & IRQ_LEVEL) ? "Level" : "Edge"); + seq_printf(p, " %-8s", (irqd_is_level_type(&desc->irq_data) ? "Level" : "Edge"); if (action) { seq_printf(p, " %s", action->name); @@ -315,24 +315,26 @@ void fixup_irqs(const struct cpumask *map) alloc_cpumask_var(&mask, GFP_KERNEL); for_each_irq(irq) { + struct irq_data *data; struct irq_chip *chip; desc = irq_to_desc(irq); if (!desc) continue; - if (desc->status & IRQ_PER_CPU) + data = irq_desc_get_irq_data(desc); + if (irqd_is_per_cpu(data)) continue; - chip = get_irq_desc_chip(desc); + chip = irq_data_get_irq_chip(data); - cpumask_and(mask, desc->irq_data.affinity, map); + cpumask_and(mask, data->affinity, map); if (cpumask_any(mask) >= nr_cpu_ids) { printk("Breaking affinity for irq %i\n", irq); cpumask_copy(mask, map); } if (chip->irq_set_affinity) - chip->irq_set_affinity(&desc->irq_data, mask, true); + chip->irq_set_affinity(data, mask, true); else if (desc->action && !(warned++)) printk("Cannot set affinity for irq %i\n", irq); } @@ -827,7 +829,7 @@ unsigned int irq_create_of_mapping(struct device_node *controller, /* Set type if specified and different than the current one */ if (type != IRQ_TYPE_NONE && - type != (irq_to_desc(virq)->status & IRQF_TRIGGER_MASK)) + type != (irqd_get_trigger_type(irq_get_irq_data(virq)))) set_irq_type(virq, type); return virq; } |