diff options
Diffstat (limited to 'arch/arm/kvm/handle_exit.c')
-rw-r--r-- | arch/arm/kvm/handle_exit.c | 8 |
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 | */ |
88 | static int kvm_handle_wfx(struct kvm_vcpu *vcpu, struct kvm_run *run) | 88 | static 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 | ||