| 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 |
| |