aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.9.21/0078-x86-pti-efi-broken-conversion-from-efi-to-kernel-pag.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.9.21/0078-x86-pti-efi-broken-conversion-from-efi-to-kernel-pag.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.9.21/0078-x86-pti-efi-broken-conversion-from-efi-to-kernel-pag.patch79
1 files changed, 0 insertions, 79 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.9.21/0078-x86-pti-efi-broken-conversion-from-efi-to-kernel-pag.patch b/common/recipes-kernel/linux/linux-yocto-4.9.21/0078-x86-pti-efi-broken-conversion-from-efi-to-kernel-pag.patch
deleted file mode 100644
index 3e743f00..00000000
--- a/common/recipes-kernel/linux/linux-yocto-4.9.21/0078-x86-pti-efi-broken-conversion-from-efi-to-kernel-pag.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From d0383173a920ac2b316abb04d8a9f2bd9045d598 Mon Sep 17 00:00:00 2001
-From: Pavel Tatashin <pasha.tatashin@oracle.com>
-Date: Mon, 15 Jan 2018 11:44:14 -0500
-Subject: [PATCH 078/103] x86/pti/efi: broken conversion from efi to kernel
- page table
-
-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>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/x86/include/asm/pgalloc.h | 11 +++++++++++
- arch/x86/mm/pgtable.c | 7 -------
- arch/x86/platform/efi/efi_64.c | 2 +-
- 3 files changed, 12 insertions(+), 8 deletions(-)
-
-diff --git a/arch/x86/include/asm/pgalloc.h b/arch/x86/include/asm/pgalloc.h
-index b6d4259..1178a51 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
-+
- /*
- * Allocate and free page tables.
- */
-diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
-index 5aaec8e..209b946 100644
---- a/arch/x86/mm/pgtable.c
-+++ b/arch/x86/mm/pgtable.c
-@@ -345,13 +345,6 @@ static inline void _pgd_free(pgd_t *pgd)
- }
- #else
-
--/*
-- * 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
--
- static inline pgd_t *_pgd_alloc(void)
- {
- return (pgd_t *)__get_free_pages(PGALLOC_GFP, PGD_ALLOCATION_ORDER);
-diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
-index 2f25a36..dcb2d9d 100644
---- a/arch/x86/platform/efi/efi_64.c
-+++ b/arch/x86/platform/efi/efi_64.c
-@@ -142,7 +142,7 @@ int __init efi_alloc_page_tables(void)
- return 0;
-
- gfp_mask = GFP_KERNEL | __GFP_NOTRACK | __GFP_ZERO;
-- efi_pgd = (pgd_t *)__get_free_page(gfp_mask);
-+ efi_pgd = (pgd_t *)__get_free_pages(gfp_mask, PGD_ALLOCATION_ORDER);
- if (!efi_pgd)
- return -ENOMEM;
-
---
-2.7.4
-