Skip to content

Commit a1634a5

Browse files
Gavin Shanctmarinas
authored andcommitted
arm64/mm: Redefine CONT_{PTE, PMD}_SHIFT
Currently, the value of CONT_{PTE, PMD}_SHIFT is off from standard {PAGE, PMD}_SHIFT. In turn, we have to consider adding {PAGE, PMD}_SHIFT when using CONT_{PTE, PMD}_SHIFT in the function hugetlbpage_init(). It's a bit confusing. This redefines CONT_{PTE, PMD}_SHIFT with {PAGE, PMD}_SHIFT included so that the later values needn't be added when using the former ones in function hugetlbpage_init(). Note that the values of CONT_{PTES, PMDS} are unchanged. Suggested-by: Will Deacon <[email protected]> Signed-off-by: Gavin Shan <[email protected]> Reviewed-by: Anshuman Khandual <[email protected]> Link: https://lkml.org/lkml/2020/5/6/190 Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Catalin Marinas <[email protected]>
1 parent 2a37971 commit a1634a5

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

arch/arm64/include/asm/pgtable-hwdef.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,20 +82,20 @@
8282
* Contiguous page definitions.
8383
*/
8484
#ifdef CONFIG_ARM64_64K_PAGES
85-
#define CONT_PTE_SHIFT 5
86-
#define CONT_PMD_SHIFT 5
85+
#define CONT_PTE_SHIFT (5 + PAGE_SHIFT)
86+
#define CONT_PMD_SHIFT (5 + PMD_SHIFT)
8787
#elif defined(CONFIG_ARM64_16K_PAGES)
88-
#define CONT_PTE_SHIFT 7
89-
#define CONT_PMD_SHIFT 5
88+
#define CONT_PTE_SHIFT (7 + PAGE_SHIFT)
89+
#define CONT_PMD_SHIFT (5 + PMD_SHIFT)
9090
#else
91-
#define CONT_PTE_SHIFT 4
92-
#define CONT_PMD_SHIFT 4
91+
#define CONT_PTE_SHIFT (4 + PAGE_SHIFT)
92+
#define CONT_PMD_SHIFT (4 + PMD_SHIFT)
9393
#endif
9494

95-
#define CONT_PTES (1 << CONT_PTE_SHIFT)
95+
#define CONT_PTES (1 << (CONT_PTE_SHIFT - PAGE_SHIFT))
9696
#define CONT_PTE_SIZE (CONT_PTES * PAGE_SIZE)
9797
#define CONT_PTE_MASK (~(CONT_PTE_SIZE - 1))
98-
#define CONT_PMDS (1 << CONT_PMD_SHIFT)
98+
#define CONT_PMDS (1 << (CONT_PMD_SHIFT - PMD_SHIFT))
9999
#define CONT_PMD_SIZE (CONT_PMDS * PMD_SIZE)
100100
#define CONT_PMD_MASK (~(CONT_PMD_SIZE - 1))
101101
/* the the numerical offset of the PTE within a range of CONT_PTES */

arch/arm64/mm/hugetlbpage.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -457,9 +457,9 @@ static int __init hugetlbpage_init(void)
457457
#ifdef CONFIG_ARM64_4K_PAGES
458458
hugetlb_add_hstate(PUD_SHIFT - PAGE_SHIFT);
459459
#endif
460-
hugetlb_add_hstate((CONT_PMD_SHIFT + PMD_SHIFT) - PAGE_SHIFT);
460+
hugetlb_add_hstate(CONT_PMD_SHIFT - PAGE_SHIFT);
461461
hugetlb_add_hstate(PMD_SHIFT - PAGE_SHIFT);
462-
hugetlb_add_hstate((CONT_PTE_SHIFT + PAGE_SHIFT) - PAGE_SHIFT);
462+
hugetlb_add_hstate(CONT_PTE_SHIFT - PAGE_SHIFT);
463463

464464
return 0;
465465
}

0 commit comments

Comments
 (0)