lkml.org 
[lkml]   [2017]   [Nov]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 22/43] x86/mm/kaiser: Prepare assembly for entry/exit CR3 switching
On Fri, Nov 24, 2017 at 01:17:06PM +0100, Ingo Molnar wrote:
>
> * Peter Zijlstra <peterz@infradead.org> wrote:
>
> > On Fri, Nov 24, 2017 at 10:14:27AM +0100, Ingo Molnar wrote:
> > > @@ -1343,9 +1373,10 @@ ENTRY(error_entry)
> > >
> > > .Lerror_bad_iret:
> > > /*
> > > + * We came from an IRET to user mode, so we have user
> > > + * gsbase and CR3. Switch to kernel gsbase and CR3:
> > > */
> > > + SWITCH_TO_KERNEL_CR3 scratch_reg=%rax
> > > SWAPGS
> > >
> > > /*
> >
> > The Changelog states SWAPGS must be done before, yet the code does
> > after.
>
> Yes, so this is the SWAPGS that is done before we go back to user-space.

The comment there clearly states we have user gs and we need to switch
to kernel gs. The Changelog states we should switch gs before cr3.

So either the comment or the code needs fixing.

\
 
 \ /
  Last update: 2017-11-24 13:45    [W:0.051 / U:12.204 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site