diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2013-06-12 16:48:38 +0100 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2013-06-12 16:48:38 +0100 |
commit | 63917f0b5ba2a932d4fca7f67d1a1eae9034269e (patch) | |
tree | 2e5b219ca98b56868136e227601a91143d289daf /arch/arm64/kernel/vmlinux.lds.S | |
parent | d822d2a1e33144967b01f9535ce217639aa75279 (diff) | |
parent | aa4a73a0a23a65a2f531d01f1865d1e61c6acb55 (diff) | |
download | linux-63917f0b5ba2a932d4fca7f67d1a1eae9034269e.tar.bz2 |
Merge branch 'kvm-arm64/kvm-for-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into upstream
* 'kvm-arm64/kvm-for-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms: (33 commits)
arm64: KVM: document kernel object mappings in HYP
arm64: KVM: MAINTAINERS update
arm64: KVM: userspace API documentation
arm64: KVM: enable initialization of a 32bit vcpu
arm64: KVM: 32bit guest fault injection
arm64: KVM: 32bit specific register world switch
arm64: KVM: CPU specific 32bit coprocessor access
arm64: KVM: 32bit handling of coprocessor traps
arm64: KVM: 32bit conditional execution emulation
arm64: KVM: 32bit GP register access
arm64: KVM: define 32bit specific registers
arm64: KVM: Build system integration
arm64: KVM: PSCI implementation
arm64: KVM: Plug the arch timer
ARM: KVM: timer: allow DT matching for ARMv8 cores
arm64: KVM: Plug the VGIC
arm64: KVM: Exit handling
arm64: KVM: HYP mode world switch implementation
arm64: KVM: hypervisor initialization code
arm64: KVM: guest one-reg interface
...
Conflicts:
arch/arm64/Makefile
Diffstat (limited to 'arch/arm64/kernel/vmlinux.lds.S')
-rw-r--r-- | arch/arm64/kernel/vmlinux.lds.S | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/arm64/kernel/vmlinux.lds.S b/arch/arm64/kernel/vmlinux.lds.S index 5e06a1786e26..f5e55747242f 100644 --- a/arch/arm64/kernel/vmlinux.lds.S +++ b/arch/arm64/kernel/vmlinux.lds.S @@ -17,6 +17,19 @@ ENTRY(stext) jiffies = jiffies_64; +#define HYPERVISOR_TEXT \ + /* \ + * Force the alignment to be compatible with \ + * the vectors requirements \ + */ \ + . = ALIGN(2048); \ + VMLINUX_SYMBOL(__hyp_idmap_text_start) = .; \ + *(.hyp.idmap.text) \ + VMLINUX_SYMBOL(__hyp_idmap_text_end) = .; \ + VMLINUX_SYMBOL(__hyp_text_start) = .; \ + *(.hyp.text) \ + VMLINUX_SYMBOL(__hyp_text_end) = .; + SECTIONS { /* @@ -49,6 +62,7 @@ SECTIONS TEXT_TEXT SCHED_TEXT LOCK_TEXT + HYPERVISOR_TEXT *(.fixup) *(.gnu.warning) . = ALIGN(16); @@ -116,3 +130,9 @@ SECTIONS STABS_DEBUG .comment 0 : { *(.comment) } } + +/* + * The HYP init code can't be more than a page long. + */ +ASSERT(((__hyp_idmap_text_start + PAGE_SIZE) > __hyp_idmap_text_end), + "HYP init code too big") |