aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-07-08 11:59:33 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-07-08 11:59:33 -0400
commit977dcf0c475eaefa334f6bf6b63d27742d0eade5 (patch)
tree79490f31f982c98dbe42e5da35438c4ce4188081
parent18b16676c36ae6e438ddb543bbb45accbbc4f901 (diff)
parent547aefc4db877e65245c3d95fcce703701bf3a0c (diff)
Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq fixes from Ingo Molnar: "Two MIPS-GIC irqchip driver fixes to unbreak certain MIPS boards" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/mips-gic: Match IPI IRQ domain by bus token only irqchip/mips-gic: Map to VPs using HW VPNum
-rw-r--r--drivers/irqchip/irq-mips-gic.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/irqchip/irq-mips-gic.c b/drivers/irqchip/irq-mips-gic.c
index 8a4adbeb2b8c..70ed1d0151b8 100644
--- a/drivers/irqchip/irq-mips-gic.c
+++ b/drivers/irqchip/irq-mips-gic.c
@@ -718,7 +718,7 @@ static int gic_shared_irq_domain_map(struct irq_domain *d, unsigned int virq,
718 718
719 spin_lock_irqsave(&gic_lock, flags); 719 spin_lock_irqsave(&gic_lock, flags);
720 gic_map_to_pin(intr, gic_cpu_pin); 720 gic_map_to_pin(intr, gic_cpu_pin);
721 gic_map_to_vpe(intr, vpe); 721 gic_map_to_vpe(intr, mips_cm_vp_id(vpe));
722 for (i = 0; i < min(gic_vpes, NR_CPUS); i++) 722 for (i = 0; i < min(gic_vpes, NR_CPUS); i++)
723 clear_bit(intr, pcpu_masks[i].pcpu_mask); 723 clear_bit(intr, pcpu_masks[i].pcpu_mask);
724 set_bit(intr, pcpu_masks[vpe].pcpu_mask); 724 set_bit(intr, pcpu_masks[vpe].pcpu_mask);
@@ -959,7 +959,7 @@ int gic_ipi_domain_match(struct irq_domain *d, struct device_node *node,
959 switch (bus_token) { 959 switch (bus_token) {
960 case DOMAIN_BUS_IPI: 960 case DOMAIN_BUS_IPI:
961 is_ipi = d->bus_token == bus_token; 961 is_ipi = d->bus_token == bus_token;
962 return to_of_node(d->fwnode) == node && is_ipi; 962 return (!node || to_of_node(d->fwnode) == node) && is_ipi;
963 break; 963 break;
964 default: 964 default:
965 return 0; 965 return 0;