From: Andrey Ryabinin <a.ryabinin@samsung.com> To: Andrew Morton <akpm@linux-foundation.org> Cc: Andrey Ryabinin <a.ryabinin@samsung.com>, Dmitry Vyukov <dvyukov@google.com>, Konstantin Serebryany <kcc@google.com>, Dmitry Chernenkov <dmitryc@google.com>, Andrey Konovalov <adech.fo@gmail.com>, Yuri Gribov <tetra2005@gmail.com>, Konstantin Khlebnikov <koct9i@gmail.com>, Sasha Levin <sasha.levin@oracle.com>, Christoph Lameter <cl@linux.com>, Joonsoo Kim <iamjoonsoo.kim@lge.com>, Dave Hansen <dave.hansen@intel.com>, Andi Kleen <andi@firstfloor.org>, Vegard Nossum <vegard.nossum@gmail.com>, "H. Peter Anvin" <hpa@zytor.com>, Dave Jones <davej@redhat.com>, x86@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com> Subject: [PATCH v5 04/12] x86_64: add KASan support Date: Mon, 27 Oct 2014 19:46:51 +0300 [thread overview] Message-ID: <1414428419-17860-5-git-send-email-a.ryabinin@samsung.com> (raw) In-Reply-To: <1414428419-17860-1-git-send-email-a.ryabinin@samsung.com> This patch adds arch specific code for kernel address sanitizer. 16TB of virtual addressed used for shadow memory. It's located in range [0xffffd90000000000 - 0xffffe90000000000] which belongs to vmalloc area. At early stage we map whole shadow region with zero page. Latter, after pages mapped to direct mapping address range we unmap zero pages from corresponding shadow (see kasan_map_shadow()) and allocate and map a real shadow memory reusing vmemmap_populate() function. Also replace __pa with __pa_nodebug before shadow initialized. __pa with CONFIG_DEBUG_VIRTUAL=y make external function call (__phys_addr) __phys_addr is instrumented, so __asan_load could be called before shadow area initialized. Signed-off-by: Andrey Ryabinin <a.ryabinin@samsung.com> --- arch/x86/Kconfig | 1 + arch/x86/boot/Makefile | 2 + arch/x86/boot/compressed/Makefile | 2 + arch/x86/include/asm/kasan.h | 27 ++++++++++++ arch/x86/kernel/Makefile | 2 + arch/x86/kernel/dumpstack.c | 5 ++- arch/x86/kernel/head64.c | 9 +++- arch/x86/kernel/head_64.S | 28 +++++++++++++ arch/x86/mm/Makefile | 3 ++ arch/x86/mm/init.c | 3 ++ arch/x86/mm/kasan_init_64.c | 87 +++++++++++++++++++++++++++++++++++++++ arch/x86/realmode/Makefile | 2 +- arch/x86/realmode/rm/Makefile | 1 + arch/x86/vdso/Makefile | 1 + lib/Kconfig.kasan | 6 +++ 15 files changed, 175 insertions(+), 4 deletions(-) create mode 100644 arch/x86/include/asm/kasan.h create mode 100644 arch/x86/mm/kasan_init_64.c diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 6115af9..ba56207 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -138,6 +138,7 @@ config X86 select HAVE_ACPI_APEI_NMI if ACPI select ACPI_LEGACY_TABLES_LOOKUP if ACPI select X86_FEATURE_NAMES if PROC_FS + select HAVE_ARCH_KASAN if X86_64 config INSTRUCTION_DECODER def_bool y diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile index 5b016e2..1ef2724 100644 --- a/arch/x86/boot/Makefile +++ b/arch/x86/boot/Makefile @@ -14,6 +14,8 @@ # Set it to -DSVGA_MODE=NORMAL_VGA if you just want the EGA/VGA mode. # The number is the same as you would ordinarily press at bootup. +KASAN_SANITIZE := n + SVGA_MODE := -DSVGA_MODE=NORMAL_VGA targets := vmlinux.bin setup.bin setup.elf bzImage diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile index 704f58a..21faab6b7 100644 --- a/arch/x86/boot/compressed/Makefile +++ b/arch/x86/boot/compressed/Makefile @@ -4,6 +4,8 @@ # create a compressed vmlinux image from the original vmlinux # +KASAN_SANITIZE := n + targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma \ vmlinux.bin.xz vmlinux.bin.lzo vmlinux.bin.lz4 diff --git a/arch/x86/include/asm/kasan.h b/arch/x86/include/asm/kasan.h new file mode 100644 index 0000000..056c943 --- /dev/null +++ b/arch/x86/include/asm/kasan.h @@ -0,0 +1,27 @@ +#ifndef _ASM_X86_KASAN_H +#define _ASM_X86_KASAN_H + +#define KASAN_SHADOW_START 0xffffd90000000000UL +#define KASAN_SHADOW_END 0xffffe90000000000UL + +#ifndef __ASSEMBLY__ + +extern pte_t zero_pte[]; +extern pte_t zero_pmd[]; +extern pte_t zero_pud[]; + +extern pte_t poisoned_pte[]; +extern pte_t poisoned_pmd[]; +extern pte_t poisoned_pud[]; + +#ifdef CONFIG_KASAN +void __init kasan_map_zero_shadow(pgd_t *pgd); +void __init kasan_map_shadow(void); +#else +static inline void kasan_map_zero_shadow(pgd_t *pgd) { } +static inline void kasan_map_shadow(void) { } +#endif + +#endif + +#endif diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile index 8f1e774..9d46ee8 100644 --- a/arch/x86/kernel/Makefile +++ b/arch/x86/kernel/Makefile @@ -16,6 +16,8 @@ CFLAGS_REMOVE_ftrace.o = -pg CFLAGS_REMOVE_early_printk.o = -pg endif +KASAN_SANITIZE_head$(BITS).o := n + CFLAGS_irq.o := -I$(src)/../include/asm/trace obj-y := process_$(BITS).o signal.o entry_$(BITS).o diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c index b74ebc7..cf3df1d 100644 --- a/arch/x86/kernel/dumpstack.c +++ b/arch/x86/kernel/dumpstack.c @@ -265,7 +265,10 @@ int __die(const char *str, struct pt_regs *regs, long err) printk("SMP "); #endif #ifdef CONFIG_DEBUG_PAGEALLOC - printk("DEBUG_PAGEALLOC"); + printk("DEBUG_PAGEALLOC "); +#endif +#ifdef CONFIG_KASAN + printk("KASAN"); #endif printk("\n"); if (notify_die(DIE_OOPS, str, regs, err, diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c index eda1a86..b9e4e50 100644 --- a/arch/x86/kernel/head64.c +++ b/arch/x86/kernel/head64.c @@ -27,6 +27,7 @@ #include <asm/bios_ebda.h> #include <asm/bootparam_utils.h> #include <asm/microcode.h> +#include <asm/kasan.h> /* * Manage page tables very early on. @@ -46,7 +47,7 @@ static void __init reset_early_page_tables(void) next_early_pgt = 0; - write_cr3(__pa(early_level4_pgt)); + write_cr3(__pa_nodebug(early_level4_pgt)); } /* Create a new PMD entry */ @@ -59,7 +60,7 @@ int __init early_make_pgtable(unsigned long address) pmdval_t pmd, *pmd_p; /* Invalid address or early pgt is done ? */ - if (physaddr >= MAXMEM || read_cr3() != __pa(early_level4_pgt)) + if (physaddr >= MAXMEM || read_cr3() != __pa_nodebug(early_level4_pgt)) return -1; again: @@ -158,6 +159,8 @@ asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data) /* Kill off the identity-map trampoline */ reset_early_page_tables(); + kasan_map_zero_shadow(early_level4_pgt); + /* clear bss before set_intr_gate with early_idt_handler */ clear_bss(); @@ -179,6 +182,8 @@ asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data) /* set init_level4_pgt kernel high mapping*/ init_level4_pgt[511] = early_level4_pgt[511]; + kasan_map_zero_shadow(init_level4_pgt); + x86_64_start_reservations(real_mode_data); } diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S index a468c0a..444105c 100644 --- a/arch/x86/kernel/head_64.S +++ b/arch/x86/kernel/head_64.S @@ -514,8 +514,36 @@ ENTRY(phys_base) /* This must match the first entry in level2_kernel_pgt */ .quad 0x0000000000000000 +#ifdef CONFIG_KASAN +#define FILL(VAL, COUNT) \ + .rept (COUNT) ; \ + .quad (VAL) ; \ + .endr + +NEXT_PAGE(zero_pte) + FILL(empty_zero_page - __START_KERNEL_map + __PAGE_KERNEL_RO, 512) +NEXT_PAGE(zero_pmd) + FILL(zero_pte - __START_KERNEL_map + __PAGE_KERNEL_RO, 512) +NEXT_PAGE(zero_pud) + FILL(zero_pmd - __START_KERNEL_map + __PAGE_KERNEL_RO, 512) + +NEXT_PAGE(poisoned_pte) + FILL(poisoned_page - __START_KERNEL_map + __PAGE_KERNEL_RO, 512) +NEXT_PAGE(poisoned_pmd) + FILL(poisoned_pte - __START_KERNEL_map + __PAGE_KERNEL_RO, 512) +NEXT_PAGE(poisoned_pud) + FILL(poisoned_pmd - __START_KERNEL_map + __PAGE_KERNEL_RO, 512) + +#undef FILL +#endif + + #include "../../x86/xen/xen-head.S" __PAGE_ALIGNED_BSS NEXT_PAGE(empty_zero_page) .skip PAGE_SIZE +#ifdef CONFIG_KASAN +NEXT_PAGE(poisoned_page) + .fill PAGE_SIZE,1,0xF9 +#endif diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile index 6a19ad9..b6c5168 100644 --- a/arch/x86/mm/Makefile +++ b/arch/x86/mm/Makefile @@ -8,6 +8,8 @@ CFLAGS_setup_nx.o := $(nostackp) CFLAGS_fault.o := -I$(src)/../include/asm/trace +KASAN_SANITIZE_kasan_init_$(BITS).o := n + obj-$(CONFIG_X86_PAT) += pat_rbtree.o obj-$(CONFIG_SMP) += tlb.o @@ -30,3 +32,4 @@ obj-$(CONFIG_ACPI_NUMA) += srat.o obj-$(CONFIG_NUMA_EMU) += numa_emulation.o obj-$(CONFIG_MEMTEST) += memtest.o +obj-$(CONFIG_KASAN) += kasan_init_$(BITS).o diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c index 66dba36..4a5a597 100644 --- a/arch/x86/mm/init.c +++ b/arch/x86/mm/init.c @@ -8,6 +8,7 @@ #include <asm/cacheflush.h> #include <asm/e820.h> #include <asm/init.h> +#include <asm/kasan.h> #include <asm/page.h> #include <asm/page_types.h> #include <asm/sections.h> @@ -685,5 +686,7 @@ void __init zone_sizes_init(void) #endif free_area_init_nodes(max_zone_pfns); + + kasan_map_shadow(); } diff --git a/arch/x86/mm/kasan_init_64.c b/arch/x86/mm/kasan_init_64.c new file mode 100644 index 0000000..c6ea8a4 --- /dev/null +++ b/arch/x86/mm/kasan_init_64.c @@ -0,0 +1,87 @@ +#include <linux/bootmem.h> +#include <linux/kasan.h> +#include <linux/mm.h> +#include <linux/sched.h> +#include <linux/vmalloc.h> + +#include <asm/tlbflush.h> + +extern pgd_t early_level4_pgt[PTRS_PER_PGD]; +extern struct range pfn_mapped[E820_X_MAX]; + +struct vm_struct kasan_vm __initdata = { + .addr = (void *)KASAN_SHADOW_START, + .size = (16UL << 40), +}; + + +static int __init map_range(struct range *range) +{ + unsigned long start = kasan_mem_to_shadow( + (unsigned long)pfn_to_kaddr(range->start)); + unsigned long end = kasan_mem_to_shadow( + (unsigned long)pfn_to_kaddr(range->end)); + + /* + * end + 1 here is intentional. We check several shadow bytes in advance + * to slightly speed up fastpath. In some rare cases we could cross + * boundary of mapped shadow, so we just map some more here. + */ + return vmemmap_populate(start, end + 1, NUMA_NO_NODE); +} + +static void __init clear_zero_shadow_mapping(unsigned long start, + unsigned long end) +{ + for (; start < end; start += PGDIR_SIZE) + pgd_clear(pgd_offset_k(start)); +} + +void __init kasan_map_zero_shadow(pgd_t *pgd) +{ + int i; + unsigned long start = KASAN_SHADOW_START; + unsigned long end = kasan_mem_to_shadow(KASAN_SHADOW_START); + + for (i = pgd_index(start); start < end; i++) { + pgd[i] = __pgd(__pa_nodebug(zero_pud) | __PAGE_KERNEL_RO); + start += PGDIR_SIZE; + } + + start = end; + end = kasan_mem_to_shadow(KASAN_SHADOW_END); + for (i = pgd_index(start); start < end; i++) { + pgd[i] = __pgd(__pa_nodebug(poisoned_pud) | __PAGE_KERNEL_RO); + start += PGDIR_SIZE; + } + + start = end; + end = KASAN_SHADOW_END; + for (i = pgd_index(start); start < end; i++) { + pgd[i] = __pgd(__pa_nodebug(zero_pud) | __PAGE_KERNEL_RO); + start += PGDIR_SIZE; + } + +} + +void __init kasan_map_shadow(void) +{ + int i; + + vm_area_add_early(&kasan_vm); + + memcpy(early_level4_pgt, init_level4_pgt, sizeof(early_level4_pgt)); + load_cr3(early_level4_pgt); + + clear_zero_shadow_mapping(kasan_mem_to_shadow(PAGE_OFFSET), + kasan_mem_to_shadow(PAGE_OFFSET + MAXMEM)); + + for (i = 0; i < E820_X_MAX; i++) { + if (pfn_mapped[i].end == 0) + break; + + if (map_range(&pfn_mapped[i])) + panic("kasan: unable to allocate shadow!"); + } + load_cr3(init_level4_pgt); +} diff --git a/arch/x86/realmode/Makefile b/arch/x86/realmode/Makefile index 94f7fbe..e02c2c6 100644 --- a/arch/x86/realmode/Makefile +++ b/arch/x86/realmode/Makefile @@ -6,7 +6,7 @@ # for more details. # # - +KASAN_SANITIZE := n subdir- := rm obj-y += init.o diff --git a/arch/x86/realmode/rm/Makefile b/arch/x86/realmode/rm/Makefile index 7c0d7be..2730d77 100644 --- a/arch/x86/realmode/rm/Makefile +++ b/arch/x86/realmode/rm/Makefile @@ -6,6 +6,7 @@ # for more details. # # +KASAN_SANITIZE := n always := realmode.bin realmode.relocs diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile index 5a4affe..2aacd7c 100644 --- a/arch/x86/vdso/Makefile +++ b/arch/x86/vdso/Makefile @@ -3,6 +3,7 @@ # KBUILD_CFLAGS += $(DISABLE_LTO) +KASAN_SANITIZE := n VDSO64-$(CONFIG_X86_64) := y VDSOX32-$(CONFIG_X86_X32_ABI) := y diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan index 54cf44f..b458a00 100644 --- a/lib/Kconfig.kasan +++ b/lib/Kconfig.kasan @@ -5,6 +5,7 @@ if HAVE_ARCH_KASAN config KASAN bool "AddressSanitizer: runtime memory debugger" + depends on !MEMORY_HOTPLUG help Enables address sanitizer - runtime memory debugger, designed to find out-of-bounds accesses and use-after-free bugs. @@ -12,4 +13,9 @@ config KASAN of available memory and brings about ~x3 performance slowdown. For better error detection enable CONFIG_STACKTRACE, and add slub_debug=U to boot cmdline. + +config KASAN_SHADOW_OFFSET + hex + default 0xdfffe90000000000 if X86_64 + endif -- 2.1.2
WARNING: multiple messages have this Message-ID (diff)
From: Andrey Ryabinin <a.ryabinin@samsung.com> To: Andrew Morton <akpm@linux-foundation.org> Cc: Andrey Ryabinin <a.ryabinin@samsung.com>, Dmitry Vyukov <dvyukov@google.com>, Konstantin Serebryany <kcc@google.com>, Dmitry Chernenkov <dmitryc@google.com>, Andrey Konovalov <adech.fo@gmail.com>, Yuri Gribov <tetra2005@gmail.com>, Konstantin Khlebnikov <koct9i@gmail.com>, Sasha Levin <sasha.levin@oracle.com>, Christoph Lameter <cl@linux.com>, Joonsoo Kim <iamjoonsoo.kim@lge.com>, Dave Hansen <dave.hansen@intel.com>, Andi Kleen <andi@firstfloor.org>, Vegard Nossum <vegard.nossum@gmail.com>, "H. Peter Anvin" <hpa@zytor.com>, Dave Jones <davej@redhat.com>, x86@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com> Subject: [PATCH v5 04/12] x86_64: add KASan support Date: Mon, 27 Oct 2014 19:46:51 +0300 [thread overview] Message-ID: <1414428419-17860-5-git-send-email-a.ryabinin@samsung.com> (raw) In-Reply-To: <1414428419-17860-1-git-send-email-a.ryabinin@samsung.com> This patch adds arch specific code for kernel address sanitizer. 16TB of virtual addressed used for shadow memory. It's located in range [0xffffd90000000000 - 0xffffe90000000000] which belongs to vmalloc area. At early stage we map whole shadow region with zero page. Latter, after pages mapped to direct mapping address range we unmap zero pages from corresponding shadow (see kasan_map_shadow()) and allocate and map a real shadow memory reusing vmemmap_populate() function. Also replace __pa with __pa_nodebug before shadow initialized. __pa with CONFIG_DEBUG_VIRTUAL=y make external function call (__phys_addr) __phys_addr is instrumented, so __asan_load could be called before shadow area initialized. Signed-off-by: Andrey Ryabinin <a.ryabinin@samsung.com> --- arch/x86/Kconfig | 1 + arch/x86/boot/Makefile | 2 + arch/x86/boot/compressed/Makefile | 2 + arch/x86/include/asm/kasan.h | 27 ++++++++++++ arch/x86/kernel/Makefile | 2 + arch/x86/kernel/dumpstack.c | 5 ++- arch/x86/kernel/head64.c | 9 +++- arch/x86/kernel/head_64.S | 28 +++++++++++++ arch/x86/mm/Makefile | 3 ++ arch/x86/mm/init.c | 3 ++ arch/x86/mm/kasan_init_64.c | 87 +++++++++++++++++++++++++++++++++++++++ arch/x86/realmode/Makefile | 2 +- arch/x86/realmode/rm/Makefile | 1 + arch/x86/vdso/Makefile | 1 + lib/Kconfig.kasan | 6 +++ 15 files changed, 175 insertions(+), 4 deletions(-) create mode 100644 arch/x86/include/asm/kasan.h create mode 100644 arch/x86/mm/kasan_init_64.c diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 6115af9..ba56207 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -138,6 +138,7 @@ config X86 select HAVE_ACPI_APEI_NMI if ACPI select ACPI_LEGACY_TABLES_LOOKUP if ACPI select X86_FEATURE_NAMES if PROC_FS + select HAVE_ARCH_KASAN if X86_64 config INSTRUCTION_DECODER def_bool y diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile index 5b016e2..1ef2724 100644 --- a/arch/x86/boot/Makefile +++ b/arch/x86/boot/Makefile @@ -14,6 +14,8 @@ # Set it to -DSVGA_MODE=NORMAL_VGA if you just want the EGA/VGA mode. # The number is the same as you would ordinarily press at bootup. +KASAN_SANITIZE := n + SVGA_MODE := -DSVGA_MODE=NORMAL_VGA targets := vmlinux.bin setup.bin setup.elf bzImage diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile index 704f58a..21faab6b7 100644 --- a/arch/x86/boot/compressed/Makefile +++ b/arch/x86/boot/compressed/Makefile @@ -4,6 +4,8 @@ # create a compressed vmlinux image from the original vmlinux # +KASAN_SANITIZE := n + targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma \ vmlinux.bin.xz vmlinux.bin.lzo vmlinux.bin.lz4 diff --git a/arch/x86/include/asm/kasan.h b/arch/x86/include/asm/kasan.h new file mode 100644 index 0000000..056c943 --- /dev/null +++ b/arch/x86/include/asm/kasan.h @@ -0,0 +1,27 @@ +#ifndef _ASM_X86_KASAN_H +#define _ASM_X86_KASAN_H + +#define KASAN_SHADOW_START 0xffffd90000000000UL +#define KASAN_SHADOW_END 0xffffe90000000000UL + +#ifndef __ASSEMBLY__ + +extern pte_t zero_pte[]; +extern pte_t zero_pmd[]; +extern pte_t zero_pud[]; + +extern pte_t poisoned_pte[]; +extern pte_t poisoned_pmd[]; +extern pte_t poisoned_pud[]; + +#ifdef CONFIG_KASAN +void __init kasan_map_zero_shadow(pgd_t *pgd); +void __init kasan_map_shadow(void); +#else +static inline void kasan_map_zero_shadow(pgd_t *pgd) { } +static inline void kasan_map_shadow(void) { } +#endif + +#endif + +#endif diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile index 8f1e774..9d46ee8 100644 --- a/arch/x86/kernel/Makefile +++ b/arch/x86/kernel/Makefile @@ -16,6 +16,8 @@ CFLAGS_REMOVE_ftrace.o = -pg CFLAGS_REMOVE_early_printk.o = -pg endif +KASAN_SANITIZE_head$(BITS).o := n + CFLAGS_irq.o := -I$(src)/../include/asm/trace obj-y := process_$(BITS).o signal.o entry_$(BITS).o diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c index b74ebc7..cf3df1d 100644 --- a/arch/x86/kernel/dumpstack.c +++ b/arch/x86/kernel/dumpstack.c @@ -265,7 +265,10 @@ int __die(const char *str, struct pt_regs *regs, long err) printk("SMP "); #endif #ifdef CONFIG_DEBUG_PAGEALLOC - printk("DEBUG_PAGEALLOC"); + printk("DEBUG_PAGEALLOC "); +#endif +#ifdef CONFIG_KASAN + printk("KASAN"); #endif printk("\n"); if (notify_die(DIE_OOPS, str, regs, err, diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c index eda1a86..b9e4e50 100644 --- a/arch/x86/kernel/head64.c +++ b/arch/x86/kernel/head64.c @@ -27,6 +27,7 @@ #include <asm/bios_ebda.h> #include <asm/bootparam_utils.h> #include <asm/microcode.h> +#include <asm/kasan.h> /* * Manage page tables very early on. @@ -46,7 +47,7 @@ static void __init reset_early_page_tables(void) next_early_pgt = 0; - write_cr3(__pa(early_level4_pgt)); + write_cr3(__pa_nodebug(early_level4_pgt)); } /* Create a new PMD entry */ @@ -59,7 +60,7 @@ int __init early_make_pgtable(unsigned long address) pmdval_t pmd, *pmd_p; /* Invalid address or early pgt is done ? */ - if (physaddr >= MAXMEM || read_cr3() != __pa(early_level4_pgt)) + if (physaddr >= MAXMEM || read_cr3() != __pa_nodebug(early_level4_pgt)) return -1; again: @@ -158,6 +159,8 @@ asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data) /* Kill off the identity-map trampoline */ reset_early_page_tables(); + kasan_map_zero_shadow(early_level4_pgt); + /* clear bss before set_intr_gate with early_idt_handler */ clear_bss(); @@ -179,6 +182,8 @@ asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data) /* set init_level4_pgt kernel high mapping*/ init_level4_pgt[511] = early_level4_pgt[511]; + kasan_map_zero_shadow(init_level4_pgt); + x86_64_start_reservations(real_mode_data); } diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S index a468c0a..444105c 100644 --- a/arch/x86/kernel/head_64.S +++ b/arch/x86/kernel/head_64.S @@ -514,8 +514,36 @@ ENTRY(phys_base) /* This must match the first entry in level2_kernel_pgt */ .quad 0x0000000000000000 +#ifdef CONFIG_KASAN +#define FILL(VAL, COUNT) \ + .rept (COUNT) ; \ + .quad (VAL) ; \ + .endr + +NEXT_PAGE(zero_pte) + FILL(empty_zero_page - __START_KERNEL_map + __PAGE_KERNEL_RO, 512) +NEXT_PAGE(zero_pmd) + FILL(zero_pte - __START_KERNEL_map + __PAGE_KERNEL_RO, 512) +NEXT_PAGE(zero_pud) + FILL(zero_pmd - __START_KERNEL_map + __PAGE_KERNEL_RO, 512) + +NEXT_PAGE(poisoned_pte) + FILL(poisoned_page - __START_KERNEL_map + __PAGE_KERNEL_RO, 512) +NEXT_PAGE(poisoned_pmd) + FILL(poisoned_pte - __START_KERNEL_map + __PAGE_KERNEL_RO, 512) +NEXT_PAGE(poisoned_pud) + FILL(poisoned_pmd - __START_KERNEL_map + __PAGE_KERNEL_RO, 512) + +#undef FILL +#endif + + #include "../../x86/xen/xen-head.S" __PAGE_ALIGNED_BSS NEXT_PAGE(empty_zero_page) .skip PAGE_SIZE +#ifdef CONFIG_KASAN +NEXT_PAGE(poisoned_page) + .fill PAGE_SIZE,1,0xF9 +#endif diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile index 6a19ad9..b6c5168 100644 --- a/arch/x86/mm/Makefile +++ b/arch/x86/mm/Makefile @@ -8,6 +8,8 @@ CFLAGS_setup_nx.o := $(nostackp) CFLAGS_fault.o := -I$(src)/../include/asm/trace +KASAN_SANITIZE_kasan_init_$(BITS).o := n + obj-$(CONFIG_X86_PAT) += pat_rbtree.o obj-$(CONFIG_SMP) += tlb.o @@ -30,3 +32,4 @@ obj-$(CONFIG_ACPI_NUMA) += srat.o obj-$(CONFIG_NUMA_EMU) += numa_emulation.o obj-$(CONFIG_MEMTEST) += memtest.o +obj-$(CONFIG_KASAN) += kasan_init_$(BITS).o diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c index 66dba36..4a5a597 100644 --- a/arch/x86/mm/init.c +++ b/arch/x86/mm/init.c @@ -8,6 +8,7 @@ #include <asm/cacheflush.h> #include <asm/e820.h> #include <asm/init.h> +#include <asm/kasan.h> #include <asm/page.h> #include <asm/page_types.h> #include <asm/sections.h> @@ -685,5 +686,7 @@ void __init zone_sizes_init(void) #endif free_area_init_nodes(max_zone_pfns); + + kasan_map_shadow(); } diff --git a/arch/x86/mm/kasan_init_64.c b/arch/x86/mm/kasan_init_64.c new file mode 100644 index 0000000..c6ea8a4 --- /dev/null +++ b/arch/x86/mm/kasan_init_64.c @@ -0,0 +1,87 @@ +#include <linux/bootmem.h> +#include <linux/kasan.h> +#include <linux/mm.h> +#include <linux/sched.h> +#include <linux/vmalloc.h> + +#include <asm/tlbflush.h> + +extern pgd_t early_level4_pgt[PTRS_PER_PGD]; +extern struct range pfn_mapped[E820_X_MAX]; + +struct vm_struct kasan_vm __initdata = { + .addr = (void *)KASAN_SHADOW_START, + .size = (16UL << 40), +}; + + +static int __init map_range(struct range *range) +{ + unsigned long start = kasan_mem_to_shadow( + (unsigned long)pfn_to_kaddr(range->start)); + unsigned long end = kasan_mem_to_shadow( + (unsigned long)pfn_to_kaddr(range->end)); + + /* + * end + 1 here is intentional. We check several shadow bytes in advance + * to slightly speed up fastpath. In some rare cases we could cross + * boundary of mapped shadow, so we just map some more here. + */ + return vmemmap_populate(start, end + 1, NUMA_NO_NODE); +} + +static void __init clear_zero_shadow_mapping(unsigned long start, + unsigned long end) +{ + for (; start < end; start += PGDIR_SIZE) + pgd_clear(pgd_offset_k(start)); +} + +void __init kasan_map_zero_shadow(pgd_t *pgd) +{ + int i; + unsigned long start = KASAN_SHADOW_START; + unsigned long end = kasan_mem_to_shadow(KASAN_SHADOW_START); + + for (i = pgd_index(start); start < end; i++) { + pgd[i] = __pgd(__pa_nodebug(zero_pud) | __PAGE_KERNEL_RO); + start += PGDIR_SIZE; + } + + start = end; + end = kasan_mem_to_shadow(KASAN_SHADOW_END); + for (i = pgd_index(start); start < end; i++) { + pgd[i] = __pgd(__pa_nodebug(poisoned_pud) | __PAGE_KERNEL_RO); + start += PGDIR_SIZE; + } + + start = end; + end = KASAN_SHADOW_END; + for (i = pgd_index(start); start < end; i++) { + pgd[i] = __pgd(__pa_nodebug(zero_pud) | __PAGE_KERNEL_RO); + start += PGDIR_SIZE; + } + +} + +void __init kasan_map_shadow(void) +{ + int i; + + vm_area_add_early(&kasan_vm); + + memcpy(early_level4_pgt, init_level4_pgt, sizeof(early_level4_pgt)); + load_cr3(early_level4_pgt); + + clear_zero_shadow_mapping(kasan_mem_to_shadow(PAGE_OFFSET), + kasan_mem_to_shadow(PAGE_OFFSET + MAXMEM)); + + for (i = 0; i < E820_X_MAX; i++) { + if (pfn_mapped[i].end == 0) + break; + + if (map_range(&pfn_mapped[i])) + panic("kasan: unable to allocate shadow!"); + } + load_cr3(init_level4_pgt); +} diff --git a/arch/x86/realmode/Makefile b/arch/x86/realmode/Makefile index 94f7fbe..e02c2c6 100644 --- a/arch/x86/realmode/Makefile +++ b/arch/x86/realmode/Makefile @@ -6,7 +6,7 @@ # for more details. # # - +KASAN_SANITIZE := n subdir- := rm obj-y += init.o diff --git a/arch/x86/realmode/rm/Makefile b/arch/x86/realmode/rm/Makefile index 7c0d7be..2730d77 100644 --- a/arch/x86/realmode/rm/Makefile +++ b/arch/x86/realmode/rm/Makefile @@ -6,6 +6,7 @@ # for more details. # # +KASAN_SANITIZE := n always := realmode.bin realmode.relocs diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile index 5a4affe..2aacd7c 100644 --- a/arch/x86/vdso/Makefile +++ b/arch/x86/vdso/Makefile @@ -3,6 +3,7 @@ # KBUILD_CFLAGS += $(DISABLE_LTO) +KASAN_SANITIZE := n VDSO64-$(CONFIG_X86_64) := y VDSOX32-$(CONFIG_X86_X32_ABI) := y diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan index 54cf44f..b458a00 100644 --- a/lib/Kconfig.kasan +++ b/lib/Kconfig.kasan @@ -5,6 +5,7 @@ if HAVE_ARCH_KASAN config KASAN bool "AddressSanitizer: runtime memory debugger" + depends on !MEMORY_HOTPLUG help Enables address sanitizer - runtime memory debugger, designed to find out-of-bounds accesses and use-after-free bugs. @@ -12,4 +13,9 @@ config KASAN of available memory and brings about ~x3 performance slowdown. For better error detection enable CONFIG_STACKTRACE, and add slub_debug=U to boot cmdline. + +config KASAN_SHADOW_OFFSET + hex + default 0xdfffe90000000000 if X86_64 + endif -- 2.1.2 -- 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:[~2014-10-27 16:50 UTC|newest] Thread overview: 862+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-07-09 11:29 [RFC/PATCH RESEND -next 00/21] Address sanitizer for kernel (kasan) - dynamic memory error detector Andrey Ryabinin 2014-07-09 11:29 ` Andrey Ryabinin 2014-07-09 11:29 ` Andrey Ryabinin 2014-07-09 11:29 ` [RFC/PATCH RESEND -next 01/21] Add kernel address sanitizer infrastructure Andrey Ryabinin 2014-07-09 11:29 ` Andrey Ryabinin 2014-07-09 11:29 ` Andrey Ryabinin 2014-07-09 14:26 ` Christoph Lameter 2014-07-09 14:26 ` Christoph Lameter 2014-07-09 14:26 ` Christoph Lameter 2014-07-10 7:31 ` Andrey Ryabinin 2014-07-10 7:31 ` Andrey Ryabinin 2014-07-10 7:31 ` Andrey Ryabinin 2014-07-09 19:29 ` Andi Kleen 2014-07-09 19:29 ` Andi Kleen 2014-07-09 19:29 ` Andi Kleen 2014-07-09 20:40 ` Yuri Gribov 2014-07-09 20:40 ` Yuri Gribov 2014-07-09 20:40 ` Yuri Gribov 2014-07-10 12:10 ` Andrey Ryabinin 2014-07-10 12:10 ` Andrey Ryabinin 2014-07-10 12:10 ` Andrey Ryabinin 2014-07-09 20:26 ` Dave Hansen 2014-07-09 20:26 ` Dave Hansen 2014-07-09 20:26 ` Dave Hansen 2014-07-10 12:12 ` Andrey Ryabinin 2014-07-10 12:12 ` Andrey Ryabinin 2014-07-10 12:12 ` Andrey Ryabinin 2014-07-10 15:55 ` Dave Hansen 2014-07-10 15:55 ` Dave Hansen 2014-07-10 15:55 ` Dave Hansen 2014-07-10 19:48 ` Andrey Ryabinin 2014-07-10 19:48 ` Andrey Ryabinin 2014-07-10 19:48 ` Andrey Ryabinin 2014-07-10 20:04 ` Dave Hansen 2014-07-10 20:04 ` Dave Hansen 2014-07-10 20:04 ` Dave Hansen 2014-07-09 20:37 ` Dave Hansen 2014-07-09 20:37 ` Dave Hansen 2014-07-09 20:37 ` Dave Hansen 2014-07-09 20:38 ` Dave Hansen 2014-07-09 20:38 ` Dave Hansen 2014-07-09 20:38 ` Dave Hansen 2014-07-10 11:55 ` Sasha Levin 2014-07-10 11:55 ` Sasha Levin 2014-07-10 11:55 ` Sasha Levin 2014-07-10 13:01 ` Andrey Ryabinin 2014-07-10 13:01 ` Andrey Ryabinin 2014-07-10 13:01 ` Andrey Ryabinin 2014-07-10 13:31 ` Sasha Levin 2014-07-10 13:31 ` Sasha Levin 2014-07-10 13:31 ` Sasha Levin 2014-07-10 13:39 ` Andrey Ryabinin 2014-07-10 13:39 ` Andrey Ryabinin 2014-07-10 13:39 ` Andrey Ryabinin 2014-07-10 14:02 ` Sasha Levin 2014-07-10 14:02 ` Sasha Levin 2014-07-10 19:04 ` Andrey Ryabinin 2014-07-10 19:04 ` Andrey Ryabinin 2014-07-10 19:04 ` Andrey Ryabinin 2014-07-10 13:50 ` Andrey Ryabinin 2014-07-10 13:50 ` Andrey Ryabinin 2014-07-10 13:50 ` Andrey Ryabinin 2014-07-09 11:29 ` [RFC/PATCH RESEND -next 02/21] init: main: initialize kasan's shadow area on boot Andrey Ryabinin 2014-07-09 11:29 ` Andrey Ryabinin 2014-07-09 11:29 ` Andrey Ryabinin 2014-07-09 11:29 ` [RFC/PATCH RESEND -next 03/21] x86: add kasan hooks fort memcpy/memmove/memset functions Andrey Ryabinin 2014-07-09 11:29 ` Andrey Ryabinin 2014-07-09 11:29 ` Andrey Ryabinin 2014-07-09 19:31 ` Andi Kleen 2014-07-09 19:31 ` Andi Kleen 2014-07-09 19:31 ` Andi Kleen 2014-07-10 13:54 ` Andrey Ryabinin 2014-07-10 13:54 ` Andrey Ryabinin 2014-07-10 13:54 ` Andrey Ryabinin 2014-07-09 11:29 ` [RFC/PATCH RESEND -next 04/21] x86: boot: vdso: disable instrumentation for code not linked with kernel Andrey Ryabinin 2014-07-09 11:29 ` Andrey Ryabinin 2014-07-09 11:29 ` Andrey Ryabinin 2014-07-09 11:29 ` [RFC/PATCH RESEND -next 05/21] x86: cpu: don't sanitize early stages of a secondary CPU boot Andrey Ryabinin 2014-07-09 11:29 ` Andrey Ryabinin 2014-07-09 11:29 ` Andrey Ryabinin 2014-07-09 19:33 ` Andi Kleen 2014-07-09 19:33 ` Andi Kleen 2014-07-09 19:33 ` Andi Kleen 2014-07-10 13:15 ` Andrey Ryabinin 2014-07-10 13:15 ` Andrey Ryabinin 2014-07-10 13:15 ` Andrey Ryabinin 2014-07-09 11:30 ` [RFC/PATCH RESEND -next 06/21] x86: mm: init: allocate shadow memory for kasan Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` [RFC/PATCH RESEND -next 07/21] x86: Kconfig: enable kernel address sanitizer Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` [RFC/PATCH RESEND -next 08/21] mm: page_alloc: add kasan hooks on alloc and free pathes Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-15 5:52 ` Joonsoo Kim 2014-07-15 5:52 ` Joonsoo Kim 2014-07-15 5:52 ` Joonsoo Kim 2014-07-15 6:54 ` Andrey Ryabinin 2014-07-15 6:54 ` Andrey Ryabinin 2014-07-15 6:54 ` Andrey Ryabinin 2014-07-09 11:30 ` [RFC/PATCH RESEND -next 09/21] mm: Makefile: kasan: don't instrument slub.c and slab_common.c files Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` [RFC/PATCH RESEND -next 10/21] mm: slab: share virt_to_cache() between slab and slub Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-15 5:53 ` Joonsoo Kim 2014-07-15 5:53 ` Joonsoo Kim 2014-07-15 5:53 ` Joonsoo Kim 2014-07-15 6:56 ` Andrey Ryabinin 2014-07-15 6:56 ` Andrey Ryabinin 2014-07-15 6:56 ` Andrey Ryabinin 2014-07-09 11:30 ` [RFC/PATCH RESEND -next 11/21] mm: slub: share slab_err and object_err functions Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 14:29 ` Christoph Lameter 2014-07-09 14:29 ` Christoph Lameter 2014-07-09 14:29 ` Christoph Lameter 2014-07-10 7:41 ` Andrey Ryabinin 2014-07-10 7:41 ` Andrey Ryabinin 2014-07-10 7:41 ` Andrey Ryabinin 2014-07-10 14:07 ` Christoph Lameter 2014-07-10 14:07 ` Christoph Lameter 2014-07-10 14:07 ` Christoph Lameter 2014-07-09 11:30 ` [RFC/PATCH RESEND -next 12/21] mm: util: move krealloc/kzfree to slab_common.c Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 14:32 ` Christoph Lameter 2014-07-09 14:32 ` Christoph Lameter 2014-07-09 14:32 ` Christoph Lameter 2014-07-10 7:43 ` Andrey Ryabinin 2014-07-10 7:43 ` Andrey Ryabinin 2014-07-10 7:43 ` Andrey Ryabinin 2014-07-10 14:08 ` Christoph Lameter 2014-07-10 14:08 ` Christoph Lameter 2014-07-10 14:08 ` Christoph Lameter 2014-07-09 11:30 ` [RFC/PATCH RESEND -next 13/21] mm: slub: add allocation size field to struct kmem_cache Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 14:33 ` Christoph Lameter 2014-07-09 14:33 ` Christoph Lameter 2014-07-09 14:33 ` Christoph Lameter 2014-07-10 8:44 ` Andrey Ryabinin 2014-07-10 8:44 ` Andrey Ryabinin 2014-07-10 8:44 ` Andrey Ryabinin 2014-07-09 11:30 ` [RFC/PATCH RESEND -next 14/21] mm: slub: kasan: disable kasan when touching unaccessible memory Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-15 6:04 ` Joonsoo Kim 2014-07-15 6:04 ` Joonsoo Kim 2014-07-15 6:04 ` Joonsoo Kim 2014-07-15 7:37 ` Andrey Ryabinin 2014-07-15 7:37 ` Andrey Ryabinin 2014-07-15 7:37 ` Andrey Ryabinin 2014-07-15 8:18 ` Joonsoo Kim 2014-07-15 8:18 ` Joonsoo Kim 2014-07-15 8:18 ` Joonsoo Kim 2014-07-15 9:51 ` Andrey Ryabinin 2014-07-15 9:51 ` Andrey Ryabinin 2014-07-15 9:51 ` Andrey Ryabinin 2014-07-15 14:26 ` Christoph Lameter 2014-07-15 14:26 ` Christoph Lameter 2014-07-15 14:26 ` Christoph Lameter 2014-07-15 15:02 ` Andrey Ryabinin 2014-07-15 15:02 ` Andrey Ryabinin 2014-07-15 15:02 ` Andrey Ryabinin 2014-07-09 11:30 ` [RFC/PATCH RESEND -next 15/21] mm: slub: add kernel address sanitizer hooks to slub allocator Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 14:48 ` Christoph Lameter 2014-07-09 14:48 ` Christoph Lameter 2014-07-09 14:48 ` Christoph Lameter 2014-07-10 9:24 ` Andrey Ryabinin 2014-07-10 9:24 ` Andrey Ryabinin 2014-07-10 9:24 ` Andrey Ryabinin 2014-07-15 6:09 ` Joonsoo Kim 2014-07-15 6:09 ` Joonsoo Kim 2014-07-15 6:09 ` Joonsoo Kim 2014-07-15 7:45 ` Andrey Ryabinin 2014-07-15 7:45 ` Andrey Ryabinin 2014-07-15 7:45 ` Andrey Ryabinin 2014-07-09 11:30 ` [RFC/PATCH RESEND -next 16/21] arm: boot: compressed: disable kasan's instrumentation Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` [RFC/PATCH RESEND -next 17/21] arm: add kasan hooks fort memcpy/memmove/memset functions Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` [RFC/PATCH RESEND -next 18/21] arm: mm: reserve shadow memory for kasan Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` [RFC/PATCH RESEND -next 19/21] arm: Kconfig: enable kernel address sanitizer Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` [RFC/PATCH RESEND -next 20/21] fs: dcache: manually unpoison dname after allocation to shut up kasan's reports Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-15 6:12 ` Joonsoo Kim 2014-07-15 6:12 ` Joonsoo Kim 2014-07-15 6:12 ` Joonsoo Kim 2014-07-15 6:08 ` Dmitry Vyukov 2014-07-15 6:08 ` Dmitry Vyukov 2014-07-15 6:08 ` Dmitry Vyukov 2014-07-15 9:34 ` Andrey Ryabinin 2014-07-15 9:34 ` Andrey Ryabinin 2014-07-15 9:34 ` Andrey Ryabinin 2014-07-15 9:45 ` Dmitry Vyukov 2014-07-15 9:45 ` Dmitry Vyukov 2014-07-15 9:45 ` Dmitry Vyukov 2014-07-09 11:30 ` [RFC/PATCH RESEND -next 21/21] lib: add kmalloc_bug_test module Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 11:30 ` Andrey Ryabinin 2014-07-09 21:19 ` [RFC/PATCH RESEND -next 00/21] Address sanitizer for kernel (kasan) - dynamic memory error detector Dave Hansen 2014-07-09 21:19 ` Dave Hansen 2014-07-09 21:19 ` Dave Hansen 2014-07-09 21:44 ` Andi Kleen 2014-07-09 21:44 ` Andi Kleen 2014-07-09 21:44 ` Andi Kleen 2014-07-09 21:59 ` Vegard Nossum 2014-07-09 21:59 ` Vegard Nossum 2014-07-09 21:59 ` Vegard Nossum 2014-07-09 23:33 ` Dave Hansen 2014-07-09 23:33 ` Dave Hansen 2014-07-09 23:33 ` Dave Hansen 2014-07-10 0:03 ` Andi Kleen 2014-07-10 0:03 ` Andi Kleen 2014-07-10 0:03 ` Andi Kleen 2014-07-10 13:59 ` Andrey Ryabinin 2014-07-10 13:59 ` Andrey Ryabinin 2014-07-10 13:59 ` Andrey Ryabinin 2014-09-10 14:31 ` [RFC/PATCH v2 00/10] Kernel address sainitzer (KASan) - dynamic memory error deetector Andrey Ryabinin 2014-09-10 14:31 ` Andrey Ryabinin 2014-09-10 14:31 ` [RFC/PATCH v2 01/10] Add kernel address sanitizer infrastructure Andrey Ryabinin 2014-09-10 14:31 ` Andrey Ryabinin 2014-09-11 3:55 ` Sasha Levin 2014-09-11 3:55 ` Sasha Levin 2014-09-14 1:35 ` Randy Dunlap 2014-09-14 1:35 ` Randy Dunlap 2014-09-15 15:28 ` Andrey Ryabinin 2014-09-15 15:28 ` Andrey Ryabinin 2014-09-15 16:24 ` Randy Dunlap 2014-09-15 16:24 ` Randy Dunlap 2014-09-10 14:31 ` [RFC/PATCH v2 02/10] x86_64: add KASan support Andrey Ryabinin 2014-09-10 14:31 ` Andrey Ryabinin 2014-09-10 15:46 ` Dave Hansen 2014-09-10 15:46 ` Dave Hansen 2014-09-10 20:30 ` Andrey Ryabinin 2014-09-10 20:30 ` Andrey Ryabinin 2014-09-10 22:45 ` Dave Hansen 2014-09-10 22:45 ` Dave Hansen 2014-09-11 4:26 ` H. Peter Anvin 2014-09-11 4:26 ` H. Peter Anvin 2014-09-11 4:29 ` Sasha Levin 2014-09-11 4:29 ` Sasha Levin 2014-09-11 4:33 ` H. Peter Anvin 2014-09-11 4:33 ` H. Peter Anvin 2014-09-11 4:46 ` Andi Kleen 2014-09-11 4:46 ` Andi Kleen 2014-09-11 4:52 ` H. Peter Anvin 2014-09-11 4:52 ` H. Peter Anvin 2014-09-11 5:25 ` Andrey Ryabinin 2014-09-11 5:25 ` Andrey Ryabinin 2014-09-11 4:33 ` H. Peter Anvin 2014-09-11 4:33 ` H. Peter Anvin 2014-09-11 11:51 ` Andrey Ryabinin 2014-09-11 11:51 ` Andrey Ryabinin 2014-09-18 16:54 ` Sasha Levin 2014-09-18 16:54 ` Sasha Levin 2014-09-11 4:01 ` H. Peter Anvin 2014-09-11 4:01 ` H. Peter Anvin 2014-09-11 4:01 ` H. Peter Anvin 2014-09-11 4:01 ` H. Peter Anvin 2014-09-11 5:31 ` Andrey Ryabinin 2014-09-11 5:31 ` Andrey Ryabinin 2014-10-01 15:31 ` H. Peter Anvin 2014-10-01 15:31 ` H. Peter Anvin 2014-10-01 16:28 ` Andrey Ryabinin 2014-10-01 16:28 ` Andrey Ryabinin 2014-09-10 14:31 ` [RFC/PATCH v2 03/10] mm: page_alloc: add kasan hooks on alloc and free pathes Andrey Ryabinin 2014-09-10 14:31 ` Andrey Ryabinin 2014-09-10 14:31 ` [RFC/PATCH v2 04/10] mm: slub: introduce virt_to_obj function Andrey Ryabinin 2014-09-10 14:31 ` Andrey Ryabinin 2014-09-10 16:16 ` Christoph Lameter 2014-09-10 16:16 ` Christoph Lameter 2014-09-10 20:32 ` Andrey Ryabinin 2014-09-10 20:32 ` Andrey Ryabinin 2014-09-15 7:11 ` Andrey Ryabinin 2014-09-15 7:11 ` Andrey Ryabinin 2014-09-10 14:31 ` [RFC/PATCH v2 05/10] mm: slub: share slab_err and object_err functions Andrey Ryabinin 2014-09-10 14:31 ` Andrey Ryabinin 2014-09-15 7:11 ` Andrey Ryabinin 2014-09-15 7:11 ` Andrey Ryabinin 2014-09-10 14:31 ` [RFC/PATCH v2 06/10] mm: slub: introduce metadata_access_enable()/metadata_access_disable() Andrey Ryabinin 2014-09-10 14:31 ` Andrey Ryabinin 2014-09-10 14:31 ` [RFC/PATCH v2 07/10] mm: slub: add kernel address sanitizer support for slub allocator Andrey Ryabinin 2014-09-10 14:31 ` Andrey Ryabinin 2014-09-10 14:31 ` [RFC/PATCH v2 08/10] fs: dcache: manually unpoison dname after allocation to shut up kasan's reports Andrey Ryabinin 2014-09-10 14:31 ` Andrey Ryabinin 2014-09-10 14:31 ` [RFC/PATCH v2 09/10] kmemleak: disable kasan instrumentation for kmemleak Andrey Ryabinin 2014-09-10 14:31 ` Andrey Ryabinin 2014-09-10 14:31 ` [RFC/PATCH v2 10/10] lib: add kasan test module Andrey Ryabinin 2014-09-10 14:31 ` Andrey Ryabinin 2014-09-10 20:38 ` Dave Jones 2014-09-10 20:38 ` Dave Jones 2014-09-10 20:46 ` Andrey Ryabinin 2014-09-10 20:46 ` Andrey Ryabinin 2014-09-10 20:47 ` Dave Jones 2014-09-10 20:47 ` Dave Jones 2014-09-10 20:50 ` Andrey Ryabinin 2014-09-10 20:50 ` Andrey Ryabinin 2014-09-10 15:01 ` [RFC/PATCH v2 00/10] Kernel address sainitzer (KASan) - dynamic memory error deetector Dave Hansen 2014-09-10 15:01 ` Dave Hansen 2014-09-10 14:58 ` Andrey Ryabinin 2014-09-10 14:58 ` Andrey Ryabinin 2014-09-10 15:12 ` Sasha Levin 2014-09-10 15:12 ` Sasha Levin 2014-09-24 12:43 ` [PATCH v3 00/13] Kernel address sanitizer - runtime memory debugger Andrey Ryabinin 2014-09-24 12:43 ` Andrey Ryabinin 2014-09-24 12:43 ` [PATCH v3 01/13] Add kernel address sanitizer infrastructure Andrey Ryabinin 2014-09-24 12:43 ` Andrey Ryabinin 2014-09-24 12:43 ` [PATCH v3 02/13] efi: libstub: disable KASAN for efistub Andrey Ryabinin 2014-09-24 12:43 ` Andrey Ryabinin 2014-09-24 12:43 ` [PATCH v3 03/13] x86_64: load_percpu_segment: read irq_stack_union.gs_base before load_segment Andrey Ryabinin 2014-09-24 12:43 ` Andrey Ryabinin 2014-09-24 12:44 ` [PATCH v3 04/13] x86_64: add KASan support Andrey Ryabinin 2014-09-24 12:44 ` Andrey Ryabinin 2014-09-24 12:44 ` [PATCH v3 05/13] mm: page_alloc: add kasan hooks on alloc and free paths Andrey Ryabinin 2014-09-24 12:44 ` Andrey Ryabinin 2014-09-25 17:04 ` Dmitry Vyukov 2014-09-25 17:04 ` Dmitry Vyukov 2014-09-24 12:44 ` [PATCH v3 06/13] mm: slub: introduce virt_to_obj function Andrey Ryabinin 2014-09-24 12:44 ` Andrey Ryabinin 2014-09-24 12:44 ` [PATCH v3 07/13] mm: slub: share slab_err and object_err functions Andrey Ryabinin 2014-09-24 12:44 ` Andrey Ryabinin 2014-09-24 12:44 ` [PATCH v3 08/13] mm: slub: introduce metadata_access_enable()/metadata_access_disable() Andrey Ryabinin 2014-09-24 12:44 ` Andrey Ryabinin 2014-09-26 4:03 ` Dmitry Vyukov 2014-09-26 4:03 ` Dmitry Vyukov 2014-09-24 12:44 ` [PATCH v3 09/13] mm: slub: add kernel address sanitizer support for slub allocator Andrey Ryabinin 2014-09-24 12:44 ` Andrey Ryabinin 2014-09-26 4:48 ` Dmitry Vyukov 2014-09-26 4:48 ` Dmitry Vyukov 2014-09-26 7:25 ` Andrey Ryabinin 2014-09-26 7:25 ` Andrey Ryabinin 2014-09-26 15:52 ` Dmitry Vyukov 2014-09-26 15:52 ` Dmitry Vyukov 2014-09-26 14:22 ` Christoph Lameter 2014-09-26 14:22 ` Christoph Lameter 2014-09-26 15:55 ` Dmitry Vyukov 2014-09-26 15:55 ` Dmitry Vyukov 2014-09-24 12:44 ` [PATCH v3 10/13] fs: dcache: manually unpoison dname after allocation to shut up kasan's reports Andrey Ryabinin 2014-09-24 12:44 ` Andrey Ryabinin 2014-09-24 12:44 ` [PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak Andrey Ryabinin 2014-09-24 12:44 ` Andrey Ryabinin 2014-09-26 17:10 ` Dmitry Vyukov 2014-09-26 17:10 ` Dmitry Vyukov 2014-09-26 17:36 ` Andrey Ryabinin 2014-09-26 17:36 ` Andrey Ryabinin 2014-09-29 14:10 ` Dmitry Vyukov 2014-09-29 14:10 ` Dmitry Vyukov 2014-10-01 10:39 ` Catalin Marinas 2014-10-01 10:39 ` Catalin Marinas 2014-10-01 11:45 ` Andrey Ryabinin 2014-10-01 11:45 ` Andrey Ryabinin 2014-10-01 13:27 ` Dmitry Vyukov 2014-10-01 13:27 ` Dmitry Vyukov 2014-10-01 14:11 ` Andrey Ryabinin 2014-10-01 14:11 ` Andrey Ryabinin 2014-10-01 14:24 ` Dmitry Vyukov 2014-10-01 14:24 ` Dmitry Vyukov 2014-09-24 12:44 ` [PATCH v3 12/13] lib: add kasan test module Andrey Ryabinin 2014-09-24 12:44 ` Andrey Ryabinin 2014-09-26 17:11 ` Dmitry Vyukov 2014-09-26 17:11 ` Dmitry Vyukov 2014-09-24 12:44 ` [RFC PATCH v3 13/13] kasan: introduce inline instrumentation Andrey Ryabinin 2014-09-24 12:44 ` Andrey Ryabinin 2014-09-26 17:18 ` Dmitry Vyukov 2014-09-26 17:18 ` Dmitry Vyukov 2014-09-26 17:33 ` Andrey Ryabinin 2014-09-26 17:33 ` Andrey Ryabinin 2014-09-29 14:28 ` Dmitry Vyukov 2014-09-29 14:28 ` Dmitry Vyukov 2014-09-29 14:27 ` Andrey Ryabinin 2014-09-29 14:27 ` Andrey Ryabinin 2014-09-29 14:27 ` Dmitry Vyukov 2014-09-29 14:27 ` Dmitry Vyukov 2014-09-24 15:11 ` [PATCH v3 00/13] Kernel address sanitizer - runtime memory debugger Andrew Morton 2014-09-24 15:11 ` Andrew Morton 2014-09-26 17:01 ` Sasha Levin 2014-09-26 17:01 ` Sasha Levin 2014-09-26 17:07 ` Dmitry Vyukov 2014-09-26 17:07 ` Dmitry Vyukov 2014-09-26 17:22 ` Andrey Ryabinin 2014-09-26 17:22 ` Andrey Ryabinin 2014-09-26 17:29 ` Dmitry Vyukov 2014-09-26 17:29 ` Dmitry Vyukov 2014-09-26 18:48 ` Yuri Gribov 2014-09-26 18:48 ` Yuri Gribov 2014-09-29 14:22 ` Dmitry Vyukov 2014-09-29 14:22 ` Dmitry Vyukov 2014-09-29 14:36 ` Peter Zijlstra 2014-09-29 14:36 ` Peter Zijlstra 2014-09-29 14:48 ` Dmitry Vyukov 2014-09-29 14:48 ` Dmitry Vyukov 2014-09-26 17:17 ` Andrey Ryabinin 2014-09-26 17:17 ` Andrey Ryabinin 2014-10-16 17:18 ` Yuri Gribov 2014-10-16 17:18 ` Yuri Gribov 2014-10-06 15:53 ` [PATCH v4 " Andrey Ryabinin 2014-10-06 15:53 ` Andrey Ryabinin 2014-10-06 15:53 ` [PATCH v4 01/13] Add kernel address sanitizer infrastructure Andrey Ryabinin 2014-10-06 15:53 ` Andrey Ryabinin 2014-10-06 15:53 ` [PATCH v4 02/13] efi: libstub: disable KASAN for efistub Andrey Ryabinin 2014-10-06 15:53 ` Andrey Ryabinin 2014-10-07 9:19 ` Dmitry Vyukov 2014-10-07 9:19 ` Dmitry Vyukov 2014-10-06 15:53 ` [PATCH v4 03/13] x86_64: load_percpu_segment: read irq_stack_union.gs_base before load_segment Andrey Ryabinin 2014-10-06 15:53 ` Andrey Ryabinin 2014-10-06 15:53 ` [PATCH v4 04/13] x86_64: add KASan support Andrey Ryabinin 2014-10-06 15:53 ` Andrey Ryabinin 2014-10-06 15:53 ` [PATCH v4 05/13] mm: page_alloc: add kasan hooks on alloc and free paths Andrey Ryabinin 2014-10-06 15:53 ` Andrey Ryabinin 2014-10-06 15:54 ` [PATCH v4 06/13] mm: slub: introduce virt_to_obj function Andrey Ryabinin 2014-10-06 15:54 ` Andrey Ryabinin 2014-10-06 15:54 ` [PATCH v4 07/13] mm: slub: share slab_err and object_err functions Andrey Ryabinin 2014-10-06 15:54 ` Andrey Ryabinin 2014-10-06 15:54 ` [PATCH v4 08/13] mm: slub: introduce metadata_access_enable()/metadata_access_disable() Andrey Ryabinin 2014-10-06 15:54 ` Andrey Ryabinin 2014-10-06 15:54 ` [PATCH v4 09/13] mm: slub: add kernel address sanitizer support for slub allocator Andrey Ryabinin 2014-10-06 15:54 ` Andrey Ryabinin 2014-10-06 15:54 ` [PATCH v4 10/13] fs: dcache: manually unpoison dname after allocation to shut up kasan's reports Andrey Ryabinin 2014-10-06 15:54 ` Andrey Ryabinin 2014-10-06 15:54 ` [PATCH v4 11/13] kmemleak: disable kasan instrumentation for kmemleak Andrey Ryabinin 2014-10-06 15:54 ` Andrey Ryabinin 2014-10-06 15:54 ` [PATCH v4 12/13] lib: add kasan test module Andrey Ryabinin 2014-10-06 15:54 ` Andrey Ryabinin 2014-10-06 15:54 ` [RFC PATCH v4 13/13] kasan: introduce inline instrumentation Andrey Ryabinin 2014-10-06 15:54 ` Andrey Ryabinin 2014-10-07 9:17 ` Dmitry Vyukov 2014-10-07 9:17 ` Dmitry Vyukov 2014-10-27 16:46 ` [PATCH v5 00/12] Kernel address sanitizer - runtime memory debugger Andrey Ryabinin 2014-10-27 16:46 ` Andrey Ryabinin 2014-10-27 16:46 ` [PATCH v5 01/12] Add kernel address sanitizer infrastructure Andrey Ryabinin 2014-10-27 16:46 ` Andrey Ryabinin 2014-10-27 17:20 ` Jonathan Corbet 2014-10-27 17:20 ` Jonathan Corbet 2014-10-28 12:24 ` Andrey Ryabinin 2014-10-28 12:24 ` Andrey Ryabinin 2014-10-27 16:46 ` [PATCH v5 02/12] kasan: Add support for upcoming GCC 5.0 asan ABI changes Andrey Ryabinin 2014-10-27 16:46 ` Andrey Ryabinin 2014-10-27 16:46 ` [PATCH v5 03/12] x86_64: load_percpu_segment: read irq_stack_union.gs_base before load_segment Andrey Ryabinin 2014-10-27 16:46 ` Andrey Ryabinin 2014-10-27 16:46 ` Andrey Ryabinin [this message] 2014-10-27 16:46 ` [PATCH v5 04/12] x86_64: add KASan support Andrey Ryabinin 2014-10-27 16:46 ` [PATCH v5 05/12] mm: page_alloc: add kasan hooks on alloc and free paths Andrey Ryabinin 2014-10-27 16:46 ` Andrey Ryabinin 2014-10-27 16:46 ` [PATCH v5 06/12] mm: slub: introduce virt_to_obj function Andrey Ryabinin 2014-10-27 16:46 ` Andrey Ryabinin 2014-10-27 16:46 ` [PATCH v5 07/12] mm: slub: share slab_err and object_err functions Andrey Ryabinin 2014-10-27 16:46 ` Andrey Ryabinin 2014-10-27 17:00 ` Joe Perches 2014-10-27 17:00 ` Joe Perches 2014-10-27 17:07 ` Andrey Ryabinin 2014-10-27 17:07 ` Andrey Ryabinin 2014-10-27 16:46 ` [PATCH v5 08/12] mm: slub: introduce metadata_access_enable()/metadata_access_disable() Andrey Ryabinin 2014-10-27 16:46 ` Andrey Ryabinin 2014-10-27 16:46 ` [PATCH v5 09/12] mm: slub: add kernel address sanitizer support for slub allocator Andrey Ryabinin 2014-10-27 16:46 ` Andrey Ryabinin 2014-10-27 16:46 ` [PATCH v5 10/12] fs: dcache: manually unpoison dname after allocation to shut up kasan's reports Andrey Ryabinin 2014-10-27 16:46 ` Andrey Ryabinin 2014-10-27 16:46 ` [PATCH v5 11/12] kmemleak: disable kasan instrumentation for kmemleak Andrey Ryabinin 2014-10-27 16:46 ` Andrey Ryabinin 2014-10-27 16:46 ` [PATCH v5 12/12] lib: add kasan test module Andrey Ryabinin 2014-10-27 16:46 ` Andrey Ryabinin 2014-11-05 14:53 ` [PATCH v6 00/11] Kernel address sanitizer - runtime memory debugger Andrey Ryabinin 2014-11-05 14:53 ` Andrey Ryabinin 2014-11-05 14:53 ` [PATCH v6 01/11] Add kernel address sanitizer infrastructure Andrey Ryabinin 2014-11-05 14:53 ` Andrey Ryabinin 2014-11-05 14:53 ` [PATCH v6 02/11] x86_64: load_percpu_segment: read irq_stack_union.gs_base before load_segment Andrey Ryabinin 2014-11-05 14:53 ` Andrey Ryabinin 2014-11-05 14:53 ` [PATCH v6 03/11] x86_64: add KASan support Andrey Ryabinin 2014-11-05 14:53 ` Andrey Ryabinin 2014-11-05 14:53 ` [PATCH v6 04/11] mm: page_alloc: add kasan hooks on alloc and free paths Andrey Ryabinin 2014-11-05 14:53 ` Andrey Ryabinin 2014-11-05 14:53 ` [PATCH v6 05/11] mm: slub: introduce virt_to_obj function Andrey Ryabinin 2014-11-05 14:53 ` Andrey Ryabinin 2014-11-05 14:53 ` [PATCH v6 06/11] mm: slub: share slab_err and object_err functions Andrey Ryabinin 2014-11-05 14:53 ` Andrey Ryabinin 2014-11-05 14:53 ` [PATCH v6 07/11] mm: slub: introduce metadata_access_enable()/metadata_access_disable() Andrey Ryabinin 2014-11-05 14:53 ` Andrey Ryabinin 2014-11-05 14:53 ` [PATCH v6 08/11] mm: slub: add kernel address sanitizer support for slub allocator Andrey Ryabinin 2014-11-05 14:53 ` Andrey Ryabinin 2014-11-05 14:53 ` [PATCH v6 09/11] fs: dcache: manually unpoison dname after allocation to shut up kasan's reports Andrey Ryabinin 2014-11-05 14:53 ` Andrey Ryabinin 2014-11-05 14:54 ` [PATCH v6 10/11] kmemleak: disable kasan instrumentation for kmemleak Andrey Ryabinin 2014-11-05 14:54 ` Andrey Ryabinin 2014-11-05 14:54 ` [PATCH] lib: add kasan test module Andrey Ryabinin 2014-11-05 14:54 ` Andrey Ryabinin 2014-11-11 7:21 ` [PATCH v6 00/11] Kernel address sanitizer - runtime memory debugger Andrey Ryabinin 2014-11-11 7:21 ` Andrey Ryabinin 2014-11-18 17:08 ` Andrey Ryabinin 2014-11-18 17:08 ` Andrey Ryabinin 2014-11-18 20:58 ` Andrew Morton 2014-11-18 20:58 ` Andrew Morton 2014-11-18 21:09 ` Sasha Levin 2014-11-18 21:09 ` Sasha Levin 2014-11-18 21:15 ` Andi Kleen 2014-11-18 21:15 ` Andi Kleen 2014-11-18 21:32 ` Dave Hansen 2014-11-18 21:32 ` Dave Hansen 2014-11-18 23:53 ` Andrey Ryabinin 2014-11-18 23:53 ` Andrey Ryabinin 2014-11-20 9:03 ` Ingo Molnar 2014-11-20 9:03 ` Ingo Molnar 2014-11-20 12:35 ` Andrey Ryabinin 2014-11-20 12:35 ` Andrey Ryabinin 2014-11-20 16:32 ` Dmitry Vyukov 2014-11-20 16:32 ` Dmitry Vyukov 2014-11-20 23:00 ` Andrew Morton 2014-11-20 23:00 ` Andrew Morton 2014-11-20 23:14 ` Thomas Gleixner 2014-11-20 23:14 ` Thomas Gleixner 2014-11-21 16:06 ` Andrey Ryabinin 2014-11-21 16:06 ` Andrey Ryabinin 2014-11-21 7:32 ` Dmitry Vyukov 2014-11-21 7:32 ` Dmitry Vyukov 2014-11-21 11:19 ` Andrey Ryabinin 2014-11-21 11:19 ` Andrey Ryabinin 2014-11-21 11:06 ` Andrey Ryabinin 2014-11-21 11:06 ` Andrey Ryabinin 2014-11-18 23:38 ` Sasha Levin 2014-11-18 23:38 ` Sasha Levin 2014-11-19 0:09 ` Andrey Ryabinin 2014-11-19 0:09 ` Andrey Ryabinin 2014-11-19 0:44 ` Sasha Levin 2014-11-19 0:44 ` Sasha Levin 2014-11-19 12:41 ` Andrey Ryabinin 2014-11-19 12:41 ` Andrey Ryabinin 2014-11-24 18:02 ` [PATCH v7 00/12] " Andrey Ryabinin 2014-11-24 18:02 ` Andrey Ryabinin 2014-11-24 18:02 ` [PATCH v7 01/12] Add kernel address sanitizer infrastructure Andrey Ryabinin 2014-11-24 18:02 ` Andrey Ryabinin 2014-11-25 12:40 ` Dmitry Chernenkov 2014-11-25 12:40 ` Dmitry Chernenkov 2014-11-25 14:16 ` Andrey Ryabinin 2014-11-25 14:16 ` Andrey Ryabinin 2014-11-24 18:02 ` [PATCH v7 02/12] x86_64: load_percpu_segment: read irq_stack_union.gs_base before load_segment Andrey Ryabinin 2014-11-24 18:02 ` Andrey Ryabinin 2014-11-25 12:41 ` Dmitry Chernenkov 2014-11-25 12:41 ` Dmitry Chernenkov 2014-11-24 18:02 ` [PATCH v7 03/12] x86_64: add KASan support Andrey Ryabinin 2014-11-24 18:02 ` Andrey Ryabinin 2014-11-24 18:45 ` Sasha Levin 2014-11-24 18:45 ` Sasha Levin 2014-11-24 21:26 ` Andrey Ryabinin 2014-11-24 21:26 ` Andrey Ryabinin 2014-11-25 10:47 ` Dmitry Chernenkov 2014-11-25 10:47 ` Dmitry Chernenkov 2014-11-24 18:02 ` [PATCH v7 04/12] mm: page_alloc: add kasan hooks on alloc and free paths Andrey Ryabinin 2014-11-24 18:02 ` Andrey Ryabinin 2014-11-25 12:28 ` Dmitry Chernenkov 2014-11-25 12:28 ` Dmitry Chernenkov 2014-11-24 18:02 ` [PATCH v7 05/12] mm: slub: introduce virt_to_obj function Andrey Ryabinin 2014-11-24 18:02 ` Andrey Ryabinin 2014-11-24 20:08 ` Christoph Lameter 2014-11-24 20:08 ` Christoph Lameter 2014-11-24 18:02 ` [PATCH v7 06/12] mm: slub: share slab_err and object_err functions Andrey Ryabinin 2014-11-24 18:02 ` Andrey Ryabinin 2014-11-25 12:26 ` Dmitry Chernenkov 2014-11-25 12:26 ` Dmitry Chernenkov 2014-11-24 18:02 ` [PATCH v7 07/12] mm: slub: introduce metadata_access_enable()/metadata_access_disable() Andrey Ryabinin 2014-11-24 18:02 ` Andrey Ryabinin 2014-11-25 12:22 ` Dmitry Chernenkov 2014-11-25 12:22 ` Dmitry Chernenkov 2014-11-25 13:11 ` Andrey Ryabinin 2014-11-25 13:11 ` Andrey Ryabinin 2014-11-24 18:02 ` [PATCH v7 08/12] mm: slub: add kernel address sanitizer support for slub allocator Andrey Ryabinin 2014-11-24 18:02 ` Andrey Ryabinin 2014-11-25 12:17 ` Dmitry Chernenkov 2014-11-25 12:17 ` Dmitry Chernenkov 2014-11-25 13:18 ` Andrey Ryabinin 2014-11-25 13:18 ` Andrey Ryabinin 2014-11-24 18:02 ` [PATCH v7 09/12] fs: dcache: manually unpoison dname after allocation to shut up kasan's reports Andrey Ryabinin 2014-11-24 18:02 ` Andrey Ryabinin 2014-11-24 18:02 ` [PATCH v7 10/12] kmemleak: disable kasan instrumentation for kmemleak Andrey Ryabinin 2014-11-24 18:02 ` Andrey Ryabinin 2014-11-24 18:02 ` [PATCH v7 11/12] lib: add kasan test module Andrey Ryabinin 2014-11-24 18:02 ` Andrey Ryabinin 2014-11-25 11:14 ` Dmitry Chernenkov 2014-11-25 11:14 ` Dmitry Chernenkov 2014-11-25 13:09 ` Andrey Ryabinin 2014-11-25 13:09 ` Andrey Ryabinin 2014-11-24 18:02 ` [PATCH v7 12/12] x86_64: kasan: add interceptors for memset/memmove/memcpy functions Andrey Ryabinin 2014-11-24 18:02 ` Andrey Ryabinin 2014-11-27 16:00 ` [PATCH v8 00/12] Kernel address sanitizer - runtime memory debugger Andrey Ryabinin 2014-11-27 16:00 ` Andrey Ryabinin 2014-11-27 16:00 ` [PATCH v8 01/12] Add kernel address sanitizer infrastructure Andrey Ryabinin 2014-11-27 16:00 ` Andrey Ryabinin 2014-12-01 23:13 ` David Rientjes 2014-12-01 23:13 ` David Rientjes 2014-11-27 16:00 ` [PATCH v8 02/12] x86_64: load_percpu_segment: read irq_stack_union.gs_base before load_segment Andrey Ryabinin 2014-11-27 16:00 ` Andrey Ryabinin 2014-11-27 16:00 ` [PATCH v8 03/12] x86_64: add KASan support Andrey Ryabinin 2014-11-27 16:00 ` Andrey Ryabinin 2014-11-27 16:00 ` [PATCH v8 04/12] mm: page_alloc: add kasan hooks on alloc and free paths Andrey Ryabinin 2014-11-27 16:00 ` Andrey Ryabinin 2014-11-27 16:00 ` [PATCH v8 05/12] mm: slub: introduce virt_to_obj function Andrey Ryabinin 2014-11-27 16:00 ` Andrey Ryabinin 2014-11-27 16:00 ` [PATCH v8 06/12] mm: slub: share slab_err and object_err functions Andrey Ryabinin 2014-11-27 16:00 ` Andrey Ryabinin 2014-11-27 16:00 ` [PATCH v8 07/12] mm: slub: introduce metadata_access_enable()/metadata_access_disable() Andrey Ryabinin 2014-11-27 16:00 ` Andrey Ryabinin 2014-11-27 16:00 ` [PATCH v8 08/12] mm: slub: add kernel address sanitizer support for slub allocator Andrey Ryabinin 2014-11-27 16:00 ` Andrey Ryabinin 2014-11-27 16:00 ` [PATCH v8 09/12] fs: dcache: manually unpoison dname after allocation to shut up kasan's reports Andrey Ryabinin 2014-11-27 16:00 ` Andrey Ryabinin 2014-11-27 16:00 ` [PATCH v8 10/12] kmemleak: disable kasan instrumentation for kmemleak Andrey Ryabinin 2014-11-27 16:00 ` Andrey Ryabinin 2014-12-01 16:28 ` Catalin Marinas 2014-12-01 16:28 ` Catalin Marinas 2014-11-27 16:00 ` [PATCH v8 11/12] lib: add kasan test module Andrey Ryabinin 2014-11-27 16:00 ` Andrey Ryabinin 2014-11-27 16:00 ` [PATCH v8 12/12] x86_64: kasan: add interceptors for memset/memmove/memcpy functions Andrey Ryabinin 2014-11-27 16:00 ` Andrey Ryabinin 2015-01-21 16:51 ` [PATCH v9 00/17] Kernel address sanitizer - runtime memory debugger Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` [PATCH v9 01/17] Add kernel address sanitizer infrastructure Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-23 12:20 ` Michal Marek 2015-01-23 12:35 ` Michal Marek 2015-01-23 12:48 ` Andrey Ryabinin 2015-01-23 12:48 ` Andrey Ryabinin 2015-01-23 12:51 ` Michal Marek 2015-01-21 16:51 ` [PATCH v9 02/17] x86_64: add KASan support Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` [PATCH v9 03/17] mm: page_alloc: add kasan hooks on alloc and free paths Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` [PATCH v9 04/17] mm: slub: introduce virt_to_obj function Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` [PATCH v9 05/17] mm: slub: share object_err function Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` [PATCH v9 06/17] mm: slub: introduce metadata_access_enable()/metadata_access_disable() Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` [PATCH v9 07/17] mm: slub: add kernel address sanitizer support for slub allocator Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 20:47 ` Sasha Levin 2015-01-21 20:47 ` Sasha Levin 2015-01-21 21:48 ` Andrey Ryabinin 2015-01-21 16:51 ` [PATCH v9 08/17] fs: dcache: manually unpoison dname after allocation to shut up kasan's reports Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` [PATCH v9 09/17] kmemleak: disable kasan instrumentation for kmemleak Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` [PATCH v9 10/17] lib: add kasan test module Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` [PATCH v9 11/17] x86_64: kasan: add interceptors for memset/memmove/memcpy functions Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` [PATCH v9 12/17] kasan: enable stack instrumentation Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` [PATCH v9 13/17] mm: vmalloc: add flag preventing guard hole allocation Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` [PATCH v9 14/17] mm: vmalloc: pass additional vm_flags to __vmalloc_node_range() Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` [PATCH v9 15/17] kernel: add support for .init_array.* constructors Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` [PATCH v9 16/17] module: fix types of device tables aliases Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` [PATCH v9 17/17] kasan: enable instrumentation of global variables Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-21 16:51 ` Andrey Ryabinin 2015-01-22 0:22 ` [PATCH v9 00/17] Kernel address sanitizer - runtime memory debugger Sasha Levin 2015-01-22 0:22 ` Sasha Levin 2015-01-22 5:34 ` Andrey Ryabinin 2015-01-22 5:53 ` Andrey Ryabinin 2015-01-22 21:46 ` Sasha Levin 2015-01-22 21:46 ` Sasha Levin 2015-01-23 9:50 ` y.gribov 2015-01-23 10:14 ` Andrey Ryabinin 2015-01-23 10:14 ` Andrey Ryabinin 2015-01-29 15:11 ` [PATCH v10 " Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` [PATCH v10 01/17] Add kernel address sanitizer infrastructure Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:39 ` Michal Marek 2015-01-29 23:12 ` Andrew Morton 2015-01-29 23:12 ` Andrew Morton 2015-01-29 23:12 ` Andrew Morton 2015-01-30 16:04 ` Andrey Ryabinin 2015-01-30 16:04 ` Andrey Ryabinin 2015-01-29 15:11 ` [PATCH v10 02/17] x86_64: add KASan support Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 23:12 ` Andrew Morton 2015-01-29 23:12 ` Andrew Morton 2015-01-30 16:15 ` Andrey Ryabinin 2015-01-30 16:15 ` Andrey Ryabinin 2015-01-30 21:35 ` Andrew Morton 2015-01-30 21:35 ` Andrew Morton 2015-01-30 21:37 ` Andrew Morton 2015-01-30 21:37 ` Andrew Morton 2015-01-30 23:27 ` Andrey Ryabinin 2015-01-30 23:27 ` Andrey Ryabinin 2015-01-29 15:11 ` [PATCH v10 03/17] mm: page_alloc: add kasan hooks on alloc and free paths Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` [PATCH v10 04/17] mm: slub: introduce virt_to_obj function Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 23:12 ` Andrew Morton 2015-01-29 23:12 ` Andrew Morton 2015-01-30 16:17 ` Andrey Ryabinin 2015-01-30 16:17 ` Andrey Ryabinin 2015-01-29 15:11 ` [PATCH v10 05/17] mm: slub: share object_err function Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` [PATCH v10 06/17] mm: slub: introduce metadata_access_enable()/metadata_access_disable() Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 23:12 ` Andrew Morton 2015-01-29 23:12 ` Andrew Morton 2015-01-30 17:05 ` Andrey Ryabinin 2015-01-30 17:05 ` Andrey Ryabinin 2015-01-30 21:42 ` Andrew Morton 2015-01-30 21:42 ` Andrew Morton 2015-01-30 23:11 ` Andrey Ryabinin 2015-01-30 23:11 ` Andrey Ryabinin 2015-01-30 23:16 ` Andrew Morton 2015-01-30 23:16 ` Andrew Morton 2015-01-30 23:19 ` Andrey Ryabinin 2015-01-30 23:19 ` Andrey Ryabinin 2015-01-29 15:11 ` [PATCH v10 07/17] mm: slub: add kernel address sanitizer support for slub allocator Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` [PATCH v10 08/17] fs: dcache: manually unpoison dname after allocation to shut up kasan's reports Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` [PATCH v10 09/17] kmemleak: disable kasan instrumentation for kmemleak Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` [PATCH v10 10/17] lib: add kasan test module Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` [PATCH v10 11/17] x86_64: kasan: add interceptors for memset/memmove/memcpy functions Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` [PATCH v10 12/17] kasan: enable stack instrumentation Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` [PATCH v10 13/17] mm: vmalloc: add flag preventing guard hole allocation Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 23:12 ` Andrew Morton 2015-01-29 23:12 ` Andrew Morton 2015-01-30 17:51 ` Andrey Ryabinin 2015-01-30 17:51 ` Andrey Ryabinin 2015-01-29 15:11 ` [PATCH v10 14/17] mm: vmalloc: pass additional vm_flags to __vmalloc_node_range() Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` [PATCH v10 15/17] kernel: add support for .init_array.* constructors Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 15:11 ` Andrey Ryabinin 2015-01-29 23:13 ` Andrew Morton 2015-01-29 23:13 ` Andrew Morton 2015-01-29 23:13 ` Andrew Morton 2015-01-30 17:21 ` Andrey Ryabinin 2015-01-30 17:21 ` Andrey Ryabinin 2015-01-29 15:12 ` [PATCH v10 16/17] module: fix types of device tables aliases Andrey Ryabinin 2015-01-29 15:12 ` Andrey Ryabinin 2015-01-29 23:13 ` Andrew Morton 2015-01-29 23:13 ` Andrew Morton 2015-01-30 17:44 ` Andrey Ryabinin 2015-01-30 17:44 ` Andrey Ryabinin 2015-01-29 15:12 ` [PATCH v10 17/17] kasan: enable instrumentation of global variables Andrey Ryabinin 2015-01-29 15:12 ` Andrey Ryabinin 2015-01-29 15:12 ` Andrey Ryabinin 2015-01-29 23:13 ` Andrew Morton 2015-01-29 23:13 ` Andrew Morton 2015-01-29 23:13 ` Andrew Morton 2015-01-30 17:47 ` Andrey Ryabinin 2015-01-30 17:47 ` Andrey Ryabinin 2015-01-30 21:45 ` Andrew Morton 2015-01-30 21:45 ` Andrew Morton 2015-01-30 23:18 ` Andrey Ryabinin 2015-01-30 23:18 ` Andrey Ryabinin 2015-02-03 17:42 ` [PATCH v11 00/19] Kernel address sanitizer - runtime memory debugger Andrey Ryabinin 2015-02-03 17:42 ` Andrey Ryabinin 2015-02-03 17:42 ` [PATCH v11 01/19] compiler: introduce __alias(symbol) shortcut Andrey Ryabinin 2015-02-03 17:42 ` Andrey Ryabinin 2015-02-03 17:42 ` [PATCH v11 02/19] Add kernel address sanitizer infrastructure Andrey Ryabinin 2015-02-03 17:42 ` Andrey Ryabinin 2015-02-03 17:42 ` Andrey Ryabinin 2015-02-03 23:04 ` Andrew Morton 2015-02-03 23:04 ` Andrew Morton 2015-02-03 23:04 ` Andrew Morton 2015-02-04 3:56 ` Andrey Konovalov 2015-02-04 4:00 ` Andrey Konovalov 2015-02-04 4:00 ` Andrey Konovalov 2015-02-03 17:42 ` [PATCH v11 03/19] kasan: disable memory hotplug Andrey Ryabinin 2015-02-03 17:42 ` Andrey Ryabinin 2015-02-03 17:42 ` [PATCH v11 04/19] x86_64: add KASan support Andrey Ryabinin 2015-02-03 17:42 ` Andrey Ryabinin 2015-02-03 17:42 ` [PATCH v11 05/19] mm: page_alloc: add kasan hooks on alloc and free paths Andrey Ryabinin 2015-02-03 17:42 ` Andrey Ryabinin 2015-02-03 17:42 ` [PATCH v11 06/19] mm: slub: introduce virt_to_obj function Andrey Ryabinin 2015-02-03 17:42 ` Andrey Ryabinin 2015-02-03 17:43 ` [PATCH v11 07/19] mm: slub: share object_err function Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` [PATCH v11 08/19] mm: slub: introduce metadata_access_enable()/metadata_access_disable() Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` [PATCH v11 09/19] mm: slub: add kernel address sanitizer support for slub allocator Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` [PATCH v11 10/19] fs: dcache: manually unpoison dname after allocation to shut up kasan's reports Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` [PATCH v11 11/19] kmemleak: disable kasan instrumentation for kmemleak Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` [PATCH v11 12/19] lib: add kasan test module Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` [PATCH v11 13/19] x86_64: kasan: add interceptors for memset/memmove/memcpy functions Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` [PATCH v11 14/19] kasan: enable stack instrumentation Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` [PATCH v11 15/19] mm: vmalloc: add flag preventing guard hole allocation Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` [PATCH v11 16/19] mm: vmalloc: pass additional vm_flags to __vmalloc_node_range() Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` [PATCH v11 17/19] kernel: add support for .init_array.* constructors Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` [PATCH v11 18/19] module: fix types of device tables aliases Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 23:51 ` Andrew Morton 2015-02-03 23:51 ` Andrew Morton 2015-02-04 0:01 ` Sasha Levin 2015-02-04 0:01 ` Sasha Levin 2015-02-04 0:10 ` Andrew Morton 2015-02-04 0:10 ` Andrew Morton 2015-02-16 2:44 ` Rusty Russell 2015-02-16 2:44 ` Rusty Russell 2015-02-16 14:01 ` Andrey Ryabinin 2015-02-16 14:01 ` Andrey Ryabinin 2015-02-03 17:43 ` [PATCH v11 19/19] kasan: enable instrumentation of global variables Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-03 17:43 ` Andrey Ryabinin 2015-02-16 2:58 ` Rusty Russell 2015-02-16 2:58 ` Rusty Russell 2015-02-16 2:58 ` Rusty Russell 2015-02-16 14:44 ` Andrey Ryabinin 2015-02-16 14:44 ` Andrey Ryabinin 2015-02-16 14:47 ` Dmitry Vyukov 2015-02-16 14:47 ` Dmitry Vyukov 2015-02-16 15:09 ` Andrey Ryabinin 2015-02-16 15:09 ` Andrey Ryabinin 2015-02-16 23:55 ` Rusty Russell 2015-02-16 23:55 ` Rusty Russell 2015-02-16 23:55 ` Rusty Russell
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=1414428419-17860-5-git-send-email-a.ryabinin@samsung.com \ --to=a.ryabinin@samsung.com \ --cc=adech.fo@gmail.com \ --cc=akpm@linux-foundation.org \ --cc=andi@firstfloor.org \ --cc=cl@linux.com \ --cc=dave.hansen@intel.com \ --cc=davej@redhat.com \ --cc=dmitryc@google.com \ --cc=dvyukov@google.com \ --cc=hpa@zytor.com \ --cc=iamjoonsoo.kim@lge.com \ --cc=kcc@google.com \ --cc=koct9i@gmail.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mingo@redhat.com \ --cc=sasha.levin@oracle.com \ --cc=tetra2005@gmail.com \ --cc=tglx@linutronix.de \ --cc=vegard.nossum@gmail.com \ --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.