Re: [PATCH v2] x86: Stop relying on magic jmp behavior for early_idt_handlers

From: H. Peter Anvin
Date: Fri May 22 2015 - 17:00:30 EST


On 05/21/2015 11:51 PM, Andy Lutomirski wrote:
>>>
>>> #ifdef __KERNEL__
>>> +
>>> +/*
>>> + * early_idt_handlers is an array of entry points. For simplicity, it's
>>> + * a real array. We allocate nine bytes for each entry: two one-byte
>>> + * push instructions and a five-byte jump in the worst case.
>>> + */
>>> +#define EARLY_IDT_HANDLER_STRIDE 9
>>
>> So how come that two plus five equals nine? ;-)
>
> A "one-byte push" would be pretty impressive :)
>

Well, non-REX register pushes are just one byte. However, these take an
immediate constant.

>>
>> Ditto for the 64-bit side.
>
> Sounds good. I'll do all this tomorrow and resend.
>

Thank you! Since I trust you, I'll send you this in advance:

Acked-by: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/