diff -Naurp linux-orig/include/linux/page-flags.h linux-mod/include/linux/page-flags.h --- linux-orig/include/linux/page-flags.h 2006-06-20 20:49:59.000000000 -0700 +++ linux-mod/include/linux/page-flags.h 2006-06-20 20:47:50.000000000 -0700 @@ -141,17 +141,27 @@ DECLARE_PER_CPU(struct vm_event_state, v static inline unsigned long get_cpu_vm_events(enum vm_event_item item) { - return __get_cpu_var(vm_event_states).event[item]; + unsigned long flags, res; + local_irq_save(flags); + res = __get_cpu_var(vm_event_states).event[item]; + local_irq_restore(flags); + return res; } static inline void count_vm_event(enum vm_event_item item) { + unsigned long flags; + local_irq_save(flags); __get_cpu_var(vm_event_states).event[item]++; + local_irq_restore(flags); } static inline void count_vm_events(enum vm_event_item item, long delta) { + unsigned long flags; + local_irq_save(flags); __get_cpu_var(vm_event_states).event[item] += delta; + local_irq_restore(flags); } extern void all_vm_events(unsigned long *);