aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-zynqmp-mainline/0006-arm64-spinlock-sev-when-unlocking-locks.patch
blob: bc90a7587f55b8ba42714b054a071da34c07ab74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
From 761cba95ae66984cf60423190aefb3b794774033 Mon Sep 17 00:00:00 2001
From: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Date: Thu, 12 Jun 2014 17:05:43 -0700
Subject: [PATCH 6/7] arm64: spinlock: sev when unlocking locks

Because spinners are doing a wfe in their poll of the lock.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---
 arch/arm64/include/asm/spinlock.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/include/asm/spinlock.h b/arch/arm64/include/asm/spinlock.h
index cee1287..c4df86f 100644
--- a/arch/arm64/include/asm/spinlock.h
+++ b/arch/arm64/include/asm/spinlock.h
@@ -87,6 +87,7 @@ static inline void arch_spin_unlock(arch_spinlock_t *lock)
 {
 	asm volatile(
 "	stlrh	%w1, %0\n"
+"	sev\n"
 	: "=Q" (lock->owner)
 	: "r" (lock->owner + 1)
 	: "memory");
-- 
2.1.1