Loading arch/x86/kvm/x86.c +6 −0 Original line number Original line Diff line number Diff line Loading @@ -1833,6 +1833,7 @@ static int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu, { { int r; int r; vcpu_load(vcpu); r = -E2BIG; r = -E2BIG; if (cpuid->nent < vcpu->arch.cpuid_nent) if (cpuid->nent < vcpu->arch.cpuid_nent) goto out; goto out; Loading @@ -1844,6 +1845,7 @@ static int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu, out: out: cpuid->nent = vcpu->arch.cpuid_nent; cpuid->nent = vcpu->arch.cpuid_nent; vcpu_put(vcpu); return r; return r; } } Loading Loading @@ -2134,6 +2136,7 @@ static int kvm_vcpu_ioctl_x86_setup_mce(struct kvm_vcpu *vcpu, int r; int r; unsigned bank_num = mcg_cap & 0xff, bank; unsigned bank_num = mcg_cap & 0xff, bank; vcpu_load(vcpu); r = -EINVAL; r = -EINVAL; if (!bank_num || bank_num >= KVM_MAX_MCE_BANKS) if (!bank_num || bank_num >= KVM_MAX_MCE_BANKS) goto out; goto out; Loading @@ -2148,6 +2151,7 @@ static int kvm_vcpu_ioctl_x86_setup_mce(struct kvm_vcpu *vcpu, for (bank = 0; bank < bank_num; bank++) for (bank = 0; bank < bank_num; bank++) vcpu->arch.mce_banks[bank*4] = ~(u64)0; vcpu->arch.mce_banks[bank*4] = ~(u64)0; out: out: vcpu_put(vcpu); return r; return r; } } Loading Loading @@ -2456,7 +2460,9 @@ long kvm_arch_vcpu_ioctl(struct file *filp, r = -EFAULT; r = -EFAULT; if (copy_from_user(&mce, argp, sizeof mce)) if (copy_from_user(&mce, argp, sizeof mce)) goto out; goto out; vcpu_load(vcpu); r = kvm_vcpu_ioctl_x86_set_mce(vcpu, &mce); r = kvm_vcpu_ioctl_x86_set_mce(vcpu, &mce); vcpu_put(vcpu); break; break; } } case KVM_GET_VCPU_EVENTS: { case KVM_GET_VCPU_EVENTS: { Loading Loading
arch/x86/kvm/x86.c +6 −0 Original line number Original line Diff line number Diff line Loading @@ -1833,6 +1833,7 @@ static int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu, { { int r; int r; vcpu_load(vcpu); r = -E2BIG; r = -E2BIG; if (cpuid->nent < vcpu->arch.cpuid_nent) if (cpuid->nent < vcpu->arch.cpuid_nent) goto out; goto out; Loading @@ -1844,6 +1845,7 @@ static int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu, out: out: cpuid->nent = vcpu->arch.cpuid_nent; cpuid->nent = vcpu->arch.cpuid_nent; vcpu_put(vcpu); return r; return r; } } Loading Loading @@ -2134,6 +2136,7 @@ static int kvm_vcpu_ioctl_x86_setup_mce(struct kvm_vcpu *vcpu, int r; int r; unsigned bank_num = mcg_cap & 0xff, bank; unsigned bank_num = mcg_cap & 0xff, bank; vcpu_load(vcpu); r = -EINVAL; r = -EINVAL; if (!bank_num || bank_num >= KVM_MAX_MCE_BANKS) if (!bank_num || bank_num >= KVM_MAX_MCE_BANKS) goto out; goto out; Loading @@ -2148,6 +2151,7 @@ static int kvm_vcpu_ioctl_x86_setup_mce(struct kvm_vcpu *vcpu, for (bank = 0; bank < bank_num; bank++) for (bank = 0; bank < bank_num; bank++) vcpu->arch.mce_banks[bank*4] = ~(u64)0; vcpu->arch.mce_banks[bank*4] = ~(u64)0; out: out: vcpu_put(vcpu); return r; return r; } } Loading Loading @@ -2456,7 +2460,9 @@ long kvm_arch_vcpu_ioctl(struct file *filp, r = -EFAULT; r = -EFAULT; if (copy_from_user(&mce, argp, sizeof mce)) if (copy_from_user(&mce, argp, sizeof mce)) goto out; goto out; vcpu_load(vcpu); r = kvm_vcpu_ioctl_x86_set_mce(vcpu, &mce); r = kvm_vcpu_ioctl_x86_set_mce(vcpu, &mce); vcpu_put(vcpu); break; break; } } case KVM_GET_VCPU_EVENTS: { case KVM_GET_VCPU_EVENTS: { Loading