On 6/25/19 2:13 PM, Alexandru Elisei wrote: > On 6/21/19 10:37 AM, Marc Zyngier wrote: >> From: Jintack Lim <jintack.lim@xxxxxxxxxx> >> >> Now that the psci call is done by the smc instruction when nested > This suggests that we have support for PSCI calls using SMC as the conduit, but > that is not the case, as the handle_smc function is not changed by this commit, > and support for PSCI via SMC is added later in patch 22/59 "KVM: arm64: nv: > Handle PSCI call via smc from the guest". Perhaps the commit message should be > reworded to reflect that? >> virtualization is enabled, it is clear that all hvc instruction from the >> VM (including from the virtual EL2) are supposed to handled in the >> virtual EL2. >> >> Signed-off-by: Jintack Lim <jintack.lim@xxxxxxxxxx> >> Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx> >> --- >> arch/arm64/kvm/handle_exit.c | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/arch/arm64/kvm/handle_exit.c b/arch/arm64/kvm/handle_exit.c >> index 516aead3c2a9..6c0ac52b34cc 100644 >> --- a/arch/arm64/kvm/handle_exit.c >> +++ b/arch/arm64/kvm/handle_exit.c >> @@ -30,6 +30,7 @@ >> #include <asm/kvm_coproc.h> >> #include <asm/kvm_emulate.h> >> #include <asm/kvm_mmu.h> >> +#include <asm/kvm_nested.h> >> #include <asm/debug-monitors.h> >> #include <asm/traps.h> >> >> @@ -52,6 +53,12 @@ static int handle_hvc(struct kvm_vcpu *vcpu, struct kvm_run *run) >> kvm_vcpu_hvc_get_imm(vcpu)); >> vcpu->stat.hvc_exit_stat++; >> >> + /* Forward hvc instructions to the virtual EL2 if the guest has EL2. */ >> + if (nested_virt_in_use(vcpu)) { >> + kvm_inject_nested_sync(vcpu, kvm_vcpu_get_hsr(vcpu)); >> + return 1; >> + } According to ARM DDI 0487E.a, when HCR_EL2.HCD = 1, HVC instructions are undefined at EL2 and EL1. Thanks, Alex >> + >> ret = kvm_hvc_call_handler(vcpu); >> if (ret < 0) { >> vcpu_set_reg(vcpu, 0, ~0UL); _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm