From: sashiko-bot@kernel.org
To: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: "Vasily Gorbik" <gor@linux.ibm.com>,
linux-s390@vger.kernel.org,
"Alexander Gordeev" <agordeev@linux.ibm.com>,
"Heiko Carstens" <hca@linux.ibm.com>,
"Christian Borntraeger" <borntraeger@linux.ibm.com>
Subject: Re: [PATCH v3 03/13] s390/chsc_sch: Use kzalloc() for CHSC requests
Date: Wed, 16 Sep 2026 12:14:49 +0000 [thread overview]
Message-ID: <20260916121450.0ECF61F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260916-s390-cio-ready-v3-3-39e4894637d6@kernel.org>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] s390/cio: kzalloc() breaks 4KB hardware alignment required by chsc instruction
--
commit 54194635e9207f1ada1f8c978b8a14c7a6ba3fc7
Author: Mike Rapoport (Microsoft) <rppt@kernel.org>
s390/chsc_sch: Use kzalloc() for CHSC requests
This commit replaces the use of get_zeroed_page() with kzalloc() and
free_page() with kfree() for allocating and freeing CHSC request and
response areas across several ioctl handlers.
Link: https://lore.kernel.org/all/635405e4-9423-4a25-a6e7-e03c8ea0bcbe@redhat.com
> diff --git a/drivers/s390/cio/chsc_sch.c b/drivers/s390/cio/chsc_sch.c
> index b6cb8bb8bcc4b..c8d6871d1841e 100644
> --- a/drivers/s390/cio/chsc_sch.c
> +++ b/drivers/s390/cio/chsc_sch.c
> @@ -292,7 +292,7 @@ static int chsc_ioctl_start(void __user *user_area)
> if (!css_general_characteristics.dynio)
> /* It makes no sense to try. */
> return -EOPNOTSUPP;
> - chsc_area = (void *)get_zeroed_page(GFP_DMA | GFP_KERNEL);
> + chsc_area = kzalloc(PAGE_SIZE, GFP_DMA | GFP_KERNEL);
[Severity: High]
Does changing this allocation to kzalloc() break the 4KB hardware page
alignment required by the chsc instruction?
When debugging options like slub debug redzones or kasan are enabled, using
kzalloc() for a page-sized allocation does not guarantee that the returned
pointer is page-aligned. Since the chsc hardware instruction requires the
command block operand to reside strictly on a 4KB boundary, passing an
unaligned pointer can result in a specification exception
(Program Interrupt 0x06) and an immediate kernel panic.
[ ... ]
> @@ -392,7 +392,7 @@ static int chsc_ioctl_start_sync(void __user *user_area)
> struct chsc_sync_area *chsc_area;
> int ret, ccode;
>
> - chsc_area = (void *)get_zeroed_page(GFP_KERNEL | GFP_DMA);
> + chsc_area = kzalloc(PAGE_SIZE, GFP_KERNEL | GFP_DMA);
[Severity: High]
This appears to be another instance where dynamically allocated memory might
not be page-aligned. Could this unaligned pointer also be passed directly to
the chsc() hardware instruction later in this function, triggering the same
specification exception?
[ ... ]
> @@ -438,7 +438,7 @@ static int chsc_ioctl_info_channel_path(void __user *user_cd)
> u8 data[PAGE_SIZE - 20];
> } __attribute__ ((packed)) *scpcd_area;
>
> - scpcd_area = (void *)get_zeroed_page(GFP_KERNEL | GFP_DMA);
> + scpcd_area = kzalloc(PAGE_SIZE, GFP_KERNEL | GFP_DMA);
[Severity: High]
This looks like it matches the same allocation pattern for the channel path
description command block. Will this also lead to an unaligned pointer
being passed to chsc()?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260916-s390-cio-ready-v3-0-39e4894637d6@kernel.org?part=3
next prev parent reply other threads:[~2026-09-16 12:14 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-16 12:03 [PATCH v3 00/13] s390/cio: replace page allocator calls with k[mz]alloc() Mike Rapoport (Microsoft)
2026-09-16 12:03 ` [PATCH v3 01/13] s390/chsc: Use kzalloc() for CUBs Mike Rapoport (Microsoft)
2026-09-16 12:15 ` sashiko-bot
2026-09-16 12:03 ` [PATCH v3 02/13] s390/chsc: Use kzalloc() for the SEI work area Mike Rapoport (Microsoft)
2026-09-16 12:15 ` sashiko-bot
2026-09-16 12:03 ` [PATCH v3 03/13] s390/chsc_sch: Use kzalloc() for CHSC requests Mike Rapoport (Microsoft)
2026-09-16 12:14 ` sashiko-bot [this message]
2026-09-16 12:03 ` [PATCH v3 04/13] s390/chsc_sch: Use __free(kfree) for synchronous " Mike Rapoport (Microsoft)
2026-09-16 12:10 ` sashiko-bot
2026-09-16 12:03 ` [PATCH v3 05/13] s390/cio: Use kzalloc() for CHSC work areas Mike Rapoport (Microsoft)
2026-09-16 12:12 ` sashiko-bot
2026-09-16 12:03 ` [PATCH v3 06/13] s390/cmf: Use kmalloc() for the CMB area Mike Rapoport (Microsoft)
2026-09-16 12:18 ` sashiko-bot
2026-09-16 12:03 ` [PATCH v3 07/13] s390/idals: Use kmalloc() for IDAL data buffers Mike Rapoport (Microsoft)
2026-09-16 12:16 ` sashiko-bot
2026-09-16 12:03 ` [PATCH v3 08/13] s390/qdio_main: Use kzalloc() for the IRQ structure Mike Rapoport (Microsoft)
2026-09-16 12:17 ` sashiko-bot
2026-09-16 12:03 ` [PATCH v3 09/13] s390/qdio_main: Use kzalloc() for the QDR Mike Rapoport (Microsoft)
2026-09-16 12:16 ` sashiko-bot
2026-09-16 12:03 ` [PATCH v3 10/13] s390/qdio_setup: Use kzalloc() for QDIO buffers Mike Rapoport (Microsoft)
2026-09-16 12:21 ` sashiko-bot
2026-09-16 12:03 ` [PATCH v3 11/13] s390/qdio_setup: Use kmalloc() for the storage list Mike Rapoport (Microsoft)
2026-09-16 12:23 ` sashiko-bot
2026-09-16 12:03 ` [PATCH v3 12/13] s390/qdio_setup: Use kmalloc() for the SSQD request Mike Rapoport (Microsoft)
2026-09-16 12:23 ` sashiko-bot
2026-09-16 12:03 ` [PATCH v3 13/13] s390/scm: Use kmalloc() for SCM information Mike Rapoport (Microsoft)
2026-09-16 12:23 ` sashiko-bot
2026-09-16 13:06 ` [PATCH v3 00/13] s390/cio: replace page allocator calls with k[mz]alloc() Heiko Carstens
2026-09-18 16:23 ` Peter Oberparleiter
2026-09-20 18:20 ` Heiko Carstens
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=20260916121450.0ECF61F000FF@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=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.