Kernel KVM virtualization development
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Juergen Gross" <jgross@suse.com>
Cc: kvm@vger.kernel.org
Subject: Re: [PATCH v2 4/6] KVM/x86: Return -errno instead of "1" for VMX related MSR emulation
Date: Thu, 28 May 2026 14:11:08 +0000	[thread overview]
Message-ID: <20260528141108.F2A211F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260528113605.267111-5-jgross@suse.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Critical] Replacing literal `1` with negative error codes (e.g., `-EINVAL`, `-EACCES`) in KVM MSR emulation handlers breaks `#GP` fault injection, causing guest MSR violations to fatally abort the `KVM_RUN` ioctl and crash the VM.
--

commit cd49bcf603dc5dd7de8fce25d5359556bec52252
Author: Juergen Gross <jgross@suse.com>

KVM/x86: Return -errno instead of "1" for VMX related MSR emulation

This commit updates VMX-related MSR emulation handlers to return negative
errno values instead of a literal 1 on error.

> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
> --- a/arch/x86/kvm/vmx/vmx.c
> +++ b/arch/x86/kvm/vmx/vmx.c
[ ... ]
> @@ -2391,12 +2391,12 @@ int vmx_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
>  		break;
>  	case MSR_IA32_UMWAIT_CONTROL:
>  		if (!msr_info->host_initiated && !vmx_has_waitpkg(vmx))
> -			return 1;
> +			return -EINVAL;
>  
>  		/* The reserved bit 1 and non-32 bit [63:32] should be zero */
>  		if (data & (BIT_ULL(1) | GENMASK_ULL(63, 32)))
> -			return 1;
> +			return -EINVAL;

[Severity: Critical]
Does this change break #GP fault injection for guest MSR violations? 

When a guest executes a write to an MSR with invalid data, the handler is 
expected to return 1. This signals __kvm_emulate_wrmsr() to inject a #GP into 
the guest via complete_emulated_msr_access().

If the handler returns a negative error code like -EINVAL, it appears
__kvm_emulate_wrmsr() will instead hit the "if (r < 0) return r;" check.

Won't this propagate the error directly up the call stack, abort the ioctl, and
cause userspace to terminate the guest instead of properly injecting a fault?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260528113605.267111-1-jgross@suse.com?part=4

  reply	other threads:[~2026-05-28 14:11 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-28 11:35 [PATCH v2 0/6] KVM/x86: Drop "1" as MSR emulation return value Juergen Gross
2026-05-28 11:36 ` [PATCH v2 1/6] KVM/x86: Change comment before KVM_MSR_RET_* defines Juergen Gross
2026-05-28 11:52   ` sashiko-bot
2026-05-28 11:36 ` [PATCH v2 2/6] KVM/x86: Return -errno instead of "1" for APIC related MSR emulation Juergen Gross
2026-05-28 12:17   ` sashiko-bot
2026-05-28 11:36 ` [PATCH v2 3/6] KVM/x86: Return -errno instead of "1" for Hyper-V " Juergen Gross
2026-05-28 13:00   ` sashiko-bot
2026-05-28 11:36 ` [PATCH v2 4/6] KVM/x86: Return -errno instead of "1" for VMX " Juergen Gross
2026-05-28 14:11   ` sashiko-bot [this message]
2026-05-28 11:36 ` [PATCH v2 5/6] KVM/x86: Return -errno instead of "1" for SVM " Juergen Gross
2026-05-28 14:51   ` sashiko-bot
2026-05-28 11:36 ` [PATCH v2 6/6] KVM/x86: Return -errno instead of "1" for common " Juergen Gross
2026-05-28 16:19   ` sashiko-bot
2026-05-28 11:58 ` [PATCH v2 0/6] KVM/x86: Drop "1" as MSR emulation return value Juergen Gross
2026-05-28 13:09   ` Sean Christopherson
2026-05-28 13:18     ` Jürgen Groß
2026-05-28 13:21       ` Sean Christopherson
2026-05-28 14:01         ` Jürgen Groß
2026-05-28 14:33         ` Jürgen Groß
2026-05-28 15:32           ` David Woodhouse
2026-05-28 15:36             ` Jürgen Groß
2026-05-28 15:50         ` Jürgen Groß
2026-05-29  9:31           ` Juergen Gross

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260528141108.F2A211F000E9@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=jgross@suse.com \
    --cc=kvm@vger.kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox