From: Nick Piggin Inline set_page_refs. Signed-off-by: Nick Piggin Cc: Hugh Dickins Signed-off-by: Andrew Morton --- mm/internal.h | 19 +++++++++++++++++-- mm/page_alloc.c | 17 ----------------- 2 files changed, 17 insertions(+), 19 deletions(-) diff -puN mm/internal.h~mm-set_page_refs-opt mm/internal.h --- devel/mm/internal.h~mm-set_page_refs-opt 2005-11-22 00:06:53.000000000 -0800 +++ devel-akpm/mm/internal.h 2005-11-22 00:06:53.000000000 -0800 @@ -9,5 +9,20 @@ * 2 of the License, or (at your option) any later version. */ -/* page_alloc.c */ -extern void set_page_refs(struct page *page, int order); +static inline void set_page_refs(struct page *page, int order) +{ +#ifdef CONFIG_MMU + set_page_count(page, 1); +#else + int i; + + /* + * We need to reference all the pages for this order, otherwise if + * anyone accesses one of the pages with (get/put) it will be freed. + * - eg: access_process_vm() + */ + for (i = 0; i < (1 << order); i++) + set_page_count(page + i, 1); +#endif /* CONFIG_MMU */ +} + diff -puN mm/page_alloc.c~mm-set_page_refs-opt mm/page_alloc.c --- devel/mm/page_alloc.c~mm-set_page_refs-opt 2005-11-22 00:06:53.000000000 -0800 +++ devel-akpm/mm/page_alloc.c 2005-11-22 00:06:53.000000000 -0800 @@ -453,23 +453,6 @@ expand(struct zone *zone, struct page *p return page; } -void set_page_refs(struct page *page, int order) -{ -#ifdef CONFIG_MMU - set_page_count(page, 1); -#else - int i; - - /* - * We need to reference all the pages for this order, otherwise if - * anyone accesses one of the pages with (get/put) it will be freed. - * - eg: access_process_vm() - */ - for (i = 0; i < (1 << order); i++) - set_page_count(page + i, 1); -#endif /* CONFIG_MMU */ -} - /* * This page is about to be returned from the page allocator */ _