mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
kasan: common: provide can_alloc in kasan_save_stack()
Add another argument, can_alloc, to kasan_save_stack() which is passed as-is to __stack_depot_save(). No functional change intended. Link: https://lkml.kernel.org/r/20210913112609.2651084-5-elver@google.com Signed-off-by: Marco Elver <elver@google.com> Tested-by: Shuah Khan <skhan@linuxfoundation.org> Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Reviewed-by: Andrey Konovalov <andreyknvl@gmail.com> Cc: Alexander Potapenko <glider@google.com> Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org> Cc: Lai Jiangshan <jiangshanlai@gmail.com> Cc: Taras Madan <tarasmadan@google.com> Cc: Tejun Heo <tj@kernel.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vijayanand Jitta <vjitta@codeaurora.org> Cc: Vinayak Menon <vinmenon@codeaurora.org> Cc: Walter Wu <walter-zh.wu@mediatek.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
11ac25c62c
commit
7594b34774
@ -30,20 +30,20 @@
|
||||
#include "kasan.h"
|
||||
#include "../slab.h"
|
||||
|
||||
depot_stack_handle_t kasan_save_stack(gfp_t flags)
|
||||
depot_stack_handle_t kasan_save_stack(gfp_t flags, bool can_alloc)
|
||||
{
|
||||
unsigned long entries[KASAN_STACK_DEPTH];
|
||||
unsigned int nr_entries;
|
||||
|
||||
nr_entries = stack_trace_save(entries, ARRAY_SIZE(entries), 0);
|
||||
nr_entries = filter_irq_stacks(entries, nr_entries);
|
||||
return stack_depot_save(entries, nr_entries, flags);
|
||||
return __stack_depot_save(entries, nr_entries, flags, can_alloc);
|
||||
}
|
||||
|
||||
void kasan_set_track(struct kasan_track *track, gfp_t flags)
|
||||
{
|
||||
track->pid = current->pid;
|
||||
track->stack = kasan_save_stack(flags);
|
||||
track->stack = kasan_save_stack(flags, true);
|
||||
}
|
||||
|
||||
#if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)
|
||||
|
@ -345,7 +345,7 @@ void kasan_record_aux_stack(void *addr)
|
||||
return;
|
||||
|
||||
alloc_meta->aux_stack[1] = alloc_meta->aux_stack[0];
|
||||
alloc_meta->aux_stack[0] = kasan_save_stack(GFP_NOWAIT);
|
||||
alloc_meta->aux_stack[0] = kasan_save_stack(GFP_NOWAIT, true);
|
||||
}
|
||||
|
||||
void kasan_set_free_info(struct kmem_cache *cache,
|
||||
|
@ -251,7 +251,7 @@ void kasan_report_invalid_free(void *object, unsigned long ip);
|
||||
|
||||
struct page *kasan_addr_to_page(const void *addr);
|
||||
|
||||
depot_stack_handle_t kasan_save_stack(gfp_t flags);
|
||||
depot_stack_handle_t kasan_save_stack(gfp_t flags, bool can_alloc);
|
||||
void kasan_set_track(struct kasan_track *track, gfp_t flags);
|
||||
void kasan_set_free_info(struct kmem_cache *cache, void *object, u8 tag);
|
||||
struct kasan_track *kasan_get_free_track(struct kmem_cache *cache,
|
||||
|
Loading…
Reference in New Issue
Block a user