blob: b579a3dbbfa546c828c447ccc87131ad79301b30 [file] [log] [blame]
From f1cd888433a0f04806f0074ea3572eb79f781274 Mon Sep 17 00:00:00 2001
From: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
Date: Wed, 23 Oct 2019 11:48:02 +0530
Subject: [PATCH] [HACK]: spinlock: send explicit event after store release
instruction
stlr instruction in the spin_unlock function is expected to send an
implicit event to all CPU cores. In a cross chip scenario, FVP has
stability issues while sending this implicit event across chips.
To avoid the stability issues, add sev instruction which sends explicit
events to all cores. Explicit events are propagated across chips without
any stability issues.
Change-Id: I94db4f940e98f9b60f4120d0bde4930f9d31440c
Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
---
lib/locks/exclusive/aarch64/spinlock.S | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/locks/exclusive/aarch64/spinlock.S b/lib/locks/exclusive/aarch64/spinlock.S
index e941b8a34..2c01a3bee 100644
--- a/lib/locks/exclusive/aarch64/spinlock.S
+++ b/lib/locks/exclusive/aarch64/spinlock.S
@@ -71,5 +71,6 @@ endfunc spin_lock
*/
func spin_unlock
stlr wzr, [x0]
+ sev
ret
endfunc spin_unlock
--
2.17.1