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.

Thanks,

        tglx

Reply via email to