Jianguo Wu 7179e7bf45 mm/hugetlb: create hugetlb cgroup file in hugetlb_init
Build kernel with CONFIG_HUGETLBFS=y,CONFIG_HUGETLB_PAGE=y and
CONFIG_CGROUP_HUGETLB=y, then specify hugepagesz=xx boot option, system
will fail to boot.

This failure is caused by following code path:

  setup_hugepagesz
    hugetlb_add_hstate
      hugetlb_cgroup_file_init
        cgroup_add_cftypes
          kzalloc <--slab is *not available* yet

For this path, slab is not available yet, so memory allocated will be
failed, and cause WARN_ON() in hugetlb_cgroup_file_init().

So I move hugetlb_cgroup_file_init() into hugetlb_init().

[akpm@linux-foundation.org: tweak coding-style, remove pointless __init on inlined function]
[akpm@linux-foundation.org: fix warning]
Signed-off-by: Jianguo Wu <wujianguo@huawei.com>
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Acked-by: Michal Hocko <mhocko@suse.cz>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-12-18 15:02:15 -08:00
..
2012-05-29 23:28:33 -04:00
2012-12-16 15:18:08 -08:00
2012-01-03 22:54:56 -05:00
2011-07-26 16:49:47 -07:00
2012-12-16 15:18:08 -08:00
2012-12-16 15:18:08 -08:00
2012-12-18 15:02:14 -08:00
2012-12-16 15:18:08 -08:00
2012-12-16 15:18:08 -08:00
2012-12-17 17:15:17 -08:00
2012-12-16 15:18:08 -08:00
2012-10-09 16:23:03 +09:00
2012-12-16 15:18:08 -08:00
2012-12-16 15:18:08 -08:00
2012-06-20 14:39:36 -07:00
2012-12-16 15:18:08 -08:00
2012-12-18 15:02:14 -08:00
2012-12-18 15:02:14 -08:00
2012-10-09 16:22:55 +09:00
2012-10-28 19:29:19 +01:00
2012-12-16 15:18:08 -08:00