diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2011-03-24 12:36:37 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-03-29 08:48:18 -0400 |
commit | 232f1d8591dd1933a39fba5378763f5210dce138 (patch) | |
tree | 0c025926652d799ca5ad441a02b034862e204432 /arch/mn10300 | |
parent | f4c547ebb4a3f11e0515433fa4472e34740c10c9 (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')
-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 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 |
404 | void migrate_irqs(void) | 404 | void 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) = |