>> >>> + 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) { >>> + mutex_lock(&vcpu->mutex); >>> + r = kvm_s390_pv_create_cpu(vcpu, rc, rrc); >>> + mutex_unlock(&vcpu->mutex); >>> + if (r) >>> + break; >>> + } >>> + if (r) >>> + kvm_s390_switch_from_pv(kvm,&dummy, &dummy); >>> + return r; >>> +} >>> + >>> +static int kvm_s390_handle_pv(struct kvm *kvm, struct kvm_pv_cmd *cmd) >>> +{ >>> + int r = 0; >>> + u16 dummy; >>> + void __user *argp = (void __user *)cmd->data; >>> + >>> + switch (cmd->cmd) { >>> + case KVM_PV_ENABLE: { >>> + r = -EINVAL; >>> + if (kvm_s390_pv_is_protected(kvm)) >>> + break; >> >> Why not factor out this check, it's common for all sucommands. > > Unfortunately it is not common. Sometimes it has an "!" sometimes not. Right, makes sense. -- Thanks, David / dhildenb