diff options
Diffstat (limited to 'virt/kvm/arm/arm.c')
| -rw-r--r-- | virt/kvm/arm/arm.c | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c index a67c106d73f5..6b60c98a6e22 100644 --- a/virt/kvm/arm/arm.c +++ b/virt/kvm/arm/arm.c @@ -188,6 +188,7 @@ void kvm_arch_destroy_vm(struct kvm *kvm)  			kvm->vcpus[i] = NULL;  		}  	} +	atomic_set(&kvm->online_vcpus, 0);  }  int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) @@ -296,7 +297,6 @@ void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu)  {  	kvm_mmu_free_memory_caches(vcpu);  	kvm_timer_vcpu_terminate(vcpu); -	kvm_vgic_vcpu_destroy(vcpu);  	kvm_pmu_vcpu_destroy(vcpu);  	kvm_vcpu_uninit(vcpu);  	kmem_cache_free(kvm_vcpu_cache, vcpu); @@ -627,6 +627,9 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)  		ret = kvm_handle_mmio_return(vcpu, vcpu->run);  		if (ret)  			return ret; +		if (kvm_arm_handle_step_debug(vcpu, vcpu->run)) +			return 0; +  	}  	if (run->immediate_exit) @@ -1502,7 +1505,7 @@ int kvm_arch_init(void *opaque)  	bool in_hyp_mode;  	if (!is_hyp_mode_available()) { -		kvm_err("HYP mode not available\n"); +		kvm_info("HYP mode not available\n");  		return -ENODEV;  	} |