[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CALCETrVzLT0AwUFxZGjuREaontqzJe0DEccNFwLTKdLcLxcARA@mail.gmail.com>
Date: Fri, 22 Jun 2018 07:50:34 -0700
From: Andy Lutomirski <luto@...nel.org>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: "Bae, Chang Seok" <chang.seok.bae@...el.com>,
Andrew Lutomirski <luto@...nel.org>,
"H. Peter Anvin" <hpa@...or.com>, Ingo Molnar <mingo@...nel.org>,
Andi Kleen <ak@...ux.intel.com>,
Dave Hansen <dave.hansen@...ux.intel.com>,
"Metzger, Markus T" <markus.t.metzger@...el.com>,
"Ravi V. Shankar" <ravi.v.shankar@...el.com>,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v4 1/7] x86/fsgsbase/64: Introduce FS/GS base helper functions
On Fri, Jun 22, 2018 at 7:28 AM Thomas Gleixner <tglx@...utronix.de> wrote:
>
> On Wed, 20 Jun 2018, Chang S. Bae wrote:
> > +void write_fsbase(unsigned long fsbase)
> > +{
> > + /* set the selector to 0 to not confuse __switch_to */
>
> 'to not confuse __switch_to' is not that helpful of a comment as it
> requires to stare into __switch_to to figure out what might get confused
> there. Please write it out why this needs to be done in technical terms.
>
> > + loadseg(FS, 0);
> > + wrmsrl(MSR_FS_BASE, fsbase);
> > +}
> > +
> > +void write_inactive_gsbase(unsigned long gsbase)
> > +{
> > + /* set the selector to 0 to not confuse __switch_to */
>
> Ditto
>
> > + loadseg(GS, 0);
> > + wrmsrl(MSR_KERNEL_GS_BASE, gsbase);
> > +}
> > +
> > +unsigned long read_task_fsbase(struct task_struct *task)
> > +{
> > + unsigned long fsbase;
> > +
> > + if (task == current) {
> > + fsbase = read_fsbase();
> > + } else {
> > + /*
> > + * XXX: This will not behave as expected if called
> > + * if fsindex != 0. This preserves an existing bug
> > + * that will be fixed.
>
> I'm late to this party, but let me ask the obvious question:
>
> Why is the existing bug not fixed as the first patch in the series?
IIRC that was how I did it in the old version of this code. I think
it did it because it was less messy to fix the bug after cleaning up
the code, but I could be remembering wrong.
Powered by blists - more mailing lists