[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 for-4.7 5/5] x86/hvm: Fix invalidation for emulated invlpg instructions
>>> On 09.05.16 at 20:27, <andrew.cooper3@xxxxxxxxxx> wrote: > --- a/xen/arch/x86/hvm/svm/svm.c > +++ b/xen/arch/x86/hvm/svm/svm.c > @@ -2222,10 +2222,13 @@ static void svm_invlpga_intercept( > > static void svm_invlpg_intercept(unsigned long vaddr) > { > - struct vcpu *curr = current; > HVMTRACE_LONG_2D(INVLPG, 0, TRC_PAR_LONG(vaddr)); > - if ( paging_invlpg(curr, vaddr) ) > - svm_asid_g_invlpg(curr, vaddr); > + paging_invlpg(current, vaddr); > +} > + > +static void svm_invlpg(struct vcpu *v, unsigned long vaddr) > +{ > + svm_asid_g_invlpg(v, vaddr); > } I don't see the need for the wrapper: svm_asid_g_invlpg() is itself suitable to be used ... > @@ -2258,12 +2261,12 @@ static struct hvm_function_table __initdata > svm_function_table = { > .inject_trap = svm_inject_trap, > .init_hypercall_page = svm_init_hypercall_page, > .event_pending = svm_event_pending, > + .invlpg = svm_invlpg, ... here. > @@ -2137,6 +2137,7 @@ static struct hvm_function_table __initdata > vmx_function_table = { > .inject_trap = vmx_inject_trap, > .init_hypercall_page = vmx_init_hypercall_page, > .event_pending = vmx_event_pending, > + .invlpg = vmx_invlpg, Similarly here, except that the pointer would need zapping if !cpu_has_vmx_vpid, requiring ... > +void paging_invlpg(struct vcpu *v, unsigned long va) > +{ > + if ( !is_canonical_address(va) ) > + return; > + > + if ( paging_mode_enabled(v->domain) && > + !paging_get_hostmode(v)->invlpg(v, va) ) > + return; > + > + if ( is_pv_vcpu(v) ) > + flush_tlb_one_local(va); > + else > + hvm_funcs.invlpg(v, va); ... this call to become conditional. Nevertheless, since functionally the patch is fine, with or without said cleanup Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |