From: Damien Le Moal <dlemoal@kernel.org>
To: Rosen Penev <rosenp@gmail.com>, linux-scsi@vger.kernel.org
Cc: "Kai Mäkisara" <Kai.Makisara@kolumbus.fi>,
"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
"Kees Cook" <kees@kernel.org>,
"Gustavo A. R. Silva" <gustavoars@kernel.org>,
"open list" <linux-kernel@vger.kernel.org>,
"open list:KERNEL HARDENING (not covered by other
areas):Keyword:b__counted_by(_le|_be|_ptr)?b"
<linux-hardening@vger.kernel.org>
Subject: Re: [PATCH] scsi: st: use kzalloc_array
Date: Tue, 30 Jun 2026 16:28:19 +0900 [thread overview]
Message-ID: <17d381fb-1f91-461c-8315-1508ad0c1efe@kernel.org> (raw)
In-Reply-To: <20260630012101.1461335-1-rosenp@gmail.com>
On 6/30/26 10:21, Rosen Penev wrote:
> Signed-off-by: Rosen Penev <rosenp@gmail.com>
No commit message ? Please explain your reasonning, because I find this patch
incorrect. See below.
> ---
> drivers/scsi/st.c | 12 +++---------
> drivers/scsi/st.h | 3 ++-
> 2 files changed, 5 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c
> index f1c3c4946637..31ae189b18e7 100644
> --- a/drivers/scsi/st.c
> +++ b/drivers/scsi/st.c
> @@ -149,7 +149,7 @@ static struct st_dev_parm {
> mode counts */
> static const char *st_formats[] = {
> "", "r", "k", "s", "l", "t", "o", "u",
> - "m", "v", "p", "x", "a", "y", "q", "z"};
> + "m", "v", "p", "x", "a", "y", "q", "z"};
>
> /* The default definitions have been moved to st_options.h */
>
> @@ -3973,21 +3973,15 @@ static struct st_buffer *new_tape_buffer(int max_sg)
> {
> struct st_buffer *tb;
>
> - tb = kzalloc_obj(struct st_buffer);
> + tb = kzalloc_flex(*tb, reserved_pages, max_sg);
> if (!tb) {
> printk(KERN_NOTICE "st: Can't allocate new tape buffer.\n");
> return NULL;
> }
> - tb->frp_segs = 0;
> tb->use_sg = max_sg;
> + tb->frp_segs = 0;
> tb->buffer_size = 0;
>
> - tb->reserved_pages = kzalloc_objs(struct page *, max_sg);
reserve_pages is in the middle of struct st_buffer so you cannot use a flex array.
> - if (!tb->reserved_pages) {
> - kfree(tb);
> - return NULL;
> - }
> -
> return tb;
> }
>
> diff --git a/drivers/scsi/st.h b/drivers/scsi/st.h
> index 0d7c4b8c2c8a..759f4c43d563 100644
> --- a/drivers/scsi/st.h
> +++ b/drivers/scsi/st.h
> @@ -45,7 +45,6 @@ struct st_buffer {
> int syscall_result;
> struct st_request *last_SRpnt;
> struct st_cmdstatus cmdstat;
> - struct page **reserved_pages;
> int reserved_page_order;
> struct page **mapped_pages;
> struct rq_map_data map_data;
> @@ -53,6 +52,8 @@ struct st_buffer {
> unsigned short use_sg; /* zero or max number of s/g segments for this adapter */
> unsigned short sg_segs; /* number of segments in s/g list */
> unsigned short frp_segs; /* number of buffer segments */
> +
> + struct page *reserved_pages[] __counted_by(use_sg);
> };
>
> /* The tape mode definition */
--
Damien Le Moal
Western Digital Research
next prev parent reply other threads:[~2026-06-30 7:28 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-30 1:21 [PATCH] scsi: st: use kzalloc_array Rosen Penev
2026-06-30 7:28 ` Damien Le Moal [this message]
2026-07-03 19:06 ` Rosen Penev
2026-07-05 1:08 ` Damien Le Moal
2026-07-05 1:15 ` Rosen Penev
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=17d381fb-1f91-461c-8315-1508ad0c1efe@kernel.org \
--to=dlemoal@kernel.org \
--cc=James.Bottomley@HansenPartnership.com \
--cc=Kai.Makisara@kolumbus.fi \
--cc=gustavoars@kernel.org \
--cc=kees@kernel.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=rosenp@gmail.com \
/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.