diff options
author | Ingo Molnar <mingo@kernel.org> | 2016-12-11 13:10:40 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-12-11 13:10:40 +0100 |
commit | 6643aab30f88e2929bcc401a9ae39bf6f1c0b61d (patch) | |
tree | 72c43e9d7287aef9b8d9699491038edc1929f1f2 /mm/kasan/kasan.c | |
parent | 8fb9dcbdc3619741c10c573199d804161c34c89a (diff) | |
parent | 045169816b31b10faed984b01c390db1b32ee4c1 (diff) | |
download | talos-op-linux-6643aab30f88e2929bcc401a9ae39bf6f1c0b61d.tar.gz talos-op-linux-6643aab30f88e2929bcc401a9ae39bf6f1c0b61d.zip |
Merge branch 'linus' into sched/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'mm/kasan/kasan.c')
-rw-r--r-- | mm/kasan/kasan.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/mm/kasan/kasan.c b/mm/kasan/kasan.c index 70c009741aab..0e9505f66ec1 100644 --- a/mm/kasan/kasan.c +++ b/mm/kasan/kasan.c @@ -764,6 +764,25 @@ EXPORT_SYMBOL(__asan_storeN_noabort); void __asan_handle_no_return(void) {} EXPORT_SYMBOL(__asan_handle_no_return); +/* Emitted by compiler to poison large objects when they go out of scope. */ +void __asan_poison_stack_memory(const void *addr, size_t size) +{ + /* + * Addr is KASAN_SHADOW_SCALE_SIZE-aligned and the object is surrounded + * by redzones, so we simply round up size to simplify logic. + */ + kasan_poison_shadow(addr, round_up(size, KASAN_SHADOW_SCALE_SIZE), + KASAN_USE_AFTER_SCOPE); +} +EXPORT_SYMBOL(__asan_poison_stack_memory); + +/* Emitted by compiler to unpoison large objects when they go into scope. */ +void __asan_unpoison_stack_memory(const void *addr, size_t size) +{ + kasan_unpoison_shadow(addr, size); +} +EXPORT_SYMBOL(__asan_unpoison_stack_memory); + #ifdef CONFIG_MEMORY_HOTPLUG static int kasan_mem_notifier(struct notifier_block *nb, unsigned long action, void *data) |