slab.c is using page->list. Switch it over to using page->lru so we can remove page.list. --- 25-akpm/mm/slab.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff -puN mm/slab.c~slab-stop-using-page-list mm/slab.c --- 25/mm/slab.c~slab-stop-using-page-list 2004-03-19 17:25:48.319058576 -0800 +++ 25-akpm/mm/slab.c 2004-03-19 17:25:48.333056448 -0800 @@ -462,10 +462,10 @@ static int slab_break_gfp_order = BREAK_ * global 'mem_map'. These are used to find the slab an obj belongs to. * With kfree(), these are used to find the cache which an obj belongs to. */ -#define SET_PAGE_CACHE(pg,x) ((pg)->list.next = (struct list_head *)(x)) -#define GET_PAGE_CACHE(pg) ((kmem_cache_t *)(pg)->list.next) -#define SET_PAGE_SLAB(pg,x) ((pg)->list.prev = (struct list_head *)(x)) -#define GET_PAGE_SLAB(pg) ((struct slab *)(pg)->list.prev) +#define SET_PAGE_CACHE(pg,x) ((pg)->lru.next = (struct list_head *)(x)) +#define GET_PAGE_CACHE(pg) ((kmem_cache_t *)(pg)->lru.next) +#define SET_PAGE_SLAB(pg,x) ((pg)->lru.prev = (struct list_head *)(x)) +#define GET_PAGE_SLAB(pg) ((struct slab *)(pg)->lru.prev) /* These are the default caches for kmalloc. Custom caches can have other sizes. */ struct cache_sizes malloc_sizes[] = { _