Lines Matching defs:objp

316  * 0		: objp
332 static unsigned long long *dbg_redzone1(struct kmem_cache *cachep, void *objp)
335 return (unsigned long long*) (objp + obj_offset(cachep) -
339 static unsigned long long *dbg_redzone2(struct kmem_cache *cachep, void *objp)
343 return (unsigned long long *)(objp + cachep->size -
346 return (unsigned long long *) (objp + cachep->size -
350 static void **dbg_userword(struct kmem_cache *cachep, void *objp)
353 return (void **)(objp + cachep->size - BYTES_PER_WORD);
359 #define dbg_redzone1(cachep, objp) ({BUG(); (unsigned long long *)NULL;})
360 #define dbg_redzone2(cachep, objp) ({BUG(); (unsigned long long *)NULL;})
361 #define dbg_userword(cachep, objp) ({BUG(); (void **)NULL;})
552 struct page *page, void *objp)
562 free_block(cachep, &objp, 1, page_node, &list);
592 static __always_inline void __free_one(struct array_cache *ac, void *objp)
596 WARN_ON_ONCE(ac->avail > 0 && ac->entry[ac->avail - 1] == objp))
598 ac->entry[ac->avail++] = objp;
616 static inline int cache_free_alien(struct kmem_cache *cachep, void *objp)
762 static int __cache_free_alien(struct kmem_cache *cachep, void *objp,
780 __free_one(ac, objp);
786 free_block(cachep, &objp, 1, page_node, &list);
793 static inline int cache_free_alien(struct kmem_cache *cachep, void *objp)
795 int page_node = page_to_nid(virt_to_page(objp));
804 return __cache_free_alien(cachep, objp, node, page_node);
1432 static void slab_kernel_map(struct kmem_cache *cachep, void *objp, int map)
1437 kernel_map_pages(virt_to_page(objp), cachep->size / PAGE_SIZE, map);
1441 static inline void slab_kernel_map(struct kmem_cache *cachep, void *objp,
1487 static void print_objinfo(struct kmem_cache *cachep, void *objp, int lines)
1494 *dbg_redzone1(cachep, objp),
1495 *dbg_redzone2(cachep, objp));
1499 pr_err("Last user: (%pSR)\n", *dbg_userword(cachep, objp));
1500 realobj = (char *)objp + obj_offset(cachep);
1511 static void check_poison_obj(struct kmem_cache *cachep, void *objp)
1520 realobj = (char *)objp + obj_offset(cachep);
1535 print_objinfo(cachep, objp, 0);
1554 struct page *page = virt_to_head_page(objp);
1557 objnr = obj_to_index(cachep, page, objp);
1559 objp = index_to_obj(cachep, page, objnr - 1);
1560 realobj = (char *)objp + obj_offset(cachep);
1562 print_objinfo(cachep, objp, 2);
1565 objp = index_to_obj(cachep, page, objnr + 1);
1566 realobj = (char *)objp + obj_offset(cachep);
1568 print_objinfo(cachep, objp, 2);
1586 void *objp = index_to_obj(cachep, page, i);
1589 check_poison_obj(cachep, objp);
1590 slab_kernel_map(cachep, objp, 1);
1593 if (*dbg_redzone1(cachep, objp) != RED_INACTIVE)
1595 if (*dbg_redzone2(cachep, objp) != RED_INACTIVE)
2333 void *objp = index_to_obj(cachep, page, i);
2336 *dbg_userword(cachep, objp) = NULL;
2339 *dbg_redzone1(cachep, objp) = RED_INACTIVE;
2340 *dbg_redzone2(cachep, objp) = RED_INACTIVE;
2349 objp + obj_offset(cachep));
2350 cachep->ctor(objp + obj_offset(cachep));
2352 cachep, objp + obj_offset(cachep));
2356 if (*dbg_redzone2(cachep, objp) != RED_INACTIVE)
2358 if (*dbg_redzone1(cachep, objp) != RED_INACTIVE)
2363 poison_obj(cachep, objp, POISON_FREE);
2364 slab_kernel_map(cachep, objp, 0);
2485 void *objp;
2499 objp = index_to_obj(cachep, page, i);
2500 objp = kasan_init_slab_obj(cachep, objp);
2504 kasan_unpoison_object_data(cachep, objp);
2505 cachep->ctor(objp);
2506 kasan_poison_object_data(cachep, objp);
2516 void *objp;
2518 objp = index_to_obj(cachep, page, get_free_obj(page, page->active));
2521 return objp;
2525 struct page *page, void *objp)
2527 unsigned int objnr = obj_to_index(cachep, page, objp);
2534 pr_err("slab: double free detected in cache '%s', objp %px\n",
2535 cachep->name, objp);
2542 page->freelist = objp + obj_offset(cachep);
2674 static void kfree_debugcheck(const void *objp)
2676 if (!virt_addr_valid(objp)) {
2678 (unsigned long)objp);
2705 static void *cache_free_debugcheck(struct kmem_cache *cachep, void *objp,
2711 BUG_ON(virt_to_cache(objp) != cachep);
2713 objp -= obj_offset(cachep);
2714 kfree_debugcheck(objp);
2715 page = virt_to_head_page(objp);
2718 verify_redzone_free(cachep, objp);
2719 *dbg_redzone1(cachep, objp) = RED_INACTIVE;
2720 *dbg_redzone2(cachep, objp) = RED_INACTIVE;
2723 *dbg_userword(cachep, objp) = (void *)caller;
2725 objnr = obj_to_index(cachep, page, objp);
2728 BUG_ON(objp != index_to_obj(cachep, page, objnr));
2731 poison_obj(cachep, objp, POISON_FREE);
2732 slab_kernel_map(cachep, objp, 0);
2734 return objp;
2739 #define cache_free_debugcheck(x,objp,z) (objp)
2747 void *objp;
2750 objp = next - obj_offset(cachep);
2752 poison_obj(cachep, objp, POISON_FREE);
2769 void **objp = page->freelist;
2771 *objp = *list;
2772 *list = objp;
2990 gfp_t flags, void *objp, unsigned long caller)
2993 if (!objp)
2994 return objp;
2996 check_poison_obj(cachep, objp);
2997 slab_kernel_map(cachep, objp, 1);
2998 poison_obj(cachep, objp, POISON_INUSE);
3001 *dbg_userword(cachep, objp) = (void *)caller;
3004 if (*dbg_redzone1(cachep, objp) != RED_INACTIVE ||
3005 *dbg_redzone2(cachep, objp) != RED_INACTIVE) {
3008 objp, *dbg_redzone1(cachep, objp),
3009 *dbg_redzone2(cachep, objp));
3011 *dbg_redzone1(cachep, objp) = RED_ACTIVE;
3012 *dbg_redzone2(cachep, objp) = RED_ACTIVE;
3015 objp += obj_offset(cachep);
3017 cachep->ctor(objp);
3019 ((unsigned long)objp & (ARCH_SLAB_MINALIGN-1))) {
3021 objp, (int)ARCH_SLAB_MINALIGN);
3023 return objp;
3026 #define cache_alloc_debugcheck_after(a,b,objp,d) (objp)
3031 void *objp;
3039 objp = ac->entry[--ac->avail];
3046 objp = cache_alloc_refill(cachep, flags);
3059 if (objp)
3061 return objp;
3262 void *objp;
3265 objp = alternate_node_alloc(cache, flags);
3266 if (objp)
3269 objp = ____cache_alloc(cache, flags);
3275 if (!objp)
3276 objp = ____cache_alloc_node(cache, flags, numa_mem_id());
3279 return objp;
3295 void *objp;
3305 objp = __do_cache_alloc(cachep, flags);
3307 objp = cache_alloc_debugcheck_after(cachep, flags, objp, caller);
3308 prefetchw(objp);
3310 if (unlikely(slab_want_init_on_alloc(flags, cachep)) && objp)
3311 memset(objp, 0, cachep->object_size);
3313 slab_post_alloc_hook(cachep, objcg, flags, 1, &objp);
3314 return objp;
3331 void *objp;
3334 objp = objpp[i];
3336 page = virt_to_head_page(objp);
3339 slab_put_obj(cachep, page, objp);
3415 static __always_inline void __cache_free(struct kmem_cache *cachep, void *objp,
3419 if (kasan_slab_free(cachep, objp, _RET_IP_))
3424 __kcsan_check_access(objp, cachep->object_size,
3427 ___cache_free(cachep, objp, caller);
3430 void ___cache_free(struct kmem_cache *cachep, void *objp,
3437 memset(objp, 0, cachep->object_size);
3438 kmemleak_free_recursive(objp, cachep->flags);
3439 objp = cache_free_debugcheck(cachep, objp, caller);
3440 memcg_slab_free_hook(cachep, &objp, 1);
3449 if (nr_online_nodes > 1 && cache_free_alien(cachep, objp))
3460 struct page *page = virt_to_head_page(objp);
3463 cache_free_pfmemalloc(cachep, page, objp);
3468 __free_one(ac, objp);
3516 void *objp = __do_cache_alloc(s, flags);
3518 if (unlikely(!objp))
3520 p[i] = objp;
3678 * @objp: The previously allocated object.
3683 void kmem_cache_free(struct kmem_cache *cachep, void *objp)
3686 cachep = cache_from_obj(cachep, objp);
3691 debug_check_no_locks_freed(objp, cachep->object_size);
3693 debug_check_no_obj_freed(objp, cachep->object_size);
3694 __cache_free(cachep, objp, _RET_IP_);
3697 trace_kmem_cache_free(_RET_IP_, objp);
3708 void *objp = p[i];
3711 s = virt_to_cache(objp);
3713 s = cache_from_obj(orig_s, objp);
3717 debug_check_no_locks_freed(objp, s->object_size);
3719 debug_check_no_obj_freed(objp, s->object_size);
3721 __cache_free(s, objp, _RET_IP_);
3731 * @objp: pointer returned by kmalloc.
3733 * If @objp is NULL, no operation is performed.
3738 void kfree(const void *objp)
3743 trace_kfree(_RET_IP_, objp);
3745 if (unlikely(ZERO_OR_NULL_PTR(objp)))
3748 kfree_debugcheck(objp);
3749 c = virt_to_cache(objp);
3754 debug_check_no_locks_freed(objp, c->object_size);
3756 debug_check_no_obj_freed(objp, c->object_size);
3757 __cache_free(c, (void *)objp, _RET_IP_);
4180 * @objp: pointer to the object
4185 * Return: size of the actual memory used by @objp in bytes
4187 size_t __ksize(const void *objp)
4192 BUG_ON(!objp);
4193 if (unlikely(objp == ZERO_SIZE_PTR))
4196 c = virt_to_cache(objp);