Re: [PATCH] x86/arch_prctl/64: restore accidentally removed put_cpu in ARCH_SET_GS

From: Ingo Molnar
Date: Fri May 13 2016 - 07:50:42 EST



* Andy Lutomirski <luto@xxxxxxxxxx> wrote:

> On Tue, May 10, 2016 at 1:56 PM, Mateusz Guzik <mguzik@xxxxxxxxxx> wrote:
> > This fixes 731e33e39a5b95ad770 "Remove FSBASE/GSBASE < 4G optimization"
> >
> > Signed-off-by: Mateusz Guzik <mguzik@xxxxxxxxxx>
> > ---
> > arch/x86/kernel/process_64.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
> > index 4285f6a..6b16c36 100644
> > --- a/arch/x86/kernel/process_64.c
> > +++ b/arch/x86/kernel/process_64.c
> > @@ -541,6 +541,7 @@ long do_arch_prctl(struct task_struct *task, int code, unsigned long addr)
> > load_gs_index(0);
> > ret = wrmsrl_safe(MSR_KERNEL_GS_BASE, addr);
> > }
> > + put_cpu();
> > break;
> > case ARCH_SET_FS:
> > /* Not strictly needed for fs, but do it for symmetry
> > --
> > 1.8.3.1
> >
>
> Ingo, can you apply this before the merge window opens?

Yeah, done, applied it to tip:x86/asm.

> I just noticed that you weren't cc'd, so I'll repeat my ack:
>
> Acked-by: Andy Lutomirski <luto@xxxxxxxxxx>
>
> And I'll ask, since IIRC you wrote it: would it make sense to augment
> lockdep_sys_exit to see if preemption got left disabled?

Yeah, absolutely. I'm quite sure early lockdep versions did such a check.

Thanks,

Ingo