diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index f2ee9b2332e3da6426cb69213c46837642cc26b7..f5a6695d4d21335dddf2aa0da868c31fad454270 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -135,7 +135,7 @@ struct page_state {
 
 extern void get_page_state(struct page_state *ret);
 extern void get_full_page_state(struct page_state *ret);
-extern unsigned long __read_page_state(unsigned offset);
+extern unsigned long __read_page_state(unsigned long offset);
 extern void __mod_page_state(unsigned long offset, unsigned long delta);
 
 #define read_page_state(member) \
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index c976628f9d9507bd586dd1fd3afb31d10ae32c86..10446a6463743f940830baf6b103fc593cc09bec 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1144,7 +1144,7 @@ void get_full_page_state(struct page_state *ret)
 	__get_page_state(ret, sizeof(*ret) / sizeof(unsigned long));
 }
 
-unsigned long __read_page_state(unsigned offset)
+unsigned long __read_page_state(unsigned long offset)
 {
 	unsigned long ret = 0;
 	int cpu;