On 17.02.20 16:00, Janosch Frank wrote: >> +static int kvm_s390_switch_from_pv(struct kvm *kvm, u16 *rc, u16 *rrc) >> +{ >> + int i, r = 0; >> + >> + struct kvm_vcpu *vcpu; >> + >> + kvm_for_each_vcpu(i, vcpu, kvm) { >> + r = kvm_s390_pv_destroy_cpu(vcpu, rc, rrc); >> + if (r) >> + break; >> + } >> + return r; >> +} >> + >> +static int kvm_s390_switch_to_pv(struct kvm *kvm, u16 *rc, u16 *rrc) >> +{ >> + int i, r = 0; >> + u16 dummy; >> + >> + struct kvm_vcpu *vcpu; >> + >> + kvm_for_each_vcpu(i, vcpu, kvm) { >> + r = kvm_s390_pv_create_cpu(vcpu, rc, rrc); >> + if (r) >> + break; >> + } >> + if (r) >> + kvm_s390_switch_from_pv(kvm,&dummy, &dummy); >> + return r; >> +} > > Why does that only affect the cpus? > If we have a switch function it should do VM and VCPUs, no? I will rename that to kvm_s390_switch_cpus_to/from.