2014-02-05 00:13:24

by David Rientjes

[permalink] [raw]
Subject: [patch] mm, hugetlb: mark some bootstrap functions as __init

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);


2014-02-05 00:32:21

by Davidlohr Bueso

[permalink] [raw]
Subject: Re: [patch] mm, hugetlb: mark some bootstrap functions as __init

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]>