From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> To: Linus Torvalds <torvalds@linux-foundation.org>, Andrew Morton <akpm@linux-foundation.org>, x86@kernel.org, Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com> Cc: Andi Kleen <ak@linux.intel.com>, Dave Hansen <dave.hansen@intel.com>, Andy Lutomirski <luto@amacapital.net>, linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>, Dmitry Vyukov <dvyukov@google.com>, Andrey Ryabinin <aryabinin@virtuozzo.com> Subject: [PATCH 7/8] x86/kasan: Extend to support 5-level paging Date: Mon, 27 Mar 2017 19:29:24 +0300 [thread overview] Message-ID: <20170327162925.16092-8-kirill.shutemov@linux.intel.com> (raw) In-Reply-To: <20170327162925.16092-1-kirill.shutemov@linux.intel.com> This patch bring support for non-folded additional page table level. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: Andrey Ryabinin <aryabinin@virtuozzo.com> --- arch/x86/mm/kasan_init_64.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/arch/x86/mm/kasan_init_64.c b/arch/x86/mm/kasan_init_64.c index 864950994371..0c7d8129bed6 100644 --- a/arch/x86/mm/kasan_init_64.c +++ b/arch/x86/mm/kasan_init_64.c @@ -56,8 +56,18 @@ static void __init kasan_map_early_shadow(pgd_t *pgd) unsigned long end = KASAN_SHADOW_END; for (i = pgd_index(start); start < end; i++) { - pgd[i] = __pgd(__pa_nodebug(kasan_zero_pud) - | _KERNPG_TABLE); + switch (CONFIG_PGTABLE_LEVELS) { + case 4: + pgd[i] = __pgd(__pa_nodebug(kasan_zero_pud) | + _KERNPG_TABLE); + break; + case 5: + pgd[i] = __pgd(__pa_nodebug(kasan_zero_p4d) | + _KERNPG_TABLE); + break; + default: + BUILD_BUG(); + } start += PGDIR_SIZE; } } @@ -85,6 +95,7 @@ void __init kasan_early_init(void) pteval_t pte_val = __pa_nodebug(kasan_zero_page) | __PAGE_KERNEL; pmdval_t pmd_val = __pa_nodebug(kasan_zero_pte) | _KERNPG_TABLE; pudval_t pud_val = __pa_nodebug(kasan_zero_pmd) | _KERNPG_TABLE; + p4dval_t p4d_val = __pa_nodebug(kasan_zero_pud) | _KERNPG_TABLE; for (i = 0; i < PTRS_PER_PTE; i++) kasan_zero_pte[i] = __pte(pte_val); @@ -95,6 +106,9 @@ void __init kasan_early_init(void) for (i = 0; i < PTRS_PER_PUD; i++) kasan_zero_pud[i] = __pud(pud_val); + for (i = 0; CONFIG_PGTABLE_LEVELS >= 5 && i < PTRS_PER_P4D; i++) + kasan_zero_p4d[i] = __p4d(p4d_val); + kasan_map_early_shadow(early_level4_pgt); kasan_map_early_shadow(init_level4_pgt); } -- 2.11.0
WARNING: multiple messages have this Message-ID (diff)
From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> To: Linus Torvalds <torvalds@linux-foundation.org>, Andrew Morton <akpm@linux-foundation.org>, x86@kernel.org, Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com> Cc: Andi Kleen <ak@linux.intel.com>, Dave Hansen <dave.hansen@intel.com>, Andy Lutomirski <luto@amacapital.net>, linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>, Dmitry Vyukov <dvyukov@google.com>, Andrey Ryabinin <aryabinin@virtuozzo.com> Subject: [PATCH 7/8] x86/kasan: Extend to support 5-level paging Date: Mon, 27 Mar 2017 19:29:24 +0300 [thread overview] Message-ID: <20170327162925.16092-8-kirill.shutemov@linux.intel.com> (raw) In-Reply-To: <20170327162925.16092-1-kirill.shutemov@linux.intel.com> This patch bring support for non-folded additional page table level. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: Andrey Ryabinin <aryabinin@virtuozzo.com> --- arch/x86/mm/kasan_init_64.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/arch/x86/mm/kasan_init_64.c b/arch/x86/mm/kasan_init_64.c index 864950994371..0c7d8129bed6 100644 --- a/arch/x86/mm/kasan_init_64.c +++ b/arch/x86/mm/kasan_init_64.c @@ -56,8 +56,18 @@ static void __init kasan_map_early_shadow(pgd_t *pgd) unsigned long end = KASAN_SHADOW_END; for (i = pgd_index(start); start < end; i++) { - pgd[i] = __pgd(__pa_nodebug(kasan_zero_pud) - | _KERNPG_TABLE); + switch (CONFIG_PGTABLE_LEVELS) { + case 4: + pgd[i] = __pgd(__pa_nodebug(kasan_zero_pud) | + _KERNPG_TABLE); + break; + case 5: + pgd[i] = __pgd(__pa_nodebug(kasan_zero_p4d) | + _KERNPG_TABLE); + break; + default: + BUILD_BUG(); + } start += PGDIR_SIZE; } } @@ -85,6 +95,7 @@ void __init kasan_early_init(void) pteval_t pte_val = __pa_nodebug(kasan_zero_page) | __PAGE_KERNEL; pmdval_t pmd_val = __pa_nodebug(kasan_zero_pte) | _KERNPG_TABLE; pudval_t pud_val = __pa_nodebug(kasan_zero_pmd) | _KERNPG_TABLE; + p4dval_t p4d_val = __pa_nodebug(kasan_zero_pud) | _KERNPG_TABLE; for (i = 0; i < PTRS_PER_PTE; i++) kasan_zero_pte[i] = __pte(pte_val); @@ -95,6 +106,9 @@ void __init kasan_early_init(void) for (i = 0; i < PTRS_PER_PUD; i++) kasan_zero_pud[i] = __pud(pud_val); + for (i = 0; CONFIG_PGTABLE_LEVELS >= 5 && i < PTRS_PER_P4D; i++) + kasan_zero_p4d[i] = __p4d(p4d_val); + kasan_map_early_shadow(early_level4_pgt); kasan_map_early_shadow(init_level4_pgt); } -- 2.11.0 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2017-03-27 16:30 UTC|newest] Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-03-27 16:29 [PATCH 0/8] x86: 5-level paging enabling for v4.12, Part 3 Kirill A. Shutemov 2017-03-27 16:29 ` Kirill A. Shutemov 2017-03-27 16:29 ` [PATCH 1/8] x86/boot: Detect 5-level paging support Kirill A. Shutemov 2017-03-27 16:29 ` Kirill A. Shutemov 2017-03-28 6:06 ` Ingo Molnar 2017-03-28 6:06 ` Ingo Molnar 2017-03-28 10:45 ` [PATCHv2 " Kirill A. Shutemov 2017-03-28 10:45 ` Kirill A. Shutemov 2017-03-27 16:29 ` [PATCH 2/8] x86/asm: Remove __VIRTUAL_MASK_SHIFT==47 assert Kirill A. Shutemov 2017-03-27 16:29 ` Kirill A. Shutemov 2017-03-27 16:29 ` [PATCH 3/8] x86/mm: Define virtual memory map for 5-level paging Kirill A. Shutemov 2017-03-27 16:29 ` Kirill A. Shutemov 2017-03-28 22:21 ` H. Peter Anvin 2017-03-28 22:21 ` H. Peter Anvin 2017-03-28 22:47 ` Kirill A. Shutemov 2017-03-28 22:47 ` Kirill A. Shutemov 2017-03-29 13:20 ` [PATCHv2 " Kirill A. Shutemov 2017-03-29 13:20 ` Kirill A. Shutemov 2017-03-27 16:29 ` [PATCH 4/8] x86/paravirt: Make paravirt code support " Kirill A. Shutemov 2017-03-27 16:29 ` Kirill A. Shutemov 2017-03-27 16:29 ` [PATCH 5/8] x86/mm: Add basic defines/helpers for CONFIG_X86_5LEVEL Kirill A. Shutemov 2017-03-27 16:29 ` Kirill A. Shutemov 2017-03-28 6:11 ` Ingo Molnar 2017-03-28 6:11 ` Ingo Molnar 2017-03-28 10:46 ` [PATCHv2 " Kirill A. Shutemov 2017-03-28 10:46 ` Kirill A. Shutemov 2017-03-27 16:29 ` [PATCH 6/8] x86/dump_pagetables: Add support 5-level paging Kirill A. Shutemov 2017-03-27 16:29 ` Kirill A. Shutemov 2017-03-28 6:12 ` Ingo Molnar 2017-03-28 6:12 ` Ingo Molnar 2017-03-28 9:30 ` Kirill A. Shutemov 2017-03-28 9:30 ` Kirill A. Shutemov 2017-03-28 9:39 ` Ingo Molnar 2017-03-28 9:39 ` Ingo Molnar 2017-03-28 10:48 ` [PATCHv2 " Kirill A. Shutemov 2017-03-28 10:48 ` Kirill A. Shutemov 2017-03-28 18:55 ` Borislav Petkov 2017-03-28 18:55 ` Borislav Petkov 2017-03-28 21:15 ` Kirill A. Shutemov 2017-03-28 21:15 ` Kirill A. Shutemov 2017-03-28 21:38 ` Borislav Petkov 2017-03-28 21:38 ` Borislav Petkov 2017-03-29 15:00 ` Kirill A. Shutemov 2017-03-29 15:00 ` Kirill A. Shutemov 2017-03-30 6:22 ` Ingo Molnar 2017-03-30 6:22 ` Ingo Molnar 2017-03-30 7:28 ` [tip:x86/mm] x86/dump_pagetables: Add support for " tip-bot for Kirill A. Shutemov 2017-03-27 16:29 ` Kirill A. Shutemov [this message] 2017-03-27 16:29 ` [PATCH 7/8] x86/kasan: Extend to support " Kirill A. Shutemov 2017-03-27 16:29 ` [PATCH 8/8] x86/espfix: Add " Kirill A. Shutemov 2017-03-27 16:29 ` Kirill A. Shutemov 2017-03-29 13:22 ` [PATCHv2 " Kirill A. Shutemov 2017-03-29 13:22 ` Kirill A. Shutemov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170327162925.16092-8-kirill.shutemov@linux.intel.com \ --to=kirill.shutemov@linux.intel.com \ --cc=ak@linux.intel.com \ --cc=akpm@linux-foundation.org \ --cc=aryabinin@virtuozzo.com \ --cc=dave.hansen@intel.com \ --cc=dvyukov@google.com \ --cc=hpa@zytor.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=luto@amacapital.net \ --cc=mingo@redhat.com \ --cc=tglx@linutronix.de \ --cc=torvalds@linux-foundation.org \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.