diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2011-03-24 17:36:37 +0100 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-03-29 14:48:18 +0200 |
commit | 232f1d8591dd1933a39fba5378763f5210dce138 (patch) | |
tree | 0c025926652d799ca5ad441a02b034862e204432 /arch/mn10300/kernel/irq.c | |
parent | f4c547ebb4a3f11e0515433fa4472e34740c10c9 (diff) | |
download | op-kernel-dev-232f1d8591dd1933a39fba5378763f5210dce138.zip op-kernel-dev-232f1d8591dd1933a39fba5378763f5210dce138.tar.gz |
mn10300: Cleanup irq_desc access
The migration needs only access to irq_data.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/mn10300/kernel/irq.c')
-rw-r--r-- | arch/mn10300/kernel/irq.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/arch/mn10300/kernel/irq.c b/arch/mn10300/kernel/irq.c index 4755122..8f9e272 100644 --- a/arch/mn10300/kernel/irq.c +++ b/arch/mn10300/kernel/irq.c @@ -403,23 +403,22 @@ int show_interrupts(struct seq_file *p, void *v) #ifdef CONFIG_HOTPLUG_CPU void migrate_irqs(void) { - irq_desc_t *desc; int irq; unsigned int self, new; unsigned long flags; self = smp_processor_id(); for (irq = 0; irq < NR_IRQS; irq++) { - desc = irq_desc + irq; + struct irq_data *data = irq_get_irq_data(irq); - if (desc->status == IRQ_PER_CPU) + if (irqd_is_per_cpu(data)) continue; - if (cpu_isset(self, irq_desc[irq].affinity) && + if (cpu_isset(self, data->affinity) && !cpus_intersects(irq_affinity[irq], cpu_online_map)) { int cpu_id; cpu_id = first_cpu(cpu_online_map); - cpu_set(cpu_id, irq_desc[irq].affinity); + cpu_set(cpu_id, data->affinity); } /* We need to operate irq_affinity_online atomically. */ arch_local_cli_save(flags); @@ -430,7 +429,7 @@ void migrate_irqs(void) GxICR(irq) = x & GxICR_LEVEL; tmp = GxICR(irq); - new = any_online_cpu(irq_desc[irq].affinity); + new = any_online_cpu(data->affinity); irq_affinity_online[irq] = new; CROSS_GxICR(irq, new) = |