[tip:x86/mm] x86/mm/ptdump: Add address marker for KASAN shadow region

From: tip-bot for Andrey Ryabinin
Date: Thu Feb 16 2017 - 13:59:25 EST


Commit-ID: 025205f8f30c6ab52b69bf34fb359ac80360fefd
Gitweb: http://git.kernel.org/tip/025205f8f30c6ab52b69bf34fb359ac80360fefd
Author: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx>
AuthorDate: Tue, 14 Feb 2017 13:08:39 +0300
Committer: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
CommitDate: Thu, 16 Feb 2017 19:53:25 +0100

x86/mm/ptdump: Add address marker for KASAN shadow region

Annotate the KASAN shadow with address markers in page table
dump output:

$ cat /sys/kernel/debug/kernel_page_tables
...

---[ Vmemmap ]---
0xffffea0000000000-0xffffea0003000000 48M RW PSE GLB NX pmd
0xffffea0003000000-0xffffea0004000000 16M pmd
0xffffea0004000000-0xffffea0005000000 16M RW PSE GLB NX pmd
0xffffea0005000000-0xffffea0040000000 944M pmd
0xffffea0040000000-0xffffea8000000000 511G pud
0xffffea8000000000-0xffffec0000000000 1536G pgd
---[ KASAN shadow ]---
0xffffec0000000000-0xffffed0000000000 1T ro GLB NX pte
0xffffed0000000000-0xffffed0018000000 384M RW PSE GLB NX pmd
0xffffed0018000000-0xffffed0020000000 128M pmd
0xffffed0020000000-0xffffed0028200000 130M RW PSE GLB NX pmd
0xffffed0028200000-0xffffed0040000000 382M pmd
0xffffed0040000000-0xffffed8000000000 511G pud
0xffffed8000000000-0xfffff50000000000 7680G pgd
0xfffff50000000000-0xfffffbfff0000000 7339776M ro GLB NX pte
0xfffffbfff0000000-0xfffffbfff0200000 2M pmd
0xfffffbfff0200000-0xfffffbfff0a00000 8M RW PSE GLB NX pmd
0xfffffbfff0a00000-0xfffffbffffe00000 244M pmd
0xfffffbffffe00000-0xfffffc0000000000 2M ro GLB NX pte
---[ KASAN shadow end ]---
0xfffffc0000000000-0xffffff0000000000 3T pgd
---[ ESPfix Area ]---
...

Signed-off-by: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx>
Reviewed-by: Alexander Potapenko <glider@xxxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: kasan-dev@xxxxxxxxxxxxxxxx
Cc: Tobias Regnery <tobias.regnery@xxxxxxxxx>
Cc: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx>
Cc: Dmitry Vyukov <dvyukov@xxxxxxxxxx>
Link: http://lkml.kernel.org/r/20170214100839.17186-2-aryabinin@xxxxxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
---
arch/x86/mm/dump_pagetables.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/arch/x86/mm/dump_pagetables.c b/arch/x86/mm/dump_pagetables.c
index 0813534..58b5bee 100644
--- a/arch/x86/mm/dump_pagetables.c
+++ b/arch/x86/mm/dump_pagetables.c
@@ -18,6 +18,7 @@
#include <linux/sched.h>
#include <linux/seq_file.h>

+#include <asm/kasan.h>
#include <asm/pgtable.h>

/*
@@ -51,6 +52,10 @@ enum address_markers_idx {
LOW_KERNEL_NR,
VMALLOC_START_NR,
VMEMMAP_START_NR,
+#ifdef CONFIG_KASAN
+ KASAN_SHADOW_START_NR,
+ KASAN_SHADOW_END_NR,
+#endif
# ifdef CONFIG_X86_ESPFIX64
ESPFIX_START_NR,
# endif
@@ -76,6 +81,10 @@ static struct addr_marker address_markers[] = {
{ 0/* PAGE_OFFSET */, "Low Kernel Mapping" },
{ 0/* VMALLOC_START */, "vmalloc() Area" },
{ 0/* VMEMMAP_START */, "Vmemmap" },
+#ifdef CONFIG_KASAN
+ { KASAN_SHADOW_START, "KASAN shadow" },
+ { KASAN_SHADOW_END, "KASAN shadow end" },
+#endif
# ifdef CONFIG_X86_ESPFIX64
{ ESPFIX_BASE_ADDR, "ESPfix Area", 16 },
# endif