On Mon, 16 Nov 2020 20:43:01 +0000, David Brazdil <dbrazdil@xxxxxxxxxx> wrote: > > Small refactor so that nVHE's handle_trap uses a switch on the Exception > Class value of ESR_EL2 in preparation for adding a handler of SMC32/64. nit: SMC32 seems to be a leftover from the previous version. > > Signed-off-by: David Brazdil <dbrazdil@xxxxxxxxxx> > --- > arch/arm64/kvm/hyp/nvhe/hyp-main.c | 15 ++++++++------- > 1 file changed, 8 insertions(+), 7 deletions(-) > > diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-main.c b/arch/arm64/kvm/hyp/nvhe/hyp-main.c > index 411b0f652417..19332c20fcde 100644 > --- a/arch/arm64/kvm/hyp/nvhe/hyp-main.c > +++ b/arch/arm64/kvm/hyp/nvhe/hyp-main.c > @@ -16,9 +16,9 @@ > > DEFINE_PER_CPU(struct kvm_nvhe_init_params, kvm_init_params); > > -static void handle_host_hcall(unsigned long func_id, > - struct kvm_cpu_context *host_ctxt) > +static void handle_host_hcall(struct kvm_cpu_context *host_ctxt) > { > + unsigned long func_id = host_ctxt->regs.regs[0]; > unsigned long ret = 0; > > switch (func_id) { > @@ -109,11 +109,12 @@ static void handle_host_hcall(unsigned long func_id, > void handle_trap(struct kvm_cpu_context *host_ctxt) > { > u64 esr = read_sysreg_el2(SYS_ESR); > - unsigned long func_id; > > - if (ESR_ELx_EC(esr) != ESR_ELx_EC_HVC64) > + switch (ESR_ELx_EC(esr)) { > + case ESR_ELx_EC_HVC64: > + handle_host_hcall(host_ctxt); > + break; > + default: > hyp_panic(); > - > - func_id = host_ctxt->regs.regs[0]; > - handle_host_hcall(func_id, host_ctxt); > + } > } > -- > 2.29.2.299.gdc1121823c-goog > > Thanks, M. -- Without deviation from the norm, progress is not possible. _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm