From: Andy Whitcroft GFP_ZONETYPES calculate from GFP_ZONEMASK GFP_ZONETYPES's value is directly related to the value of GFP_ZONEMASK. It takes one of two forms depending whether the top bit of GFP_ZONEMASK is a 'loner'. Supply both forms, enabling the loner. Signed-off-by: Andy Whitcroft Signed-off-by: Andrew Morton --- include/linux/mmzone.h | 5 ++++- 1 files changed, 4 insertions(+), 1 deletion(-) diff -puN include/linux/mmzone.h~gfp_zonetypes-calculate-from-gfp_zonemask include/linux/mmzone.h --- 25/include/linux/mmzone.h~gfp_zonetypes-calculate-from-gfp_zonemask Thu Jan 19 16:31:40 2006 +++ 25-akpm/include/linux/mmzone.h Thu Jan 19 16:31:40 2006 @@ -98,11 +98,14 @@ struct per_cpu_pageset { * of three zone modifier bits, we could require up to eight zonelists. * If the left most zone modifier is a "loner" then the highest valid * zonelist would be four allowing us to allocate only five zonelists. + * Use the first form for GFP_ZONETYPES when the left most bit is not + * a "loner", otherwise use the second. * * NOTE! Make sure this matches the zones in */ #define GFP_ZONEMASK 0x07 -#define GFP_ZONETYPES 5 +/* #define GFP_ZONETYPES (GFP_ZONEMASK + 1) */ /* Non-loner */ +#define GFP_ZONETYPES ((GFP_ZONEMASK + 1) / 2 + 1) /* Loner */ /* * On machines where it is needed (eg PCs) we divide physical memory _