Loading include/linux/slub_def.h +0 −13 Original line number Diff line number Diff line Loading @@ -98,17 +98,4 @@ struct kmem_cache { struct kmem_cache_node *node[MAX_NUMNODES]; }; /** * Calling this on allocated memory will check that the memory * is expected to be in use, and print warnings if not. */ #ifdef CONFIG_SLUB_DEBUG extern bool verify_mem_not_deleted(const void *x); #else static inline bool verify_mem_not_deleted(const void *x) { return true; } #endif #endif /* _LINUX_SLUB_DEF_H */ mm/slub.c +0 −37 Original line number Diff line number Diff line Loading @@ -3326,43 +3326,6 @@ size_t ksize(const void *object) } EXPORT_SYMBOL(ksize); #ifdef CONFIG_SLUB_DEBUG bool verify_mem_not_deleted(const void *x) { struct page *page; void *object = (void *)x; unsigned long flags; bool rv; if (unlikely(ZERO_OR_NULL_PTR(x))) return false; local_irq_save(flags); page = virt_to_head_page(x); if (unlikely(!PageSlab(page))) { /* maybe it was from stack? */ rv = true; goto out_unlock; } slab_lock(page); if (on_freelist(page->slab_cache, page, object)) { object_err(page->slab_cache, page, object, "Object is on free-list"); rv = false; } else { rv = true; } slab_unlock(page); out_unlock: local_irq_restore(flags); return rv; } EXPORT_SYMBOL(verify_mem_not_deleted); #endif void kfree(const void *x) { struct page *page; Loading Loading
include/linux/slub_def.h +0 −13 Original line number Diff line number Diff line Loading @@ -98,17 +98,4 @@ struct kmem_cache { struct kmem_cache_node *node[MAX_NUMNODES]; }; /** * Calling this on allocated memory will check that the memory * is expected to be in use, and print warnings if not. */ #ifdef CONFIG_SLUB_DEBUG extern bool verify_mem_not_deleted(const void *x); #else static inline bool verify_mem_not_deleted(const void *x) { return true; } #endif #endif /* _LINUX_SLUB_DEF_H */
mm/slub.c +0 −37 Original line number Diff line number Diff line Loading @@ -3326,43 +3326,6 @@ size_t ksize(const void *object) } EXPORT_SYMBOL(ksize); #ifdef CONFIG_SLUB_DEBUG bool verify_mem_not_deleted(const void *x) { struct page *page; void *object = (void *)x; unsigned long flags; bool rv; if (unlikely(ZERO_OR_NULL_PTR(x))) return false; local_irq_save(flags); page = virt_to_head_page(x); if (unlikely(!PageSlab(page))) { /* maybe it was from stack? */ rv = true; goto out_unlock; } slab_lock(page); if (on_freelist(page->slab_cache, page, object)) { object_err(page->slab_cache, page, object, "Object is on free-list"); rv = false; } else { rv = true; } slab_unlock(page); out_unlock: local_irq_restore(flags); return rv; } EXPORT_SYMBOL(verify_mem_not_deleted); #endif void kfree(const void *x) { struct page *page; Loading