From: Nick Piggin More atomic operation removal from page allocator Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton --- include/linux/page-flags.h | 4 ++-- mm/page_alloc.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff -puN include/linux/page-flags.h~mm-page_alloc-less-atomics include/linux/page-flags.h --- devel/include/linux/page-flags.h~mm-page_alloc-less-atomics 2006-01-25 11:21:10.000000000 -0800 +++ devel-akpm/include/linux/page-flags.h 2006-01-25 11:21:10.000000000 -0800 @@ -328,8 +328,8 @@ extern void __mod_page_state_offset(unsi #define TestClearPageReclaim(page) test_and_clear_bit(PG_reclaim, &(page)->flags) #define PageCompound(page) test_bit(PG_compound, &(page)->flags) -#define SetPageCompound(page) set_bit(PG_compound, &(page)->flags) -#define ClearPageCompound(page) clear_bit(PG_compound, &(page)->flags) +#define __SetPageCompound(page) __set_bit(PG_compound, &(page)->flags) +#define __ClearPageCompound(page) __clear_bit(PG_compound, &(page)->flags) #ifdef CONFIG_SWAP #define PageSwapCache(page) test_bit(PG_swapcache, &(page)->flags) diff -puN mm/page_alloc.c~mm-page_alloc-less-atomics mm/page_alloc.c --- devel/mm/page_alloc.c~mm-page_alloc-less-atomics 2006-01-25 11:21:10.000000000 -0800 +++ devel-akpm/mm/page_alloc.c 2006-01-25 11:21:10.000000000 -0800 @@ -186,7 +186,7 @@ static void prep_compound_page(struct pa for (i = 0; i < nr_pages; i++) { struct page *p = page + i; - SetPageCompound(p); + __SetPageCompound(p); set_page_private(p, (unsigned long)page); } } @@ -205,7 +205,7 @@ static void destroy_compound_page(struct if (unlikely(!PageCompound(p) | (page_private(p) != (unsigned long)page))) bad_page(page); - ClearPageCompound(p); + __ClearPageCompound(p); } } _