From: sashiko-bot@kernel.org
To: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: "Alexander Gordeev" <agordeev@linux.ibm.com>,
linux-s390@vger.kernel.org,
"Christian Borntraeger" <borntraeger@linux.ibm.com>,
"Heiko Carstens" <hca@linux.ibm.com>,
"Vasily Gorbik" <gor@linux.ibm.com>
Subject: Re: [PATCH v2 03/13] s390/chsc_sch: Use kzalloc() for CHSC requests
Date: Thu, 10 Sep 2026 11:10:58 +0000 [thread overview]
Message-ID: <20260910111059.2A7F71F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260910-s390-cio-ready-v2-3-e931086fdde1@kernel.org>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Hardware Alignment Violation: Replacing get_zeroed_page() with kzalloc(PAGE_SIZE) drops the strict 4K page-alignment guarantee required by the CHSC hardware instruction.
--
commit 605eecc8759317b0b4a005d290e0db9d7f1fd0a3
Author: Mike Rapoport (Microsoft) <rppt@kernel.org>
s390/chsc_sch: Use kzalloc() for CHSC requests
This commit replaces get_zeroed_page() and free_page() with kzalloc() and
kfree() for CHSC request and response areas. The goal is to simplify the
code and use a more standard API since the memory is assumed not to require
page allocator specifics.
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
> --- 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 this kzalloc() break the strict 4KB page alignment required by the
CHSC hardware instruction?
When slab debugging (like redzoning) is enabled, the allocated memory block
can be shifted by the redzone size, breaking page alignment.
Passing this unaligned pointer to the CHSC instruction unconditionally
triggers a hardware specification exception (program check) which breaks
channel subsystem I/O functionality.
[ ... ]
> @@ -340,7 +340,7 @@ static int chsc_ioctl_on_close_set(void __user *user_area)
> ret = -ENOMEM;
> goto out_unlock;
> }
> - on_close_chsc_area = (void *)get_zeroed_page(GFP_DMA | GFP_KERNEL);
> + on_close_chsc_area = kzalloc(PAGE_SIZE, GFP_DMA | GFP_KERNEL);
[Severity: High]
Will this also lose the hardware-required page alignment for the on-close
CHSC command area?
[ ... ]
> @@ -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]
Is there a risk of a hardware exception here as well due to the same
alignment issue in chsc_ioctl_start_sync()?
[ ... ]
> @@ -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]
Could this silent drop of the 4K page-alignment guarantee cause I/O failure
for the command block allocation in chsc_ioctl_info_channel_path()?
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260910-s390-cio-ready-v2-0-e931086fdde1@kernel.org?part=3
next prev parent reply other threads:[~2026-09-10 11:10 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-10 11:00 [PATCH v2 00/13] s390/cio: replace page allocator calls with k[mz]alloc() Mike Rapoport (Microsoft)
2026-09-10 11:00 ` [PATCH v2 01/13] s390/chsc: Use kzalloc() for CUBs Mike Rapoport (Microsoft)
2026-09-10 11:11 ` sashiko-bot
2026-09-10 11:00 ` [PATCH v2 02/13] s390/chsc: Use kzalloc() for the SEI work area Mike Rapoport (Microsoft)
2026-09-10 11:12 ` sashiko-bot
2026-09-10 11:00 ` [PATCH v2 03/13] s390/chsc_sch: Use kzalloc() for CHSC requests Mike Rapoport (Microsoft)
2026-09-10 11:10 ` sashiko-bot [this message]
2026-09-10 11:00 ` [PATCH v2 04/13] s390/chsc_sch: Use __free(kfree) for synchronous " Mike Rapoport (Microsoft)
2026-09-10 11:05 ` sashiko-bot
2026-09-10 11:00 ` [PATCH v2 05/13] s390/cio: Use kzalloc() for CHSC work areas Mike Rapoport (Microsoft)
2026-09-10 11:12 ` sashiko-bot
2026-09-10 11:00 ` [PATCH v2 06/13] s390/cmf: Use kmalloc() for the CMB area Mike Rapoport (Microsoft)
2026-09-10 11:15 ` sashiko-bot
2026-09-10 11:00 ` [PATCH v2 07/13] s390/idals: Use kmalloc() for IDAL data buffers Mike Rapoport (Microsoft)
2026-09-10 11:14 ` sashiko-bot
2026-09-10 11:00 ` [PATCH v2 08/13] s390/qdio_main: Use kzalloc() for the IRQ structure Mike Rapoport (Microsoft)
2026-09-10 11:20 ` sashiko-bot
2026-09-10 11:00 ` [PATCH v2 09/13] s390/qdio_main: Use kzalloc() for the QDR Mike Rapoport (Microsoft)
2026-09-10 11:11 ` sashiko-bot
2026-09-10 11:00 ` [PATCH v2 10/13] s390/qdio_setup: Use kzalloc() for QDIO buffers Mike Rapoport (Microsoft)
2026-09-10 11:15 ` sashiko-bot
2026-09-10 11:00 ` [PATCH v2 11/13] s390/qdio_setup: Use kzalloc() for the storage list Mike Rapoport (Microsoft)
2026-09-10 11:16 ` sashiko-bot
2026-09-10 11:00 ` [PATCH v2 12/13] s390/qdio_setup: Use kzalloc() for the SSQD request Mike Rapoport (Microsoft)
2026-09-10 11:19 ` sashiko-bot
2026-09-10 11:00 ` [PATCH v2 13/13] s390/scm: Use kmalloc() for SCM information Mike Rapoport (Microsoft)
2026-09-10 11:22 ` sashiko-bot
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=20260910111059.2A7F71F000FF@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox