projects
/
linux-block.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
44f979b
)
KVM: arm64: Initialize HCRX_EL2 traps in pKVM
author
Fuad Tabba
<tabba@google.com>
Fri, 14 Mar 2025 11:18:30 +0000
(11:18 +0000)
committer
Oliver Upton
<oliver.upton@linux.dev>
Fri, 14 Mar 2025 23:00:49 +0000
(16:00 -0700)
Initialize and set the traps controlled by the HCRX_EL2 in pKVM.
Reviewed-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Fuad Tabba <tabba@google.com>
Link:
https://lore.kernel.org/r/20250314111832.4137161-3-tabba@google.com
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
arch/arm64/kvm/hyp/nvhe/pkvm.c
patch
|
blob
|
blame
|
history
diff --git
a/arch/arm64/kvm/hyp/nvhe/pkvm.c
b/arch/arm64/kvm/hyp/nvhe/pkvm.c
index ac85bc51b8d3110192851faeaa07c706e4acf5c5..c34a6da5fbecc12e54da8c2f5571c8cdc56bfb29 100644
(file)
--- a/
arch/arm64/kvm/hyp/nvhe/pkvm.c
+++ b/
arch/arm64/kvm/hyp/nvhe/pkvm.c
@@
-166,8
+166,13
@@
static int pkvm_vcpu_init_traps(struct pkvm_hyp_vcpu *hyp_vcpu)
pkvm_vcpu_reset_hcr(vcpu);
- if ((!pkvm_hyp_vcpu_is_protected(hyp_vcpu)))
+ if ((!pkvm_hyp_vcpu_is_protected(hyp_vcpu))) {
+ struct kvm_vcpu *host_vcpu = hyp_vcpu->host_vcpu;
+
+ /* Trust the host for non-protected vcpu features. */
+ vcpu->arch.hcrx_el2 = host_vcpu->arch.hcrx_el2;
return 0;
+ }
ret = pkvm_check_pvm_cpu_features(vcpu);
if (ret)
@@
-175,6
+180,7
@@
static int pkvm_vcpu_init_traps(struct pkvm_hyp_vcpu *hyp_vcpu)
pvm_init_traps_hcr(vcpu);
pvm_init_traps_mdcr(vcpu);
+ vcpu_set_hcrx(vcpu);
return 0;
}