From 95cd5f8f94a3fd36c9b183bd146e8caa39672230 Mon Sep 17 00:00:00 2001 From: Quentin Perret Date: Wed, 17 May 2023 08:59:50 +0000 Subject: [PATCH] Revert "ANDROID: Partially Revert "ANDROID: KVM: arm64: Allow tweaking HFGWTR_EL2 from modules"" This reverts commit 6cf9fb45795ab6b557101cc759e77aa547a4cbe9. It was a temporary workaround which will be replaced a proper fix shortly. Bug: 282917063 Bug: 282993310 Change-Id: I0caec4a63aabaecbf3fa7ec5d5b4c6930ea6efcd Signed-off-by: Quentin Perret --- arch/arm64/kvm/hyp/nvhe/hyp-init.S | 3 +++ arch/arm64/kvm/hyp/nvhe/modules.c | 9 ++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-init.S b/arch/arm64/kvm/hyp/nvhe/hyp-init.S index a6d67c2bb5ae..e7b375ec6460 100644 --- a/arch/arm64/kvm/hyp/nvhe/hyp-init.S +++ b/arch/arm64/kvm/hyp/nvhe/hyp-init.S @@ -95,6 +95,9 @@ SYM_CODE_START_LOCAL(___kvm_hyp_init) ldr x1, [x0, #NVHE_INIT_HCR_EL2] msr hcr_el2, x1 + ldr x1, [x0, #NVHE_INIT_HFGWTR_EL2] + msr_s SYS_HFGWTR_EL2, x1 + ldr x1, [x0, #NVHE_INIT_VTTBR] msr vttbr_el2, x1 diff --git a/arch/arm64/kvm/hyp/nvhe/modules.c b/arch/arm64/kvm/hyp/nvhe/modules.c index 257a43a0b2f7..138e0d68e95a 100644 --- a/arch/arm64/kvm/hyp/nvhe/modules.c +++ b/arch/arm64/kvm/hyp/nvhe/modules.c @@ -29,9 +29,12 @@ static void __update_hcr_el2(unsigned long set_mask, unsigned long clear_mask) static void __update_hfgwtr_el2(unsigned long set_mask, unsigned long clear_mask) { - /* TODO (b/282917063): need to check whether FEAT_FGT is supported - * before we can access HFGWTR_EL2. */ - return; + struct kvm_nvhe_init_params *params = this_cpu_ptr(&kvm_init_params); + + params->hfgwtr_el2 |= set_mask; + params->hfgwtr_el2 &= ~clear_mask; + __kvm_flush_dcache_to_poc(params, sizeof(*params)); + write_sysreg_s(params->hfgwtr_el2, SYS_HFGWTR_EL2); } static atomic_t early_lm_pages;