Re: [PATCH v2] x86: entry_32.S: change ESPFIX test to not touch PT_OLDSS(%esp)

2015-03-11 Thread Denys Vlasenko
On Wed, Mar 11, 2015 at 4:35 AM, Andy Lutomirski wrote: >>> Comparison of object code: >>> Old: >>> 1e6: 8b 44 24 38 mov0x38(%esp),%eax >>> 1ea: 8a 64 24 40 mov0x40(%esp),%ah >>> 1ee: 8a 44 24 34 mov0x34(%esp),%al >>>

Re: [PATCH v2] x86: entry_32.S: change ESPFIX test to not touch PT_OLDSS(%esp)

2015-03-11 Thread Denys Vlasenko
On Wed, Mar 11, 2015 at 4:35 AM, Andy Lutomirski l...@amacapital.net wrote: Comparison of object code: Old: 1e6: 8b 44 24 38 mov0x38(%esp),%eax 1ea: 8a 64 24 40 mov0x40(%esp),%ah 1ee: 8a 44 24 34 mov0x34(%esp),%al

Re: [PATCH v2] x86: entry_32.S: change ESPFIX test to not touch PT_OLDSS(%esp)

2015-03-10 Thread Andy Lutomirski
On Tue, Mar 10, 2015 at 12:57 AM, Ingo Molnar wrote: > > * Denys Vlasenko wrote: > >> Old code was trying to avoid having three branch insns, >> but instead it has a chain of six insns where each insn >> depends on previos one. >> >> And it was touching PT_OLDSS(%esp) unconditionally, even when

Re: [PATCH v2] x86: entry_32.S: change ESPFIX test to not touch PT_OLDSS(%esp)

2015-03-10 Thread Ingo Molnar
* Denys Vlasenko wrote: > Old code was trying to avoid having three branch insns, > but instead it has a chain of six insns where each insn > depends on previos one. > > And it was touching PT_OLDSS(%esp) unconditionally, even when it may > contain bogus data. Elsewhere we have to jump thru

Re: [PATCH v2] x86: entry_32.S: change ESPFIX test to not touch PT_OLDSS(%esp)

2015-03-10 Thread Andy Lutomirski
On Tue, Mar 10, 2015 at 12:57 AM, Ingo Molnar mi...@kernel.org wrote: * Denys Vlasenko dvlas...@redhat.com wrote: Old code was trying to avoid having three branch insns, but instead it has a chain of six insns where each insn depends on previos one. And it was touching PT_OLDSS(%esp)

Re: [PATCH v2] x86: entry_32.S: change ESPFIX test to not touch PT_OLDSS(%esp)

2015-03-10 Thread Ingo Molnar
* Denys Vlasenko dvlas...@redhat.com wrote: Old code was trying to avoid having three branch insns, but instead it has a chain of six insns where each insn depends on previos one. And it was touching PT_OLDSS(%esp) unconditionally, even when it may contain bogus data. Elsewhere we have to

[PATCH v2] x86: entry_32.S: change ESPFIX test to not touch PT_OLDSS(%esp)

2015-03-09 Thread Denys Vlasenko
Old code was trying to avoid having three branch insns, but instead it has a chain of six insns where each insn depends on previos one. And it was touching PT_OLDSS(%esp) unconditionally, even when it may contain bogus data. Elsewhere we have to jump thru hoops just to make sure here

[PATCH v2] x86: entry_32.S: change ESPFIX test to not touch PT_OLDSS(%esp)

2015-03-09 Thread Denys Vlasenko
Old code was trying to avoid having three branch insns, but instead it has a chain of six insns where each insn depends on previos one. And it was touching PT_OLDSS(%esp) unconditionally, even when it may contain bogus data. Elsewhere we have to jump thru hoops just to make sure here