Index: linux-2.6.17-mm2/mm/vmstat.c =================================================================== --- linux-2.6.17-mm2.orig/mm/vmstat.c 2006-06-26 20:36:37.477438857 -0700 +++ linux-2.6.17-mm2/mm/vmstat.c 2006-06-26 20:48:00.818976265 -0700 @@ -353,17 +353,6 @@ void __mod_zone_page_state(struct zone * } EXPORT_SYMBOL(__mod_zone_page_state); -void mod_zone_page_state(struct zone *zone, enum zone_stat_item item, - int delta) -{ - unsigned long flags; - - local_irq_save(flags); - zone_page_state_add(delta, zone, item); - local_irq_restore(flags); -} -EXPORT_SYMBOL(mod_zone_page_state); - void __inc_zone_page_state(struct page *page, enum zone_stat_item item) { zone_page_state_add(1, page_zone(page), item); @@ -375,26 +364,6 @@ void __dec_zone_page_state(struct page * zone_page_state_add(-1, page_zone(page), item); } EXPORT_SYMBOL(__dec_zone_page_state); - -void inc_zone_page_state(struct page *page, enum zone_stat_item item) -{ - unsigned long flags; - - local_irq_save(flags); - zone_page_state_add(1, page_zone(page), item); - local_irq_restore(flags); -} -EXPORT_SYMBOL(inc_zone_page_state); - -void dec_zone_page_state(struct page *page, enum zone_stat_item item) -{ - unsigned long flags; - - local_irq_save(flags); - zone_page_state_add( -1, page_zone(page), item); - local_irq_restore(flags); -} -EXPORT_SYMBOL(dec_zone_page_state); #endif #ifdef CONFIG_NUMA Index: linux-2.6.17-mm2/include/linux/vmstat.h =================================================================== --- linux-2.6.17-mm2.orig/include/linux/vmstat.h 2006-06-24 17:25:22.342006571 -0700 +++ linux-2.6.17-mm2/include/linux/vmstat.h 2006-06-26 20:44:21.673345880 -0700 @@ -147,9 +147,16 @@ void __dec_zone_page_state(struct page * #define __sub_zone_page_state(__z, __i, __d) \ __mod_zone_page_state(__z, __i,-(__d)) +#ifdef CONFIG_SMP void mod_zone_page_state(struct zone *, enum zone_stat_item, int); void inc_zone_page_state(struct page *, enum zone_stat_item); void dec_zone_page_state(struct page *, enum zone_stat_item); +#else +/* These use atomic ops in UP. So these are the same as __ */ +#define mod_zone_page_state __mod_zone_page_state +#define inc_zone_page_state __inc_zone_page_state +#define dec_zone_page_state __dec_zone_page_state +#endif #define add_zone_page_state(__z, __i, __d) mod_zone_page_state(__z, __i, __d) #define sub_zone_page_state(__z, __i, __d) mod_zone_page_state(__z, __i, -(__d))