arm64/mm: Drop SECTION_[SHIFT|SIZE|MASK]
authorAnshuman Khandual <anshuman.khandual@arm.com>
Mon, 14 Jun 2021 08:18:26 +0000 (13:48 +0530)
committerWill Deacon <will@kernel.org>
Tue, 15 Jun 2021 11:08:39 +0000 (12:08 +0100)
SECTION_[SHIFT|SIZE|MASK] are essentially PMD_[SHIFT|SIZE|MASK]. But these
create confusion being similar to generic sparsemem memory sections, which
are derived from SECTION_SIZE_BITS. Section references have always implied
PMD level block mapping. Instead just use all PMD level macros which would
make it explicit and also remove confusion with sparsmem memory sections.

Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Gavin Shan <gshan@redhat.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/1623658706-7182-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/include/asm/kernel-pgtable.h
arch/arm64/include/asm/pgtable-hwdef.h
arch/arm64/mm/mmu.c

index c5f18f2408b5ba6d75daff6813c0146d29210f12..1260187adb31fefa7cd0a185d4606f6507b7d940 100644 (file)
@@ -91,8 +91,8 @@
 
 /* Initial memory map size */
 #if ARM64_SWAPPER_USES_SECTION_MAPS
-#define SWAPPER_BLOCK_SHIFT    SECTION_SHIFT
-#define SWAPPER_BLOCK_SIZE     SECTION_SIZE
+#define SWAPPER_BLOCK_SHIFT    PMD_SHIFT
+#define SWAPPER_BLOCK_SIZE     PMD_SIZE
 #define SWAPPER_TABLE_SHIFT    PUD_SHIFT
 #else
 #define SWAPPER_BLOCK_SHIFT    PAGE_SHIFT
index b82575a33f8b62f638c0f728bfc0681dfa6b0cad..40085e53f573dd27c4828d58d76e2c707682f74e 100644 (file)
 #define PGDIR_MASK             (~(PGDIR_SIZE-1))
 #define PTRS_PER_PGD           (1 << (VA_BITS - PGDIR_SHIFT))
 
-/*
- * Section address mask and size definitions.
- */
-#define SECTION_SHIFT          PMD_SHIFT
-#define SECTION_SIZE           (_AC(1, UL) << SECTION_SHIFT)
-#define SECTION_MASK           (~(SECTION_SIZE-1))
-
 /*
  * Contiguous page definitions.
  */
index 3d34cd127f6b61863640649ca02bdb58415451c5..5b75f7eefb726aa5a8bcc711cf93024283577dda 100644 (file)
@@ -228,7 +228,7 @@ static void init_pmd(pud_t *pudp, unsigned long addr, unsigned long end,
                next = pmd_addr_end(addr, end);
 
                /* try section mapping first */
-               if (((addr | next | phys) & ~SECTION_MASK) == 0 &&
+               if (((addr | next | phys) & ~PMD_MASK) == 0 &&
                    (flags & NO_BLOCK_MAPPINGS) == 0) {
                        pmd_set_huge(pmdp, phys, prot);