Re: ia32_sysenter_target does not preserve EFLAGS

From: Andy Lutomirski
Date: Fri Mar 27 2015 - 17:12:18 EST


On Fri, Mar 27, 2015 at 1:31 PM, Linus Torvalds
<torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Fri, Mar 27, 2015 at 1:16 PM, Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:
>>
>> Does it matter on 32-bit kernels? There's no swapgs, so IRQs should
>> still be safe, and we have a real stack pointer before sysexit.
>
> Fair enough. On 32-bit, the only worry is the race between "return to
> user space" and "something set a thread flag", resulting in delayed
> signals and/or higher scheduling latency etc. So on 32-bit, the bug is
> much less of an issue, I agree.

Right, except for one nasty case: KVM user return notifiers. It's
possible we'd re-enter user mode with some MSRs set wrong. Yuck.

--Andy

>
> So yeah, using sysretl instead of sti+sysexit on 64-bit sounds more
> reasonable given the potential worry about sti+sysexit atomicity in
> the presense of nmi's.
>
> Linus



--
Andy Lutomirski
AMA Capital Management, LLC
--
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/