The initial EL2 setup for GCS did not include disabling of EL1 usage of
GCS instructions, also disable these traps.

Fixes: ff5181d8a2a8 ("arm64/gcs: Provide basic EL2 setup to allow GCS usage at 
EL0 and EL1")
Signed-off-by: Mark Brown <[email protected]>
---
 arch/arm64/include/asm/el2_setup.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/include/asm/el2_setup.h 
b/arch/arm64/include/asm/el2_setup.h
index aa8ec9df8024..d308c6e6757d 100644
--- a/arch/arm64/include/asm/el2_setup.h
+++ b/arch/arm64/include/asm/el2_setup.h
@@ -393,6 +393,11 @@
        orr     x0, x0, #HFGRTR_EL2_nGCS_EL1_MASK
        orr     x0, x0, #HFGRTR_EL2_nGCS_EL0_MASK
 
+       /* Disable traps of GCS instructions at EL1 */
+       orr     x2, x2, #HFGITR_EL2_nGCSEPP_MASK
+       orr     x2, x2, #HFGITR_EL2_nGCSSTR_EL1_MASK
+       orr     x2, x2, #HFGITR_EL2_nGCSPUSHM_EL1_MASK
+
 .Lskip_gce_fgt_\@:
 
 .Lset_fgt_\@:

-- 
2.47.3


Reply via email to