diff options
Diffstat (limited to 'mm/kasan/common.c')
| -rw-r--r-- | mm/kasan/common.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/mm/kasan/common.c b/mm/kasan/common.c index 2baf121fb8c5..8428da2aaf17 100644 --- a/mm/kasan/common.c +++ b/mm/kasan/common.c @@ -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) @@ -298,7 +298,7 @@ static inline u8 assign_tag(struct kmem_cache *cache,  	/* For caches that either have a constructor or SLAB_TYPESAFE_BY_RCU: */  #ifdef CONFIG_SLAB  	/* For SLAB assign tags based on the object index in the freelist. */ -	return (u8)obj_to_index(cache, virt_to_page(object), (void *)object); +	return (u8)obj_to_index(cache, virt_to_head_page(object), (void *)object);  #else  	/*  	 * For SLUB assign a random tag during slab creation, otherwise reuse  |