diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-10-08 05:34:24 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-10-08 05:34:24 -0400 |
commit | 6325e940e7e0c690c6bdfaf5d54309e71845d3d9 (patch) | |
tree | bd1d2c33ae9420e98d3feee1f924fdad3f22552f /arch/arm64/kernel/efi-stub.c | |
parent | 536fd93d432858eb6b7c1ad1dcfe051840ebef47 (diff) | |
parent | 0a6479b0ffad8dd236915e271faaf2cbb4cac287 (diff) |
Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
Pull arm64 updates from Catalin Marinas:
- eBPF JIT compiler for arm64
- CPU suspend backend for PSCI (firmware interface) with standard idle
states defined in DT (generic idle driver to be merged via a
different tree)
- Support for CONFIG_DEBUG_SET_MODULE_RONX
- Support for unmapped cpu-release-addr (outside kernel linear mapping)
- set_arch_dma_coherent_ops() implemented and bus notifiers removed
- EFI_STUB improvements when base of DRAM is occupied
- Typos in KGDB macros
- Clean-up to (partially) allow kernel building with LLVM
- Other clean-ups (extern keyword, phys_addr_t usage)
* tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (51 commits)
arm64: Remove unneeded extern keyword
ARM64: make of_device_ids const
arm64: Use phys_addr_t type for physical address
aarch64: filter $x from kallsyms
arm64: Use DMA_ERROR_CODE to denote failed allocation
arm64: Fix typos in KGDB macros
arm64: insn: Add return statements after BUG_ON()
arm64: debug: don't re-enable debug exceptions on return from el1_dbg
Revert "arm64: dmi: Add SMBIOS/DMI support"
arm64: Implement set_arch_dma_coherent_ops() to replace bus notifiers
of: amba: use of_dma_configure for AMBA devices
arm64: dmi: Add SMBIOS/DMI support
arm64: Correct ftrace calls to aarch64_insn_gen_branch_imm()
arm64:mm: initialize max_mapnr using function set_max_mapnr
setup: Move unmask of async interrupts after possible earlycon setup
arm64: LLVMLinux: Fix inline arm64 assembly for use with clang
arm64: pageattr: Correctly adjust unaligned start addresses
net: bpf: arm64: fix module memory leak when JIT image build fails
arm64: add PSCI CPU_SUSPEND based cpu_suspend support
arm64: kernel: introduce cpu_init_idle CPU operation
...
Diffstat (limited to 'arch/arm64/kernel/efi-stub.c')
-rw-r--r-- | arch/arm64/kernel/efi-stub.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/arch/arm64/kernel/efi-stub.c b/arch/arm64/kernel/efi-stub.c index 1317fef8dde9..d27dd982ff26 100644 --- a/arch/arm64/kernel/efi-stub.c +++ b/arch/arm64/kernel/efi-stub.c | |||
@@ -28,20 +28,16 @@ efi_status_t handle_kernel_image(efi_system_table_t *sys_table, | |||
28 | kernel_size = _edata - _text; | 28 | kernel_size = _edata - _text; |
29 | if (*image_addr != (dram_base + TEXT_OFFSET)) { | 29 | if (*image_addr != (dram_base + TEXT_OFFSET)) { |
30 | kernel_memsize = kernel_size + (_end - _edata); | 30 | kernel_memsize = kernel_size + (_end - _edata); |
31 | status = efi_relocate_kernel(sys_table, image_addr, | 31 | status = efi_low_alloc(sys_table, kernel_memsize + TEXT_OFFSET, |
32 | kernel_size, kernel_memsize, | 32 | SZ_2M, reserve_addr); |
33 | dram_base + TEXT_OFFSET, | ||
34 | PAGE_SIZE); | ||
35 | if (status != EFI_SUCCESS) { | 33 | if (status != EFI_SUCCESS) { |
36 | pr_efi_err(sys_table, "Failed to relocate kernel\n"); | 34 | pr_efi_err(sys_table, "Failed to relocate kernel\n"); |
37 | return status; | 35 | return status; |
38 | } | 36 | } |
39 | if (*image_addr != (dram_base + TEXT_OFFSET)) { | 37 | memcpy((void *)*reserve_addr + TEXT_OFFSET, (void *)*image_addr, |
40 | pr_efi_err(sys_table, "Failed to alloc kernel memory\n"); | 38 | kernel_size); |
41 | efi_free(sys_table, kernel_memsize, *image_addr); | 39 | *image_addr = *reserve_addr + TEXT_OFFSET; |
42 | return EFI_LOAD_ERROR; | 40 | *reserve_size = kernel_memsize + TEXT_OFFSET; |
43 | } | ||
44 | *image_size = kernel_memsize; | ||
45 | } | 41 | } |
46 | 42 | ||
47 | 43 | ||