--- include/linux/slub_def.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) Index: linux-2.6/include/linux/slub_def.h =================================================================== --- linux-2.6.orig/include/linux/slub_def.h 2008-02-27 19:11:52.000000000 -0800 +++ linux-2.6/include/linux/slub_def.h 2008-02-27 19:14:21.000000000 -0800 @@ -31,12 +31,15 @@ enum stat_item { DEACTIVATE_REMOTE_FREES,/* Slab contained remotely freed objects */ NR_SLUB_STAT_ITEMS }; +#define MAX_FREELIST 20 + struct kmem_cache_cpu { - void **freelist; /* Pointer to first free per cpu object */ + void ***freelist; /* Pointer to the pointers to free objects */ struct page *page; /* The slab from which we are allocating */ int node; /* The node of the page (or -1 for debug) */ unsigned int offset; /* Freepointer offset (in word units) */ unsigned int objsize; /* Size of an object (from kmem_cache) */ + void **free[MAX_FREELIST]; /* Pointers to free per cpu objects */ #ifdef CONFIG_SLUB_STATS unsigned stat[NR_SLUB_STAT_ITEMS]; #endif