All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: "Alexander Gordeev" <agordeev@linux.ibm.com>,
	"Christian Borntraeger" <borntraeger@linux.ibm.com>,
	kvm@vger.kernel.org, "Vasily Gorbik" <gor@linux.ibm.com>,
	linux-s390@vger.kernel.org, "Heiko Carstens" <hca@linux.ibm.com>
Subject: Re: [PATCH v2 2/4] KVM: s390: Replace get_zeroed_page() with kzalloc() for the STSI buffer
Date: Sun, 06 Sep 2026 08:34:39 +0000	[thread overview]
Message-ID: <20260906083439.B7E4A1F00A3D@smtp.kernel.org> (raw)
In-Reply-To: <20260906-s390-kvm-v2-2-2cf6434e6646@kernel.org>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Critical] kzalloc() does not guarantee the 4K-byte page alignment strictly required by the s390x STSI hardware instruction, leading to a host kernel panic.
--

commit 1bfe659dfe76809762877435521d74d061f7364a
Author: Mike Rapoport (Microsoft) <rppt@kernel.org>
KVM: s390: Replace get_zeroed_page() with kzalloc() for the STSI buffer

This commit replaces get_zeroed_page() with kzalloc() when allocating the
STSI response buffer. The intention is to use a cleaner API that does not
require casting and does not need the size when freeing the memory.

Link: https://lore.kernel.org/all/635405e4-9423-4a25-a6e7-e03c8ea0bcbe@redhat.com

> diff --git a/arch/s390/kvm/s390/priv.c b/arch/s390/kvm/s390/priv.c
> index b3cb2c2c3aa71..856939acf012f 100644
> --- a/arch/s390/kvm/s390/priv.c
> +++ b/arch/s390/kvm/s390/priv.c

[ ... ]

> @@ -911,19 +912,19 @@ static int handle_stsi(struct kvm_vcpu *vcpu)
>  	switch (fc) {
>  	case 1: /* same handling for 1 and 2 */
>  	case 2:
> -		mem = get_zeroed_page(GFP_KERNEL_ACCOUNT);
> +		mem = kzalloc(PAGE_SIZE, GFP_KERNEL_ACCOUNT);

[Severity: Critical]
In handle_stsi(), does kzalloc() guarantee the 4K-byte page alignment that
the s390x stsi hardware instruction requires? The previous get_zeroed_page()
guaranteed page alignment, but kzalloc() might not if kernel SLUB debugging
(e.g., CONFIG_SLUB_DEBUG with redzoning) is enabled.

>  		if (!mem)
>  			goto out_no_data;
> -		if (stsi((void *) mem, fc, sel1, sel2))
> +		if (stsi(mem, fc, sel1, sel2))

[Severity: Critical]
If the buffer is unaligned, will executing the native stsi instruction here
trigger a host specification exception? Since the stsi() inline assembly in
arch/s390/include/asm/sysinfo.h lacks exception table handling, it seems an
unprivileged guest could reliably trigger a host kernel panic by invoking the
stsi instruction.

>  			goto out_no_data;
>  		break;
>  	case 3:
>  		if (sel1 != 2 || sel2 != 2)
>  			goto out_no_data;
> -		mem = get_zeroed_page(GFP_KERNEL_ACCOUNT);
> +		mem = kzalloc(PAGE_SIZE, GFP_KERNEL_ACCOUNT);

[Severity: Critical]
Does this second allocation in handle_stsi() introduce the same alignment
issue when the buffer is passed to handle_stsi_3_2_2() and used in the
stsi() execution there?

>  		if (!mem)
>  			goto out_no_data;
> -		handle_stsi_3_2_2(vcpu, (void *) mem);
> +		handle_stsi_3_2_2(vcpu, mem);
>  		break;
>  	case 15: /* fc 15 is fully handled in userspace */

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260906-s390-kvm-v2-0-2cf6434e6646@kernel.org?part=2

  reply	other threads:[~2026-09-06  8:34 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-06  8:27 [PATCH v2 0/4] KVM: s390: replace page allocator calls with kzalloc() Mike Rapoport (Microsoft)
2026-09-06  8:27 ` [PATCH v2 1/4] KVM: s390: Replace get_zeroed_page() with kzalloc() for the STHYI buffer Mike Rapoport (Microsoft)
2026-09-06  8:31   ` sashiko-bot
2026-09-07 12:23   ` Janosch Frank
2026-09-08  7:55     ` Mike Rapoport
2026-09-06  8:27 ` [PATCH v2 2/4] KVM: s390: Replace get_zeroed_page() with kzalloc() for the STSI buffer Mike Rapoport (Microsoft)
2026-09-06  8:34   ` sashiko-bot [this message]
2026-09-07 13:51   ` Janosch Frank
2026-09-06  8:27 ` [PATCH v2 3/4] KVM: s390: Replace get_zeroed_page() with kzalloc() for the GIB Mike Rapoport (Microsoft)
2026-09-06  8:37   ` sashiko-bot
2026-09-07 14:41   ` Janosch Frank
2026-09-06  8:27 ` [PATCH v2 4/4] KVM: s390: Replace get_zeroed_page() with kzalloc() for sie_page2 and CMMA Mike Rapoport (Microsoft)
2026-09-06  8:34   ` sashiko-bot
2026-09-07 14:43   ` Janosch Frank
2026-09-07 12:50 ` [PATCH v2 0/4] KVM: s390: replace page allocator calls with kzalloc() Claudio Imbrenda

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=20260906083439.B7E4A1F00A3D@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=agordeev@linux.ibm.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=rppt@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.