Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e506236a authored by Mark Rutland's avatar Mark Rutland Committed by Will Deacon
Browse files

arm64/kvm: use alternative auto-nop



Make use of the new alternative_if and alternative_else_nop_endif and
get rid of our open-coded NOP sleds, making the code simpler to read.

Note that for __kvm_call_hyp the branch to __vhe_hyp_call has been moved
out of the alternative sequence, and in the default case there will be
four additional NOPs executed.

Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: kvmarm@lists.cs.columbia.edu
Acked-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
parent 6ba3b554
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -99,14 +99,10 @@
.macro kern_hyp_va	reg
alternative_if_not ARM64_HAS_VIRT_HOST_EXTN
	and     \reg, \reg, #HYP_PAGE_OFFSET_HIGH_MASK
alternative_else
	nop
alternative_endif
alternative_if_not ARM64_HYP_OFFSET_LOW
	nop
alternative_else
alternative_else_nop_endif
alternative_if ARM64_HYP_OFFSET_LOW
	and     \reg, \reg, #HYP_PAGE_OFFSET_LOW_MASK
alternative_endif
alternative_else_nop_endif
.endm

#else
+1 −5
Original line number Diff line number Diff line
@@ -46,10 +46,6 @@ alternative_if_not ARM64_HAS_VIRT_HOST_EXTN
	hvc	#0
	ldr     lr, [sp], #16
	ret
alternative_else
alternative_else_nop_endif
	b	__vhe_hyp_call
	nop
	nop
	nop
alternative_endif
ENDPROC(__kvm_call_hyp)