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]>

