Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1609986

[PATCH 8/8] x86/espfix: Add support 5-level paging

From "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Newsgroups linux.kernel
Subject [PATCH 8/8] x86/espfix: Add support 5-level paging
Date 2017-03-27 18:40 +0200
Message-ID <tpFQv-2sV-35@gated-at.bofh.it> (permalink)
References <tpFQu-2sV-9@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


We don't need extra virtual address space for ESPFIX, so it stays within
one PUD page table for both 4- and 5-level paging.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
---
 arch/x86/kernel/espfix_64.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/arch/x86/kernel/espfix_64.c b/arch/x86/kernel/espfix_64.c
index 04f89caef9c4..8e598a1ad986 100644
--- a/arch/x86/kernel/espfix_64.c
+++ b/arch/x86/kernel/espfix_64.c
@@ -50,11 +50,11 @@
 #define ESPFIX_STACKS_PER_PAGE	(PAGE_SIZE/ESPFIX_STACK_SIZE)
 
 /* There is address space for how many espfix pages? */
-#define ESPFIX_PAGE_SPACE	(1UL << (PGDIR_SHIFT-PAGE_SHIFT-16))
+#define ESPFIX_PAGE_SPACE	(1UL << (P4D_SHIFT-PAGE_SHIFT-16))
 
 #define ESPFIX_MAX_CPUS		(ESPFIX_STACKS_PER_PAGE * ESPFIX_PAGE_SPACE)
 #if CONFIG_NR_CPUS > ESPFIX_MAX_CPUS
-# error "Need more than one PGD for the ESPFIX hack"
+# error "Need more virtual address space for the ESPFIX hack"
 #endif
 
 #define PGALLOC_GFP (GFP_KERNEL | __GFP_NOTRACK | __GFP_ZERO)
@@ -121,11 +121,13 @@ static void init_espfix_random(void)
 
 void __init init_espfix_bsp(void)
 {
-	pgd_t *pgd_p;
+	pgd_t *pgd;
+	p4d_t *p4d;
 
 	/* Install the espfix pud into the kernel page directory */
-	pgd_p = &init_level4_pgt[pgd_index(ESPFIX_BASE_ADDR)];
-	pgd_populate(&init_mm, pgd_p, (pud_t *)espfix_pud_page);
+	pgd = &init_level4_pgt[pgd_index(ESPFIX_BASE_ADDR)];
+	p4d = p4d_alloc(&init_mm, pgd, ESPFIX_BASE_ADDR);
+	p4d_populate(&init_mm, p4d, espfix_pud_page);
 
 	/* Randomize the locations */
 	init_espfix_random();
-- 
2.11.0

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 0/8] x86: 5-level paging enabling for v4.12, Part 3 "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> - 2017-03-27 18:40 +0200
  [PATCH 6/8] x86/dump_pagetables: Add support 5-level paging "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> - 2017-03-27 18:40 +0200
    Re: [PATCH 6/8] x86/dump_pagetables: Add support 5-level paging Ingo Molnar <mingo@kernel.org> - 2017-03-28 08:30 +0200
      Re: [PATCH 6/8] x86/dump_pagetables: Add support 5-level paging "Kirill A. Shutemov" <kirill@shutemov.name> - 2017-03-28 11:50 +0200
        Re: [PATCH 6/8] x86/dump_pagetables: Add support 5-level paging Ingo Molnar <mingo@kernel.org> - 2017-03-28 11:50 +0200
          [PATCHv2 6/8] x86/dump_pagetables: Add support 5-level paging "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> - 2017-03-28 13:00 +0200
            Re: [PATCHv2 6/8] x86/dump_pagetables: Add support 5-level paging Borislav Petkov <bp@alien8.de> - 2017-03-28 21:00 +0200
              Re: [PATCHv2 6/8] x86/dump_pagetables: Add support 5-level paging "Kirill A. Shutemov" <kirill@shutemov.name> - 2017-03-28 23:20 +0200
                Re: [PATCHv2 6/8] x86/dump_pagetables: Add support 5-level paging Borislav Petkov <bp@alien8.de> - 2017-03-28 23:50 +0200
                Re: [PATCHv2 6/8] x86/dump_pagetables: Add support 5-level paging "Kirill A. Shutemov" <kirill@shutemov.name> - 2017-03-29 17:30 +0200
                Re: [PATCHv2 6/8] x86/dump_pagetables: Add support 5-level paging Ingo Molnar <mingo@kernel.org> - 2017-03-30 08:30 +0200
            [tip:x86/mm] x86/dump_pagetables: Add support for 5-level paging "tip-bot for Kirill A. Shutemov" <tipbot@zytor.com> - 2017-03-30 09:40 +0200
  [PATCH 5/8] x86/mm: Add basic defines/helpers for CONFIG_X86_5LEVEL "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> - 2017-03-27 18:40 +0200
    Re: [PATCH 5/8] x86/mm: Add basic defines/helpers for  CONFIG_X86_5LEVEL Ingo Molnar <mingo@kernel.org> - 2017-03-28 08:20 +0200
      [PATCHv2 5/8] x86/mm: Add basic defines/helpers for CONFIG_X86_5LEVEL "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> - 2017-03-28 12:50 +0200
  [PATCH 8/8] x86/espfix: Add support 5-level paging "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> - 2017-03-27 18:40 +0200
    [PATCHv2 8/8] x86/espfix: Add support 5-level paging "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> - 2017-03-29 15:30 +0200

csiph-web