Re: [PATCH 07/16] x86/asm: Move SYSENTER_stack to the beginning of struct tss_struct

From: Andy Lutomirski
Date: Mon Nov 20 2017 - 20:26:00 EST


On Mon, Nov 20, 2017 at 3:37 PM, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
> On Mon, 20 Nov 2017, Andy Lutomirski wrote:
>> struct tss_struct {
>> /*
>> - * The hardware state:
>> + * Space for the temporary SYSENTER stack. Used for the entry
>> + * trampoline as well. Size it such that tss_struct ends up
>> + * as a multiple of PAGE_SIZE. This calculation assumes that
>> + * io_bitmap is a multiple of PAGE_SIZE (8192 bytes) plus one
>> + * long.
>
> I don't see how sizeof(tss_struct) is a multiple of PAGE_SIZE
>
> canary = 8
> stack = 512
> hw_tss = 104
> io bitmap = 8200
> -------------------------
> 8824
>
> The alignment is what blows it up to 3 * PAGE_SIZE

Whoops! That *was* correct in the RFC version version, but I changed
it and failed to fix the comment.