Hi Marc, On 10/26/20 9:51 AM, Marc Zyngier wrote: > The new calling convention says that pointers coming from the SMCCC > interface are turned into their HYP version in the host HVC handler. > However, there is still a stray kern_hyp_va() in the TLB invalidation > code, which could result in a corrupted pointer. > > Drop the spurious conversion. > > Fixes: a071261d9318 ("KVM: arm64: nVHE: Fix pointers during SMCCC convertion") > Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx> > --- > arch/arm64/kvm/hyp/nvhe/tlb.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/arch/arm64/kvm/hyp/nvhe/tlb.c b/arch/arm64/kvm/hyp/nvhe/tlb.c > index 39ca71ab8866..fbde89a2c6e8 100644 > --- a/arch/arm64/kvm/hyp/nvhe/tlb.c > +++ b/arch/arm64/kvm/hyp/nvhe/tlb.c > @@ -128,7 +128,6 @@ void __kvm_tlb_flush_local_vmid(struct kvm_s2_mmu *mmu) > struct tlb_inv_context cxt; > > /* Switch to requested VMID */ > - mmu = kern_hyp_va(mmu); > __tlb_switch_to_guest(mmu, &cxt); > > __tlbi(vmalle1); Looks fine to me, the function handle_host_hcall() already does the required transformation when handling the __kvm_tlb_flush_local_vmid function id: case KVM_HOST_SMCCC_FUNC(__kvm_tlb_flush_local_vmid): { unsigned long r1 = host_ctxt->regs.regs[1]; struct kvm_s2_mmu *mmu = (struct kvm_s2_mmu *)r1; __kvm_tlb_flush_local_vmid(kern_hyp_va(mmu)); break; } Reviewed-by: Alexandru Elisei <alexandru.elisei@xxxxxxx> _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm