aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64/mm
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-11-12 18:33:11 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2015-11-12 18:33:11 -0500
commita18e2fa5e670a1b84e66522b221c42875b02028a (patch)
tree30d7724f3f8e82c9408e8bd32b141f114d46b1c9 /arch/arm64/mm
parent7dac7102afbeb99daa454f555f1ea1f42fad2f78 (diff)
parent01b305a234943c25c336a6f2f77932a4eaf125fa (diff)
Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
Pull arm64 fixes and clean-ups from Catalin Marinas: "Here's a second pull request for this merging window with some fixes/clean-ups: - __cmpxchg_double*() return type fix to avoid truncation of a long to int and subsequent logical "not" in cmpxchg_double() misinterpreting the operation success/failure - BPF fixes for mod and div by zero - Fix compilation with STRICT_MM_TYPECHECKS enabled - VDSO build fix without libgcov - Some static and __maybe_unused annotations - Kconfig clean-up (FRAME_POINTER) - defconfig update for CRYPTO_CRC32_ARM64" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: suspend: make hw_breakpoint_restore static arm64: mmu: make split_pud and fixup_executable static arm64: smp: make of_parse_and_init_cpus static arm64: use linux/types.h in kvm.h arm64: build vdso without libgcov arm64: mark cpus_have_hwcap as __maybe_unused arm64: remove redundant FRAME_POINTER kconfig option and force to select it arm64: fix R/O permissions of FDT mapping arm64: fix STRICT_MM_TYPECHECKS issue in PTE_CONT manipulation arm64: bpf: fix mod-by-zero case arm64: bpf: fix div-by-zero case arm64: Enable CRYPTO_CRC32_ARM64 in defconfig arm64: cmpxchg_dbl: fix return value type
Diffstat (limited to 'arch/arm64/mm')
-rw-r--r--arch/arm64/mm/mmu.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
index c2fa6b56613c..e3f563c81c48 100644
--- a/arch/arm64/mm/mmu.c
+++ b/arch/arm64/mm/mmu.c
@@ -146,7 +146,7 @@ static void alloc_init_pte(pmd_t *pmd, unsigned long addr,
146 if (((addr | next | phys) & ~CONT_MASK) == 0) { 146 if (((addr | next | phys) & ~CONT_MASK) == 0) {
147 /* a block of CONT_PTES */ 147 /* a block of CONT_PTES */
148 __populate_init_pte(pte, addr, next, phys, 148 __populate_init_pte(pte, addr, next, phys,
149 prot | __pgprot(PTE_CONT)); 149 __pgprot(pgprot_val(prot) | PTE_CONT));
150 } else { 150 } else {
151 /* 151 /*
152 * If the range being split is already inside of a 152 * If the range being split is already inside of a
@@ -165,7 +165,7 @@ static void alloc_init_pte(pmd_t *pmd, unsigned long addr,
165 } while (addr != end); 165 } while (addr != end);
166} 166}
167 167
168void split_pud(pud_t *old_pud, pmd_t *pmd) 168static void split_pud(pud_t *old_pud, pmd_t *pmd)
169{ 169{
170 unsigned long addr = pud_pfn(*old_pud) << PAGE_SHIFT; 170 unsigned long addr = pud_pfn(*old_pud) << PAGE_SHIFT;
171 pgprot_t prot = __pgprot(pud_val(*old_pud) ^ addr); 171 pgprot_t prot = __pgprot(pud_val(*old_pud) ^ addr);
@@ -447,7 +447,7 @@ static void __init map_mem(void)
447 memblock_set_current_limit(MEMBLOCK_ALLOC_ANYWHERE); 447 memblock_set_current_limit(MEMBLOCK_ALLOC_ANYWHERE);
448} 448}
449 449
450void __init fixup_executable(void) 450static void __init fixup_executable(void)
451{ 451{
452#ifdef CONFIG_DEBUG_RODATA 452#ifdef CONFIG_DEBUG_RODATA
453 /* now that we are actually fully mapped, make the start/end more fine grained */ 453 /* now that we are actually fully mapped, make the start/end more fine grained */
@@ -691,7 +691,7 @@ void __set_fixmap(enum fixed_addresses idx,
691void *__init fixmap_remap_fdt(phys_addr_t dt_phys) 691void *__init fixmap_remap_fdt(phys_addr_t dt_phys)
692{ 692{
693 const u64 dt_virt_base = __fix_to_virt(FIX_FDT); 693 const u64 dt_virt_base = __fix_to_virt(FIX_FDT);
694 pgprot_t prot = PAGE_KERNEL | PTE_RDONLY; 694 pgprot_t prot = PAGE_KERNEL_RO;
695 int size, offset; 695 int size, offset;
696 void *dt_virt; 696 void *dt_virt;
697 697