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