Both prep_compound_huge_page() and prep_compound_gigantic_page() are only
called at bootstrap and can be marked as __init.
The __SetPageTail(page) in prep_compound_gigantic_page() happening before
page->first_page is initialized is not concerning since this is
bootstrap.
Signed-off-by: David Rientjes <[email protected]>
---
mm/hugetlb.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -653,7 +653,8 @@ static void prep_new_huge_page(struct hstate *h, struct page *page, int nid)
put_page(page); /* free it into the hugepage allocator */
}
-static void prep_compound_gigantic_page(struct page *page, unsigned long order)
+static void __init prep_compound_gigantic_page(struct page *page,
+ unsigned long order)
{
int i;
int nr_pages = 1 << order;
@@ -1294,7 +1295,7 @@ found:
return 1;
}
-static void prep_compound_huge_page(struct page *page, int order)
+static void __init prep_compound_huge_page(struct page *page, int order)
{
if (unlikely(order > (MAX_ORDER - 1)))
prep_compound_gigantic_page(page, order);
On Tue, 2014-02-04 at 16:13 -0800, David Rientjes wrote:
> Both prep_compound_huge_page() and prep_compound_gigantic_page() are only
> called at bootstrap and can be marked as __init.
>
> The __SetPageTail(page) in prep_compound_gigantic_page() happening before
> page->first_page is initialized is not concerning since this is
> bootstrap.
>
> Signed-off-by: David Rientjes <[email protected]>
Reviewed-by: Davidlohr Bueso <[email protected]>