Skip to content

Commit 03f3f03

Browse files
mrutland-armAlex Shi
authored andcommitted
arm64: mm: move pte_* macros
For pmd, pud, and pgd levels of table, functions including p?d_index and p?d_offset are defined after the p?d_page_vaddr function for the immediately higher level of table. The pte functions however are defined much earlier, even though several rely on the later definition of pmd_page_vaddr. While this isn't currently a problem as these are macros, it prevents the logical grouping of later C functions (which cannot rely on prototypes for functions not yet defined). Move these definitions after pmd_page_vaddr, for consistency with the placement of these functions for other levels of table. Signed-off-by: Mark Rutland <mark.rutland@arm.com> Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Tested-by: Jeremy Linton <jeremy.linton@arm.com> Cc: Laura Abbott <labbott@fedoraproject.org> Cc: Will Deacon <will.deacon@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> (cherry picked from commit 053520f7d3923cc6d37afb28f9887cb1e7d77454) Signed-off-by: Alex Shi <alex.shi@linaro.org>
1 parent 4d4fe8f commit 03f3f03

1 file changed

Lines changed: 10 additions & 10 deletions

File tree

arch/arm64/include/asm/pgtable.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -136,16 +136,6 @@ extern unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)];
136136
#define pte_clear(mm,addr,ptep) set_pte(ptep, __pte(0))
137137
#define pte_page(pte) (pfn_to_page(pte_pfn(pte)))
138138

139-
/* Find an entry in the third-level page table. */
140-
#define pte_index(addr) (((addr) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
141-
142-
#define pte_offset_kernel(dir,addr) (pmd_page_vaddr(*(dir)) + pte_index(addr))
143-
144-
#define pte_offset_map(dir,addr) pte_offset_kernel((dir), (addr))
145-
#define pte_offset_map_nested(dir,addr) pte_offset_kernel((dir), (addr))
146-
#define pte_unmap(pte) do { } while (0)
147-
#define pte_unmap_nested(pte) do { } while (0)
148-
149139
/*
150140
* The following only work if pte_present(). Undefined behaviour otherwise.
151141
*/
@@ -430,6 +420,16 @@ static inline pte_t *pmd_page_vaddr(pmd_t pmd)
430420
return __va(pmd_val(pmd) & PHYS_MASK & (s32)PAGE_MASK);
431421
}
432422

423+
/* Find an entry in the third-level page table. */
424+
#define pte_index(addr) (((addr) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
425+
426+
#define pte_offset_kernel(dir,addr) (pmd_page_vaddr(*(dir)) + pte_index(addr))
427+
428+
#define pte_offset_map(dir,addr) pte_offset_kernel((dir), (addr))
429+
#define pte_offset_map_nested(dir,addr) pte_offset_kernel((dir), (addr))
430+
#define pte_unmap(pte) do { } while (0)
431+
#define pte_unmap_nested(pte) do { } while (0)
432+
433433
#define pmd_page(pmd) pfn_to_page(__phys_to_pfn(pmd_val(pmd) & PHYS_MASK))
434434

435435
/*

0 commit comments

Comments
 (0)