Messages in this thread Patch in this message | | | From | Alexander Popov <> | Subject | [PATCH 1/1] x86_64: fix KASan shadow region page tables | Date | Fri, 22 May 2015 19:03:01 +0300 |
| |
Physical addresses in KASan shadow region page tables need fixup: kernel halts without it if phys_base is not zero.
Signed-off-by: Alexander Popov <alpopov@ptsecurity.com> --- arch/x86/kernel/head_64.S | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S index ae6588b..f7711bb 100644 --- a/arch/x86/kernel/head_64.S +++ b/arch/x86/kernel/head_64.S @@ -95,6 +95,20 @@ startup_64: addq %rbp, level2_fixmap_pgt + (506*8)(%rip) +#ifdef CONFIG_KASAN + xor %rax, %rax + leaq kasan_zero_pud(%rip), %rbx + leaq kasan_zero_pmd(%rip), %rcx + leaq kasan_zero_pte(%rip), %rdx +1: + addq %rbp, (%rbx,%rax,8) + addq %rbp, (%rcx,%rax,8) + addq %rbp, (%rdx,%rax,8) + inc %rax + cmp $512, %rax + jne 1b +#endif + /* * Set up the identity mapping for the switchover. These * entries should *NOT* have the global bit set! This also -- 1.9.1
| |