Re: [PATCH] Fix resume on x86-32 machines

From: Andy Lutomirski
Date: Mon Dec 11 2017 - 11:27:29 EST


On Mon, Dec 11, 2017 at 7:13 AM, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
>
> * Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:
>
>>
>>
>> > On Dec 10, 2017, at 1:38 PM, Pavel Machek <pavel@xxxxxx> wrote:
>> >
>> >
>> > After 4.15-rc2, suspend stopped working on Thinkpad X60. 5b06bbc
>> > (unintentionally?) reordered stuff with respect to
>> > fix_processor_context() on 32-bit and 64-bit. We undo that change on
>> > 32-bit.
>> >
>>
>> Can you explain what was wrong with the reordering? Your patch certainly *looks* incorrect.
>>
>> I'm guessing that the real issue is that 32-bit needs %fs restored early for TLS.
>
> Does some early percpu primitive need GS as well perhaps?
>
> Might be safest to restore both FS and GS early.
>

fs needs to be restored early for TLS. gs needs to be restored early,
maybe, if !X86_32_LAZY_GS -- it's used for stack-protector. If
X86_32_LAZY_GS, gs must *not* be restored early.