diff options
Diffstat (limited to 'mm/mempolicy.c')
-rw-r--r-- | mm/mempolicy.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 617fb31086ee..b917d6fdc1bb 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c | |||
@@ -141,9 +141,11 @@ static struct zonelist *bind_zonelist(nodemask_t *nodes) | |||
141 | enum zone_type k; | 141 | enum zone_type k; |
142 | 142 | ||
143 | max = 1 + MAX_NR_ZONES * nodes_weight(*nodes); | 143 | max = 1 + MAX_NR_ZONES * nodes_weight(*nodes); |
144 | max++; /* space for zlcache_ptr (see mmzone.h) */ | ||
144 | zl = kmalloc(sizeof(struct zone *) * max, GFP_KERNEL); | 145 | zl = kmalloc(sizeof(struct zone *) * max, GFP_KERNEL); |
145 | if (!zl) | 146 | if (!zl) |
146 | return NULL; | 147 | return NULL; |
148 | zl->zlcache_ptr = NULL; | ||
147 | num = 0; | 149 | num = 0; |
148 | /* First put in the highest zones from all nodes, then all the next | 150 | /* First put in the highest zones from all nodes, then all the next |
149 | lower zones etc. Avoid empty zones because the memory allocator | 151 | lower zones etc. Avoid empty zones because the memory allocator |
@@ -219,7 +221,7 @@ static int check_pte_range(struct vm_area_struct *vma, pmd_t *pmd, | |||
219 | orig_pte = pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); | 221 | orig_pte = pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); |
220 | do { | 222 | do { |
221 | struct page *page; | 223 | struct page *page; |
222 | unsigned int nid; | 224 | int nid; |
223 | 225 | ||
224 | if (!pte_present(*pte)) | 226 | if (!pte_present(*pte)) |
225 | continue; | 227 | continue; |
@@ -1324,7 +1326,7 @@ struct mempolicy *__mpol_copy(struct mempolicy *old) | |||
1324 | atomic_set(&new->refcnt, 1); | 1326 | atomic_set(&new->refcnt, 1); |
1325 | if (new->policy == MPOL_BIND) { | 1327 | if (new->policy == MPOL_BIND) { |
1326 | int sz = ksize(old->v.zonelist); | 1328 | int sz = ksize(old->v.zonelist); |
1327 | new->v.zonelist = kmemdup(old->v.zonelist, sz, SLAB_KERNEL); | 1329 | new->v.zonelist = kmemdup(old->v.zonelist, sz, GFP_KERNEL); |
1328 | if (!new->v.zonelist) { | 1330 | if (!new->v.zonelist) { |
1329 | kmem_cache_free(policy_cache, new); | 1331 | kmem_cache_free(policy_cache, new); |
1330 | return ERR_PTR(-ENOMEM); | 1332 | return ERR_PTR(-ENOMEM); |
@@ -1705,8 +1707,8 @@ void mpol_rebind_mm(struct mm_struct *mm, nodemask_t *new) | |||
1705 | * Display pages allocated per node and memory policy via /proc. | 1707 | * Display pages allocated per node and memory policy via /proc. |
1706 | */ | 1708 | */ |
1707 | 1709 | ||
1708 | static const char *policy_types[] = { "default", "prefer", "bind", | 1710 | static const char * const policy_types[] = |
1709 | "interleave" }; | 1711 | { "default", "prefer", "bind", "interleave" }; |
1710 | 1712 | ||
1711 | /* | 1713 | /* |
1712 | * Convert a mempolicy into a string. | 1714 | * Convert a mempolicy into a string. |