void pool_evict_from_local_caches(void);
void pool_put_to_cache(struct pool_head *pool, void *ptr, const void *caller);
void pool_fill_pattern(struct pool_cache_head *pch, struct pool_cache_item *item, uint size);
-void pool_check_pattern(struct pool_cache_head *pch, struct pool_cache_item *item, uint size, const void *caller);
+void pool_check_pattern(struct pool_cache_head *pch, struct pool_head *pool, struct pool_cache_item *item, const void *caller);
void pool_refill_local_from_shared(struct pool_head *pool, struct pool_cache_head *pch);
void pool_put_to_shared_cache(struct pool_head *pool, struct pool_item *item);
item = LIST_PREV(&ph->list, typeof(item), by_pool);
if (pool_debugging & POOL_DBG_INTEGRITY)
- pool_check_pattern(ph, item, pool->size, caller);
+ pool_check_pattern(ph, pool, item, caller);
}
BUG_ON(&item->by_pool == &ph->list);
* must have been previously initialized using pool_fill_pattern(). If any
* corruption is detected, the function provokes an immediate crash.
*/
-void pool_check_pattern(struct pool_cache_head *pch, struct pool_cache_item *item, uint size, const void *caller)
+void pool_check_pattern(struct pool_cache_head *pch, struct pool_head *pool, struct pool_cache_item *item, const void *caller)
{
const ulong *ptr = (const ulong *)item;
+ uint size = pool->size;
uint ofs;
ulong u;
item = LIST_PREV(&ph->list, typeof(item), by_pool);
BUG_ON(&item->by_pool == &ph->list);
if (unlikely(pool_debugging & POOL_DBG_INTEGRITY))
- pool_check_pattern(ph, item, pool->size, caller);
+ pool_check_pattern(ph, pool, item, caller);
LIST_DELETE(&item->by_pool);
LIST_DELETE(&item->by_lru);