From: Andrew Morton As Nick points out, only ia64 uses PG_uncached. So we can push it up into the higher 32-bits of page->flags and make room for another flag on 32-bit machines. Cc: "Luck, Tony" Cc: Jesse Barnes Cc: Jes Sorensen Cc: Nick Piggin Signed-off-by: Andrew Morton --- include/linux/mmzone.h | 2 +- include/linux/page-flags.h | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff -puN include/linux/page-flags.h~pg_uncached-is-ia64-only include/linux/page-flags.h --- devel/include/linux/page-flags.h~pg_uncached-is-ia64-only 2006-04-06 21:50:51.000000000 -0700 +++ devel-akpm/include/linux/page-flags.h 2006-04-06 21:50:51.000000000 -0700 @@ -7,6 +7,8 @@ #include #include +#include + #include /* @@ -86,7 +88,10 @@ #define PG_mappedtodisk 16 /* Has blocks allocated on-disk */ #define PG_reclaim 17 /* To be reclaimed asap */ #define PG_nosave_free 18 /* Free, should not be written */ -#define PG_uncached 19 /* Page has been mapped as uncached */ + +#if (BITS_PER_LONG > 32) +#define PG_uncached 32 /* Page has been mapped as uncached */ +#endif /* * Global page accounting. One instance per CPU. Only unsigned longs are diff -puN include/linux/mmzone.h~pg_uncached-is-ia64-only include/linux/mmzone.h --- devel/include/linux/mmzone.h~pg_uncached-is-ia64-only 2006-04-06 21:50:56.000000000 -0700 +++ devel-akpm/include/linux/mmzone.h 2006-04-06 21:51:12.000000000 -0700 @@ -457,7 +457,7 @@ extern struct zone *next_zone(struct zon /* * with 64 bit flags field, there's plenty of room. */ -#define FLAGS_RESERVED 32 +#define FLAGS_RESERVED 24 #else _