summaryrefslogtreecommitdiffstats
path: root/drivers/irqchip
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2017-10-09 14:17:43 +0200
committerMarc Zyngier <marc.zyngier@arm.com>2017-10-19 12:22:42 +0200
commit3c1cceeb3d2879d98eda7afd62838fde7b0f920d (patch)
tree3b8a98951bbc9f12b5a85a7406a16aad603deadd /drivers/irqchip
parentirqchip/gic-v3-its: Limit scope of VPE mapping to be per ITS (diff)
downloadlinux-3c1cceeb3d2879d98eda7afd62838fde7b0f920d.tar.xz
linux-3c1cceeb3d2879d98eda7afd62838fde7b0f920d.zip
irqchip/gic-v3-its: Only send VINVALL to a single ITS
Sending VINVALL to all ITSs is completely pointless, as all we're trying to achieve is to tell the redistributor that the property table for this VPE should be invalidated. Let's issue the command on the first valid ITS and be done with it. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'drivers/irqchip')
-rw-r--r--drivers/irqchip/irq-gic-v3-its.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index dc0ece20f964..bc7099352cc9 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -2527,7 +2527,12 @@ static void its_vpe_invall(struct its_vpe *vpe)
if (its_list_map && !vpe->its_vm->vlpi_count[its->list_nr])
continue;
+ /*
+ * Sending a VINVALL to a single ITS is enough, as all
+ * we need is to reach the redistributors.
+ */
its_send_vinvall(its, vpe);
+ return;
}
}