Commit 6645d854 authored by Mark Brown's avatar Mark Brown Committed by Marc Zyngier

arm64: KVM: Annotate guest entry/exit as a single function

In an effort to clarify and simplify the annotations of assembly
functions in the kernel new macros have been introduced replacing ENTRY
and ENDPROC. There are separate annotations SYM_FUNC_ for normal C
functions and SYM_CODE_ for other code. Currently __guest_enter and
__guest_exit are annotated as standard functions but this is not
entirely correct as the former doesn't do a normal return and the latter
is not entered in a normal fashion. From the point of view of the
hypervisor the guest entry/exit may be viewed as a single
function which happens to have an eret in the middle of it so let's
annotate it as such.
Suggested-by: default avatarMark Rutland <mark.rutland@arm.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
Acked-by: default avatarWill Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20200120124706.8681-1-broonie@kernel.org
parent 290a6bb0
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
* u64 __guest_enter(struct kvm_vcpu *vcpu, * u64 __guest_enter(struct kvm_vcpu *vcpu,
* struct kvm_cpu_context *host_ctxt); * struct kvm_cpu_context *host_ctxt);
*/ */
ENTRY(__guest_enter) SYM_FUNC_START(__guest_enter)
// x0: vcpu // x0: vcpu
// x1: host context // x1: host context
// x2-x17: clobbered by macros // x2-x17: clobbered by macros
...@@ -96,9 +96,8 @@ alternative_else_nop_endif ...@@ -96,9 +96,8 @@ alternative_else_nop_endif
// Do not touch any register after this! // Do not touch any register after this!
eret eret
sb sb
ENDPROC(__guest_enter)
ENTRY(__guest_exit) SYM_INNER_LABEL(__guest_exit, SYM_L_GLOBAL)
// x0: return code // x0: return code
// x1: vcpu // x1: vcpu
// x2-x29,lr: vcpu regs // x2-x29,lr: vcpu regs
...@@ -192,4 +191,4 @@ abort_guest_exit_end: ...@@ -192,4 +191,4 @@ abort_guest_exit_end:
msr spsr_el2, x4 msr spsr_el2, x4
orr x0, x0, x5 orr x0, x0, x5
1: ret 1: ret
ENDPROC(__guest_exit) SYM_FUNC_END(__guest_enter)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment