提交 45451914 编写于 作者: M Marc Zyngier 提交者: Christoffer Dall

arm64: KVM: remove __kvm_hyp_code_{start,end} from hyp.S

We already have __hyp_text_{start,end} to express the boundaries
of the HYP text section, and __kvm_hyp_code_{start,end} are getting
in the way of a more modular world switch code.

Just turn __kvm_hyp_code_{start,end} into #defines mapping the
linker-emited symbols.
Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
Reviewed-by: NChristoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
上级 f982cf4e
...@@ -18,6 +18,8 @@ ...@@ -18,6 +18,8 @@
#ifndef __ARM_KVM_ASM_H__ #ifndef __ARM_KVM_ASM_H__
#define __ARM_KVM_ASM_H__ #define __ARM_KVM_ASM_H__
#include <asm/virt.h>
/* /*
* 0 is reserved as an invalid value. * 0 is reserved as an invalid value.
* Order *must* be kept in sync with the hyp switch code. * Order *must* be kept in sync with the hyp switch code.
...@@ -96,8 +98,8 @@ extern char __kvm_hyp_init_end[]; ...@@ -96,8 +98,8 @@ extern char __kvm_hyp_init_end[];
extern char __kvm_hyp_vector[]; extern char __kvm_hyp_vector[];
extern char __kvm_hyp_code_start[]; #define __kvm_hyp_code_start __hyp_text_start
extern char __kvm_hyp_code_end[]; #define __kvm_hyp_code_end __hyp_text_end
extern void __kvm_flush_vm_context(void); extern void __kvm_flush_vm_context(void);
extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa); extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa);
......
...@@ -50,6 +50,10 @@ static inline bool is_hyp_mode_mismatched(void) ...@@ -50,6 +50,10 @@ static inline bool is_hyp_mode_mismatched(void)
return __boot_cpu_mode[0] != __boot_cpu_mode[1]; return __boot_cpu_mode[0] != __boot_cpu_mode[1];
} }
/* The section containing the hypervisor text */
extern char __hyp_text_start[];
extern char __hyp_text_end[];
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
#endif /* ! __ASM__VIRT_H */ #endif /* ! __ASM__VIRT_H */
...@@ -36,9 +36,6 @@ ...@@ -36,9 +36,6 @@
.pushsection .hyp.text, "ax" .pushsection .hyp.text, "ax"
.align PAGE_SHIFT .align PAGE_SHIFT
__kvm_hyp_code_start:
.globl __kvm_hyp_code_start
.macro save_common_regs .macro save_common_regs
// x2: base address for cpu context // x2: base address for cpu context
// x3: tmp register // x3: tmp register
...@@ -880,7 +877,4 @@ ENTRY(__kvm_hyp_vector) ...@@ -880,7 +877,4 @@ ENTRY(__kvm_hyp_vector)
ventry el1_error_invalid // Error 32-bit EL1 ventry el1_error_invalid // Error 32-bit EL1
ENDPROC(__kvm_hyp_vector) ENDPROC(__kvm_hyp_vector)
__kvm_hyp_code_end:
.globl __kvm_hyp_code_end
.popsection .popsection
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册