Merge pull request #1498 from robertbaldyga/fix-kmemleak
rpool: Mark an entry for kmemleak outside of atomic context
This commit is contained in:
commit
dd040386c5
@ -218,12 +218,15 @@ void *cas_rpool_try_get(struct cas_reserve_pool *rpool_master, int *cpu)
|
|||||||
entry = RPOOL_ITEM_TO_ENTRY(rpool_master, item);
|
entry = RPOOL_ITEM_TO_ENTRY(rpool_master, item);
|
||||||
list_del(item);
|
list_del(item);
|
||||||
atomic_dec(¤t_rpool->count);
|
atomic_dec(¤t_rpool->count);
|
||||||
/* The actuall allocation - kmemleak should start tracking page */
|
|
||||||
kmemleak_alloc(entry, rpool_master->entry_size, 1, GFP_NOIO);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock_irqrestore(¤t_rpool->lock, flags);
|
spin_unlock_irqrestore(¤t_rpool->lock, flags);
|
||||||
|
|
||||||
|
if (entry) {
|
||||||
|
/* The actual allocation - kmemleak should start tracking page */
|
||||||
|
kmemleak_alloc(entry, rpool_master->entry_size, 1, GFP_NOIO);
|
||||||
|
}
|
||||||
|
|
||||||
CAS_DEBUG_PARAM("[%s]Removed item from reserve pool [%s] for cpu [%d], "
|
CAS_DEBUG_PARAM("[%s]Removed item from reserve pool [%s] for cpu [%d], "
|
||||||
"items in pool %d", rpool_master->name,
|
"items in pool %d", rpool_master->name,
|
||||||
item == NULL ? "SKIPPED" : "OK", *cpu,
|
item == NULL ? "SKIPPED" : "OK", *cpu,
|
||||||
|
Loading…
Reference in New Issue
Block a user