On 01.10.2024 12:02, Andrew Cooper wrote:
> On 01/10/2024 8:11 am, Jan Beulich wrote:
>> On 30.09.2024 18:18, Andrew Cooper wrote:
>>> @@ -190,10 +192,12 @@ static bool guest_io_okay(unsigned int port, unsigned 
>>> int bytes,
>>>              toggle_guest_pt(v);
>>>  
>>>          if ( (x.mask & (((1 << bytes) - 1) << (port & 7))) == 0 )
>>> -            return true;
>>> +            return X86EMUL_OKAY;
>>>      }
>>>  
>>> -    return false;
>>> +    x86_emul_hw_exception(X86_EXC_GP, 0, ctxt);
>> do_general_protection() has
>>
>>     /* Pass on GPF as is. */
>>     pv_inject_hw_exception(X86_EXC_GP, regs->error_code);
>>
>> which may make a difference in case the insn changes under our feet.
> 
> It would make a difference if we chose to raise #GP[non-0].
> 
> But, see how the call to pv_emulate_privileged_op() is guarded on
> error_code == 0.

Oh, good point - I overlooked that.

> Prior X86EMUL_UNHANDLEABLE can't ever have raised anything other than
> #GP[0], (excusing cases of memory corruption in regs->error_code).
> 
> So, there is not a change in behaviour, even if the reason why is
> less-than-obvious.

I agree then.

Jan

Reply via email to