aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kvm/handle_exit.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/kvm/handle_exit.c')
-rw-r--r--arch/arm/kvm/handle_exit.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/arm/kvm/handle_exit.c b/arch/arm/kvm/handle_exit.c
index a96a8043277c..95f12b2ccdcb 100644
--- a/arch/arm/kvm/handle_exit.c
+++ b/arch/arm/kvm/handle_exit.c
@@ -87,11 +87,13 @@ static int handle_dabt_hyp(struct kvm_vcpu *vcpu, struct kvm_run *run)
87 */ 87 */
88static int kvm_handle_wfx(struct kvm_vcpu *vcpu, struct kvm_run *run) 88static int kvm_handle_wfx(struct kvm_vcpu *vcpu, struct kvm_run *run)
89{ 89{
90 trace_kvm_wfi(*vcpu_pc(vcpu)); 90 if (kvm_vcpu_get_hsr(vcpu) & HSR_WFI_IS_WFE) {
91 if (kvm_vcpu_get_hsr(vcpu) & HSR_WFI_IS_WFE) 91 trace_kvm_wfx(*vcpu_pc(vcpu), true);
92 kvm_vcpu_on_spin(vcpu); 92 kvm_vcpu_on_spin(vcpu);
93 else 93 } else {
94 trace_kvm_wfx(*vcpu_pc(vcpu), false);
94 kvm_vcpu_block(vcpu); 95 kvm_vcpu_block(vcpu);
96 }
95 97
96 kvm_skip_instr(vcpu, kvm_vcpu_trap_il_is32bit(vcpu)); 98 kvm_skip_instr(vcpu, kvm_vcpu_trap_il_is32bit(vcpu));
97 99