diff options
Diffstat (limited to 'mm/slab.c')
-rw-r--r-- | mm/slab.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -2746,9 +2746,9 @@ static int cache_grow(struct kmem_cache *cachep, | |||
2746 | * Be lazy and only check for valid flags here, keeping it out of the | 2746 | * Be lazy and only check for valid flags here, keeping it out of the |
2747 | * critical path in kmem_cache_alloc(). | 2747 | * critical path in kmem_cache_alloc(). |
2748 | */ | 2748 | */ |
2749 | BUG_ON(flags & ~(GFP_DMA | __GFP_ZERO | GFP_LEVEL_MASK)); | 2749 | BUG_ON(flags & GFP_SLAB_BUG_MASK); |
2750 | local_flags = flags & (GFP_CONSTRAINT_MASK|GFP_RECLAIM_MASK); | ||
2750 | 2751 | ||
2751 | local_flags = (flags & GFP_LEVEL_MASK); | ||
2752 | /* Take the l3 list lock to change the colour_next on this node */ | 2752 | /* Take the l3 list lock to change the colour_next on this node */ |
2753 | check_irq_off(); | 2753 | check_irq_off(); |
2754 | l3 = cachep->nodelists[nodeid]; | 2754 | l3 = cachep->nodelists[nodeid]; |
@@ -2785,7 +2785,7 @@ static int cache_grow(struct kmem_cache *cachep, | |||
2785 | 2785 | ||
2786 | /* Get slab management. */ | 2786 | /* Get slab management. */ |
2787 | slabp = alloc_slabmgmt(cachep, objp, offset, | 2787 | slabp = alloc_slabmgmt(cachep, objp, offset, |
2788 | local_flags & ~GFP_THISNODE, nodeid); | 2788 | local_flags & ~GFP_CONSTRAINT_MASK, nodeid); |
2789 | if (!slabp) | 2789 | if (!slabp) |
2790 | goto opps1; | 2790 | goto opps1; |
2791 | 2791 | ||
@@ -3225,7 +3225,7 @@ static void *fallback_alloc(struct kmem_cache *cache, gfp_t flags) | |||
3225 | 3225 | ||
3226 | zonelist = &NODE_DATA(slab_node(current->mempolicy)) | 3226 | zonelist = &NODE_DATA(slab_node(current->mempolicy)) |
3227 | ->node_zonelists[gfp_zone(flags)]; | 3227 | ->node_zonelists[gfp_zone(flags)]; |
3228 | local_flags = (flags & GFP_LEVEL_MASK); | 3228 | local_flags = flags & (GFP_CONSTRAINT_MASK|GFP_RECLAIM_MASK); |
3229 | 3229 | ||
3230 | retry: | 3230 | retry: |
3231 | /* | 3231 | /* |