aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/mm
diff options
context:
space:
mode:
authorThomas Garnier <thgarnie@google.com>2016-06-21 20:47:04 -0400
committerIngo Molnar <mingo@kernel.org>2016-07-08 11:35:21 -0400
commita95ae27c2ee1cba5f4f6b9dea43ffe88252e79b1 (patch)
tree741fdc0ea0e1348736c11dabd812b73f500a6fe9 /arch/x86/mm
parent021182e52fe01c1f7b126f97fd6ba048dc4234fd (diff)
x86/mm: Enable KASLR for vmalloc memory regions
Add vmalloc to the list of randomized memory regions. The vmalloc memory region contains the allocation made through the vmalloc() API. The allocations are done sequentially to prevent fragmentation and each allocation address can easily be deduced especially from boot. Signed-off-by: Thomas Garnier <thgarnie@google.com> Signed-off-by: Kees Cook <keescook@chromium.org> Cc: Alexander Kuleshov <kuleshovmail@gmail.com> Cc: Alexander Popov <alpopov@ptsecurity.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Andy Lutomirski <luto@kernel.org> Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Cc: Baoquan He <bhe@redhat.com> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Borislav Petkov <bp@suse.de> Cc: Brian Gerst <brgerst@gmail.com> Cc: Christian Borntraeger <borntraeger@de.ibm.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: Dave Young <dyoung@redhat.com> Cc: Denys Vlasenko <dvlasenk@redhat.com> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Jan Beulich <JBeulich@suse.com> Cc: Joerg Roedel <jroedel@suse.de> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Josh Poimboeuf <jpoimboe@redhat.com> Cc: Juergen Gross <jgross@suse.com> Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Lv Zheng <lv.zheng@intel.com> Cc: Mark Salter <msalter@redhat.com> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Matt Fleming <matt@codeblueprint.co.uk> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephen Smalley <sds@tycho.nsa.gov> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Toshi Kani <toshi.kani@hpe.com> Cc: Xiao Guangrong <guangrong.xiao@linux.intel.com> Cc: Yinghai Lu <yinghai@kernel.org> Cc: kernel-hardening@lists.openwall.com Cc: linux-doc@vger.kernel.org Link: http://lkml.kernel.org/r/1466556426-32664-8-git-send-email-keescook@chromium.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/mm')
-rw-r--r--arch/x86/mm/kaslr.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/x86/mm/kaslr.c b/arch/x86/mm/kaslr.c
index 609ecf2b37ed..c939cfe1b516 100644
--- a/arch/x86/mm/kaslr.c
+++ b/arch/x86/mm/kaslr.c
@@ -44,11 +44,13 @@
44 * ensure that this order is correct and won't be changed. 44 * ensure that this order is correct and won't be changed.
45 */ 45 */
46static const unsigned long vaddr_start = __PAGE_OFFSET_BASE; 46static const unsigned long vaddr_start = __PAGE_OFFSET_BASE;
47static const unsigned long vaddr_end = VMALLOC_START; 47static const unsigned long vaddr_end = VMEMMAP_START;
48 48
49/* Default values */ 49/* Default values */
50unsigned long page_offset_base = __PAGE_OFFSET_BASE; 50unsigned long page_offset_base = __PAGE_OFFSET_BASE;
51EXPORT_SYMBOL(page_offset_base); 51EXPORT_SYMBOL(page_offset_base);
52unsigned long vmalloc_base = __VMALLOC_BASE;
53EXPORT_SYMBOL(vmalloc_base);
52 54
53/* 55/*
54 * Memory regions randomized by KASLR (except modules that use a separate logic 56 * Memory regions randomized by KASLR (except modules that use a separate logic
@@ -60,6 +62,7 @@ static __initdata struct kaslr_memory_region {
60 unsigned long size_tb; 62 unsigned long size_tb;
61} kaslr_regions[] = { 63} kaslr_regions[] = {
62 { &page_offset_base, 64/* Maximum */ }, 64 { &page_offset_base, 64/* Maximum */ },
65 { &vmalloc_base, VMALLOC_SIZE_TB },
63}; 66};
64 67
65/* Get size in bytes used by the memory region */ 68/* Get size in bytes used by the memory region */