Messages in this thread | | | From | Pavel Tatashin <> | Date | Sat, 13 Jan 2018 12:40:10 -0500 | Subject | Re: [PATCH 4.9] x86/pti/efi: broken conversion from efi to kernel page table |
| |
Hi Greg,
Yeah, the one in pgtable.c needs to be removed, I wonder how it compiled... I will submit a new patch for 4.9 sometime later.
Thank you, Pavel
On Sat, Jan 13, 2018 at 12:12 PM, Greg KH <gregkh@linuxfoundation.org> wrote: > On Thu, Jan 11, 2018 at 04:58:20PM -0500, Pavel Tatashin wrote: >> The page table order must be increased for EFI table in order to avoid a >> bug where NMI tries to change the page table to kernel page table, while >> efi page table is active. >> >> For more disccussion about this bug, see this thread: >> http://lkml.iu.edu/hypermail/linux/kernel/1801.1/00951.html >> >> Signed-off-by: Pavel Tatashin <pasha.tatashin@oracle.com> >> Reviewed-by: Steven Sistare <steven.sistare@oracle.com> >> Acked-by: Jiri Kosina <jkosina@suse.cz> >> --- >> arch/x86/include/asm/pgalloc.h | 11 +++++++++++ >> arch/x86/platform/efi/efi_64.c | 2 +- >> 2 files changed, 12 insertions(+), 1 deletion(-) >> >> diff --git a/arch/x86/include/asm/pgalloc.h b/arch/x86/include/asm/pgalloc.h >> index b6d425999f99..1178a51b77f3 100644 >> --- a/arch/x86/include/asm/pgalloc.h >> +++ b/arch/x86/include/asm/pgalloc.h >> @@ -27,6 +27,17 @@ static inline void paravirt_release_pud(unsigned long pfn) {} >> */ >> extern gfp_t __userpte_alloc_gfp; >> >> +#ifdef CONFIG_PAGE_TABLE_ISOLATION >> +/* >> + * Instead of one PGD, we acquire two PGDs. Being order-1, it is >> + * both 8k in size and 8k-aligned. That lets us just flip bit 12 >> + * in a pointer to swap between the two 4k halves. >> + */ >> +#define PGD_ALLOCATION_ORDER 1 >> +#else >> +#define PGD_ALLOCATION_ORDER 0 >> +#endif > > This conflicts with the definition of PGD_ALLOCATION_ORDER in > arch/x86/mm/pgtable.c that says: > > /* > * Instead of one pgd, Kaiser acquires two pgds. Being order-1, it is > * both 8k in size and 8k-aligned. That lets us just flip bit 12 > * in a pointer to swap between the two 4k halves. > */ > #define PGD_ALLOCATION_ORDER kaiser_enabled > > So, which is it? > > I'm going to go drop this from the 4.9 stable queue because of this. > > thanks, > > greg k-h
| |