diff options
Diffstat (limited to 'virt/kvm/arm/arch_timer.c')
-rw-r--r-- | virt/kvm/arm/arch_timer.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/virt/kvm/arm/arch_timer.c b/virt/kvm/arm/arch_timer.c index 4151250ce8da..f9555b1e7f15 100644 --- a/virt/kvm/arm/arch_timer.c +++ b/virt/kvm/arm/arch_timer.c | |||
@@ -479,9 +479,6 @@ void kvm_timer_vcpu_load(struct kvm_vcpu *vcpu) | |||
479 | 479 | ||
480 | vtimer_restore_state(vcpu); | 480 | vtimer_restore_state(vcpu); |
481 | 481 | ||
482 | if (has_vhe()) | ||
483 | disable_el1_phys_timer_access(); | ||
484 | |||
485 | /* Set the background timer for the physical timer emulation. */ | 482 | /* Set the background timer for the physical timer emulation. */ |
486 | phys_timer_emulate(vcpu); | 483 | phys_timer_emulate(vcpu); |
487 | } | 484 | } |
@@ -510,9 +507,6 @@ void kvm_timer_vcpu_put(struct kvm_vcpu *vcpu) | |||
510 | if (unlikely(!timer->enabled)) | 507 | if (unlikely(!timer->enabled)) |
511 | return; | 508 | return; |
512 | 509 | ||
513 | if (has_vhe()) | ||
514 | enable_el1_phys_timer_access(); | ||
515 | |||
516 | vtimer_save_state(vcpu); | 510 | vtimer_save_state(vcpu); |
517 | 511 | ||
518 | /* | 512 | /* |
@@ -841,7 +835,10 @@ int kvm_timer_enable(struct kvm_vcpu *vcpu) | |||
841 | no_vgic: | 835 | no_vgic: |
842 | preempt_disable(); | 836 | preempt_disable(); |
843 | timer->enabled = 1; | 837 | timer->enabled = 1; |
844 | kvm_timer_vcpu_load_vgic(vcpu); | 838 | if (!irqchip_in_kernel(vcpu->kvm)) |
839 | kvm_timer_vcpu_load_user(vcpu); | ||
840 | else | ||
841 | kvm_timer_vcpu_load_vgic(vcpu); | ||
845 | preempt_enable(); | 842 | preempt_enable(); |
846 | 843 | ||
847 | return 0; | 844 | return 0; |