diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-08-06 08:58:59 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-08-06 08:58:59 -0400 |
commit | 194d6ad32e1eef433c61040385dcfd98e6fe2ef9 (patch) | |
tree | 4591bc4c5a1eac2196ef905b8f30629a0cb530e6 /arch/arm64/mm | |
parent | a157b3aaa44829998d5a079174df989e5d8c20ff (diff) | |
parent | 747a70e60b7234e8fd9c35dd2f2db10ac1db231d (diff) |
Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
Pull arm64 fixes from Will Deacon:
- fix HugeTLB leak due to CoW and PTE_RDONLY mismatch
- avoid accessing unmapped FDT fields when checking validity
- correctly account for vDSO AUX entry in ARCH_DLINFO
- fix kallsyms with absolute expressions in linker script
- kill unnecessary symbol-based relocs in vmlinux
* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
arm64: Fix copy-on-write referencing in HugeTLB
arm64: mm: avoid fdt_check_header() before the FDT is fully mapped
arm64: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
arm64: relocatable: suppress R_AARCH64_ABS64 relocations in vmlinux
arm64: vmlinux.lds: make __rela_offset and __dynsym_offset ABSOLUTE
Diffstat (limited to 'arch/arm64/mm')
-rw-r--r-- | arch/arm64/mm/mmu.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c index 51a558195bb9..4989948d1feb 100644 --- a/arch/arm64/mm/mmu.c +++ b/arch/arm64/mm/mmu.c | |||
@@ -686,9 +686,9 @@ void *__init __fixmap_remap_fdt(phys_addr_t dt_phys, int *size, pgprot_t prot) | |||
686 | /* | 686 | /* |
687 | * Check whether the physical FDT address is set and meets the minimum | 687 | * Check whether the physical FDT address is set and meets the minimum |
688 | * alignment requirement. Since we are relying on MIN_FDT_ALIGN to be | 688 | * alignment requirement. Since we are relying on MIN_FDT_ALIGN to be |
689 | * at least 8 bytes so that we can always access the size field of the | 689 | * at least 8 bytes so that we can always access the magic and size |
690 | * FDT header after mapping the first chunk, double check here if that | 690 | * fields of the FDT header after mapping the first chunk, double check |
691 | * is indeed the case. | 691 | * here if that is indeed the case. |
692 | */ | 692 | */ |
693 | BUILD_BUG_ON(MIN_FDT_ALIGN < 8); | 693 | BUILD_BUG_ON(MIN_FDT_ALIGN < 8); |
694 | if (!dt_phys || dt_phys % MIN_FDT_ALIGN) | 694 | if (!dt_phys || dt_phys % MIN_FDT_ALIGN) |
@@ -716,7 +716,7 @@ void *__init __fixmap_remap_fdt(phys_addr_t dt_phys, int *size, pgprot_t prot) | |||
716 | create_mapping_noalloc(round_down(dt_phys, SWAPPER_BLOCK_SIZE), | 716 | create_mapping_noalloc(round_down(dt_phys, SWAPPER_BLOCK_SIZE), |
717 | dt_virt_base, SWAPPER_BLOCK_SIZE, prot); | 717 | dt_virt_base, SWAPPER_BLOCK_SIZE, prot); |
718 | 718 | ||
719 | if (fdt_check_header(dt_virt) != 0) | 719 | if (fdt_magic(dt_virt) != FDT_MAGIC) |
720 | return NULL; | 720 | return NULL; |
721 | 721 | ||
722 | *size = fdt_totalsize(dt_virt); | 722 | *size = fdt_totalsize(dt_virt); |