All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: "Heiko Carstens" <hca@linux.ibm.com>,
	"Vasily Gorbik" <gor@linux.ibm.com>,
	linux-s390@vger.kernel.org,
	"Christian Borntraeger" <borntraeger@linux.ibm.com>,
	"Alexander Gordeev" <agordeev@linux.ibm.com>
Subject: Re: [PATCH 08/13] s390/qdio_main: Use kzalloc() for the IRQ structure
Date: Mon, 07 Sep 2026 10:38:20 +0000	[thread overview]
Message-ID: <20260907103821.287201F00ADF@smtp.kernel.org> (raw)
In-Reply-To: <20260907-s390-cio-ready-v1-8-ca7f39806234@kernel.org>

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Replacing get_zeroed_page() with kzalloc(PAGE_SIZE) drops strict page-alignment guarantees, violating the 256-byte hardware alignment requirement for the embedded struct qib when SLUB debugging is enabled.
- [Low] Stale comment regarding kmemleak scanning for irq_ptr.
--

commit ca3c961e09a135301359d791ffa1a2e2f24317b3
Author: Mike Rapoport (Microsoft) <rppt@kernel.org>

s390/qdio_main: Use kzalloc() for the IRQ structure

This commit replaces the use of get_zeroed_page() and free_page() for the
QDIO IRQ structure with kzalloc() and kfree(). It aims to improve API usage
by eliminating casts and the need to track object size on free.

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

> diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c
> index d137bf8c70664..6b9442bae7ffd 100644
> --- a/drivers/s390/cio/qdio_main.c
> +++ b/drivers/s390/cio/qdio_main.c
[ ... ]
> @@ -961,7 +962,7 @@ int qdio_allocate(struct ccw_device *cdev, unsigned int no_input_qs,
>  	    no_output_qs > QDIO_MAX_QUEUES_PER_IRQ)
>  		return -EINVAL;
>  
> -	irq_ptr = (void *) get_zeroed_page(GFP_KERNEL);
> +	irq_ptr = kzalloc(PAGE_SIZE, GFP_KERNEL);

[Severity: High]
Does this allocation still meet the strict alignment requirements for the
embedded Queue Information Block (QIB) structure?

The QDIO hardware strictly requires the physical address of the QIB to be
256-byte aligned. Since struct qib is the first member of struct qdio_irq, it
was safely page-aligned when using get_zeroed_page().

With kzalloc(PAGE_SIZE), if CONFIG_SLUB_DEBUG is enabled and redzoning is
active, objects in power-of-two slab caches (like kmalloc-4096) are prefixed
with redzones. This shifts the object's starting address away from the
natural page boundary, falling back to ARCH_KMALLOC_MINALIGN (8 bytes on
s390).

Could this cause the physical address of irq_ptr->qib to be unaligned and
lead to hardware I/O operations failing?

[Severity: Low]
This isn't a bug, but does this change make the kmemleak comment and
annotation further down in qdio_allocate() obsolete?

drivers/s390/cio/qdio_main.c:qdio_allocate() {
    ...
	/* kmemleak doesn't scan the page-allocated irq_ptr: */
	kmemleak_not_leak(irq_ptr->ccw);
    ...
}

Since irq_ptr is now allocated using kzalloc(), the slab allocator will
automatically track it for kmemleak, making the workaround comment incorrect
and the kmemleak_not_leak() call functionally unnecessary.

>  	if (!irq_ptr)
>  		return -ENOMEM;

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260907-s390-cio-ready-v1-0-ca7f39806234@kernel.org?part=8

  reply	other threads:[~2026-09-07 10:38 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-07 10:23 [PATCH 00/13] s390/cio: replace page allocator calls with k[mz]alloc() Mike Rapoport (Microsoft)
2026-09-07 10:23 ` [PATCH 01/13] s390/chsc: Use kzalloc() for CUBs Mike Rapoport (Microsoft)
2026-09-07 10:37   ` sashiko-bot
2026-09-07 10:56     ` Mike Rapoport
2026-09-07 10:23 ` [PATCH 02/13] s390/chsc: Use kzalloc() for the SEI work area Mike Rapoport (Microsoft)
2026-09-07 10:34   ` sashiko-bot
2026-09-07 10:23 ` [PATCH 03/13] s390/chsc_sch: Use kzalloc() for CHSC requests Mike Rapoport (Microsoft)
2026-09-07 10:39   ` sashiko-bot
2026-09-07 10:23 ` [PATCH 04/13] s390/chsc_sch: Use __free(kfree) for synchronous " Mike Rapoport (Microsoft)
2026-09-07 10:30   ` sashiko-bot
2026-09-07 10:23 ` [PATCH 05/13] s390/cio: Use kzalloc() for CHSC work areas Mike Rapoport (Microsoft)
2026-09-07 10:37   ` sashiko-bot
2026-09-07 10:23 ` [PATCH 06/13] s390/cmf: Use kmalloc() for the CMB area Mike Rapoport (Microsoft)
2026-09-07 10:35   ` sashiko-bot
2026-09-07 10:59     ` Mike Rapoport
2026-09-07 10:23 ` [PATCH 07/13] s390/idals: Use kmalloc() for IDAL data buffers Mike Rapoport (Microsoft)
2026-09-07 10:38   ` sashiko-bot
2026-09-07 10:23 ` [PATCH 08/13] s390/qdio_main: Use kzalloc() for the IRQ structure Mike Rapoport (Microsoft)
2026-09-07 10:38   ` sashiko-bot [this message]
2026-09-07 10:23 ` [PATCH 09/13] s390/qdio_main: Use kzalloc() for the QDR Mike Rapoport (Microsoft)
2026-09-07 10:33   ` sashiko-bot
2026-09-07 10:23 ` [PATCH 10/13] s390/qdio_setup: Use kzalloc() for QDIO buffers Mike Rapoport (Microsoft)
2026-09-07 10:36   ` sashiko-bot
2026-09-07 10:23 ` [PATCH 11/13] s390/qdio_setup: Use kzalloc() for the storage list Mike Rapoport (Microsoft)
2026-09-07 10:42   ` sashiko-bot
2026-09-07 10:23 ` [PATCH 12/13] s390/qdio_setup: Use kzalloc() for the SSQD request Mike Rapoport (Microsoft)
2026-09-07 10:43   ` sashiko-bot
2026-09-07 10:23 ` [PATCH 13/13] s390/scm: Use kmalloc() for SCM information Mike Rapoport (Microsoft)
2026-09-07 10:44   ` 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=20260907103821.287201F00ADF@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.