Skip to content

Commit 9d922f5

Browse files
GustavoARSilvakuba-moo
authored andcommitted
net: huawei: hinic: Use devm_kcalloc() instead of devm_kzalloc()
Use 2-factor multiplication argument form devm_kcalloc() instead of devm_kzalloc(). Link: KSPP/linux#162 Signed-off-by: Gustavo A. R. Silva <[email protected]> Reviewed-by: Kees Cook <[email protected]> Link: https://lore.kernel.org/r/20211208040311.GA169838@embeddedor Signed-off-by: Jakub Kicinski <[email protected]>
1 parent d7ca9a3 commit 9d922f5

File tree

7 files changed

+31
-40
lines changed

7 files changed

+31
-40
lines changed

drivers/net/ethernet/huawei/hinic/hinic_hw_api_cmd.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -814,7 +814,6 @@ static int api_chain_init(struct hinic_api_cmd_chain *chain,
814814
{
815815
struct hinic_hwif *hwif = attr->hwif;
816816
struct pci_dev *pdev = hwif->pdev;
817-
size_t cell_ctxt_size;
818817

819818
chain->hwif = hwif;
820819
chain->chain_type = attr->chain_type;
@@ -826,8 +825,8 @@ static int api_chain_init(struct hinic_api_cmd_chain *chain,
826825

827826
sema_init(&chain->sem, 1);
828827

829-
cell_ctxt_size = chain->num_cells * sizeof(*chain->cell_ctxt);
830-
chain->cell_ctxt = devm_kzalloc(&pdev->dev, cell_ctxt_size, GFP_KERNEL);
828+
chain->cell_ctxt = devm_kcalloc(&pdev->dev, chain->num_cells,
829+
sizeof(*chain->cell_ctxt), GFP_KERNEL);
831830
if (!chain->cell_ctxt)
832831
return -ENOMEM;
833832

drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -796,11 +796,10 @@ static int init_cmdqs_ctxt(struct hinic_hwdev *hwdev,
796796
struct hinic_cmdq_ctxt *cmdq_ctxts;
797797
struct pci_dev *pdev = hwif->pdev;
798798
struct hinic_pfhwdev *pfhwdev;
799-
size_t cmdq_ctxts_size;
800799
int err;
801800

802-
cmdq_ctxts_size = HINIC_MAX_CMDQ_TYPES * sizeof(*cmdq_ctxts);
803-
cmdq_ctxts = devm_kzalloc(&pdev->dev, cmdq_ctxts_size, GFP_KERNEL);
801+
cmdq_ctxts = devm_kcalloc(&pdev->dev, HINIC_MAX_CMDQ_TYPES,
802+
sizeof(*cmdq_ctxts), GFP_KERNEL);
804803
if (!cmdq_ctxts)
805804
return -ENOMEM;
806805

@@ -884,7 +883,6 @@ int hinic_init_cmdqs(struct hinic_cmdqs *cmdqs, struct hinic_hwif *hwif,
884883
struct hinic_func_to_io *func_to_io = cmdqs_to_func_to_io(cmdqs);
885884
struct pci_dev *pdev = hwif->pdev;
886885
struct hinic_hwdev *hwdev;
887-
size_t saved_wqs_size;
888886
u16 max_wqe_size;
889887
int err;
890888

@@ -895,8 +893,8 @@ int hinic_init_cmdqs(struct hinic_cmdqs *cmdqs, struct hinic_hwif *hwif,
895893
if (!cmdqs->cmdq_buf_pool)
896894
return -ENOMEM;
897895

898-
saved_wqs_size = HINIC_MAX_CMDQ_TYPES * sizeof(struct hinic_wq);
899-
cmdqs->saved_wqs = devm_kzalloc(&pdev->dev, saved_wqs_size, GFP_KERNEL);
896+
cmdqs->saved_wqs = devm_kcalloc(&pdev->dev, HINIC_MAX_CMDQ_TYPES,
897+
sizeof(*cmdqs->saved_wqs), GFP_KERNEL);
900898
if (!cmdqs->saved_wqs) {
901899
err = -ENOMEM;
902900
goto err_saved_wqs;

drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,6 @@ static int init_msix(struct hinic_hwdev *hwdev)
162162
struct hinic_hwif *hwif = hwdev->hwif;
163163
struct pci_dev *pdev = hwif->pdev;
164164
int nr_irqs, num_aeqs, num_ceqs;
165-
size_t msix_entries_size;
166165
int i, err;
167166

168167
num_aeqs = HINIC_HWIF_NUM_AEQS(hwif);
@@ -171,8 +170,8 @@ static int init_msix(struct hinic_hwdev *hwdev)
171170
if (nr_irqs > HINIC_HWIF_NUM_IRQS(hwif))
172171
nr_irqs = HINIC_HWIF_NUM_IRQS(hwif);
173172

174-
msix_entries_size = nr_irqs * sizeof(*hwdev->msix_entries);
175-
hwdev->msix_entries = devm_kzalloc(&pdev->dev, msix_entries_size,
173+
hwdev->msix_entries = devm_kcalloc(&pdev->dev, nr_irqs,
174+
sizeof(*hwdev->msix_entries),
176175
GFP_KERNEL);
177176
if (!hwdev->msix_entries)
178177
return -ENOMEM;

drivers/net/ethernet/huawei/hinic/hinic_hw_eqs.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -631,16 +631,15 @@ static int alloc_eq_pages(struct hinic_eq *eq)
631631
struct hinic_hwif *hwif = eq->hwif;
632632
struct pci_dev *pdev = hwif->pdev;
633633
u32 init_val, addr, val;
634-
size_t addr_size;
635634
int err, pg;
636635

637-
addr_size = eq->num_pages * sizeof(*eq->dma_addr);
638-
eq->dma_addr = devm_kzalloc(&pdev->dev, addr_size, GFP_KERNEL);
636+
eq->dma_addr = devm_kcalloc(&pdev->dev, eq->num_pages,
637+
sizeof(*eq->dma_addr), GFP_KERNEL);
639638
if (!eq->dma_addr)
640639
return -ENOMEM;
641640

642-
addr_size = eq->num_pages * sizeof(*eq->virt_addr);
643-
eq->virt_addr = devm_kzalloc(&pdev->dev, addr_size, GFP_KERNEL);
641+
eq->virt_addr = devm_kcalloc(&pdev->dev, eq->num_pages,
642+
sizeof(*eq->virt_addr), GFP_KERNEL);
644643
if (!eq->virt_addr) {
645644
err = -ENOMEM;
646645
goto err_virt_addr_alloc;

drivers/net/ethernet/huawei/hinic/hinic_hw_wq.c

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -193,20 +193,20 @@ static int alloc_page_arrays(struct hinic_wqs *wqs)
193193
{
194194
struct hinic_hwif *hwif = wqs->hwif;
195195
struct pci_dev *pdev = hwif->pdev;
196-
size_t size;
197196

198-
size = wqs->num_pages * sizeof(*wqs->page_paddr);
199-
wqs->page_paddr = devm_kzalloc(&pdev->dev, size, GFP_KERNEL);
197+
wqs->page_paddr = devm_kcalloc(&pdev->dev, wqs->num_pages,
198+
sizeof(*wqs->page_paddr), GFP_KERNEL);
200199
if (!wqs->page_paddr)
201200
return -ENOMEM;
202201

203-
size = wqs->num_pages * sizeof(*wqs->page_vaddr);
204-
wqs->page_vaddr = devm_kzalloc(&pdev->dev, size, GFP_KERNEL);
202+
wqs->page_vaddr = devm_kcalloc(&pdev->dev, wqs->num_pages,
203+
sizeof(*wqs->page_vaddr), GFP_KERNEL);
205204
if (!wqs->page_vaddr)
206205
goto err_page_vaddr;
207206

208-
size = wqs->num_pages * sizeof(*wqs->shadow_page_vaddr);
209-
wqs->shadow_page_vaddr = devm_kzalloc(&pdev->dev, size, GFP_KERNEL);
207+
wqs->shadow_page_vaddr = devm_kcalloc(&pdev->dev, wqs->num_pages,
208+
sizeof(*wqs->shadow_page_vaddr),
209+
GFP_KERNEL);
210210
if (!wqs->shadow_page_vaddr)
211211
goto err_page_shadow_vaddr;
212212

@@ -379,15 +379,14 @@ static int alloc_wqes_shadow(struct hinic_wq *wq)
379379
{
380380
struct hinic_hwif *hwif = wq->hwif;
381381
struct pci_dev *pdev = hwif->pdev;
382-
size_t size;
383382

384-
size = wq->num_q_pages * wq->max_wqe_size;
385-
wq->shadow_wqe = devm_kzalloc(&pdev->dev, size, GFP_KERNEL);
383+
wq->shadow_wqe = devm_kcalloc(&pdev->dev, wq->num_q_pages,
384+
wq->max_wqe_size, GFP_KERNEL);
386385
if (!wq->shadow_wqe)
387386
return -ENOMEM;
388387

389-
size = wq->num_q_pages * sizeof(wq->prod_idx);
390-
wq->shadow_idx = devm_kzalloc(&pdev->dev, size, GFP_KERNEL);
388+
wq->shadow_idx = devm_kcalloc(&pdev->dev, wq->num_q_pages,
389+
sizeof(wq->prod_idx), GFP_KERNEL);
391390
if (!wq->shadow_idx)
392391
goto err_shadow_idx;
393392

drivers/net/ethernet/huawei/hinic/hinic_main.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -144,13 +144,12 @@ static int create_txqs(struct hinic_dev *nic_dev)
144144
{
145145
int err, i, j, num_txqs = hinic_hwdev_num_qps(nic_dev->hwdev);
146146
struct net_device *netdev = nic_dev->netdev;
147-
size_t txq_size;
148147

149148
if (nic_dev->txqs)
150149
return -EINVAL;
151150

152-
txq_size = num_txqs * sizeof(*nic_dev->txqs);
153-
nic_dev->txqs = devm_kzalloc(&netdev->dev, txq_size, GFP_KERNEL);
151+
nic_dev->txqs = devm_kcalloc(&netdev->dev, num_txqs,
152+
sizeof(*nic_dev->txqs), GFP_KERNEL);
154153
if (!nic_dev->txqs)
155154
return -ENOMEM;
156155

@@ -241,13 +240,12 @@ static int create_rxqs(struct hinic_dev *nic_dev)
241240
{
242241
int err, i, j, num_rxqs = hinic_hwdev_num_qps(nic_dev->hwdev);
243242
struct net_device *netdev = nic_dev->netdev;
244-
size_t rxq_size;
245243

246244
if (nic_dev->rxqs)
247245
return -EINVAL;
248246

249-
rxq_size = num_rxqs * sizeof(*nic_dev->rxqs);
250-
nic_dev->rxqs = devm_kzalloc(&netdev->dev, rxq_size, GFP_KERNEL);
247+
nic_dev->rxqs = devm_kcalloc(&netdev->dev, num_rxqs,
248+
sizeof(*nic_dev->rxqs), GFP_KERNEL);
251249
if (!nic_dev->rxqs)
252250
return -ENOMEM;
253251

drivers/net/ethernet/huawei/hinic/hinic_tx.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -862,7 +862,6 @@ int hinic_init_txq(struct hinic_txq *txq, struct hinic_sq *sq,
862862
struct hinic_dev *nic_dev = netdev_priv(netdev);
863863
struct hinic_hwdev *hwdev = nic_dev->hwdev;
864864
int err, irqname_len;
865-
size_t sges_size;
866865

867866
txq->netdev = netdev;
868867
txq->sq = sq;
@@ -871,13 +870,13 @@ int hinic_init_txq(struct hinic_txq *txq, struct hinic_sq *sq,
871870

872871
txq->max_sges = HINIC_MAX_SQ_BUFDESCS;
873872

874-
sges_size = txq->max_sges * sizeof(*txq->sges);
875-
txq->sges = devm_kzalloc(&netdev->dev, sges_size, GFP_KERNEL);
873+
txq->sges = devm_kcalloc(&netdev->dev, txq->max_sges,
874+
sizeof(*txq->sges), GFP_KERNEL);
876875
if (!txq->sges)
877876
return -ENOMEM;
878877

879-
sges_size = txq->max_sges * sizeof(*txq->free_sges);
880-
txq->free_sges = devm_kzalloc(&netdev->dev, sges_size, GFP_KERNEL);
878+
txq->free_sges = devm_kcalloc(&netdev->dev, txq->max_sges,
879+
sizeof(*txq->free_sges), GFP_KERNEL);
881880
if (!txq->free_sges) {
882881
err = -ENOMEM;
883882
goto err_alloc_free_sges;

0 commit comments

Comments
 (0)