Instead of a literal "1" for signalling an error, use a negative errno value in the emulation code of SVM related MSR registers. Signed-off-by: Juergen Gross --- V2: - use -errno instead of KVM_MSR_RET_ERR --- arch/x86/kvm/svm/pmu.c | 4 ++-- arch/x86/kvm/svm/svm.c | 36 ++++++++++++++++++------------------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/arch/x86/kvm/svm/pmu.c b/arch/x86/kvm/svm/pmu.c index 7aa298eeb072..1c325d602baa 100644 --- a/arch/x86/kvm/svm/pmu.c +++ b/arch/x86/kvm/svm/pmu.c @@ -144,7 +144,7 @@ static int amd_pmu_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info) return 0; } - return 1; + return -EINVAL; } static int amd_pmu_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info) @@ -173,7 +173,7 @@ static int amd_pmu_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info) return 0; } - return 1; + return -EINVAL; } static void amd_pmu_refresh(struct kvm_vcpu *vcpu) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index e02a38da5296..f8d9df822ab3 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -2791,7 +2791,7 @@ static int svm_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info) case MSR_AMD64_TSC_RATIO: if (!msr_info->host_initiated && !guest_cpu_cap_has(vcpu, X86_FEATURE_TSCRATEMSR)) - return 1; + return -EINVAL; msr_info->data = svm->tsc_ratio_msr; break; case MSR_STAR: @@ -2860,7 +2860,7 @@ static int svm_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info) case MSR_IA32_SPEC_CTRL: if (!msr_info->host_initiated && !guest_has_spec_ctrl_msr(vcpu)) - return 1; + return -EINVAL; if (boot_cpu_has(X86_FEATURE_V_SPEC_CTRL)) msr_info->data = svm->vmcb->save.spec_ctrl; @@ -2870,7 +2870,7 @@ static int svm_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info) case MSR_AMD64_VIRT_SPEC_CTRL: if (!msr_info->host_initiated && !guest_cpu_cap_has(vcpu, X86_FEATURE_VIRT_SSBD)) - return 1; + return -EINVAL; msr_info->data = svm->virt_spec_ctrl; break; @@ -2907,7 +2907,7 @@ static int svm_complete_emulated_msr(struct kvm_vcpu *vcpu, int err) return kvm_complete_insn_gp(vcpu, err); svm_vmgexit_inject_exception(svm, X86_TRAP_GP); - return 1; + return -EINVAL; } static int svm_set_vm_cr(struct kvm_vcpu *vcpu, u64 data) @@ -2916,7 +2916,7 @@ static int svm_set_vm_cr(struct kvm_vcpu *vcpu, u64 data) int svm_dis, chg_mask; if (data & ~SVM_VM_CR_VALID_MASK) - return 1; + return -EINVAL; chg_mask = SVM_VM_CR_VALID_MASK; @@ -2930,7 +2930,7 @@ static int svm_set_vm_cr(struct kvm_vcpu *vcpu, u64 data) /* check for svm_disable while efer.svme is set */ if (svm_dis && (vcpu->arch.efer & EFER_SVME)) - return 1; + return -EINVAL; return 0; } @@ -2952,7 +2952,7 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr) if (!guest_cpu_cap_has(vcpu, X86_FEATURE_TSCRATEMSR)) { if (!msr->host_initiated) - return 1; + return -EINVAL; /* * In case TSC scaling is not enabled, always * leave this MSR at the default value. @@ -2962,12 +2962,12 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr) * Ignore this value as well. */ if (data != 0 && data != svm->tsc_ratio_msr) - return 1; + return -EINVAL; break; } if (data & SVM_TSC_RATIO_RSVD) - return 1; + return -EINVAL; svm->tsc_ratio_msr = data; @@ -2989,10 +2989,10 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr) case MSR_IA32_SPEC_CTRL: if (!msr->host_initiated && !guest_has_spec_ctrl_msr(vcpu)) - return 1; + return -EINVAL; if (kvm_spec_ctrl_test_value(data)) - return 1; + return -EINVAL; if (boot_cpu_has(X86_FEATURE_V_SPEC_CTRL)) svm->vmcb->save.spec_ctrl = data; @@ -3017,10 +3017,10 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr) case MSR_AMD64_VIRT_SPEC_CTRL: if (!msr->host_initiated && !guest_cpu_cap_has(vcpu, X86_FEATURE_VIRT_SSBD)) - return 1; + return -EINVAL; if (data & ~SPEC_CTRL_SSBD) - return 1; + return -EINVAL; svm->virt_spec_ctrl = data; break; @@ -3115,7 +3115,7 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr) } if (data & DEBUGCTL_RESERVED_BITS) - return 1; + return -EINVAL; if (svm->vmcb->save.dbgctl == data) break; @@ -3131,7 +3131,7 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr) if (!lbrv) return KVM_MSR_RET_UNSUPPORTED; if (!msr->host_initiated) - return 1; + return -EINVAL; *svm_vmcb_lbr(svm, ecx) = data; vmcb_mark_dirty(svm->vmcb, VMCB_LBR); break; @@ -3143,7 +3143,7 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr) * originating from those kernels. */ if (!msr->host_initiated && !page_address_valid(vcpu, data)) - return 1; + return -EINVAL; svm->nested.hsave_msr = data & PAGE_MASK; break; @@ -3156,10 +3156,10 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr) u64 supported_de_cfg; if (svm_get_feature_msr(ecx, &supported_de_cfg)) - return 1; + return -EINVAL; if (data & ~supported_de_cfg) - return 1; + return -EINVAL; svm->msr_decfg = data; break; -- 2.54.0