summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorShanker Donthineni <shankerd@codeaurora.org>2018-01-31 18:03:42 -0600
committerSasha Levin <alexander.levin@microsoft.com>2018-03-04 10:28:34 -0500
commit1bb0e77e4dd294837e99ceb492560074d68c896e (patch)
tree4e2620b8f332770a3783a463f991dfa51349bd4a /drivers
parente7471c9d2bbfb8289a6a141adbd6737101db847c (diff)
irqchip/gic-v3: Use wmb() instead of smb_wmb() in gic_raise_softirq()
[ Upstream commit 21ec30c0ef5234fb1039cc7c7737d885bf875a9e ] A DMB instruction can be used to ensure the relative order of only memory accesses before and after the barrier. Since writes to system registers are not memory operations, barrier DMB is not sufficient for observability of memory accesses that occur before ICC_SGI1R_EL1 writes. A DSB instruction ensures that no instructions that appear in program order after the DSB instruction, can execute until the DSB instruction has completed. Cc: stable@vger.kernel.org Acked-by: Will Deacon <will.deacon@arm.com>, Signed-off-by: Shanker Donthineni <shankerd@codeaurora.org> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/irqchip/irq-gic-v3.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
index 9976c37b9c64..f2b3a0152860 100644
--- a/drivers/irqchip/irq-gic-v3.c
+++ b/drivers/irqchip/irq-gic-v3.c
@@ -584,7 +584,7 @@ static void gic_raise_softirq(const struct cpumask *mask, unsigned int irq)
* Ensure that stores to Normal memory are visible to the
* other CPUs before issuing the IPI.
*/
- smp_wmb();
+ wmb();
for_each_cpu(cpu, mask) {
u64 cluster_id = cpu_logical_map(cpu) & ~0xffUL;