>>> On 06.12.16 at 16:56, <andrew.coop...@citrix.com> wrote: > On 06/12/16 13:25, Jan Beulich wrote: >> Both need to raise #GP(0) when in VM86 mode with IOPL < 3. >> >> Additionally PUSHF is documented to clear VM and RF from the value >> placed onto the stack. >> >> Signed-off-by: Jan Beulich <jbeul...@suse.com> >> >> --- a/xen/arch/x86/x86_emulate/x86_emulate.c >> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c >> @@ -3121,13 +3121,20 @@ x86_emulate( >> } >> >> case 0x9c: /* pushf */ >> - src.val = _regs.eflags; >> + generate_exception_if((_regs.eflags & EFLG_VM) && >> + (_regs.eflags & EFLG_IOPL) != EFLG_IOPL, > > How about "MASK_EXTR(_regs.eflags, EFLG_IOPL) != 3" > > This would be rather clear to read, as the two EFLG_IOPL have two > different purposes in the line as presented.
Done - I had simply forgotten for a moment that we can use MASK_EXTR() here now. > Otherwise, Reviewed-by: Andrew Cooper <andrew.coop...@citrix.com> Thanks, Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel