aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/gfp.h
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@sgi.com>2006-09-26 02:31:19 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-09-26 11:48:47 -0400
commit19655d3487001d7df0e10e9cbfc27c758b77c2b5 (patch)
tree8d0aaa216bd32bd64e3a9652fd34d40bdb9d1075 /include/linux/gfp.h
parent2f6726e54a9410e2e4cee864947c05e954051916 (diff)
[PATCH] linearly index zone->node_zonelists[]
I wonder why we need this bitmask indexing into zone->node_zonelists[]? We always start with the highest zone and then include all lower zones if we build zonelists. Are there really cases where we need allocation from ZONE_DMA or ZONE_HIGHMEM but not ZONE_NORMAL? It seems that the current implementation of highest_zone() makes that already impossible. If we go linear on the index then gfp_zone() == highest_zone() and a lot of definitions fall by the wayside. We can now revert back to the use of gfp_zone() in mempolicy.c ;-) Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/gfp.h')
-rw-r--r--include/linux/gfp.h12
1 files changed, 1 insertions, 11 deletions
diff --git a/include/linux/gfp.h b/include/linux/gfp.h
index a0992d392d79..63ab88a36f39 100644
--- a/include/linux/gfp.h
+++ b/include/linux/gfp.h
@@ -12,9 +12,6 @@ struct vm_area_struct;
12 * 12 *
13 * Zone modifiers (see linux/mmzone.h - low three bits) 13 * Zone modifiers (see linux/mmzone.h - low three bits)
14 * 14 *
15 * These may be masked by GFP_ZONEMASK to make allocations with this bit
16 * set fall back to ZONE_NORMAL.
17 *
18 * Do not put any conditional on these. If necessary modify the definitions 15 * Do not put any conditional on these. If necessary modify the definitions
19 * without the underscores and use the consistently. The definitions here may 16 * without the underscores and use the consistently. The definitions here may
20 * be used in bit comparisons. 17 * be used in bit comparisons.
@@ -78,14 +75,7 @@ struct vm_area_struct;
78#define GFP_DMA32 __GFP_DMA32 75#define GFP_DMA32 __GFP_DMA32
79 76
80 77
81static inline int gfp_zone(gfp_t gfp) 78static inline enum zone_type gfp_zone(gfp_t flags)
82{
83 int zone = GFP_ZONEMASK & (__force int) gfp;
84 BUG_ON(zone >= GFP_ZONETYPES);
85 return zone;
86}
87
88static inline enum zone_type highest_zone(gfp_t flags)
89{ 79{
90 if (flags & __GFP_DMA) 80 if (flags & __GFP_DMA)
91 return ZONE_DMA; 81 return ZONE_DMA;