mm/hugetlb: fix gigantic page initialization/allocation
authorMike Kravetz <[email protected]>
Fri, 5 Feb 2016 23:36:38 +0000 (15:36 -0800)
committerLinus Torvalds <[email protected]>
Sat, 6 Feb 2016 02:10:40 +0000 (18:10 -0800)
commitb4330afbed0cdceeba33c4945158c55771047e81
tree422b578bbf19e4d4c4dea5d742cc4e6dfd000a30
parentcf2a82ee432730ab25c21d054c67f296af4fc4bd
mm/hugetlb: fix gigantic page initialization/allocation

Attempting to preallocate 1G gigantic huge pages at boot time with
"hugepagesz=1G hugepages=1" on the kernel command line will prevent
booting with the following:

  kernel BUG at mm/hugetlb.c:1218!

When mapcount accounting was reworked, the setting of
compound_mapcount_ptr in prep_compound_gigantic_page was overlooked.  As
a result, the validation of mapcount in free_huge_page fails.

The "BUG_ON" checks in free_huge_page were also changed to
"VM_BUG_ON_PAGE" to assist with debugging.

Fixes: 53f9263baba69 ("mm: rework mapcount accounting to enable 4k mapping of THPs")
Signed-off-by: Mike Kravetz <[email protected]>
Signed-off-by: Naoya Horiguchi <[email protected]>
Acked-by: Kirill A. Shutemov <[email protected]>
Acked-by: David Rientjes <[email protected]>
Tested-by: Vlastimil Babka <[email protected]>
Cc: "Aneesh Kumar K.V" <[email protected]>
Cc: Jerome Marchand <[email protected]>
Cc: Michal Hocko <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/hugetlb.c