arm/arm64: KVM: arch_timer: Initialize cntvoff at kvm_init
Initialize the cntvoff at kvm_init_vm time, not before running the VCPUs at the first time because that will overwrite any potentially restored values from user space. Cc: Andre Przywara <andre.przywara@linaro.org> Acked-by: Marc Zynger <marc.zyngier@arm.com> Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
This commit is contained in:
@@ -137,6 +137,8 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
|
|||||||
if (ret)
|
if (ret)
|
||||||
goto out_free_stage2_pgd;
|
goto out_free_stage2_pgd;
|
||||||
|
|
||||||
|
kvm_timer_init(kvm);
|
||||||
|
|
||||||
/* Mark the initial VMID generation invalid */
|
/* Mark the initial VMID generation invalid */
|
||||||
kvm->arch.vmid_gen = 0;
|
kvm->arch.vmid_gen = 0;
|
||||||
|
|
||||||
|
@@ -1409,7 +1409,6 @@ int kvm_vgic_init(struct kvm *kvm)
|
|||||||
for (i = VGIC_NR_PRIVATE_IRQS; i < VGIC_NR_IRQS; i += 4)
|
for (i = VGIC_NR_PRIVATE_IRQS; i < VGIC_NR_IRQS; i += 4)
|
||||||
vgic_set_target_reg(kvm, 0, i);
|
vgic_set_target_reg(kvm, 0, i);
|
||||||
|
|
||||||
kvm_timer_init(kvm);
|
|
||||||
kvm->arch.vgic.ready = true;
|
kvm->arch.vgic.ready = true;
|
||||||
out:
|
out:
|
||||||
mutex_unlock(&kvm->lock);
|
mutex_unlock(&kvm->lock);
|
||||||
|
Reference in New Issue
Block a user