From: Denys Vlasenko <dvlasenk@redhat.com>
To: Borislav Petkov <bp@alien8.de>
Cc: "Andy Lutomirski" <luto@amacapital.net>,
"Brian Gerst" <brgerst@gmail.com>,
"Steven Rostedt" <rostedt@goodmis.org>,
"Oleg Nesterov" <oleg@redhat.com>,
"Ingo Molnar" <mingo@kernel.org>,
"H. Peter Anvin" <hpa@zytor.com>,
"Linus Torvalds" <torvalds@linux-foundation.org>,
"Andy Lutomirski" <luto@kernel.org>,
"Will Drewry" <wad@chromium.org>,
"Frédéric Weisbecker" <fweisbec@gmail.com>,
"Alexei Starovoitov" <ast@plumgrid.com>,
"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
"Kees Cook" <keescook@chromium.org>,
"Thomas Gleixner" <tglx@linutronix.de>,
"linux-tip-commits@vger.kernel.org"
<linux-tip-commits@vger.kernel.org>
Subject: Re: [tip:x86/vdso] x86/vdso32/syscall.S: Do not load __USER32_DS to %ss
Date: Thu, 23 Apr 2015 13:05:45 +0200 [thread overview]
Message-ID: <5538D209.7030808@redhat.com> (raw)
In-Reply-To: <20150423104401.GF28327@pd.tnic>
On 04/23/2015 12:44 PM, Borislav Petkov wrote:
> On Thu, Apr 23, 2015 at 12:26:43PM +0200, Denys Vlasenko wrote:
>> Yes. It loads *selector*. AMD docs say that selector is loaded as you say,
>> but *cached descriptor* of SS (which is a different entity) is not modified.
>>
>> If *cached descriptor* is invalid, in 32-bit mode stack ops
>> will fail. (In 64-bit mode, CPU doesn't do those checks).
>
> So how can that happen with wine? Something's changing the cached
> descriptor ... ?
Yes. We know of at least one case where documentation
(both Intel and AMD) specifically states that %ss is set to NULL:
this happens on every interrupt and exception.
If interrupt/exception returns to the same task with IRET, all is well:
%ss is reloaded from iret frame (both selector and cached descriptor).
However, if interrupt results in a preemption, we end up in a different
task (say, Wine), and we can return to its userspace code
with SYSRETL. *This* type of return does not reload cached descriptor.
I don't know why it happens only with Wine. Maybe it just happens
with Wine much more easily than with other 32-bit tasks?
next prev parent reply other threads:[~2015-04-23 11:06 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-26 1:11 [GIT PULL] x86/vdso changes for 4.1 Andy Lutomirski
[not found] ` <efe1ec29eda830b1d0030882706f3dac99ce1f73.1427482063.git.luto@kernel.org>
2015-03-27 18:47 ` [GIT PULL 2/4] x86: vdso32/syscall.S: do not load __USER32_DS to %ss Andy Lutomirski
2015-03-27 18:48 ` [GIT PULL 1/4] x86,vdso: fix the x86 vdso2c tool includes Andy Lutomirski
2015-03-27 18:48 ` [GIT PULL 2/4] x86: vdso32/syscall.S: do not load __USER32_DS to %ss Andy Lutomirski
2015-03-31 12:38 ` [tip:x86/vdso] x86/vdso32/syscall.S: Do " tip-bot for Denys Vlasenko
2015-04-23 7:37 ` Brian Gerst
2015-04-23 8:49 ` Andy Lutomirski
2015-04-23 9:07 ` Andy Lutomirski
2015-04-23 9:23 ` Denys Vlasenko
2015-04-23 9:47 ` Borislav Petkov
2015-04-23 9:56 ` Denys Vlasenko
2015-04-23 10:18 ` Borislav Petkov
2015-04-23 10:26 ` Denys Vlasenko
2015-04-23 10:44 ` Borislav Petkov
2015-04-23 11:05 ` Denys Vlasenko [this message]
2015-04-23 15:48 ` Andy Lutomirski
2015-04-23 16:41 ` Denys Vlasenko
2015-04-23 16:50 ` Andy Lutomirski
2015-04-23 17:14 ` Borislav Petkov
2015-04-23 18:24 ` Andy Lutomirski
2015-04-23 18:36 ` Linus Torvalds
2015-04-23 18:52 ` Borislav Petkov
2015-04-23 19:20 ` Andy Lutomirski
2015-04-23 19:50 ` Denys Vlasenko
2015-04-23 9:20 ` Denys Vlasenko
2015-04-23 9:56 ` Borislav Petkov
2015-04-23 11:11 ` Brian Gerst
2015-04-23 11:28 ` Brian Gerst
2015-04-23 11:46 ` Denys Vlasenko
2015-04-23 12:01 ` Brian Gerst
2015-04-23 12:35 ` Denys Vlasenko
2015-04-23 11:12 ` Denys Vlasenko
2015-03-27 18:48 ` [GIT PULL 3/4] x86, vdso: teach 'make clean' remove generated vdso-image-*.c files Andy Lutomirski
2015-03-31 12:38 ` [tip:x86/vdso] x86/vdso: Teach 'make clean' to " tip-bot for Andrey Skvortsov
2015-03-27 18:48 ` [GIT PULL 4/4] x86, vdso: Remove x32 intermediates during 'make clean' Andy Lutomirski
2015-03-31 12:39 ` [tip:x86/vdso] x86/vdso: Remove x32 intermediates during ' make clean' tip-bot for Andy Lutomirski
2015-03-31 12:38 ` [tip:x86/vdso] x86/vdso: Fix the x86 vdso2c tool includes tip-bot for Tommi Kyntola
-- strict thread matches above, loose matches on Subject: below --
2015-02-16 14:15 [PATCH] x86,vdso: fix " Tommi Kyntola
2015-02-16 16:29 ` Andy Lutomirski
[not found] ` <CAO2cUkRstHcKzy+sMvaQoXHBjTX1yheN2EMQW-wCd0tDRCLNYQ@mail.gmail.com>
2015-02-16 20:40 ` Andy Lutomirski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5538D209.7030808@redhat.com \
--to=dvlasenk@redhat.com \
--cc=ast@plumgrid.com \
--cc=bp@alien8.de \
--cc=brgerst@gmail.com \
--cc=fweisbec@gmail.com \
--cc=hpa@zytor.com \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=luto@kernel.org \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=wad@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.