Re: [PATCH] scsi: st: use kzalloc_array
From: Damien Le Moal
Date: Sat Jul 04 2026 - 21:08:40 EST
On 7/4/26 04:06, Rosen Penev wrote:
> On Tue, Jun 30, 2026 at 12:28 AM Damien Le Moal <dlemoal@xxxxxxxxxx> wrote:
>>
>> On 6/30/26 10:21, Rosen Penev wrote:
>>> Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
>>
>> 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.
> This patch moves it, no?
Do! Completely missed that. Looks good then, but please write a commit message.
--
Damien Le Moal
Western Digital Research