diff options
Diffstat (limited to 'mm/percpu.c')
| -rw-r--r-- | mm/percpu.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/mm/percpu.c b/mm/percpu.c index e61dc2cc5873..c76ef3891e0d 100644 --- a/mm/percpu.c +++ b/mm/percpu.c | |||
| @@ -393,7 +393,9 @@ static int pcpu_extend_area_map(struct pcpu_chunk *chunk, int new_alloc) | |||
| 393 | goto out_unlock; | 393 | goto out_unlock; |
| 394 | 394 | ||
| 395 | old_size = chunk->map_alloc * sizeof(chunk->map[0]); | 395 | old_size = chunk->map_alloc * sizeof(chunk->map[0]); |
| 396 | memcpy(new, chunk->map, old_size); | 396 | old = chunk->map; |
| 397 | |||
| 398 | memcpy(new, old, old_size); | ||
| 397 | 399 | ||
| 398 | chunk->map_alloc = new_alloc; | 400 | chunk->map_alloc = new_alloc; |
| 399 | chunk->map = new; | 401 | chunk->map = new; |
| @@ -1162,7 +1164,7 @@ static struct pcpu_alloc_info * __init pcpu_build_alloc_info( | |||
| 1162 | } | 1164 | } |
| 1163 | 1165 | ||
| 1164 | /* | 1166 | /* |
| 1165 | * Don't accept if wastage is over 25%. The | 1167 | * Don't accept if wastage is over 1/3. The |
| 1166 | * greater-than comparison ensures upa==1 always | 1168 | * greater-than comparison ensures upa==1 always |
| 1167 | * passes the following check. | 1169 | * passes the following check. |
| 1168 | */ | 1170 | */ |
| @@ -1399,9 +1401,9 @@ int __init pcpu_setup_first_chunk(const struct pcpu_alloc_info *ai, | |||
| 1399 | 1401 | ||
| 1400 | if (pcpu_first_unit_cpu == NR_CPUS) | 1402 | if (pcpu_first_unit_cpu == NR_CPUS) |
| 1401 | pcpu_first_unit_cpu = cpu; | 1403 | pcpu_first_unit_cpu = cpu; |
| 1404 | pcpu_last_unit_cpu = cpu; | ||
| 1402 | } | 1405 | } |
| 1403 | } | 1406 | } |
| 1404 | pcpu_last_unit_cpu = cpu; | ||
| 1405 | pcpu_nr_units = unit; | 1407 | pcpu_nr_units = unit; |
| 1406 | 1408 | ||
| 1407 | for_each_possible_cpu(cpu) | 1409 | for_each_possible_cpu(cpu) |
