[PATCH] arm64/hugetlb: fix CMA gigantic page order for non-4K PAGE_SIZE

Anshuman Khandual anshuman.khandual at arm.com
Wed Oct 6 00:55:09 PDT 2021



On 10/6/21 1:55 AM, Mike Kravetz wrote:
> For non-4K PAGE_SIZE configs, the largest gigantic huge page size is
> CONT_PMD_SHIFT order.
> 
> Fixes: abb7962adc80 ("arm64/hugetlb: Reserve CMA areas for gigantic
> pages on 16K and 64K configs")
> Signed-off-by: Mike Kravetz <mike.kravetz at oracle.com>
> Cc: <stable at vger.kernel.org>

Reviewed-by: Anshuman Khandual <anshuman.khandual at arm.com>

> ---
>  arch/arm64/mm/hugetlbpage.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/mm/hugetlbpage.c b/arch/arm64/mm/hugetlbpage.c
> index 23505fc35324..a8158c948966 100644
> --- a/arch/arm64/mm/hugetlbpage.c
> +++ b/arch/arm64/mm/hugetlbpage.c
> @@ -43,7 +43,7 @@ void __init arm64_hugetlb_cma_reserve(void)
>  #ifdef CONFIG_ARM64_4K_PAGES
>  	order = PUD_SHIFT - PAGE_SHIFT;
>  #else
> -	order = CONT_PMD_SHIFT + PMD_SHIFT - PAGE_SHIFT;
> +	order = CONT_PMD_SHIFT - PAGE_SHIFT;
>  #endif
>  	/*
>  	 * HugeTLB CMA reservation is required for gigantic
> 

The commit a1634a542f74 ("arm64/mm: Redefine CONT_{PTE, PMD}_SHIFT")
which got merged during the exact same week, broke the above commit
as both were in flight. The commit here updated hugetlbpage_init()
but did not update the new incoming arm64_hugetlb_cma_reserve().



More information about the linux-arm-kernel mailing list