irqchip: mips-gic: Convert CPU numbers to VP IDs.
Make use of the mips_cm_vp_id function to convert from Linux CPU numbers to the VP IDs used by hardware, which are not identical in all systems. Without doing so we map interrupts to incorrect VP(E)s. Signed-off-by: Paul Burton <paul.burton@imgtec.com> Acked-by: Thomas Gleixner <tglx@linutronix.de> Cc: linux-mips@linux-mips.org Cc: Paul Burton <paul.burton@imgtec.com> Cc: Marc Zyngier <marc.zyngier@arm.com> Cc: Jason Cooper <jason@lakedaemon.net> Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11212/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
7573b94e08
commit
ab41f6c862
1 changed files with 2 additions and 2 deletions
|
@ -426,7 +426,7 @@ static int gic_set_affinity(struct irq_data *d, const struct cpumask *cpumask,
|
|||
spin_lock_irqsave(&gic_lock, flags);
|
||||
|
||||
/* Re-route this IRQ */
|
||||
gic_map_to_vpe(irq, cpumask_first(&tmp));
|
||||
gic_map_to_vpe(irq, mips_cm_vp_id(cpumask_first(&tmp)));
|
||||
|
||||
/* Update the pcpu_masks */
|
||||
for (i = 0; i < NR_CPUS; i++)
|
||||
|
@ -599,7 +599,7 @@ static __init void gic_ipi_init_one(unsigned int intr, int cpu,
|
|||
GIC_SHARED_TO_HWIRQ(intr));
|
||||
int i;
|
||||
|
||||
gic_map_to_vpe(intr, cpu);
|
||||
gic_map_to_vpe(intr, mips_cm_vp_id(cpu));
|
||||
for (i = 0; i < NR_CPUS; i++)
|
||||
clear_bit(intr, pcpu_masks[i].pcpu_mask);
|
||||
set_bit(intr, pcpu_masks[cpu].pcpu_mask);
|
||||
|
|
Loading…
Reference in a new issue