From: sashiko-bot@kernel.org
To: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: linux-s390@vger.kernel.org,
"Alexander Gordeev" <agordeev@linux.ibm.com>,
"Heiko Carstens" <hca@linux.ibm.com>,
"Christian Borntraeger" <borntraeger@linux.ibm.com>,
"Vasily Gorbik" <gor@linux.ibm.com>
Subject: Re: [PATCH v2 13/13] s390/scm: Use kmalloc() for SCM information
Date: Thu, 10 Sep 2026 11:22:00 +0000 [thread overview]
Message-ID: <20260910112200.A38C01F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260910-s390-cio-ready-v2-13-e931086fdde1@kernel.org>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Replacing __get_free_page() with kmalloc() breaks the strict 4K-byte hardware alignment requirement for the CHSC command block, leading to a specification exception (kernel panic).
--
commit 9a0607c813ec0f02b4147f95093917e38b21c342
Author: Mike Rapoport (Microsoft) <rppt@kernel.org>
s390/scm: Use kmalloc() for SCM information
This commit replaces the page allocator with kmalloc for allocating the
response buffer in scm_update_information(), and introduces scope-based
cleanup using __free(kfree).
Link: https://lore.kernel.org/all/635405e4-9423-4a25-a6e7-e03c8ea0bcbe@redhat.com
> diff --git a/drivers/s390/cio/scm.c b/drivers/s390/cio/scm.c
> index 171212a6d2d9c..b79fe023ab8d1 100644
> --- a/drivers/s390/cio/scm.c
> +++ b/drivers/s390/cio/scm.c
[ ... ]
> @@ -224,12 +225,12 @@ static int scm_add(struct chsc_scm_info *scm_info, size_t num)
>
> int scm_update_information(void)
> {
> - struct chsc_scm_info *scm_info;
> + struct chsc_scm_info *scm_info __free(kfree) = NULL;
> u64 token = 0;
> size_t num;
> int ret;
>
> - scm_info = (void *)__get_free_page(GFP_KERNEL | GFP_DMA);
> + scm_info = kmalloc(PAGE_SIZE, GFP_KERNEL | GFP_DMA);
[Severity: High]
Does switching to kmalloc here introduce a regression by breaking the
hardware alignment requirements for the CHSC command block?
While __get_free_page() guarantees strict page alignment, kmalloc() does not
guarantee 4KB alignment. When debugging options like SLUB_DEBUG or KASAN are
enabled, they add metadata that shifts the returned object away from the page
boundary.
This buffer is eventually passed to the hardware chsc instruction in
chsc_scm_info():
drivers/s390/cio/chsc.c:chsc_scm_info() {
...
ccode = chsc(scm_area);
...
}
If the address is unaligned, could the CPU throw a specification exception
resulting in a kernel panic?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260910-s390-cio-ready-v2-0-e931086fdde1@kernel.org?part=13
prev parent reply other threads:[~2026-09-10 11:22 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
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 [this message]
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=20260910112200.A38C01F000FF@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.