aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64/mm/mmu.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm64/mm/mmu.c')
-rw-r--r--arch/arm64/mm/mmu.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
index e5ae8663f230..3645f29bd814 100644
--- a/arch/arm64/mm/mmu.c
+++ b/arch/arm64/mm/mmu.c
@@ -765,7 +765,7 @@ int __meminit vmemmap_populate(unsigned long start, unsigned long end, int node,
765 765
766 return 0; 766 return 0;
767} 767}
768#endif /* CONFIG_ARM64_64K_PAGES */ 768#endif /* !ARM64_SWAPPER_USES_SECTION_MAPS */
769void vmemmap_free(unsigned long start, unsigned long end, 769void vmemmap_free(unsigned long start, unsigned long end,
770 struct vmem_altmap *altmap) 770 struct vmem_altmap *altmap)
771{ 771{
@@ -960,32 +960,28 @@ int __init arch_ioremap_pmd_supported(void)
960 960
961int pud_set_huge(pud_t *pudp, phys_addr_t phys, pgprot_t prot) 961int pud_set_huge(pud_t *pudp, phys_addr_t phys, pgprot_t prot)
962{ 962{
963 pgprot_t sect_prot = __pgprot(PUD_TYPE_SECT | 963 pud_t new_pud = pfn_pud(__phys_to_pfn(phys), mk_pud_sect_prot(prot));
964 pgprot_val(mk_sect_prot(prot)));
965 pud_t new_pud = pfn_pud(__phys_to_pfn(phys), sect_prot);
966 964
967 /* Only allow permission changes for now */ 965 /* Only allow permission changes for now */
968 if (!pgattr_change_is_safe(READ_ONCE(pud_val(*pudp)), 966 if (!pgattr_change_is_safe(READ_ONCE(pud_val(*pudp)),
969 pud_val(new_pud))) 967 pud_val(new_pud)))
970 return 0; 968 return 0;
971 969
972 BUG_ON(phys & ~PUD_MASK); 970 VM_BUG_ON(phys & ~PUD_MASK);
973 set_pud(pudp, new_pud); 971 set_pud(pudp, new_pud);
974 return 1; 972 return 1;
975} 973}
976 974
977int pmd_set_huge(pmd_t *pmdp, phys_addr_t phys, pgprot_t prot) 975int pmd_set_huge(pmd_t *pmdp, phys_addr_t phys, pgprot_t prot)
978{ 976{
979 pgprot_t sect_prot = __pgprot(PMD_TYPE_SECT | 977 pmd_t new_pmd = pfn_pmd(__phys_to_pfn(phys), mk_pmd_sect_prot(prot));
980 pgprot_val(mk_sect_prot(prot)));
981 pmd_t new_pmd = pfn_pmd(__phys_to_pfn(phys), sect_prot);
982 978
983 /* Only allow permission changes for now */ 979 /* Only allow permission changes for now */
984 if (!pgattr_change_is_safe(READ_ONCE(pmd_val(*pmdp)), 980 if (!pgattr_change_is_safe(READ_ONCE(pmd_val(*pmdp)),
985 pmd_val(new_pmd))) 981 pmd_val(new_pmd)))
986 return 0; 982 return 0;
987 983
988 BUG_ON(phys & ~PMD_MASK); 984 VM_BUG_ON(phys & ~PMD_MASK);
989 set_pmd(pmdp, new_pmd); 985 set_pmd(pmdp, new_pmd);
990 return 1; 986 return 1;
991} 987}