mempool.c (942baad211336efefb93a8369478888ab845c450) | mempool.c (7a3b835371883558eb63e069d891bd87f562380d) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * linux/mm/mempool.c 4 * 5 * memory buffer pool support. Such pools are mostly used 6 * for guaranteed, deadlock-free memory allocations during 7 * extreme VM load. 8 * --- 92 unchanged lines hidden (view full) --- 101} 102#endif /* CONFIG_DEBUG_SLAB || CONFIG_SLUB_DEBUG_ON */ 103 104static __always_inline void kasan_poison_element(mempool_t *pool, void *element) 105{ 106 if (pool->alloc == mempool_alloc_slab || pool->alloc == mempool_kmalloc) 107 kasan_slab_free_mempool(element); 108 else if (pool->alloc == mempool_alloc_pages) | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * linux/mm/mempool.c 4 * 5 * memory buffer pool support. Such pools are mostly used 6 * for guaranteed, deadlock-free memory allocations during 7 * extreme VM load. 8 * --- 92 unchanged lines hidden (view full) --- 101} 102#endif /* CONFIG_DEBUG_SLAB || CONFIG_SLUB_DEBUG_ON */ 103 104static __always_inline void kasan_poison_element(mempool_t *pool, void *element) 105{ 106 if (pool->alloc == mempool_alloc_slab || pool->alloc == mempool_kmalloc) 107 kasan_slab_free_mempool(element); 108 else if (pool->alloc == mempool_alloc_pages) |
109 kasan_free_pages(element, (unsigned long)pool->pool_data, false); | 109 kasan_poison_pages(element, (unsigned long)pool->pool_data, 110 false); |
110} 111 112static void kasan_unpoison_element(mempool_t *pool, void *element) 113{ 114 if (pool->alloc == mempool_alloc_slab || pool->alloc == mempool_kmalloc) 115 kasan_unpoison_range(element, __ksize(element)); 116 else if (pool->alloc == mempool_alloc_pages) | 111} 112 113static void kasan_unpoison_element(mempool_t *pool, void *element) 114{ 115 if (pool->alloc == mempool_alloc_slab || pool->alloc == mempool_kmalloc) 116 kasan_unpoison_range(element, __ksize(element)); 117 else if (pool->alloc == mempool_alloc_pages) |
117 kasan_alloc_pages(element, (unsigned long)pool->pool_data, false); | 118 kasan_unpoison_pages(element, (unsigned long)pool->pool_data, 119 false); |
118} 119 120static __always_inline void add_element(mempool_t *pool, void *element) 121{ 122 BUG_ON(pool->curr_nr >= pool->min_nr); 123 poison_element(pool, element); 124 kasan_poison_element(pool, element); 125 pool->elements[pool->curr_nr++] = element; --- 430 unchanged lines hidden --- | 120} 121 122static __always_inline void add_element(mempool_t *pool, void *element) 123{ 124 BUG_ON(pool->curr_nr >= pool->min_nr); 125 poison_element(pool, element); 126 kasan_poison_element(pool, element); 127 pool->elements[pool->curr_nr++] = element; --- 430 unchanged lines hidden --- |