aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mn10300/kernel/irq.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2011-03-24 12:36:37 -0400
committerThomas Gleixner <tglx@linutronix.de>2011-03-29 08:48:18 -0400
commit232f1d8591dd1933a39fba5378763f5210dce138 (patch)
tree0c025926652d799ca5ad441a02b034862e204432 /arch/mn10300/kernel/irq.c
parentf4c547ebb4a3f11e0515433fa4472e34740c10c9 (diff)
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.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/arch/mn10300/kernel/irq.c b/arch/mn10300/kernel/irq.c
index 475512263475..8f9e272f2a39 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)
403#ifdef CONFIG_HOTPLUG_CPU 403#ifdef CONFIG_HOTPLUG_CPU
404void migrate_irqs(void) 404void migrate_irqs(void)
405{ 405{
406 irq_desc_t *desc;
407 int irq; 406 int irq;
408 unsigned int self, new; 407 unsigned int self, new;
409 unsigned long flags; 408 unsigned long flags;
410 409
411 self = smp_processor_id(); 410 self = smp_processor_id();
412 for (irq = 0; irq < NR_IRQS; irq++) { 411 for (irq = 0; irq < NR_IRQS; irq++) {
413 desc = irq_desc + irq; 412 struct irq_data *data = irq_get_irq_data(irq);
414 413
415 if (desc->status == IRQ_PER_CPU) 414 if (irqd_is_per_cpu(data))
416 continue; 415 continue;
417 416
418 if (cpu_isset(self, irq_desc[irq].affinity) && 417 if (cpu_isset(self, data->affinity) &&
419 !cpus_intersects(irq_affinity[irq], cpu_online_map)) { 418 !cpus_intersects(irq_affinity[irq], cpu_online_map)) {
420 int cpu_id; 419 int cpu_id;
421 cpu_id = first_cpu(cpu_online_map); 420 cpu_id = first_cpu(cpu_online_map);
422 cpu_set(cpu_id, irq_desc[irq].affinity); 421 cpu_set(cpu_id, data->affinity);
423 } 422 }
424 /* We need to operate irq_affinity_online atomically. */ 423 /* We need to operate irq_affinity_online atomically. */
425 arch_local_cli_save(flags); 424 arch_local_cli_save(flags);
@@ -430,7 +429,7 @@ void migrate_irqs(void)
430 GxICR(irq) = x & GxICR_LEVEL; 429 GxICR(irq) = x & GxICR_LEVEL;
431 tmp = GxICR(irq); 430 tmp = GxICR(irq);
432 431
433 new = any_online_cpu(irq_desc[irq].affinity); 432 new = any_online_cpu(data->affinity);
434 irq_affinity_online[irq] = new; 433 irq_affinity_online[irq] = new;
435 434
436 CROSS_GxICR(irq, new) = 435 CROSS_GxICR(irq, new) =