Re: [PATCH 2/2] x86/boot/compressed/64: Fix moving page table out of trampoline memory

From: Kirill A. Shutemov
Date: Sun May 13 2018 - 16:05:50 EST


On Sun, May 13, 2018 at 06:56:14PM +0000, Thomas Gleixner wrote:
> On Thu, 10 May 2018, Kirill A. Shutemov wrote:
>
> > top_pgtable address has to be calculated relative to where the kernel
> > image will be relocated for decompression, not relative to position of
> > kernel is running at the moment. We do the same for the rest of page
> > table we use the stage. It makes them safe from being overwritten during
> > decompression.
> >
> > Calculate the address of top_pgtable in assembly and pass down to
> > cleanup_trampoline().
> >
> > Move the page table to .pgtable section where the rest of page tables
> > are. The section is @nobits so we save 4k in kernel image.
>
> So this is supposed to be a fix, but the whole changelog talks about WHAT
> the patch does and not WHY. Darn, we need proper description of the failure
> which is about to be fixed.

"It makes them safe from being overwritten during decompression."

> It's not that hard and I'm really tired to tell you that over and over.
>
> > /*
> > * cleanup_trampoline() would restore trampoline memory.
> > *
> > + * RDI is address of the page table to use instead of page table
> > + * in trampoline memory (if required).
>
> Do you really believe that you understand that comment 6 month from now?

Yes, I think I will.

--
Kirill A. Shutemov