diff options
Diffstat (limited to 'arch/arm64/mm/mmu.c')
| -rw-r--r-- | arch/arm64/mm/mmu.c | 14 |
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 */ |
| 769 | void vmemmap_free(unsigned long start, unsigned long end, | 769 | void 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 | ||
| 961 | int pud_set_huge(pud_t *pudp, phys_addr_t phys, pgprot_t prot) | 961 | int 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 | ||
| 977 | int pmd_set_huge(pmd_t *pmdp, phys_addr_t phys, pgprot_t prot) | 975 | int 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 | } |
