mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-28 17:41:50 +00:00
KVM: s390: Manually invoke vcpu setup during kvm_arch_vcpu_create()
Rename kvm_arch_vcpu_setup() to kvm_s390_vcpu_setup() and manually call the new function during kvm_arch_vcpu_create(). Define an empty kvm_arch_vcpu_setup() as it's still required for compilation. This is effectively a nop as kvm_arch_vcpu_create() and kvm_arch_vcpu_setup() are called back-to-back by common KVM code. Obsoleting kvm_arch_vcpu_setup() paves the way for its removal. Note, gmap_remove() is now called if setup fails, as s390 was previously freeing it via kvm_arch_vcpu_destroy(), which is called by common KVM code if kvm_arch_vcpu_setup() fails. No functional change intended. Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
5259878432
commit
ff72bb55cb
1 changed files with 11 additions and 0 deletions
|
@ -2932,6 +2932,11 @@ static void kvm_s390_vcpu_setup_model(struct kvm_vcpu *vcpu)
|
||||||
}
|
}
|
||||||
|
|
||||||
int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
|
int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int kvm_s390_vcpu_setup(struct kvm_vcpu *vcpu)
|
||||||
{
|
{
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
|
||||||
|
@ -3070,8 +3075,14 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu)
|
||||||
vcpu->vcpu_id, vcpu, vcpu->arch.sie_block);
|
vcpu->vcpu_id, vcpu, vcpu->arch.sie_block);
|
||||||
trace_kvm_s390_create_vcpu(vcpu->vcpu_id, vcpu, vcpu->arch.sie_block);
|
trace_kvm_s390_create_vcpu(vcpu->vcpu_id, vcpu, vcpu->arch.sie_block);
|
||||||
|
|
||||||
|
rc = kvm_s390_vcpu_setup(vcpu);
|
||||||
|
if (rc)
|
||||||
|
goto out_ucontrol_uninit;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
out_ucontrol_uninit:
|
||||||
|
if (kvm_is_ucontrol(vcpu->kvm))
|
||||||
|
gmap_remove(vcpu->arch.gmap);
|
||||||
out_free_sie_block:
|
out_free_sie_block:
|
||||||
free_page((unsigned long)(vcpu->arch.sie_block));
|
free_page((unsigned long)(vcpu->arch.sie_block));
|
||||||
return rc;
|
return rc;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue