mm: remove broken 'kzalloc' mempool
The kzalloc mempool zeros items when they are initially allocated, but does not rezero used items that are returned to the pool. Consequently mempool_alloc()s may return non-zeroed memory. Since there are/were only two in-tree users for mempool_create_kzalloc_pool(), and 'fixing' this in a way that will re-zero used (but not new) items before first use is non-trivial, just remove it. Signed-off-by: Sage Weil <sage@newdream.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
bbba809e96
Коммит
bba7881954
|
@ -47,22 +47,16 @@ mempool_create_slab_pool(int min_nr, struct kmem_cache *kc)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 2 mempool_alloc_t's and a mempool_free_t to kmalloc/kzalloc and kfree
|
* a mempool_alloc_t and a mempool_free_t to kmalloc and kfree the
|
||||||
* the amount of memory specified by pool_data
|
* amount of memory specified by pool_data
|
||||||
*/
|
*/
|
||||||
void *mempool_kmalloc(gfp_t gfp_mask, void *pool_data);
|
void *mempool_kmalloc(gfp_t gfp_mask, void *pool_data);
|
||||||
void *mempool_kzalloc(gfp_t gfp_mask, void *pool_data);
|
|
||||||
void mempool_kfree(void *element, void *pool_data);
|
void mempool_kfree(void *element, void *pool_data);
|
||||||
static inline mempool_t *mempool_create_kmalloc_pool(int min_nr, size_t size)
|
static inline mempool_t *mempool_create_kmalloc_pool(int min_nr, size_t size)
|
||||||
{
|
{
|
||||||
return mempool_create(min_nr, mempool_kmalloc, mempool_kfree,
|
return mempool_create(min_nr, mempool_kmalloc, mempool_kfree,
|
||||||
(void *) size);
|
(void *) size);
|
||||||
}
|
}
|
||||||
static inline mempool_t *mempool_create_kzalloc_pool(int min_nr, size_t size)
|
|
||||||
{
|
|
||||||
return mempool_create(min_nr, mempool_kzalloc, mempool_kfree,
|
|
||||||
(void *) size);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* A mempool_alloc_t and mempool_free_t for a simple page allocator that
|
* A mempool_alloc_t and mempool_free_t for a simple page allocator that
|
||||||
|
|
|
@ -308,13 +308,6 @@ void *mempool_kmalloc(gfp_t gfp_mask, void *pool_data)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(mempool_kmalloc);
|
EXPORT_SYMBOL(mempool_kmalloc);
|
||||||
|
|
||||||
void *mempool_kzalloc(gfp_t gfp_mask, void *pool_data)
|
|
||||||
{
|
|
||||||
size_t size = (size_t)pool_data;
|
|
||||||
return kzalloc(size, gfp_mask);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(mempool_kzalloc);
|
|
||||||
|
|
||||||
void mempool_kfree(void *element, void *pool_data)
|
void mempool_kfree(void *element, void *pool_data)
|
||||||
{
|
{
|
||||||
kfree(element);
|
kfree(element);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче