diff options
author | Ingo Molnar <mingo@kernel.org> | 2012-06-18 11:09:49 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2012-06-18 11:09:49 +0200 |
commit | 8461689c67fc2ad3040bc019cccb541bccb5648f (patch) | |
tree | eafcf756975739ef04aa91be2e053d6e1e8b9ccb /arch/x86/platform/uv/uv_irq.c | |
parent | d48daf37a3d2e2b28a61e615c0fc538301edb0dd (diff) | |
parent | 7eb9ae0799b1e9f0b77733b432bc5f6f055b020b (diff) | |
download | linux-8461689c67fc2ad3040bc019cccb541bccb5648f.tar.gz linux-8461689c67fc2ad3040bc019cccb541bccb5648f.tar.bz2 linux-8461689c67fc2ad3040bc019cccb541bccb5648f.zip |
Merge branch 'x86/apic' into x86/platform
Merge in x86/apic to solve a vector_allocation_domain() API change semantic merge conflict.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/platform/uv/uv_irq.c')
-rw-r--r-- | arch/x86/platform/uv/uv_irq.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/x86/platform/uv/uv_irq.c b/arch/x86/platform/uv/uv_irq.c index f25c2765a5c9..acf7752da952 100644 --- a/arch/x86/platform/uv/uv_irq.c +++ b/arch/x86/platform/uv/uv_irq.c @@ -135,6 +135,7 @@ arch_enable_uv_irq(char *irq_name, unsigned int irq, int cpu, int mmr_blade, unsigned long mmr_value; struct uv_IO_APIC_route_entry *entry; int mmr_pnode, err; + unsigned int dest; BUILD_BUG_ON(sizeof(struct uv_IO_APIC_route_entry) != sizeof(unsigned long)); @@ -143,6 +144,10 @@ arch_enable_uv_irq(char *irq_name, unsigned int irq, int cpu, int mmr_blade, if (err != 0) return err; + err = apic->cpu_mask_to_apicid_and(eligible_cpu, eligible_cpu, &dest); + if (err != 0) + return err; + if (limit == UV_AFFINITY_CPU) irq_set_status_flags(irq, IRQ_NO_BALANCING); else @@ -159,7 +164,7 @@ arch_enable_uv_irq(char *irq_name, unsigned int irq, int cpu, int mmr_blade, entry->polarity = 0; entry->trigger = 0; entry->mask = 0; - entry->dest = apic->cpu_mask_to_apicid(eligible_cpu); + entry->dest = dest; mmr_pnode = uv_blade_to_pnode(mmr_blade); uv_write_global_mmr64(mmr_pnode, mmr_offset, mmr_value); @@ -222,7 +227,7 @@ uv_set_irq_affinity(struct irq_data *data, const struct cpumask *mask, if (cfg->move_in_progress) send_cleanup_vector(cfg); - return 0; + return IRQ_SET_MASK_OK_NOCOPY; } /* |