diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-08-04 20:31:20 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-08-04 20:31:20 -0400 |
commit | f8fbd8c49b7dee2e9b9d7c9754972fa2ca335251 (patch) | |
tree | 5f1e8994cce98c3817ab0038706820a5a8e5810e | |
parent | 84e39eeb08c0ea7e9ec43ac820bf76a6fe8ecbad (diff) | |
parent | e47608ab6dbe63fefe60c211a30b3fc78a1b5d5e (diff) |
Merge branch 'akpm' (patches from Andrew)
Merge misc fixes from Andrew Morton:
"A few late-breaking fixes"
* emailed patches from Andrew Morton <akpm@linux-foundation.org>:
mm/memblock.c: fix NULL dereference error
MAINTAINERS: update cgroup's document path
slub: drop bogus inline for fixup_red_left()
powerpc/fsl_rio: fix a missing error code
mm: initialise per_cpu_nodestats for all online pgdats at boot
mm/memblock: fix a typo in a comment
mm: disable CONFIG_MEMORY_HOTPLUG when KASAN is enabled
-rw-r--r-- | MAINTAINERS | 4 | ||||
-rw-r--r-- | arch/powerpc/sysdev/fsl_rio.c | 1 | ||||
-rw-r--r-- | mm/Kconfig | 1 | ||||
-rw-r--r-- | mm/memblock.c | 9 | ||||
-rw-r--r-- | mm/page_alloc.c | 10 | ||||
-rw-r--r-- | mm/slub.c | 2 |
6 files changed, 16 insertions, 11 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 5e1f03f0a526..efc203109a62 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -3219,7 +3219,7 @@ M: Johannes Weiner <hannes@cmpxchg.org> | |||
3219 | L: cgroups@vger.kernel.org | 3219 | L: cgroups@vger.kernel.org |
3220 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git | 3220 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git |
3221 | S: Maintained | 3221 | S: Maintained |
3222 | F: Documentation/cgroups/ | 3222 | F: Documentation/cgroup* |
3223 | F: include/linux/cgroup* | 3223 | F: include/linux/cgroup* |
3224 | F: kernel/cgroup* | 3224 | F: kernel/cgroup* |
3225 | 3225 | ||
@@ -3230,7 +3230,7 @@ W: http://www.bullopensource.org/cpuset/ | |||
3230 | W: http://oss.sgi.com/projects/cpusets/ | 3230 | W: http://oss.sgi.com/projects/cpusets/ |
3231 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git | 3231 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git |
3232 | S: Maintained | 3232 | S: Maintained |
3233 | F: Documentation/cgroups/cpusets.txt | 3233 | F: Documentation/cgroup-v1/cpusets.txt |
3234 | F: include/linux/cpuset.h | 3234 | F: include/linux/cpuset.h |
3235 | F: kernel/cpuset.c | 3235 | F: kernel/cpuset.c |
3236 | 3236 | ||
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c index 984e816f3faf..68e7c0dd2e45 100644 --- a/arch/powerpc/sysdev/fsl_rio.c +++ b/arch/powerpc/sysdev/fsl_rio.c | |||
@@ -491,6 +491,7 @@ int fsl_rio_setup(struct platform_device *dev) | |||
491 | rmu_node = of_parse_phandle(dev->dev.of_node, "fsl,srio-rmu-handle", 0); | 491 | rmu_node = of_parse_phandle(dev->dev.of_node, "fsl,srio-rmu-handle", 0); |
492 | if (!rmu_node) { | 492 | if (!rmu_node) { |
493 | dev_err(&dev->dev, "No valid fsl,srio-rmu-handle property\n"); | 493 | dev_err(&dev->dev, "No valid fsl,srio-rmu-handle property\n"); |
494 | rc = -ENOENT; | ||
494 | goto err_rmu; | 495 | goto err_rmu; |
495 | } | 496 | } |
496 | rc = of_address_to_resource(rmu_node, 0, &rmu_regs); | 497 | rc = of_address_to_resource(rmu_node, 0, &rmu_regs); |
diff --git a/mm/Kconfig b/mm/Kconfig index c0837845c17c..78a23c5c302d 100644 --- a/mm/Kconfig +++ b/mm/Kconfig | |||
@@ -187,6 +187,7 @@ config MEMORY_HOTPLUG | |||
187 | bool "Allow for memory hot-add" | 187 | bool "Allow for memory hot-add" |
188 | depends on SPARSEMEM || X86_64_ACPI_NUMA | 188 | depends on SPARSEMEM || X86_64_ACPI_NUMA |
189 | depends on ARCH_ENABLE_MEMORY_HOTPLUG | 189 | depends on ARCH_ENABLE_MEMORY_HOTPLUG |
190 | depends on !KASAN | ||
190 | 191 | ||
191 | config MEMORY_HOTPLUG_SPARSE | 192 | config MEMORY_HOTPLUG_SPARSE |
192 | def_bool y | 193 | def_bool y |
diff --git a/mm/memblock.c b/mm/memblock.c index ff5ff3b5f1ea..483197ef613f 100644 --- a/mm/memblock.c +++ b/mm/memblock.c | |||
@@ -482,7 +482,7 @@ static void __init_memblock memblock_merge_regions(struct memblock_type *type) | |||
482 | * @flags: flags of the new region | 482 | * @flags: flags of the new region |
483 | * | 483 | * |
484 | * Insert new memblock region [@base,@base+@size) into @type at @idx. | 484 | * Insert new memblock region [@base,@base+@size) into @type at @idx. |
485 | * @type must already have extra room to accomodate the new region. | 485 | * @type must already have extra room to accommodate the new region. |
486 | */ | 486 | */ |
487 | static void __init_memblock memblock_insert_region(struct memblock_type *type, | 487 | static void __init_memblock memblock_insert_region(struct memblock_type *type, |
488 | int idx, phys_addr_t base, | 488 | int idx, phys_addr_t base, |
@@ -544,7 +544,7 @@ repeat: | |||
544 | /* | 544 | /* |
545 | * The following is executed twice. Once with %false @insert and | 545 | * The following is executed twice. Once with %false @insert and |
546 | * then with %true. The first counts the number of regions needed | 546 | * then with %true. The first counts the number of regions needed |
547 | * to accomodate the new area. The second actually inserts them. | 547 | * to accommodate the new area. The second actually inserts them. |
548 | */ | 548 | */ |
549 | base = obase; | 549 | base = obase; |
550 | nr_new = 0; | 550 | nr_new = 0; |
@@ -994,7 +994,10 @@ void __init_memblock __next_mem_range_rev(u64 *idx, int nid, ulong flags, | |||
994 | 994 | ||
995 | if (*idx == (u64)ULLONG_MAX) { | 995 | if (*idx == (u64)ULLONG_MAX) { |
996 | idx_a = type_a->cnt - 1; | 996 | idx_a = type_a->cnt - 1; |
997 | idx_b = type_b->cnt; | 997 | if (type_b != NULL) |
998 | idx_b = type_b->cnt; | ||
999 | else | ||
1000 | idx_b = 0; | ||
998 | } | 1001 | } |
999 | 1002 | ||
1000 | for (; idx_a >= 0; idx_a--) { | 1003 | for (; idx_a >= 0; idx_a--) { |
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 39a372a2a1d6..fb975cec3518 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -5257,11 +5257,6 @@ static void __meminit setup_zone_pageset(struct zone *zone) | |||
5257 | zone->pageset = alloc_percpu(struct per_cpu_pageset); | 5257 | zone->pageset = alloc_percpu(struct per_cpu_pageset); |
5258 | for_each_possible_cpu(cpu) | 5258 | for_each_possible_cpu(cpu) |
5259 | zone_pageset_init(zone, cpu); | 5259 | zone_pageset_init(zone, cpu); |
5260 | |||
5261 | if (!zone->zone_pgdat->per_cpu_nodestats) { | ||
5262 | zone->zone_pgdat->per_cpu_nodestats = | ||
5263 | alloc_percpu(struct per_cpu_nodestat); | ||
5264 | } | ||
5265 | } | 5260 | } |
5266 | 5261 | ||
5267 | /* | 5262 | /* |
@@ -5270,10 +5265,15 @@ static void __meminit setup_zone_pageset(struct zone *zone) | |||
5270 | */ | 5265 | */ |
5271 | void __init setup_per_cpu_pageset(void) | 5266 | void __init setup_per_cpu_pageset(void) |
5272 | { | 5267 | { |
5268 | struct pglist_data *pgdat; | ||
5273 | struct zone *zone; | 5269 | struct zone *zone; |
5274 | 5270 | ||
5275 | for_each_populated_zone(zone) | 5271 | for_each_populated_zone(zone) |
5276 | setup_zone_pageset(zone); | 5272 | setup_zone_pageset(zone); |
5273 | |||
5274 | for_each_online_pgdat(pgdat) | ||
5275 | pgdat->per_cpu_nodestats = | ||
5276 | alloc_percpu(struct per_cpu_nodestat); | ||
5277 | } | 5277 | } |
5278 | 5278 | ||
5279 | static noinline __ref | 5279 | static noinline __ref |
@@ -124,7 +124,7 @@ static inline int kmem_cache_debug(struct kmem_cache *s) | |||
124 | #endif | 124 | #endif |
125 | } | 125 | } |
126 | 126 | ||
127 | inline void *fixup_red_left(struct kmem_cache *s, void *p) | 127 | void *fixup_red_left(struct kmem_cache *s, void *p) |
128 | { | 128 | { |
129 | if (kmem_cache_debug(s) && s->flags & SLAB_RED_ZONE) | 129 | if (kmem_cache_debug(s) && s->flags & SLAB_RED_ZONE) |
130 | p += s->red_left_pad; | 130 | p += s->red_left_pad; |