All of lore.kernel.org
 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 2/6] KVM/x86: Return -errno instead of "1" for APIC related MSR emulation
Date: Thu, 28 May 2026 12:17:06 +0000	[thread overview]
Message-ID: <20260528121707.691701F00A3D@smtp.kernel.org> (raw)
In-Reply-To: <20260528113605.267111-3-jgross@suse.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Critical] Returning a negative error code (like -EINVAL) from MSR emulation handlers causes KVM to abort the VM instead of injecting a #GP exception into the guest.
--

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

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

This commit replaces literal "1" return values with negative errno values
such as -EINVAL in the emulation code for APIC-related MSR registers.

> diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
> index 4078e624ca667..3e7d83db2f7ab 100644
> --- a/arch/x86/kvm/lapic.c
> +++ b/arch/x86/kvm/lapic.c
> @@ -2412,11 +2412,10 @@ static int kvm_lapic_reg_write(struct kvm_lapic *apic, u32 reg, u32 val)
>  
>  	switch (reg) {
>  	case APIC_ID:		/* Local APIC ID */
> -		if (!apic_x2apic_mode(apic)) {
> +		if (!apic_x2apic_mode(apic))
>  			kvm_apic_set_xapic_id(apic, val >> 24);
> -		} else {
> -			ret = 1;
> -		}
> +		else
> +			ret = -EINVAL;

[Severity: Critical]
Does returning a negative error code here bypass the exception injection
logic?

In the KVM MSR emulation framework, functions like __kvm_emulate_wrmsr()
treat a return value greater than 0 as an instruction fault. This allows KVM
to safely inject a General Protection Fault into the guest.

If we return a negative code like -EINVAL, the negative value is propagated
up the call chain instead. This reaches the vcpu_run() loop, causing the
KVM_RUN ioctl to fail and forcing the host VMM to exit and terminate the VM.

Will this change allow a guest OS that probes an unsupported APIC MSR to
inadvertently crash its own virtual machine, instead of receiving and
gracefully handling a General Protection Fault?

[ ... ]

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

  reply	other threads:[~2026-05-28 12:17 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 [this message]
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
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=20260528121707.691701F00A3D@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.