Lines Matching refs:object
305 const void *object) in get_alloc_info() argument
307 return (void *)object + cache->kasan_info.alloc_meta_offset; in get_alloc_info()
311 const void *object) in get_free_info() argument
314 return (void *)object + cache->kasan_info.free_meta_offset; in get_free_info()
319 void *object, u8 tag) in kasan_set_free_info() argument
324 alloc_meta = get_alloc_info(cache, object); in kasan_set_free_info()
345 void kasan_unpoison_object_data(struct kmem_cache *cache, void *object) in kasan_unpoison_object_data() argument
347 kasan_unpoison_shadow(object, cache->object_size); in kasan_unpoison_object_data()
350 void kasan_poison_object_data(struct kmem_cache *cache, void *object) in kasan_poison_object_data() argument
352 kasan_poison_shadow(object, in kasan_poison_object_data()
371 static u8 assign_tag(struct kmem_cache *cache, const void *object, in assign_tag() argument
381 return get_tag(object); in assign_tag()
393 return (u8)obj_to_index(cache, virt_to_page(object), (void *)object); in assign_tag()
399 return init ? random_tag() : get_tag(object); in assign_tag()
404 const void *object) in kasan_init_slab_obj() argument
409 return (void *)object; in kasan_init_slab_obj()
411 alloc_info = get_alloc_info(cache, object); in kasan_init_slab_obj()
415 object = set_tag(object, in kasan_init_slab_obj()
416 assign_tag(cache, object, true, false)); in kasan_init_slab_obj()
418 return (void *)object; in kasan_init_slab_obj()
436 static bool __kasan_slab_free(struct kmem_cache *cache, void *object, in __kasan_slab_free() argument
444 tag = get_tag(object); in __kasan_slab_free()
445 tagged_object = object; in __kasan_slab_free()
446 object = reset_tag(object); in __kasan_slab_free()
448 if (unlikely(nearest_obj(cache, virt_to_head_page(object), object) != in __kasan_slab_free()
449 object)) { in __kasan_slab_free()
458 shadow_byte = READ_ONCE(*(s8 *)kasan_mem_to_shadow(object)); in __kasan_slab_free()
465 kasan_poison_shadow(object, rounded_up_size, KASAN_KMALLOC_FREE); in __kasan_slab_free()
471 kasan_set_free_info(cache, object, tag); in __kasan_slab_free()
473 quarantine_put(get_free_info(cache, object), cache); in __kasan_slab_free()
478 bool kasan_slab_free(struct kmem_cache *cache, void *object, unsigned long ip) in kasan_slab_free() argument
480 return __kasan_slab_free(cache, object, ip, true); in kasan_slab_free()
483 static void *__kasan_kmalloc(struct kmem_cache *cache, const void *object, in __kasan_kmalloc() argument
493 if (unlikely(object == NULL)) in __kasan_kmalloc()
496 redzone_start = round_up((unsigned long)(object + size), in __kasan_kmalloc()
498 redzone_end = round_up((unsigned long)object + cache->object_size, in __kasan_kmalloc()
502 tag = assign_tag(cache, object, false, keep_tag); in __kasan_kmalloc()
505 kasan_unpoison_shadow(set_tag(object, tag), size); in __kasan_kmalloc()
510 set_track(&get_alloc_info(cache, object)->alloc_track, flags); in __kasan_kmalloc()
512 return set_tag(object, tag); in __kasan_kmalloc()
515 void * __must_check kasan_slab_alloc(struct kmem_cache *cache, void *object, in kasan_slab_alloc() argument
518 return __kasan_kmalloc(cache, object, cache->object_size, flags, false); in kasan_slab_alloc()
521 void * __must_check kasan_kmalloc(struct kmem_cache *cache, const void *object, in kasan_kmalloc() argument
524 return __kasan_kmalloc(cache, object, size, flags, true); in kasan_kmalloc()
553 void * __must_check kasan_krealloc(const void *object, size_t size, gfp_t flags) in kasan_krealloc() argument
557 if (unlikely(object == ZERO_SIZE_PTR)) in kasan_krealloc()
558 return (void *)object; in kasan_krealloc()
560 page = virt_to_head_page(object); in kasan_krealloc()
563 return kasan_kmalloc_large(object, size, flags); in kasan_krealloc()
565 return __kasan_kmalloc(page->slab_cache, object, size, in kasan_krealloc()