Re: [PATCH 2/2] x86/ldt: Unmap PTEs for the slow before freeing LDT

From: Kirill A. Shutemov
Date: Thu Oct 25 2018 - 03:26:11 EST


On Wed, Oct 24, 2018 at 11:49:17AM -0700, Andy Lutomirski wrote:
> On Tue, Oct 23, 2018 at 9:32 AM Kirill A. Shutemov
> <kirill.shutemov@xxxxxxxxxxxxxxx> wrote:
> >
> > modify_ldt(2) leaves old LDT mapped after we switch over to the new one.
> > Memory for the old LDT gets freed and the pages can be re-used.
> >
> > Leaving the mapping in place can have security implications. The mapping
> > is present in userspace copy of page tables and Meltdown-like attack can
> > read these freed and possibly reused pages.
>
> Code looks okay. But:
>
> > - /*
> > - * Did we already have the top level entry allocated? We can't
> > - * use pgd_none() for this because it doens't do anything on
> > - * 4-level page table kernels.
> > - */
> > - pgd = pgd_offset(mm, LDT_BASE_ADDR);
>
> This looks like an unrelated cleanup. Can it be its own patch?

Okay, I'll move it into a separate patch in v3.

I'll some more time for comments on v2 before respin.

--
Kirill A. Shutemov