diff options
Diffstat (limited to 'arch/arm/kvm/arm.c')
| -rw-r--r-- | arch/arm/kvm/arm.c | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c index 11676787ad49..21c493a9e5c9 100644 --- a/arch/arm/kvm/arm.c +++ b/arch/arm/kvm/arm.c @@ -135,7 +135,6 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)  		goto out_free_stage2_pgd;  	kvm_vgic_early_init(kvm); -	kvm_timer_init(kvm);  	/* Mark the initial VMID generation invalid */  	kvm->arch.vmid_gen = 0; @@ -301,7 +300,8 @@ void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu)  int kvm_cpu_has_pending_timer(struct kvm_vcpu *vcpu)  { -	return kvm_timer_should_fire(vcpu); +	return kvm_timer_should_fire(vcpu_vtimer(vcpu)) || +	       kvm_timer_should_fire(vcpu_ptimer(vcpu));  }  void kvm_arch_vcpu_blocking(struct kvm_vcpu *vcpu) @@ -1099,6 +1099,9 @@ static void cpu_init_hyp_mode(void *dummy)  	__cpu_init_hyp_mode(pgd_ptr, hyp_stack_ptr, vector_ptr);  	__cpu_init_stage2(); +	if (is_kernel_in_hyp_mode()) +		kvm_timer_init_vhe(); +  	kvm_arm_init_debug();  } | 
