diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2016-01-02 08:57:18 -0500 |
---|---|---|
committer | Marc Zyngier <marc.zyngier@arm.com> | 2016-02-29 13:34:12 -0500 |
commit | 1a61ae7af4d65ee311a737d550da6cf92a3aea4c (patch) | |
tree | 7376af842c29835f2c7d7e2bdc87fa5f405f06b2 /arch/arm/kvm/interrupts.S | |
parent | 35a2491a624af1fa7ab6990639f5246cd5f12592 (diff) |
ARM: KVM: Move the HYP code to its own section
In order to be able to spread the HYP code into multiple compilation
units, adopt a layout similar to that of arm64:
- the HYP text is emited in its own section (.hyp.text)
- two linker generated symbols are use to identify the boundaries
of that section
No functionnal change.
Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'arch/arm/kvm/interrupts.S')
-rw-r--r-- | arch/arm/kvm/interrupts.S | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/arch/arm/kvm/interrupts.S b/arch/arm/kvm/interrupts.S index 900ef6dd8f72..9d9cb71df449 100644 --- a/arch/arm/kvm/interrupts.S +++ b/arch/arm/kvm/interrupts.S | |||
@@ -28,9 +28,7 @@ | |||
28 | #include "interrupts_head.S" | 28 | #include "interrupts_head.S" |
29 | 29 | ||
30 | .text | 30 | .text |
31 | 31 | .pushsection .hyp.text, "ax" | |
32 | __kvm_hyp_code_start: | ||
33 | .globl __kvm_hyp_code_start | ||
34 | 32 | ||
35 | /******************************************************************** | 33 | /******************************************************************** |
36 | * Flush per-VMID TLBs | 34 | * Flush per-VMID TLBs |
@@ -314,8 +312,6 @@ THUMB( orr r2, r2, #PSR_T_BIT ) | |||
314 | eret | 312 | eret |
315 | .endm | 313 | .endm |
316 | 314 | ||
317 | .text | ||
318 | |||
319 | .align 5 | 315 | .align 5 |
320 | __kvm_hyp_vector: | 316 | __kvm_hyp_vector: |
321 | .globl __kvm_hyp_vector | 317 | .globl __kvm_hyp_vector |
@@ -511,10 +507,9 @@ hyp_fiq: | |||
511 | 507 | ||
512 | .ltorg | 508 | .ltorg |
513 | 509 | ||
514 | __kvm_hyp_code_end: | 510 | .popsection |
515 | .globl __kvm_hyp_code_end | ||
516 | 511 | ||
517 | .section ".rodata" | 512 | .pushsection ".rodata" |
518 | 513 | ||
519 | und_die_str: | 514 | und_die_str: |
520 | .ascii "unexpected undefined exception in Hyp mode at: %#08x\n" | 515 | .ascii "unexpected undefined exception in Hyp mode at: %#08x\n" |
@@ -524,3 +519,5 @@ dabt_die_str: | |||
524 | .ascii "unexpected data abort in Hyp mode at: %#08x\n" | 519 | .ascii "unexpected data abort in Hyp mode at: %#08x\n" |
525 | svc_die_str: | 520 | svc_die_str: |
526 | .ascii "unexpected HVC/SVC trap in Hyp mode at: %#08x\n" | 521 | .ascii "unexpected HVC/SVC trap in Hyp mode at: %#08x\n" |
522 | |||
523 | .popsection | ||