Re: [ 05/48] x86_64, switch_to(): Load TLS descriptors before switching DS and ES

From: Ben Hutchings
Date: Fri May 15 2015 - 08:32:41 EST


On Fri, 2015-05-15 at 10:05 +0200, Willy Tarreau wrote:
> 2.6.32-longterm review patch. If anyone has any objections, please let me know.
>
> ------------------
>
> From: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
>
> commit f647d7c155f069c1a068030255c300663516420e upstream.
>
> Otherwise, if buggy user code points DS or ES into the TLS
> array, they would be corrupted after a context switch.
>
> This also significantly improves the comments and documents some
> gotchas in the code.
>
> Before this patch, the both tests below failed. With this
> patch, the es test passes, although the gsbase test still fails.
[...]

This depends on the changes to FPU/MMX/SSE state management that you
didn't apply to 2.6.32. Note this comment:

/* Must be after DS reload */
unlazy_fpu(prev_p);

Ben.

--
Ben Hutchings
It is impossible to make anything foolproof because fools are so ingenious.

Attachment: signature.asc
Description: This is a digitally signed message part