diff options
author | Vineet Gupta <vgupta@kernel.org> | 2019-10-31 02:54:32 +0300 |
---|---|---|
committer | Vineet Gupta <vgupta@kernel.org> | 2021-08-25 00:25:48 +0300 |
commit | e93e59ac1e699d07a2bfd0bb03f36b0d2f931834 (patch) | |
tree | 6ade9a4cfe6cc87a0c9ada949a907d69391a013e /arch/arc/include/asm/pgalloc.h | |
parent | da773cf20eb3745e18be995e00be0d57aa862564 (diff) | |
download | linux-e93e59ac1e699d07a2bfd0bb03f36b0d2f931834.tar.xz |
ARC: mm: pmd_populate* to use the canonical set_pmd (and drop pmd_set)
Signed-off-by: Vineet Gupta <vgupta@kernel.org>
Diffstat (limited to 'arch/arc/include/asm/pgalloc.h')
-rw-r--r-- | arch/arc/include/asm/pgalloc.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/arch/arc/include/asm/pgalloc.h b/arch/arc/include/asm/pgalloc.h index a32ca3104ced..408bc4b0842d 100644 --- a/arch/arc/include/asm/pgalloc.h +++ b/arch/arc/include/asm/pgalloc.h @@ -35,13 +35,19 @@ static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte) { - pmd_set(pmd, pte); + /* + * The cast to long below is OK in 32-bit PAE40 regime with long long pte + * Despite "wider" pte, the pte table needs to be in non-PAE low memory + * as all higher levels can only hold long pointers. + * + * The cast itself is needed given simplistic definition of set_pmd() + */ + set_pmd(pmd, __pmd((unsigned long)pte)); } -static inline void -pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t ptep) +static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t pte) { - pmd_set(pmd, (pte_t *) ptep); + set_pmd(pmd, __pmd((unsigned long)pte)); } static inline int __get_order_pgd(void) |