Messages in this thread | | | Date | Thu, 23 Apr 2015 12:18:40 +0200 | From | Borislav Petkov <> | Subject | Re: [tip:x86/vdso] x86/vdso32/syscall.S: Do not load __USER32_DS to %ss |
| |
On Thu, Apr 23, 2015 at 11:56:21AM +0200, Denys Vlasenko wrote: > The fix can look like this (untested): > > > diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S > index 0c302d0..9f4c232 100644 > --- a/arch/x86/ia32/ia32entry.S > +++ b/arch/x86/ia32/ia32entry.S > @@ -198,6 +198,18 @@ sysexit_from_sys_call: > * with 'sysenter' and it uses the SYSENTER calling convention. > */ > andl $~TS_COMPAT,ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS) > + /* > + * On AMD, SYSRET32 does not modify %ss cached descriptor;
Ok, but doc says that in both long and compat mode, SYSRET does load SS.sel with the value in MSR_STAR...
Hmmm.
-- Regards/Gruss, Boris.
ECO tip #101: Trim your mails when you reply. --
| |