summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kvm/svm.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index f67ca16cd797..6577934fa096 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -1848,6 +1848,8 @@ static int stgi_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run)
static int clgi_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run)
{
+ int loopcount = 0;
+
if (nested_svm_check_permissions(svm))
return 1;
@@ -1862,7 +1864,7 @@ static int clgi_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run)
/* Let's try to emulate as many instructions as possible in GIF=0 */
- while(true) {
+ while (++loopcount < 100) {
int er;
er = emulate_instruction(&svm->vcpu, kvm_run, 0, 0, 0);