@@ -59,9 +59,10 @@ arch_enter_hypervisor_from_guest_preirq:
* If the SKIP_SYNCHRONIZE_SERROR_ENTRY_EXIT has been set in the cpu
* feature, the checking of pending SErrors will be skipped.
*/
- ALTERNATIVE("nop",
- "b skip_check",
- SKIP_SYNCHRONIZE_SERROR_ENTRY_EXIT)
+ alternative_if SKIP_SYNCHRONIZE_SERROR_ENTRY_EXIT
+ b skip_check
+ alternative_else_nop_endif
+
/*
* Start to check pending virtual abort in the gap of Guest -> HYP
* world switch.
@@ -188,9 +188,11 @@
* is not set. If a vSError took place, the initial exception will be
* skipped. Exit ASAP
*/
- ALTERNATIVE("bl check_pending_vserror; cbnz x0, 1f",
- "nop; nop",
- SKIP_SYNCHRONIZE_SERROR_ENTRY_EXIT)
+ alternative_if_not SKIP_SYNCHRONIZE_SERROR_ENTRY_EXIT
+ bl check_pending_vserror
+ cbnz x0, 1f
+ alternative_else_nop_endif
+
bl enter_hypervisor_from_guest_preirq
msr daifclr, \iflags
bl enter_hypervisor_from_guest