Skip to content

Commit

Permalink
mm: fix broken gfp_zone with __GFP_THISNODE
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
KAMEZAWA Hiroyuki authored and Linus Torvalds committed Apr 28, 2008
1 parent 2309f9e commit 8cece85
Showing 1 changed file with 5 additions and 12 deletions.
17 changes: 5 additions & 12 deletions include/linux/gfp.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

/*
Expand Down

0 comments on commit 8cece85

Please sign in to comment.