x86/kasan, mm changes for v4.3
Subsystems (4)
Linus,
Please pull the latest mm-kasan-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git mm-kasan-for-linus
# HEAD: 69786cdb379bbc6eab14cf2393c1abd879316e85 x86/kasan, mm: Introduce generic kasan_populate_zero_shadow()
These are two KASAN changes that factor out (and generalize) x86 specific KASAN code from x86 to mm/.
Thanks,
Ingo
------------------>
Andrey Ryabinin (2):
x86/kasan: Define KASAN_SHADOW_OFFSET per architecture x86/kasan, mm: Introduce generic kasan_populate_zero_shadow()
arch/x86/include/asm/kasan.h | 3 + arch/x86/mm/kasan_init_64.c | 123 ++-------------------------------- include/linux/kasan.h | 10 ++- mm/kasan/Makefile | 2 +- mm/kasan/kasan_init.c | 152 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 170 insertions(+), 120 deletions(-) create mode 100644 mm/kasan/kasan_init.c
arch/x86/include/asm/kasan.h +3 -0
@@ -1,6 +1,9 @@#ifndef _ASM_X86_KASAN_H#define _ASM_X86_KASAN_H +#include <linux/const.h> +#define KASAN_SHADOW_OFFSET _AC(CONFIG_KASAN_SHADOW_OFFSET, UL) +/* * Compiler uses shadow offset assuming that addresses start * from 0. Kernel addresses don't start from 0, so shadow
arch/x86/mm/kasan_init_64.c +5 -118
152 lines not on this page · raw message
include/linux/kasan.h +9 -1
@@ -10,11 +10,19 @@ struct vm_struct;#ifdef CONFIG_KASAN #define KASAN_SHADOW_SCALE_SHIFT 3 -#define KASAN_SHADOW_OFFSET _AC(CONFIG_KASAN_SHADOW_OFFSET, UL)#include <asm/kasan.h> +#include <asm/pgtable.h> #include <linux/sched.h> +extern unsigned char kasan_zero_page[PAGE_SIZE ]; +extern pte_t kasan_zero_pte[PTRS_PER_PTE ]; +extern pmd_t kasan_zero_pmd[PTRS_PER_PMD ]; +extern pud_t kasan_zero_pud[PTRS_PER_PUD ]; + +void kasan_populate_zero_shadow (const void *shadow_start, +const void *shadow_end); +static inline void *kasan_mem_to_shadow (const void *addr) {return (void *)((unsigned long )addr >>KASAN_SHADOW_SCALE_SHIFT )
mm/kasan/Makefile +1 -1
@@ -5,4 +5,4 @@ CFLAGS_REMOVE_kasan.o = -pg # see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63533 CFLAGS_kasan.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector) -obj-y := kasan.o report.o +obj-y := kasan.o report.o kasan_init.o
mm/kasan/kasan_init.c new file +152 -0
152 lines not on this page · raw message