Re: What exactly do 32-bit x86 exceptions push on the stack in the CS slot?

From: Linus Torvalds
Date: Mon Nov 21 2016 - 13:01:02 EST


On Sun, Nov 20, 2016 at 11:13 PM, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
>
> So I have applied your fix that addresses the worst fallout directly:
>
> fc0e81b2bea0 x86/traps: Ignore high word of regs->cs in early_fixup_exception()
>
> ... but otherwise we might be better off zeroing out the high bits of segment
> registers stored on the stack, in all entry code pathways

Ugh.

I'd much rather we go back to just making the "cs" entry explicitly
16-bit, and have a separate padding entry, the way we used to long
long ago.

Or just rename it to something that you're not supposed to access
directly, and a helper accessor function that masks off the high bits.

The entry code-paths are *much* more critical than any of the few user
codepaths. Let's not add complexity to entry. Make the structure
actually reflect reality instead.

Linus