The patch titled slab: clean up kmem_getpages has been added to the -mm tree. Its filename is slab-cleanup-kmem_getpages.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this From: Christoph Hellwig <hch@xxxxxx> The last ifdef addition hit the ugliness treshold on this functions, so: - rename the varibale i to nr_pages so it's somewhat descriptive - remove the addr variable and do the page_address call at the very end - instead of ifdef'ing the whole alloc_pages_node call just make the __GFP_COMP addition to flags conditional - rewrite the __GFP_COMP comment to make sense Signed-off-by: Christoph Hellwig <hch@xxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- mm/slab.c | 27 +++++++++++++-------------- 1 files changed, 13 insertions(+), 14 deletions(-) diff -puN mm/slab.c~slab-cleanup-kmem_getpages mm/slab.c --- devel/mm/slab.c~slab-cleanup-kmem_getpages 2006-04-14 22:04:43.000000000 -0700 +++ devel-akpm/mm/slab.c 2006-04-14 22:04:43.000000000 -0700 @@ -1491,31 +1491,30 @@ __initcall(cpucache_init); static void *kmem_getpages(struct kmem_cache *cachep, gfp_t flags, int nodeid) { struct page *page; - void *addr; - int i; + int nr_pages; - flags |= cachep->gfpflags; #ifndef CONFIG_MMU - /* nommu uses slab's for process anonymous memory allocations, so - * requires __GFP_COMP to properly refcount higher order allocations" + /* + * Nommu uses slab's for process anonymous memory allocations, and thus + * requires __GFP_COMP to properly refcount higher order allocations */ - page = alloc_pages_node(nodeid, (flags | __GFP_COMP), cachep->gfporder); -#else - page = alloc_pages_node(nodeid, flags, cachep->gfporder); + flags |= __GFP_COMP; #endif + flags |= cachep->gfpflags; + + page = alloc_pages_node(nodeid, flags, cachep->gfporder); if (!page) return NULL; - addr = page_address(page); - i = (1 << cachep->gfporder); + nr_pages = (1 << cachep->gfporder); if (cachep->flags & SLAB_RECLAIM_ACCOUNT) - atomic_add(i, &slab_reclaim_pages); - add_page_state(nr_slab, i); - while (i--) { + atomic_add(nr_pages, &slab_reclaim_pages); + add_page_state(nr_slab, nr_pages); + while (nr_pages--) { __SetPageSlab(page); page++; } - return addr; + return page_address(page); } /* _ Patches currently in -mm which might be from hch@xxxxxx are origin.patch git-cifs.patch git-scsi-misc.patch gdth-add-execute-firmware-command-abstraction.patch areca-raid-linux-scsi-driver-update4.patch slab-cleanup-kmem_getpages.patch remove-steal_locks.patch fix-block-device-symlink-name.patch reiser4.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html