[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86: always supply .cpuid() handler to x86_emulate()
>>> On 11.11.16 at 15:16, <andrew.cooper3@xxxxxxxxxx> wrote: > On 10/11/16 12:30, Jan Beulich wrote: >> --- a/xen/arch/x86/traps.c >> +++ b/xen/arch/x86/traps.c >> @@ -2755,6 +2755,24 @@ static int priv_op_write_msr(unsigned in >> return X86EMUL_UNHANDLEABLE; >> } >> >> +int pv_emul_cpuid(unsigned int *eax, unsigned int *ebx, unsigned int *ecx, >> + unsigned int *edx, struct x86_emulate_ctxt *ctxt) >> +{ >> + struct cpu_user_regs regs = *ctxt->regs; > > You need a CPUID faulting check here, matching the hvm side of things, > or you will leave a latent bug which gets exposed when switching to > using full x86_emulate() for PV guests. That addition is part of the patch actually switching to x86_emulate(). I don't think it belongs here, as for now we don't mean to emulate CPUID insns. > Would it be wise to add a fail_if(!ops->cpuid) to x86_emulate() to catch > other misuses? I don't think so - there may be cases where it's indeed unneeded (and I foresee such arising quickly once the ->validate() hooks is in place, addition of which is now too part of aforementioned patch). Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |