From e627106266ad8785457fadbf5bf67ed604d2a353 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Mon, 11 May 2020 11:20:02 +0200 Subject: POWER: Add context-synchronizing instructions to pkey_write [BZ #25954] Sandipan Das reported that, "The Power ISA mandates that all writes to the Authority Mask Register (AMR) must always be preceded as well as succeeded by a context-synchronizing instruction. This applies to both the privileged and unprivileged variants of the Move To AMR instruction. This [requirement] is from Table 6 of Chapter 11 in page 1134 of Power ISA 3.0B. The document can be found here: " See this kernel patch submission: --- sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-pkey.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sysdeps/unix') diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-pkey.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-pkey.h index 623b073d5a..25d080c9a6 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-pkey.h +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-pkey.h @@ -37,7 +37,7 @@ pkey_read (void) static inline void pkey_write (unsigned long int value) { - __asm__ volatile ("mtspr 13, %0" : : "r" (value)); + __asm__ volatile ("isync; mtspr 13, %0; isync" : : "r" (value)); } /* Number of the largest supported key. This depends on the width of -- cgit 1.4.1