aboutsummaryrefslogtreecommitdiffstats
path: root/mm/slab.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/slab.c')
-rw-r--r--mm/slab.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/mm/slab.c b/mm/slab.c
index 5488c54b1172..29851841da62 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -3243,6 +3243,8 @@ static void *fallback_alloc(struct kmem_cache *cache, gfp_t flags)
3243 struct zonelist *zonelist; 3243 struct zonelist *zonelist;
3244 gfp_t local_flags; 3244 gfp_t local_flags;
3245 struct zone **z; 3245 struct zone **z;
3246 struct zone *zone;
3247 enum zone_type high_zoneidx = gfp_zone(flags);
3246 void *obj = NULL; 3248 void *obj = NULL;
3247 int nid; 3249 int nid;
3248 3250
@@ -3257,10 +3259,10 @@ retry:
3257 * Look through allowed nodes for objects available 3259 * Look through allowed nodes for objects available
3258 * from existing per node queues. 3260 * from existing per node queues.
3259 */ 3261 */
3260 for (z = zonelist->zones; *z && !obj; z++) { 3262 for_each_zone_zonelist(zone, z, zonelist, high_zoneidx) {
3261 nid = zone_to_nid(*z); 3263 nid = zone_to_nid(zone);
3262 3264
3263 if (cpuset_zone_allowed_hardwall(*z, flags) && 3265 if (cpuset_zone_allowed_hardwall(zone, flags) &&
3264 cache->nodelists[nid] && 3266 cache->nodelists[nid] &&
3265 cache->nodelists[nid]->free_objects) 3267 cache->nodelists[nid]->free_objects)
3266 obj = ____cache_alloc_node(cache, 3268 obj = ____cache_alloc_node(cache,