Skip to content

Commit

Permalink
KVM: ARM: Move all vcpu init code into kvm_arch_vcpu_create()
Browse files Browse the repository at this point in the history
Fold init() into create() now that the two are called back-to-back by
common KVM code (kvm_vcpu_init() calls kvm_arch_vcpu_init() as its last
action, and kvm_vm_ioctl_create_vcpu() calls kvm_arch_vcpu_create()
immediately thereafter).  This paves the way for removing
kvm_arch_vcpu_{un}init() entirely.

Note, there is no associated unwinding in kvm_arch_vcpu_uninit() that
needs to be relocated (to kvm_arch_vcpu_destroy()).

No functional change intended.

Signed-off-by: Sean Christopherson <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
  • Loading branch information
Sean Christopherson authored and bonzini committed Jan 27, 2020
1 parent d11dfed commit 39a93a8
Showing 1 changed file with 20 additions and 14 deletions.
34 changes: 20 additions & 14 deletions virt/kvm/arm/arm.c
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,25 @@ int kvm_arch_vcpu_precreate(struct kvm *kvm, unsigned int id)

int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu)
{
int err;

/* Force users to call KVM_ARM_VCPU_INIT */
vcpu->arch.target = -1;
bitmap_zero(vcpu->arch.features, KVM_VCPU_MAX_FEATURES);

/* Set up the timer */
kvm_timer_vcpu_init(vcpu);

kvm_pmu_vcpu_init(vcpu);

kvm_arm_reset_debug_ptr(vcpu);

kvm_arm_pvtime_vcpu_init(&vcpu->arch);

err = kvm_vgic_vcpu_init(vcpu);
if (err)
return err;

return create_hyp_mappings(vcpu, vcpu + 1, PAGE_HYP);
}

Expand Down Expand Up @@ -341,20 +360,7 @@ void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu)

int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
{
/* Force users to call KVM_ARM_VCPU_INIT */
vcpu->arch.target = -1;
bitmap_zero(vcpu->arch.features, KVM_VCPU_MAX_FEATURES);

/* Set up the timer */
kvm_timer_vcpu_init(vcpu);

kvm_pmu_vcpu_init(vcpu);

kvm_arm_reset_debug_ptr(vcpu);

kvm_arm_pvtime_vcpu_init(&vcpu->arch);

return kvm_vgic_vcpu_init(vcpu);
return 0;
}

void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
Expand Down

0 comments on commit 39a93a8

Please sign in to comment.