android_kernel_xiaomi_sm8350/mm
KAMEZAWA Hiroyuki 94b6da5ab8 memcg: fix page_cgroup allocation
page_cgroup_init() is called from mem_cgroup_init(). But at this
point, we cannot call alloc_bootmem().
(and this caused panic at boot.)

This patch moves page_cgroup_init() to init/main.c.

Time table is following:
==
  parse_args(). # we can trust mem_cgroup_subsys.disabled bit after this.
  ....
  cgroup_init_early()  # "early" init of cgroup.
  ....
  setup_arch()         # memmap is allocated.
  ...
  page_cgroup_init();
  mem_init();   # we cannot call alloc_bootmem after this.
  ....
  cgroup_init() # mem_cgroup is initialized.
==

Before page_cgroup_init(), mem_map must be initialized. So,
I added page_cgroup_init() to init/main.c directly.

(*) maybe this is not very clean but
    - cgroup_init_early() is too early
    - in cgroup_init(), we have to use vmalloc instead of alloc_bootmem().
    use of vmalloc area in x86-32 is important and we should avoid very large
    vmalloc() in x86-32. So, we want to use alloc_bootmem() and added page_cgroup_init()
    directly to init/main.c

[akpm@linux-foundation.org: remove unneeded/bad mem_cgroup_subsys declaration]
[akpm@linux-foundation.org: fix build]
Acked-by: Balbir Singh <balbir@linux.vnet.ibm.com>
Tested-by: Balbir Singh <balbir@linux.vnet.ibm.com>
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-10-23 08:55:02 -07:00
..
allocpercpu.c
backing-dev.c
bootmem.c misc: replace __FUNCTION__ with __func__ 2008-10-16 11:21:30 -07:00
bounce.c highmem: use bio_has_data() in the bounce path 2008-10-09 08:56:01 +02:00
dmapool.c
fadvise.c Remove Andrew Morton's old email accounts 2008-10-16 11:21:32 -07:00
filemap_xip.c
filemap.c memcg: make page->mapping NULL before uncharge 2008-10-20 08:52:38 -07:00
fremap.c mmap: handle mlocked pages during map, remap, unmap 2008-10-20 08:52:31 -07:00
highmem.c
hugetlb.c hugepage: support ZERO_PAGE() 2008-10-20 08:52:32 -07:00
internal.h mlock: count attempts to free mlocked page 2008-10-20 08:52:31 -07:00
Kconfig Unevictable LRU Infrastructure 2008-10-20 08:50:26 -07:00
maccess.c
madvise.c
Makefile memcg: allocate all page_cgroup at boot 2008-10-20 08:52:39 -07:00
memcontrol.c memcg: fix page_cgroup allocation 2008-10-23 08:55:02 -07:00
memory_hotplug.c memory hotplug: release memory regions in PAGES_PER_SECTION chunks 2008-10-20 08:52:32 -07:00
memory.c mm: remove duplicated #include's 2008-10-20 16:17:42 -07:00
mempolicy.c Unevictable LRU Infrastructure 2008-10-20 08:50:26 -07:00
mempool.c
migrate.c memcg: make page->mapping NULL before uncharge 2008-10-20 08:52:38 -07:00
mincore.c
mlock.c mlock: make mlock error return Posixly Correct 2008-10-20 08:52:31 -07:00
mm_init.c
mmap.c mmap.c: deinline a few functions 2008-10-20 08:52:32 -07:00
mmu_notifier.c
mmzone.c
mprotect.c
mremap.c mmap: handle mlocked pages during map, remap, unmap 2008-10-20 08:52:31 -07:00
msync.c
nommu.c mlock: mlocked pages are unevictable 2008-10-20 08:52:30 -07:00
oom_kill.c
page_alloc.c memcg: allocate all page_cgroup at boot 2008-10-20 08:52:39 -07:00
page_cgroup.c memcg: fix page_cgroup allocation 2008-10-23 08:55:02 -07:00
page_io.c
page_isolation.c memory hotplug: missing zone->lock in test_pages_isolated() 2008-10-02 15:53:13 -07:00
page-writeback.c vmscan: split LRU lists into anon & file sets 2008-10-20 08:50:25 -07:00
pagewalk.c
pdflush.c Remove Andrew Morton's old email accounts 2008-10-16 11:21:32 -07:00
prio_tree.c
quicklist.c
readahead.c vmscan: split LRU lists into anon & file sets 2008-10-20 08:50:25 -07:00
rmap.c make mm/rmap.c:anon_vma_cachep static 2008-10-20 08:52:40 -07:00
shmem_acl.c
shmem.c SHM_LOCKED pages are unevictable 2008-10-20 08:50:26 -07:00
slab.c
slob.c SLOB: fix bogus ksize calculation fix 2008-10-09 12:18:27 -07:00
slub.c
sparse-vmemmap.c
sparse.c
swap_state.c mm: pagecache insertion fewer atomics 2008-10-20 08:52:31 -07:00
swap.c swap: cull unevictable pages in fault path 2008-10-20 08:52:31 -07:00
swapfile.c mm: page lock use lock bitops 2008-10-20 08:52:32 -07:00
thrash.c
tiny-shmem.c Export tiny shmem_file_setup for DRM-GEM 2008-10-20 16:17:42 -07:00
truncate.c mmap: handle mlocked pages during map, remap, unmap 2008-10-20 08:52:31 -07:00
util.c
vmalloc.c mm: remove duplicated #include's 2008-10-20 16:17:42 -07:00
vmscan.c mm: unlockless reclaim 2008-10-20 08:52:32 -07:00
vmstat.c mlock: count attempts to free mlocked page 2008-10-20 08:52:31 -07:00