From nobody Mon Apr 6 09:23:01 2026 Received: from mail-yw1-f174.google.com (mail-yw1-f174.google.com [209.85.128.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 63B64221721 for ; Fri, 20 Mar 2026 04:12:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773979926; cv=none; b=HW+C0yGtnS5eYbayUJF0VSSES0eGEYOXAnozjhXNqqBMBALt8bjpVwC1PZ7pEdbqH3aUHOWWgNC2DMJL8Fp3lFgdPOoVhTjbgRT5N/CZF0PALTFUgA31av2FwfDJEyQrz6nGoTkivru0V4f6/lXjGY4z/ml3hhDxQhDUXCKzpdY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773979926; c=relaxed/simple; bh=cKZ9DA8d7AqMDYmuVI90xfeG8zhHCOGpAlGVK6XL3Nw=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Qg50ZGMSO67AKAfHDT/AIoSD8/yNOcPd/Lqc8bgzeGEuM9bRWvmc55uG4HNapl7jwxNmM9NJ91RxtITeUUJHXWoFXrMlR3dwb0mQ6Z+4j4Hqlj63ah8k5jid+YdmyFIQ4bQmaGABDbTcArZYXcEFQ+TiAH1B5/0s/3GZQdphxlA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=SJIazOiv; arc=none smtp.client-ip=209.85.128.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="SJIazOiv" Received: by mail-yw1-f174.google.com with SMTP id 00721157ae682-794719afcd4so12277317b3.1 for ; Thu, 19 Mar 2026 21:12:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773979924; x=1774584724; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=QfUjsYd7dbRw2uqaXUlO8/PTLsP2ayWwRNJQy8iJQ8Y=; b=SJIazOivsFRTZtr9cJTGqVb5ZgVCT7nrlN+pKrR7XJQ1oBzUVKFlixGg14X36AJidC DLRhKpdtfddj6hcgPCA3aiJiqbawE+QhiyrigMH2bpA84FcUqUycy6pFSf9mQF22PDPY rxdCTVI1QJ99sxBQE1P6ZZ6crLhwLW62q8Igk2EtrLwJxVhGH7loy1TN59Tz64xXCREz niK5hVlBnryL+leKeC19AjjS/j4VRst1c2Xy9gz6PesFm1YxSJRI/h3uQGS15DUJfK9f n2lKP3FHIUu674DQhVIbq1SaxKJ44RtGXZpSVOHkRWfTxQQmacoK68fvBShqvZhoOVqY 72pQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773979924; x=1774584724; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=QfUjsYd7dbRw2uqaXUlO8/PTLsP2ayWwRNJQy8iJQ8Y=; b=hSdMuv1ASap9aegwZJSaXhN/5ZTpayrzXtKkXF/aEQG/dibPLn32DRx8KxRZMY8QjD +wcP3fio5GPV7wvVkCvKVkgW2Dfi9lTA7W7DMgr6hRtNPuCuZXR8hyd1iMUIFOWWSPx7 8MViFlg+Npj7w85ep6M0N0bQLdwL5EzION3DJ7473cBc0zF0Spm2p2Oxwlyu6zncPFK5 Cn6YZsn9HzDDQpwjlKbje2XolauJ5ElHQGfF2Cq6iPrvLz9t3od8deQUQqYFNu1TXqYM Zz/QirbjT0wASf7JSL6WqoaYe7OFhIjxuvBqg2akVrXoFWaWNjdFce9htoPf/youMih7 YWVQ== X-Forwarded-Encrypted: i=1; AJvYcCV9VF08lAtlKqzGyk19xCXWnesI+JO8e9NykRL1srx3HGFzB02EL2ArNY3VraC2T82ikNSA+Rp/uTYYmPU=@vger.kernel.org X-Gm-Message-State: AOJu0YydMT3K1Zals5kO8hiUl0M5j1gILNgiYfFNKjNoSncdUH5ebLRK icqyRfL5aIFi3e+MOnBUWhdOPihr3xcxEg69q1/e3y7vLRUs6ItdN0mR X-Gm-Gg: ATEYQzyGKmPWlMyCjA1UxwWXGOVABfTKPh6Uo8vwKccvAYlCx3yLFp3edZSGhvSfOqR lKwO5JhpuQDqDbBUHusIn2CJN5oD8epSseK4Pa/trbXZQof3qOnEN83icWhQXWh1ivGDs5OUVRf VxMhWNIOWxLkOzyHycOveChCN2bdq8Wbq6ev1U+2e8Y7n/O/DAHmHyUItbmt+YcXcb8y45dVpCe vHM2vjGvjlgUhpMxncQoMSvHiRu97Rf336Zuws28ut8gwhHXeFhb/D8OKesJ566rMGv6xH9yoyF ZZzGCvS7dgB6n0Rh1DyW/4VyqPjaHjyF/tOt+yWwDVGVAvDgbnD/zsH4ty/EVjLx3Picd2rabtP Xhn+2fUn3dtrk2yWN316z7Qd3ZwhyxmmGzOf2pnLIcLOhdf+RHooxuib6bw97OaWbeP7rjvMvx5 sSR71TP57ccmn4Hvx8CN4r514Q8+tWCAaiqwVsFnD/oCsfi9iwvi0w0E4= X-Received: by 2002:a05:690c:1a:b0:79a:67a0:adeb with SMTP id 00721157ae682-79a90c26448mr17621307b3.50.1773979924411; Thu, 19 Mar 2026 21:12:04 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d::8bd]) by smtp.gmail.com with ESMTPSA id 956f58d0204a3-64eabe7e343sm719089d50.11.2026.03.19.21.12.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Mar 2026 21:12:03 -0700 (PDT) From: Rosen Penev To: linux-scsi@vger.kernel.org Cc: Saurav Kashyap , Javed Hasan , GR-QLogic-Storage-Upstream@marvell.com (maintainer:BROADCOM BNX2FC 10 GIGABIT FCOE DRIVER), "James E.J. Bottomley" , "Martin K. Petersen" , linux-kernel@vger.kernel.org (open list) Subject: [PATCH] scsi: bx2fc: use kzalloc_flex Date: Thu, 19 Mar 2026 21:11:46 -0700 Message-ID: <20260320041146.46873-1-rosenp@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Avoid calculating sizes manually. Switch to flexible array member so that it works properly. Signed-off-by: Rosen Penev --- drivers/scsi/bnx2fc/bnx2fc.h | 2 +- drivers/scsi/bnx2fc/bnx2fc_io.c | 14 +++----------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/drivers/scsi/bnx2fc/bnx2fc.h b/drivers/scsi/bnx2fc/bnx2fc.h index 8c8968ec8cb4..30d8b563db0c 100644 --- a/drivers/scsi/bnx2fc/bnx2fc.h +++ b/drivers/scsi/bnx2fc/bnx2fc.h @@ -281,7 +281,7 @@ struct bnx2fc_cmd_mgr { struct list_head *free_list; spinlock_t *free_list_lock; struct io_bdt **io_bdt_pool; - struct bnx2fc_cmd **cmds; + struct bnx2fc_cmd *cmds[]; }; =20 struct bnx2fc_rport { diff --git a/drivers/scsi/bnx2fc/bnx2fc_io.c b/drivers/scsi/bnx2fc/bnx2fc_i= o.c index 9c7a541a4523..dd1c4b3232e1 100644 --- a/drivers/scsi/bnx2fc/bnx2fc_io.c +++ b/drivers/scsi/bnx2fc/bnx2fc_io.c @@ -213,8 +213,6 @@ struct bnx2fc_cmd_mgr *bnx2fc_cmd_mgr_alloc(struct bnx2= fc_hba *hba) struct bnx2fc_cmd_mgr *cmgr; struct io_bdt *bdt_info; struct bnx2fc_cmd *io_req; - size_t len; - u32 mem_size; u16 xid; int i; int num_ios, num_pri_ios; @@ -231,10 +229,8 @@ struct bnx2fc_cmd_mgr *bnx2fc_cmd_mgr_alloc(struct bnx= 2fc_hba *hba) BNX2FC_MISC_DBG("min xid 0x%x, max xid 0x%x\n", min_xid, max_xid); =20 num_ios =3D max_xid - min_xid + 1; - len =3D (num_ios * (sizeof(struct bnx2fc_cmd *))); - len +=3D sizeof(struct bnx2fc_cmd_mgr); =20 - cmgr =3D kzalloc(len, GFP_KERNEL); + cmgr =3D kzalloc_flex(*cmgr, cmds, num_ios); if (!cmgr) { printk(KERN_ERR PFX "failed to alloc cmgr\n"); return NULL; @@ -255,8 +251,6 @@ struct bnx2fc_cmd_mgr *bnx2fc_cmd_mgr_alloc(struct bnx2= fc_hba *hba) goto mem_err; } =20 - cmgr->cmds =3D (struct bnx2fc_cmd **)(cmgr + 1); - for (i =3D 0; i < arr_sz; i++) { INIT_LIST_HEAD(&cmgr->free_list[i]); spin_lock_init(&cmgr->free_list_lock[i]); @@ -292,16 +286,14 @@ struct bnx2fc_cmd_mgr *bnx2fc_cmd_mgr_alloc(struct bn= x2fc_hba *hba) } =20 /* Allocate pool of io_bdts - one for each bnx2fc_cmd */ - mem_size =3D num_ios * sizeof(struct io_bdt *); - cmgr->io_bdt_pool =3D kzalloc(mem_size, GFP_KERNEL); + cmgr->io_bdt_pool =3D kzalloc_objs(struct io_bdt *, num_ios); if (!cmgr->io_bdt_pool) { printk(KERN_ERR PFX "failed to alloc io_bdt_pool\n"); goto mem_err; } =20 - mem_size =3D sizeof(struct io_bdt); for (i =3D 0; i < num_ios; i++) { - cmgr->io_bdt_pool[i] =3D kmalloc(mem_size, GFP_KERNEL); + cmgr->io_bdt_pool[i] =3D kmalloc_obj(struct io_bdt); if (!cmgr->io_bdt_pool[i]) { printk(KERN_ERR PFX "failed to alloc " "io_bdt_pool[%d]\n", i); --=20 2.53.0