mm: fix broken gfp_zone with __GFP_THISNODE
This hack, "base = MAX_NR_ZONES", at __GFP_THISNODE was used for old zonliests. Now, new zonelist[] have a list for __GFP_THISNODE and this hack is incorrect. Should be removed. Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Mel Gorman <mel@csn.ul.ie> Cc: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
2309f9e6fe
commit
8cece85ec7
@ -119,29 +119,22 @@ static inline int allocflags_to_migratetype(gfp_t gfp_flags)
|
||||
|
||||
static inline enum zone_type gfp_zone(gfp_t flags)
|
||||
{
|
||||
int base = 0;
|
||||
|
||||
#ifdef CONFIG_NUMA
|
||||
if (flags & __GFP_THISNODE)
|
||||
base = MAX_NR_ZONES;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ZONE_DMA
|
||||
if (flags & __GFP_DMA)
|
||||
return base + ZONE_DMA;
|
||||
return ZONE_DMA;
|
||||
#endif
|
||||
#ifdef CONFIG_ZONE_DMA32
|
||||
if (flags & __GFP_DMA32)
|
||||
return base + ZONE_DMA32;
|
||||
return ZONE_DMA32;
|
||||
#endif
|
||||
if ((flags & (__GFP_HIGHMEM | __GFP_MOVABLE)) ==
|
||||
(__GFP_HIGHMEM | __GFP_MOVABLE))
|
||||
return base + ZONE_MOVABLE;
|
||||
return ZONE_MOVABLE;
|
||||
#ifdef CONFIG_HIGHMEM
|
||||
if (flags & __GFP_HIGHMEM)
|
||||
return base + ZONE_HIGHMEM;
|
||||
return ZONE_HIGHMEM;
|
||||
#endif
|
||||
return base + ZONE_NORMAL;
|
||||
return ZONE_NORMAL;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user