git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ALSA: hda - Add quirk for Gateway T6834c laptop
[pandora-kernel.git]
/
mm
/
mempool.c
diff --git
a/mm/mempool.c
b/mm/mempool.c
index
cc1ca86
..
a46eb1b
100644
(file)
--- a/
mm/mempool.c
+++ b/
mm/mempool.c
@@
-62,10
+62,9
@@
mempool_t *mempool_create_node(int min_nr, mempool_alloc_t *alloc_fn,
mempool_free_t *free_fn, void *pool_data, int node_id)
{
mempool_t *pool;
mempool_free_t *free_fn, void *pool_data, int node_id)
{
mempool_t *pool;
- pool = kmalloc_node(sizeof(*pool), GFP_KERNEL, node_id);
+ pool = kmalloc_node(sizeof(*pool), GFP_KERNEL
| __GFP_ZERO
, node_id);
if (!pool)
return NULL;
if (!pool)
return NULL;
- memset(pool, 0, sizeof(*pool));
pool->elements = kmalloc_node(min_nr * sizeof(void *),
GFP_KERNEL, node_id);
if (!pool->elements) {
pool->elements = kmalloc_node(min_nr * sizeof(void *),
GFP_KERNEL, node_id);
if (!pool->elements) {
@@
-263,6
+262,9
@@
void mempool_free(void *element, mempool_t *pool)
{
unsigned long flags;
{
unsigned long flags;
+ if (unlikely(element == NULL))
+ return;
+
smp_mb();
if (pool->curr_nr < pool->min_nr) {
spin_lock_irqsave(&pool->lock, flags);
smp_mb();
if (pool->curr_nr < pool->min_nr) {
spin_lock_irqsave(&pool->lock, flags);
@@
-297,7
+299,7
@@
EXPORT_SYMBOL(mempool_free_slab);
/*
* A commonly used alloc and free fn that kmalloc/kfrees the amount of memory
/*
* A commonly used alloc and free fn that kmalloc/kfrees the amount of memory
- * specfied by pool_data
+ * spec
i
fied by pool_data
*/
void *mempool_kmalloc(gfp_t gfp_mask, void *pool_data)
{
*/
void *mempool_kmalloc(gfp_t gfp_mask, void *pool_data)
{