[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] x86emul: correct PUSHF/POPF



>>> On 06.12.16 at 16:56, <andrew.cooper3@xxxxxxxxxx> 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 <jbeulich@xxxxxxxx>
>>
>> --- 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.cooper3@xxxxxxxxxx>

Thanks, Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.