diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/page-flags.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 282902bb9816..9b3496e2aac5 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -114,9 +114,10 @@ extern void get_full_page_state(struct page_state *ret); #define mod_page_state(member, delta) \ do { \ - int cpu = get_cpu(); \ - per_cpu(page_states, cpu).member += (delta); \ - put_cpu(); \ + unsigned long flags; \ + local_irq_save(flags); \ + __get_cpu_var(page_states).member += (delta); \ + local_irq_restore(flags); \ } while (0) #define inc_page_state(member) mod_page_state(member, 1UL) |
