diff options
| author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-03-12 20:33:51 +0000 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-03-12 20:33:51 +0000 |
| commit | 8688a1a8637c6b833b9b70148809db4538352d2e (patch) | |
| tree | 7b5d6c2d83c8bd1686811501c6287a650c40751b /arch/alpha/kernel/irq.c | |
| parent | 3afdb0f3528991de0833224f2dba60dc061e01fa (diff) | |
| parent | f91f9cd505f92e4227ffda7e5799a33d4f34bf36 (diff) | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-tcc into devel-stable
Diffstat (limited to 'arch/alpha/kernel/irq.c')
| -rw-r--r-- | arch/alpha/kernel/irq.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/arch/alpha/kernel/irq.c b/arch/alpha/kernel/irq.c index 9ab234f48dd..a19d6008229 100644 --- a/arch/alpha/kernel/irq.c +++ b/arch/alpha/kernel/irq.c @@ -44,11 +44,16 @@ static char irq_user_affinity[NR_IRQS]; int irq_select_affinity(unsigned int irq) { - struct irq_desc *desc = irq_to_desc[irq]; + struct irq_data *data = irq_get_irq_data(irq); + struct irq_chip *chip; static int last_cpu; int cpu = last_cpu + 1; - if (!desc || !get_irq_desc_chip(desc)->set_affinity || irq_user_affinity[irq]) + if (!data) + return 1; + chip = irq_data_get_irq_chip(data); + + if (!chip->irq_set_affinity || irq_user_affinity[irq]) return 1; while (!cpu_possible(cpu) || @@ -56,8 +61,8 @@ int irq_select_affinity(unsigned int irq) cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0); last_cpu = cpu; - cpumask_copy(desc->affinity, cpumask_of(cpu)); - get_irq_desc_chip(desc)->set_affinity(irq, cpumask_of(cpu)); + cpumask_copy(data->affinity, cpumask_of(cpu)); + chip->irq_set_affinity(data, cpumask_of(cpu), false); return 0; } #endif /* CONFIG_SMP */ |
