On Sat, 25 Nov 2017, Thomas Gleixner wrote:

> On Fri, 24 Nov 2017, Ingo Molnar wrote:
> > @@ -1288,6 +1308,8 @@ ENTRY(error_entry)
> >      * from user mode due to an IRET fault.
> >      */
> >     SWAPGS
> > +   /* We have user CR3.  Change to kernel CR3. */
> > +   SWITCH_TO_KERNEL_CR3 scratch_reg=%rax
> >  
> >  .Lerror_entry_from_usermode_after_swapgs:
> >     /* Put us onto the real thread stack. */
> > @@ -1333,6 +1355,7 @@ ENTRY(error_entry)
> >      * gsbase and proceed.  We'll fix up the exception and land in
> >      * .Lgs_change's error handler with kernel gsbase.
> >      */
> > +   SWITCH_TO_KERNEL_CR3 scratch_reg=%rax
> >     SWAPGS
> 
> This is wrong. SWAPGS needs to come first.

With this fixed:

Reviewed-by: Thomas Gleixner <[email protected]>

Reply via email to