diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-20 23:00:43 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-20 23:00:43 -0500 |
commit | 4c9a44aebeaef35570a67aed17b72a2cf8d0b219 (patch) | |
tree | abb874fe7f50671627b282f6c7fb58db5e75a2e3 /mm/memcontrol.c | |
parent | 1f0377ff088ed2971c57debc9b0c3b846ec431fd (diff) | |
parent | cfde819088422503b5c69e03ab7bb90f87121d4d (diff) |
Merge branch 'akpm' (Andrew's patch-bomb)
Merge the rest of Andrew's patches for -rc1:
"A bunch of fixes and misc missed-out-on things.
That'll do for -rc1. I still have a batch of IPC patches which still
have a possible bug report which I'm chasing down."
* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (25 commits)
keys: use keyring_alloc() to create module signing keyring
keys: fix unreachable code
sendfile: allows bypassing of notifier events
SGI-XP: handle non-fatal traps
fat: fix incorrect function comment
Documentation: ABI: remove testing/sysfs-devices-node
proc: fix inconsistent lock state
linux/kernel.h: fix DIV_ROUND_CLOSEST with unsigned divisors
memcg: don't register hotcpu notifier from ->css_alloc()
checkpatch: warn on uapi #includes that #include <uapi/...
revert "rtc: recycle id when unloading a rtc driver"
mm: clean up transparent hugepage sysfs error messages
hfsplus: add error message for the case of failure of sync fs in delayed_sync_fs() method
hfsplus: rework processing of hfs_btree_write() returned error
hfsplus: rework processing errors in hfsplus_free_extents()
hfsplus: avoid crash on failed block map free
kcmp: include linux/ptrace.h
drivers/rtc/rtc-imxdi.c: must include <linux/spinlock.h>
mm: cma: WARN if freed memory is still in use
exec: do not leave bprm->interp on stack
...
Diffstat (limited to 'mm/memcontrol.c')
-rw-r--r-- | mm/memcontrol.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index f3009b4bae51..09255ec8159c 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c | |||
@@ -6090,7 +6090,6 @@ mem_cgroup_css_alloc(struct cgroup *cont) | |||
6090 | &per_cpu(memcg_stock, cpu); | 6090 | &per_cpu(memcg_stock, cpu); |
6091 | INIT_WORK(&stock->work, drain_local_stock); | 6091 | INIT_WORK(&stock->work, drain_local_stock); |
6092 | } | 6092 | } |
6093 | hotcpu_notifier(memcg_cpu_hotplug_callback, 0); | ||
6094 | } else { | 6093 | } else { |
6095 | parent = mem_cgroup_from_cont(cont->parent); | 6094 | parent = mem_cgroup_from_cont(cont->parent); |
6096 | memcg->use_hierarchy = parent->use_hierarchy; | 6095 | memcg->use_hierarchy = parent->use_hierarchy; |
@@ -6756,6 +6755,19 @@ struct cgroup_subsys mem_cgroup_subsys = { | |||
6756 | .use_id = 1, | 6755 | .use_id = 1, |
6757 | }; | 6756 | }; |
6758 | 6757 | ||
6758 | /* | ||
6759 | * The rest of init is performed during ->css_alloc() for root css which | ||
6760 | * happens before initcalls. hotcpu_notifier() can't be done together as | ||
6761 | * it would introduce circular locking by adding cgroup_lock -> cpu hotplug | ||
6762 | * dependency. Do it from a subsys_initcall(). | ||
6763 | */ | ||
6764 | static int __init mem_cgroup_init(void) | ||
6765 | { | ||
6766 | hotcpu_notifier(memcg_cpu_hotplug_callback, 0); | ||
6767 | return 0; | ||
6768 | } | ||
6769 | subsys_initcall(mem_cgroup_init); | ||
6770 | |||
6759 | #ifdef CONFIG_MEMCG_SWAP | 6771 | #ifdef CONFIG_MEMCG_SWAP |
6760 | static int __init enable_swap_account(char *s) | 6772 | static int __init enable_swap_account(char *s) |
6761 | { | 6773 | { |