Trying some other x86 maintainers this time...

~Andrew

On 25/07/2025 1:01 pm, Andrew Cooper wrote:
> Ping again?
>
> ~Andrew
>
> On 20/05/2025 5:32 pm, Andrew Cooper wrote:
>> Ping?
>>
>> On 12/03/2025 12:06 am, Andrew Cooper wrote:
>>> While the (intno << shift) expression is correct for indexing the IDT based 
>>> on
>>> whether Long Mode is active, the error code itself was unchanged with AMD64,
>>> and is still the index with 3 bits of metadata in the bottom.
>>>
>>> Found when running a Xen unit test, all under QEMU.  The unit test objected 
>>> to
>>> being told there was an error with IDT index 256 when INT $0x80 (128) was 
>>> the
>>> problem instruction:
>>>
>>>   ...
>>>   Error: Unexpected fault 0x800d0802, #GP[IDT[256]]
>>>   ...
>>>
>>> Fixes: d2fd1af76777 ("x86_64 linux user emulation")
>>> Signed-off-by: Andrew Cooper <[email protected]>
>>> ---
>>> CC: Paolo Bonzini <[email protected]>
>>> CC: Richard Henderson <[email protected]>
>>> CC: Eduardo Habkost <[email protected]>
>>> ---
>>>  target/i386/tcg/user/seg_helper.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/target/i386/tcg/user/seg_helper.c 
>>> b/target/i386/tcg/user/seg_helper.c
>>> index c45f2ac2ba68..ff328b2a9522 100644
>>> --- a/target/i386/tcg/user/seg_helper.c
>>> +++ b/target/i386/tcg/user/seg_helper.c
>>> @@ -64,7 +64,7 @@ static void do_interrupt_user(CPUX86State *env, int 
>>> intno, int is_int,
>>>          cpl = env->hflags & HF_CPL_MASK;
>>>          /* check privilege if software int */
>>>          if (dpl < cpl) {
>>> -            raise_exception_err(env, EXCP0D_GPF, (intno << shift) + 2);
>>> +            raise_exception_err(env, EXCP0D_GPF, intno * 8 + 2);
>>>          }
>>>      }
>>>  
>>>
>>> base-commit: 825b96dbcee23d134b691fc75618b59c5f53da32


Reply via email to