diff options
| author | Kees Cook <kees@kernel.org> | 2026-02-20 23:49:23 -0800 |
|---|---|---|
| committer | Kees Cook <kees@kernel.org> | 2026-02-21 01:02:28 -0800 |
| commit | 69050f8d6d075dc01af7a5f2f550a8067510366f (patch) | |
| tree | bb265f94d9dfa7876c06a5d9f88673d496a15341 /drivers/net/ethernet | |
| parent | d39a1d7486d98668dd34aaa6732aad7977c45f5a (diff) | |
treewide: Replace kmalloc with kmalloc_obj for non-scalar types
This is the result of running the Coccinelle script from
scripts/coccinelle/api/kmalloc_objs.cocci. The script is designed to
avoid scalar types (which need careful case-by-case checking), and
instead replace kmalloc-family calls that allocate struct or union
object instances:
Single allocations: kmalloc(sizeof(TYPE), ...)
are replaced with: kmalloc_obj(TYPE, ...)
Array allocations: kmalloc_array(COUNT, sizeof(TYPE), ...)
are replaced with: kmalloc_objs(TYPE, COUNT, ...)
Flex array allocations: kmalloc(struct_size(PTR, FAM, COUNT), ...)
are replaced with: kmalloc_flex(*PTR, FAM, COUNT, ...)
(where TYPE may also be *VAR)
The resulting allocations no longer return "void *", instead returning
"TYPE *".
Signed-off-by: Kees Cook <kees@kernel.org>
Diffstat (limited to 'drivers/net/ethernet')
679 files changed, 2377 insertions, 2556 deletions
diff --git a/drivers/net/ethernet/adi/adin1110.c b/drivers/net/ethernet/adi/adin1110.c index 1b4e37d000b9..53fac3dc8be6 100644 --- a/drivers/net/ethernet/adi/adin1110.c +++ b/drivers/net/ethernet/adi/adin1110.c @@ -1492,7 +1492,7 @@ static int adin1110_switchdev_event(struct notifier_block *unused, if (!adin1110_port_dev_check(netdev)) return NOTIFY_DONE; - switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC); + switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC); if (WARN_ON(!switchdev_work)) return NOTIFY_BAD; diff --git a/drivers/net/ethernet/agere/et131x.c b/drivers/net/ethernet/agere/et131x.c index 5c8217638dda..30cc8acd2b8c 100644 --- a/drivers/net/ethernet/agere/et131x.c +++ b/drivers/net/ethernet/agere/et131x.c @@ -1866,10 +1866,10 @@ static int et131x_rx_dma_memory_alloc(struct et131x_adapter *adapter) struct fbr_lookup *fbr; /* Alloc memory for the lookup table */ - rx_ring->fbr[0] = kzalloc(sizeof(*fbr), GFP_KERNEL); + rx_ring->fbr[0] = kzalloc_obj(*fbr, GFP_KERNEL); if (rx_ring->fbr[0] == NULL) return -ENOMEM; - rx_ring->fbr[1] = kzalloc(sizeof(*fbr), GFP_KERNEL); + rx_ring->fbr[1] = kzalloc_obj(*fbr, GFP_KERNEL); if (rx_ring->fbr[1] == NULL) return -ENOMEM; @@ -2089,7 +2089,7 @@ static int et131x_init_recv(struct et131x_adapter *adapter) /* Setup each RFD */ for (rfdct = 0; rfdct < rx_ring->num_rfd; rfdct++) { - rfd = kzalloc(sizeof(*rfd), GFP_ATOMIC | GFP_DMA); + rfd = kzalloc_obj(*rfd, GFP_ATOMIC | GFP_DMA); if (!rfd) return -ENOMEM; @@ -2357,8 +2357,8 @@ static int et131x_tx_dma_memory_alloc(struct et131x_adapter *adapter) struct tx_ring *tx_ring = &adapter->tx_ring; /* Allocate memory for the TCB's (Transmit Control Block) */ - tx_ring->tcb_ring = kcalloc(NUM_TCB, sizeof(struct tcb), - GFP_KERNEL | GFP_DMA); + tx_ring->tcb_ring = kzalloc_objs(struct tcb, NUM_TCB, + GFP_KERNEL | GFP_DMA); if (!tx_ring->tcb_ring) return -ENOMEM; diff --git a/drivers/net/ethernet/airoha/airoha_npu.c b/drivers/net/ethernet/airoha/airoha_npu.c index 89f22f3f47dc..84090dee9814 100644 --- a/drivers/net/ethernet/airoha/airoha_npu.c +++ b/drivers/net/ethernet/airoha/airoha_npu.c @@ -333,7 +333,7 @@ static int airoha_npu_ppe_init(struct airoha_npu *npu) struct ppe_mbox_data *ppe_data; int err; - ppe_data = kzalloc(sizeof(*ppe_data), GFP_KERNEL); + ppe_data = kzalloc_obj(*ppe_data, GFP_KERNEL); if (!ppe_data) return -ENOMEM; @@ -354,7 +354,7 @@ static int airoha_npu_ppe_deinit(struct airoha_npu *npu) struct ppe_mbox_data *ppe_data; int err; - ppe_data = kzalloc(sizeof(*ppe_data), GFP_KERNEL); + ppe_data = kzalloc_obj(*ppe_data, GFP_KERNEL); if (!ppe_data) return -ENOMEM; @@ -375,7 +375,7 @@ static int airoha_npu_ppe_flush_sram_entries(struct airoha_npu *npu, struct ppe_mbox_data *ppe_data; int err; - ppe_data = kzalloc(sizeof(*ppe_data), GFP_KERNEL); + ppe_data = kzalloc_obj(*ppe_data, GFP_KERNEL); if (!ppe_data) return -ENOMEM; @@ -399,7 +399,7 @@ static int airoha_npu_foe_commit_entry(struct airoha_npu *npu, struct ppe_mbox_data *ppe_data; int err; - ppe_data = kzalloc(sizeof(*ppe_data), GFP_ATOMIC); + ppe_data = kzalloc_obj(*ppe_data, GFP_ATOMIC); if (!ppe_data) return -ENOMEM; @@ -434,7 +434,7 @@ static int airoha_npu_ppe_stats_setup(struct airoha_npu *npu, int err, size = num_stats_entries * sizeof(*npu->stats); struct ppe_mbox_data *ppe_data; - ppe_data = kzalloc(sizeof(*ppe_data), GFP_ATOMIC); + ppe_data = kzalloc_obj(*ppe_data, GFP_ATOMIC); if (!ppe_data) return -ENOMEM; diff --git a/drivers/net/ethernet/airoha/airoha_ppe.c b/drivers/net/ethernet/airoha/airoha_ppe.c index 2221bafaf7c9..a0f4c6e33bfc 100644 --- a/drivers/net/ethernet/airoha/airoha_ppe.c +++ b/drivers/net/ethernet/airoha/airoha_ppe.c @@ -778,7 +778,7 @@ airoha_ppe_foe_commit_subflow_entry(struct airoha_ppe *ppe, if (!hwe_p) return -EINVAL; - f = kzalloc(sizeof(*f), GFP_ATOMIC); + f = kzalloc_obj(*f, GFP_ATOMIC); if (!f) return -ENOMEM; @@ -1173,7 +1173,7 @@ static int airoha_ppe_flow_offload_replace(struct airoha_eth *eth, return err; } - e = kzalloc(sizeof(*e), GFP_KERNEL); + e = kzalloc_obj(*e, GFP_KERNEL); if (!e) return -ENOMEM; diff --git a/drivers/net/ethernet/alacritech/slicoss.c b/drivers/net/ethernet/alacritech/slicoss.c index 7488fb6ace0b..808ee88dcdc8 100644 --- a/drivers/net/ethernet/alacritech/slicoss.c +++ b/drivers/net/ethernet/alacritech/slicoss.c @@ -192,7 +192,7 @@ static int slic_new_upr(struct slic_device *sdev, unsigned int type, { struct slic_upr *upr; - upr = kmalloc(sizeof(*upr), GFP_ATOMIC); + upr = kmalloc_obj(*upr, GFP_ATOMIC); if (!upr) return -ENOMEM; upr->type = type; @@ -845,7 +845,7 @@ static int slic_init_tx_queue(struct slic_device *sdev) txq->put_idx = 0; txq->done_idx = 0; - txq->txbuffs = kcalloc(txq->len, sizeof(*buff), GFP_KERNEL); + txq->txbuffs = kzalloc_objs(*buff, txq->len, GFP_KERNEL); if (!txq->txbuffs) return -ENOMEM; @@ -922,7 +922,7 @@ static int slic_init_rx_queue(struct slic_device *sdev) rxq->done_idx = 0; rxq->put_idx = 0; - buff = kcalloc(rxq->len, sizeof(*buff), GFP_KERNEL); + buff = kzalloc_objs(*buff, rxq->len, GFP_KERNEL); if (!buff) return -ENOMEM; diff --git a/drivers/net/ethernet/allwinner/sun4i-emac.c b/drivers/net/ethernet/allwinner/sun4i-emac.c index 2f516b950f4e..fc7341a5cbb7 100644 --- a/drivers/net/ethernet/allwinner/sun4i-emac.c +++ b/drivers/net/ethernet/allwinner/sun4i-emac.c @@ -223,7 +223,7 @@ emac_alloc_dma_req(struct emac_board_info *db, { struct emac_dma_req *req; - req = kzalloc(sizeof(struct emac_dma_req), GFP_ATOMIC); + req = kzalloc_obj(struct emac_dma_req, GFP_ATOMIC); if (!req) return NULL; diff --git a/drivers/net/ethernet/alteon/acenic.c b/drivers/net/ethernet/alteon/acenic.c index 9e6f91df2ba0..81f57bc6b3a2 100644 --- a/drivers/net/ethernet/alteon/acenic.c +++ b/drivers/net/ethernet/alteon/acenic.c @@ -1149,7 +1149,7 @@ static int ace_init(struct net_device *dev) /* * Get the memory for the skb rings. */ - if (!(ap->skb = kzalloc(sizeof(struct ace_skb), GFP_KERNEL))) { + if (!(ap->skb = kzalloc_obj(struct ace_skb, GFP_KERNEL))) { ecode = -EAGAIN; goto init_error; } diff --git a/drivers/net/ethernet/altera/altera_tse_main.c b/drivers/net/ethernet/altera/altera_tse_main.c index ca55c5fd11df..2893fbaa51ca 100644 --- a/drivers/net/ethernet/altera/altera_tse_main.c +++ b/drivers/net/ethernet/altera/altera_tse_main.c @@ -258,14 +258,12 @@ static int alloc_init_skbufs(struct altera_tse_private *priv) int i; /* Create Rx ring buffer */ - priv->rx_ring = kcalloc(rx_descs, sizeof(struct tse_buffer), - GFP_KERNEL); + priv->rx_ring = kzalloc_objs(struct tse_buffer, rx_descs, GFP_KERNEL); if (!priv->rx_ring) goto err_rx_ring; /* Create Tx ring buffer */ - priv->tx_ring = kcalloc(tx_descs, sizeof(struct tse_buffer), - GFP_KERNEL); + priv->tx_ring = kzalloc_objs(struct tse_buffer, tx_descs, GFP_KERNEL); if (!priv->tx_ring) goto err_tx_ring; diff --git a/drivers/net/ethernet/amd/lance.c b/drivers/net/ethernet/amd/lance.c index b1e6620ad41d..98afd8cb0efb 100644 --- a/drivers/net/ethernet/amd/lance.c +++ b/drivers/net/ethernet/amd/lance.c @@ -551,7 +551,7 @@ static int __init lance_probe1(struct net_device *dev, int ioaddr, int irq, int dev->base_addr = ioaddr; /* Make certain the data structures used by the LANCE are aligned and DMAble. */ - lp = kzalloc(sizeof(*lp), GFP_DMA | GFP_KERNEL); + lp = kzalloc_obj(*lp, GFP_DMA | GFP_KERNEL); if (!lp) return -ENOMEM; if (lance_debug > 6) printk(" (#0x%05lx)", (unsigned long)lp); diff --git a/drivers/net/ethernet/amd/pcnet32.c b/drivers/net/ethernet/amd/pcnet32.c index 9eaefa0f5e80..e0705a54366b 100644 --- a/drivers/net/ethernet/amd/pcnet32.c +++ b/drivers/net/ethernet/amd/pcnet32.c @@ -491,11 +491,11 @@ static void pcnet32_realloc_tx_ring(struct net_device *dev, if (!new_tx_ring) return; - new_dma_addr_list = kcalloc(entries, sizeof(dma_addr_t), GFP_ATOMIC); + new_dma_addr_list = kzalloc_objs(dma_addr_t, entries, GFP_ATOMIC); if (!new_dma_addr_list) goto free_new_tx_ring; - new_skb_list = kcalloc(entries, sizeof(struct sk_buff *), GFP_ATOMIC); + new_skb_list = kzalloc_objs(struct sk_buff *, entries, GFP_ATOMIC); if (!new_skb_list) goto free_new_lists; @@ -550,11 +550,11 @@ static void pcnet32_realloc_rx_ring(struct net_device *dev, if (!new_rx_ring) return; - new_dma_addr_list = kcalloc(entries, sizeof(dma_addr_t), GFP_ATOMIC); + new_dma_addr_list = kzalloc_objs(dma_addr_t, entries, GFP_ATOMIC); if (!new_dma_addr_list) goto free_new_rx_ring; - new_skb_list = kcalloc(entries, sizeof(struct sk_buff *), GFP_ATOMIC); + new_skb_list = kzalloc_objs(struct sk_buff *, entries, GFP_ATOMIC); if (!new_skb_list) goto free_new_lists; @@ -2035,23 +2035,21 @@ static int pcnet32_alloc_ring(struct net_device *dev, const char *name) return -ENOMEM; } - lp->tx_dma_addr = kcalloc(lp->tx_ring_size, sizeof(dma_addr_t), - GFP_KERNEL); + lp->tx_dma_addr = kzalloc_objs(dma_addr_t, lp->tx_ring_size, GFP_KERNEL); if (!lp->tx_dma_addr) return -ENOMEM; - lp->rx_dma_addr = kcalloc(lp->rx_ring_size, sizeof(dma_addr_t), - GFP_KERNEL); + lp->rx_dma_addr = kzalloc_objs(dma_addr_t, lp->rx_ring_size, GFP_KERNEL); if (!lp->rx_dma_addr) return -ENOMEM; - lp->tx_skbuff = kcalloc(lp->tx_ring_size, sizeof(struct sk_buff *), - GFP_KERNEL); + lp->tx_skbuff = kzalloc_objs(struct sk_buff *, lp->tx_ring_size, + GFP_KERNEL); if (!lp->tx_skbuff) return -ENOMEM; - lp->rx_skbuff = kcalloc(lp->rx_ring_size, sizeof(struct sk_buff *), - GFP_KERNEL); + lp->rx_skbuff = kzalloc_objs(struct sk_buff *, lp->rx_ring_size, + GFP_KERNEL); if (!lp->rx_skbuff) return -ENOMEM; diff --git a/drivers/net/ethernet/amd/pds_core/auxbus.c b/drivers/net/ethernet/amd/pds_core/auxbus.c index 92f359f2b449..6f0ffdf14e96 100644 --- a/drivers/net/ethernet/amd/pds_core/auxbus.c +++ b/drivers/net/ethernet/amd/pds_core/auxbus.c @@ -140,7 +140,7 @@ static struct pds_auxiliary_dev *pdsc_auxbus_dev_register(struct pdsc *cf, struct pds_auxiliary_dev *padev; int err; - padev = kzalloc(sizeof(*padev), GFP_KERNEL); + padev = kzalloc_obj(*padev, GFP_KERNEL); if (!padev) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/amd/pds_core/core.c b/drivers/net/ethernet/amd/pds_core/core.c index 076dfe2910c7..af2f2c7f5de5 100644 --- a/drivers/net/ethernet/amd/pds_core/core.c +++ b/drivers/net/ethernet/amd/pds_core/core.c @@ -415,9 +415,9 @@ static int pdsc_viftypes_init(struct pdsc *pdsc) { enum pds_core_vif_types vt; - pdsc->viftype_status = kcalloc(ARRAY_SIZE(pdsc_viftype_defaults), - sizeof(*pdsc->viftype_status), - GFP_KERNEL); + pdsc->viftype_status = kzalloc_objs(*pdsc->viftype_status, + ARRAY_SIZE(pdsc_viftype_defaults), + GFP_KERNEL); if (!pdsc->viftype_status) return -ENOMEM; diff --git a/drivers/net/ethernet/amd/pds_core/dev.c b/drivers/net/ethernet/amd/pds_core/dev.c index 495ef4ef8c10..6ae27bfb3375 100644 --- a/drivers/net/ethernet/amd/pds_core/dev.c +++ b/drivers/net/ethernet/amd/pds_core/dev.c @@ -359,7 +359,7 @@ int pdsc_dev_init(struct pdsc *pdsc) nintrs = min_t(unsigned int, num_online_cpus(), nintrs); /* Get intr_info struct array for tracking */ - pdsc->intr_info = kcalloc(nintrs, sizeof(*pdsc->intr_info), GFP_KERNEL); + pdsc->intr_info = kzalloc_objs(*pdsc->intr_info, nintrs, GFP_KERNEL); if (!pdsc->intr_info) return -ENOMEM; diff --git a/drivers/net/ethernet/amd/pds_core/main.c b/drivers/net/ethernet/amd/pds_core/main.c index c7a2eff57632..743b154d2a88 100644 --- a/drivers/net/ethernet/amd/pds_core/main.c +++ b/drivers/net/ethernet/amd/pds_core/main.c @@ -146,8 +146,7 @@ static int pdsc_sriov_configure(struct pci_dev *pdev, int num_vfs) int ret = 0; if (num_vfs > 0) { - pdsc->vfs = kcalloc(num_vfs, sizeof(struct pdsc_vf), - GFP_KERNEL); + pdsc->vfs = kzalloc_objs(struct pdsc_vf, num_vfs, GFP_KERNEL); if (!pdsc->vfs) return -ENOMEM; pdsc->num_vfs = num_vfs; diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-selftest.c b/drivers/net/ethernet/amd/xgbe/xgbe-selftest.c index 55e5e467facd..488f96bec1e7 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-selftest.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-selftest.c @@ -112,7 +112,7 @@ static int __xgbe_test_loopback(struct xgbe_prv_data *pdata, struct sk_buff *skb = NULL; int ret = 0; - tdata = kzalloc(sizeof(*tdata), GFP_KERNEL); + tdata = kzalloc_obj(*tdata, GFP_KERNEL); if (!tdata) return -ENOMEM; diff --git a/drivers/net/ethernet/apm/xgene-v2/main.c b/drivers/net/ethernet/apm/xgene-v2/main.c index d7ca847d44c7..b88764615994 100644 --- a/drivers/net/ethernet/apm/xgene-v2/main.c +++ b/drivers/net/ethernet/apm/xgene-v2/main.c @@ -405,7 +405,7 @@ static struct xge_desc_ring *xge_create_desc_ring(struct net_device *ndev) struct xge_desc_ring *ring; u16 size; - ring = kzalloc(sizeof(*ring), GFP_KERNEL); + ring = kzalloc_obj(*ring, GFP_KERNEL); if (!ring) return NULL; @@ -417,8 +417,8 @@ static struct xge_desc_ring *xge_create_desc_ring(struct net_device *ndev) if (!ring->desc_addr) goto err; - ring->pkt_info = kcalloc(XGENE_ENET_NUM_DESC, sizeof(*ring->pkt_info), - GFP_KERNEL); + ring->pkt_info = kzalloc_objs(*ring->pkt_info, XGENE_ENET_NUM_DESC, + GFP_KERNEL); if (!ring->pkt_info) goto err; diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_filters.c b/drivers/net/ethernet/aquantia/atlantic/aq_filters.c index 30a573db02bb..4f0b66917ce0 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_filters.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_filters.c @@ -688,7 +688,7 @@ int aq_add_rxnfc_rule(struct aq_nic_s *aq_nic, const struct ethtool_rxnfc *cmd) if (err) goto err_exit; - aq_rx_fltr = kzalloc(sizeof(*aq_rx_fltr), GFP_KERNEL); + aq_rx_fltr = kzalloc_obj(*aq_rx_fltr, GFP_KERNEL); if (unlikely(!aq_rx_fltr)) { err = -ENOMEM; goto err_exit; diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_macsec.c b/drivers/net/ethernet/aquantia/atlantic/aq_macsec.c index 6afff8af5e86..a47d5ec74b94 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_macsec.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_macsec.c @@ -1462,7 +1462,7 @@ int aq_macsec_init(struct aq_nic_s *nic) if (!(caps_lo & BIT(CAPS_LO_MACSEC))) return 0; - nic->macsec_cfg = kzalloc(sizeof(*cfg), GFP_KERNEL); + nic->macsec_cfg = kzalloc_obj(*cfg, GFP_KERNEL); if (!nic->macsec_cfg) return -ENOMEM; diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c index ed5231dece3f..05d656fb4a27 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c @@ -244,7 +244,7 @@ static int aq_pci_probe(struct pci_dev *pdev, if (err) goto err_ioremap; - self->aq_hw = kzalloc(sizeof(*self->aq_hw), GFP_KERNEL); + self->aq_hw = kzalloc_obj(*self->aq_hw, GFP_KERNEL); if (!self->aq_hw) { err = -ENOMEM; goto err_ioremap; diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_ptp.c b/drivers/net/ethernet/aquantia/atlantic/aq_ptp.c index 0fa0f891c0e0..83216657d1d8 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_ptp.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_ptp.c @@ -1130,8 +1130,8 @@ static void aq_ptp_gpio_init(struct ptp_clock_info *info, if (!info->n_pins) return; - info->pin_config = kcalloc(info->n_pins, sizeof(struct ptp_pin_desc), - GFP_KERNEL); + info->pin_config = kzalloc_objs(struct ptp_pin_desc, info->n_pins, + GFP_KERNEL); if (!info->pin_config) return; @@ -1183,7 +1183,7 @@ int aq_ptp_init(struct aq_nic_s *aq_nic, unsigned int idx_vec) aq_ptp_offset_init(&mbox.info.ptp_offset); - aq_ptp = kzalloc(sizeof(*aq_ptp), GFP_KERNEL); + aq_ptp = kzalloc_obj(*aq_ptp, GFP_KERNEL); if (!aq_ptp) { err = -ENOMEM; goto err_exit; diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_ring.c b/drivers/net/ethernet/aquantia/atlantic/aq_ring.c index d23d23bed39f..62478c605503 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_ring.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_ring.c @@ -138,7 +138,7 @@ static int aq_ring_alloc(struct aq_ring_s *self, int err = 0; self->buff_ring = - kcalloc(self->size, sizeof(struct aq_ring_buff_s), GFP_KERNEL); + kzalloc_objs(struct aq_ring_buff_s, self->size, GFP_KERNEL); if (!self->buff_ring) { err = -ENOMEM; diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_vec.c b/drivers/net/ethernet/aquantia/atlantic/aq_vec.c index 9769ab4f9bef..90eaf11076d2 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_vec.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_vec.c @@ -104,7 +104,7 @@ struct aq_vec_s *aq_vec_alloc(struct aq_nic_s *aq_nic, unsigned int idx, { struct aq_vec_s *self = NULL; - self = kzalloc(sizeof(*self), GFP_KERNEL); + self = kzalloc_obj(*self, GFP_KERNEL); if (!self) goto err_exit; diff --git a/drivers/net/ethernet/atheros/ag71xx.c b/drivers/net/ethernet/atheros/ag71xx.c index cbc730c7cff2..13e3bd7fe82b 100644 --- a/drivers/net/ethernet/atheros/ag71xx.c +++ b/drivers/net/ethernet/atheros/ag71xx.c @@ -1305,7 +1305,7 @@ static int ag71xx_rings_init(struct ag71xx *ag) ring_size = BIT(tx->order) + BIT(rx->order); tx_size = BIT(tx->order); - tx->buf = kcalloc(ring_size, sizeof(*tx->buf), GFP_KERNEL); + tx->buf = kzalloc_objs(*tx->buf, ring_size, GFP_KERNEL); if (!tx->buf) return -ENOMEM; diff --git a/drivers/net/ethernet/atheros/alx/main.c b/drivers/net/ethernet/atheros/alx/main.c index ad6d6abd885f..9b1923055293 100644 --- a/drivers/net/ethernet/atheros/alx/main.c +++ b/drivers/net/ethernet/atheros/alx/main.c @@ -616,7 +616,7 @@ static int alx_set_mac_address(struct net_device *netdev, void *data) static int alx_alloc_tx_ring(struct alx_priv *alx, struct alx_tx_queue *txq, int offset) { - txq->bufs = kcalloc(txq->count, sizeof(struct alx_buffer), GFP_KERNEL); + txq->bufs = kzalloc_objs(struct alx_buffer, txq->count, GFP_KERNEL); if (!txq->bufs) return -ENOMEM; @@ -630,7 +630,7 @@ static int alx_alloc_tx_ring(struct alx_priv *alx, struct alx_tx_queue *txq, static int alx_alloc_rx_ring(struct alx_priv *alx, struct alx_rx_queue *rxq, int offset) { - rxq->bufs = kcalloc(rxq->count, sizeof(struct alx_buffer), GFP_KERNEL); + rxq->bufs = kzalloc_objs(struct alx_buffer, rxq->count, GFP_KERNEL); if (!rxq->bufs) return -ENOMEM; @@ -746,7 +746,7 @@ static int alx_alloc_napis(struct alx_priv *alx) /* allocate alx_napi structures */ for (i = 0; i < alx->num_napi; i++) { - np = kzalloc(sizeof(struct alx_napi), GFP_KERNEL); + np = kzalloc_obj(struct alx_napi, GFP_KERNEL); if (!np) goto err_out; @@ -758,7 +758,7 @@ static int alx_alloc_napis(struct alx_priv *alx) /* allocate tx queues */ for (i = 0; i < alx->num_txq; i++) { np = alx->qnapi[i]; - txq = kzalloc(sizeof(*txq), GFP_KERNEL); + txq = kzalloc_obj(*txq, GFP_KERNEL); if (!txq) goto err_out; @@ -775,7 +775,7 @@ static int alx_alloc_napis(struct alx_priv *alx) /* allocate rx queues */ np = alx->qnapi[0]; - rxq = kzalloc(sizeof(*rxq), GFP_KERNEL); + rxq = kzalloc_obj(*rxq, GFP_KERNEL); if (!rxq) goto err_out; diff --git a/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c b/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c index d0a480430a95..612abed61fff 100644 --- a/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c +++ b/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c @@ -689,8 +689,8 @@ static int bcmasp_alloc_buffers(struct bcmasp_intf *intf) if (!intf->tx_spb_cpu) goto free_rx_edpkt_dma; - intf->tx_cbs = kcalloc(DESC_RING_COUNT, sizeof(struct bcmasp_tx_cb), - GFP_KERNEL); + intf->tx_cbs = kzalloc_objs(struct bcmasp_tx_cb, DESC_RING_COUNT, + GFP_KERNEL); if (!intf->tx_cbs) goto free_tx_spb_dma; diff --git a/drivers/net/ethernet/broadcom/bcm4908_enet.c b/drivers/net/ethernet/broadcom/bcm4908_enet.c index 203e8d0dd04b..fa1fd5667596 100644 --- a/drivers/net/ethernet/broadcom/bcm4908_enet.c +++ b/drivers/net/ethernet/broadcom/bcm4908_enet.c @@ -181,7 +181,7 @@ static int bcm4908_dma_alloc_buf_descs(struct bcm4908_enet *enet, goto err_free_buf_descs; } - ring->slots = kcalloc(ring->length, sizeof(*ring->slots), GFP_KERNEL); + ring->slots = kzalloc_objs(*ring->slots, ring->length, GFP_KERNEL); if (!ring->slots) goto err_free_buf_descs; diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c b/drivers/net/ethernet/broadcom/bcm63xx_enet.c index 92204fea1f08..00408af127e1 100644 --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c @@ -981,8 +981,8 @@ static int bcm_enet_open(struct net_device *dev) priv->tx_desc_alloc_size = size; priv->tx_desc_cpu = p; - priv->tx_skb = kcalloc(priv->tx_ring_size, sizeof(struct sk_buff *), - GFP_KERNEL); + priv->tx_skb = kzalloc_objs(struct sk_buff *, priv->tx_ring_size, + GFP_KERNEL); if (!priv->tx_skb) { ret = -ENOMEM; goto out_free_tx_ring; @@ -2149,8 +2149,8 @@ static int bcm_enetsw_open(struct net_device *dev) priv->tx_desc_alloc_size = size; priv->tx_desc_cpu = p; - priv->tx_skb = kcalloc(priv->tx_ring_size, sizeof(struct sk_buff *), - GFP_KERNEL); + priv->tx_skb = kzalloc_objs(struct sk_buff *, priv->tx_ring_size, + GFP_KERNEL); if (!priv->tx_skb) { dev_err(kdev, "cannot allocate tx skb queue\n"); ret = -ENOMEM; diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ethernet/broadcom/bcmsysport.c index bc4e1f3b3752..f81392cbedd1 100644 --- a/drivers/net/ethernet/broadcom/bcmsysport.c +++ b/drivers/net/ethernet/broadcom/bcmsysport.c @@ -1486,7 +1486,7 @@ static int bcm_sysport_init_tx_ring(struct bcm_sysport_priv *priv, /* Simple descriptors partitioning for now */ size = 256; - ring->cbs = kcalloc(size, sizeof(struct bcm_sysport_cb), GFP_KERNEL); + ring->cbs = kzalloc_objs(struct bcm_sysport_cb, size, GFP_KERNEL); if (!ring->cbs) { netif_err(priv, hw, priv->netdev, "CB allocation failed\n"); return -ENOMEM; @@ -1665,8 +1665,8 @@ static int bcm_sysport_init_rx_ring(struct bcm_sysport_priv *priv) priv->rx_bds = priv->base + SYS_PORT_RDMA_OFFSET; priv->rx_c_index = 0; priv->rx_read_ptr = 0; - priv->rx_cbs = kcalloc(priv->num_rx_bds, sizeof(struct bcm_sysport_cb), - GFP_KERNEL); + priv->rx_cbs = kzalloc_objs(struct bcm_sysport_cb, priv->num_rx_bds, + GFP_KERNEL); if (!priv->rx_cbs) { netif_err(priv, hw, priv->netdev, "CB allocation failed\n"); return -ENOMEM; diff --git a/drivers/net/ethernet/broadcom/bnge/bnge_auxr.c b/drivers/net/ethernet/broadcom/bnge/bnge_auxr.c index 5f4cb4991964..d530046e027d 100644 --- a/drivers/net/ethernet/broadcom/bnge/bnge_auxr.c +++ b/drivers/net/ethernet/broadcom/bnge/bnge_auxr.c @@ -210,7 +210,7 @@ void bnge_rdma_aux_device_init(struct bnge_dev *bd) if (!bnge_is_roce_en(bd)) return; - aux_priv = kzalloc(sizeof(*aux_priv), GFP_KERNEL); + aux_priv = kzalloc_obj(*aux_priv, GFP_KERNEL); if (!aux_priv) goto exit; @@ -235,13 +235,13 @@ void bnge_rdma_aux_device_init(struct bnge_dev *bd) } bd->aux_priv = aux_priv; - auxr_dev = kzalloc(sizeof(*auxr_dev), GFP_KERNEL); + auxr_dev = kzalloc_obj(*auxr_dev, GFP_KERNEL); if (!auxr_dev) goto aux_dev_uninit; aux_priv->auxr_dev = auxr_dev; - auxr_info = kzalloc(sizeof(*auxr_info), GFP_KERNEL); + auxr_info = kzalloc_obj(*auxr_info, GFP_KERNEL); if (!auxr_info) goto aux_dev_uninit; diff --git a/drivers/net/ethernet/broadcom/bnge/bnge_hwrm.c b/drivers/net/ethernet/broadcom/bnge/bnge_hwrm.c index c3087e5cd875..cf6e503d63a6 100644 --- a/drivers/net/ethernet/broadcom/bnge/bnge_hwrm.c +++ b/drivers/net/ethernet/broadcom/bnge/bnge_hwrm.c @@ -229,7 +229,7 @@ bnge_hwrm_create_token(struct bnge_dev *bd, enum bnge_hwrm_chnl dst) { struct bnge_hwrm_wait_token *token; - token = kzalloc(sizeof(*token), GFP_KERNEL); + token = kzalloc_obj(*token, GFP_KERNEL); if (!token) return NULL; diff --git a/drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c b/drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c index 91a4ef9e3150..579943445b24 100644 --- a/drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c +++ b/drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c @@ -242,7 +242,7 @@ static int bnge_alloc_all_ctx_pg_info(struct bnge_dev *bd, int ctx_max) if (ctxm->instance_bmap) n = hweight32(ctxm->instance_bmap); - ctxm->pg_info = kcalloc(n, sizeof(*ctxm->pg_info), GFP_KERNEL); + ctxm->pg_info = kzalloc_objs(*ctxm->pg_info, n, GFP_KERNEL); if (!ctxm->pg_info) return -ENOMEM; } @@ -269,7 +269,7 @@ int bnge_hwrm_func_backing_store_qcaps(struct bnge_dev *bd) if (rc) return rc; - ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); + ctx = kzalloc_obj(*ctx, GFP_KERNEL); if (!ctx) return -ENOMEM; bd->ctx = ctx; diff --git a/drivers/net/ethernet/broadcom/bnge/bnge_netdev.c b/drivers/net/ethernet/broadcom/bnge/bnge_netdev.c index b8e258842c61..74b552ee1796 100644 --- a/drivers/net/ethernet/broadcom/bnge/bnge_netdev.c +++ b/drivers/net/ethernet/broadcom/bnge/bnge_netdev.c @@ -127,11 +127,11 @@ static void bnge_free_cp_desc_arr(struct bnge_cp_ring_info *cpr) static int bnge_alloc_nq_desc_arr(struct bnge_nq_ring_info *nqr, int n) { - nqr->desc_ring = kcalloc(n, sizeof(*nqr->desc_ring), GFP_KERNEL); + nqr->desc_ring = kzalloc_objs(*nqr->desc_ring, n, GFP_KERNEL); if (!nqr->desc_ring) return -ENOMEM; - nqr->desc_mapping = kcalloc(n, sizeof(*nqr->desc_mapping), GFP_KERNEL); + nqr->desc_mapping = kzalloc_objs(*nqr->desc_mapping, n, GFP_KERNEL); if (!nqr->desc_mapping) goto err_free_desc_ring; return 0; @@ -144,11 +144,11 @@ err_free_desc_ring: static int bnge_alloc_cp_desc_arr(struct bnge_cp_ring_info *cpr, int n) { - cpr->desc_ring = kcalloc(n, sizeof(*cpr->desc_ring), GFP_KERNEL); + cpr->desc_ring = kzalloc_objs(*cpr->desc_ring, n, GFP_KERNEL); if (!cpr->desc_ring) return -ENOMEM; - cpr->desc_mapping = kcalloc(n, sizeof(*cpr->desc_mapping), GFP_KERNEL); + cpr->desc_mapping = kzalloc_objs(*cpr->desc_mapping, n, GFP_KERNEL); if (!cpr->desc_mapping) goto err_free_desc_ring; return 0; @@ -287,8 +287,7 @@ static int bnge_alloc_nq_tree(struct bnge_net *bn) tx = 1; } - nqr->cp_ring_arr = kcalloc(cp_count, sizeof(*cpr), - GFP_KERNEL); + nqr->cp_ring_arr = kzalloc_objs(*cpr, cp_count, GFP_KERNEL); if (!nqr->cp_ring_arr) { rc = -ENOMEM; goto err_free_nq_tree; @@ -510,21 +509,21 @@ static int bnge_alloc_tpa_info(struct bnge_net *bn) for (i = 0; i < bd->rx_nr_rings; i++) { struct bnge_rx_ring_info *rxr = &bn->rx_ring[i]; - rxr->rx_tpa = kcalloc(bn->max_tpa, sizeof(struct bnge_tpa_info), - GFP_KERNEL); + rxr->rx_tpa = kzalloc_objs(struct bnge_tpa_info, bn->max_tpa, + GFP_KERNEL); if (!rxr->rx_tpa) goto err_free_tpa_info; for (j = 0; j < bn->max_tpa; j++) { struct rx_agg_cmp *agg; - agg = kcalloc(MAX_SKB_FRAGS, sizeof(*agg), GFP_KERNEL); + agg = kzalloc_objs(*agg, MAX_SKB_FRAGS, GFP_KERNEL); if (!agg) goto err_free_tpa_info; rxr->rx_tpa[j].agg_arr = agg; } - rxr->rx_tpa_idx_map = kzalloc(sizeof(*rxr->rx_tpa_idx_map), - GFP_KERNEL); + rxr->rx_tpa_idx_map = kzalloc_obj(*rxr->rx_tpa_idx_map, + GFP_KERNEL); if (!rxr->rx_tpa_idx_map) goto err_free_tpa_info; } @@ -813,8 +812,8 @@ static int bnge_alloc_vnics(struct bnge_net *bn) */ num_vnics = 1; - bn->vnic_info = kcalloc(num_vnics, sizeof(struct bnge_vnic_info), - GFP_KERNEL); + bn->vnic_info = kzalloc_objs(struct bnge_vnic_info, num_vnics, + GFP_KERNEL); if (!bn->vnic_info) return -ENOMEM; @@ -841,9 +840,8 @@ static int bnge_init_ring_grps(struct bnge_net *bn) struct bnge_dev *bd = bn->bd; int i; - bn->grp_info = kcalloc(bd->nq_nr_rings, - sizeof(struct bnge_ring_grp_info), - GFP_KERNEL); + bn->grp_info = kzalloc_objs(struct bnge_ring_grp_info, bd->nq_nr_rings, + GFP_KERNEL); if (!bn->grp_info) return -ENOMEM; for (i = 0; i < bd->nq_nr_rings; i++) { @@ -903,9 +901,8 @@ static int bnge_alloc_core(struct bnge_net *bn) nqr->ring_struct.ring_mem.flags = BNGE_RMEM_RING_PTE_FLAG; } - bn->rx_ring = kcalloc(bd->rx_nr_rings, - sizeof(struct bnge_rx_ring_info), - GFP_KERNEL); + bn->rx_ring = kzalloc_objs(struct bnge_rx_ring_info, bd->rx_nr_rings, + GFP_KERNEL); if (!bn->rx_ring) goto err_free_core; @@ -920,9 +917,8 @@ static int bnge_alloc_core(struct bnge_net *bn) bn->bnapi[i]->rx_ring = &bn->rx_ring[i]; } - bn->tx_ring = kcalloc(bd->tx_nr_rings, - sizeof(struct bnge_tx_ring_info), - GFP_KERNEL); + bn->tx_ring = kzalloc_objs(struct bnge_tx_ring_info, bd->tx_nr_rings, + GFP_KERNEL); if (!bn->tx_ring) goto err_free_core; @@ -1778,7 +1774,7 @@ static struct bnge_l2_filter *bnge_alloc_l2_filter(struct bnge_net *bn, if (fltr) return fltr; - fltr = kzalloc(sizeof(*fltr), gfp); + fltr = kzalloc_obj(*fltr, gfp); if (!fltr) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/broadcom/bnge/bnge_resc.c b/drivers/net/ethernet/broadcom/bnge/bnge_resc.c index 943df5f60f01..155b48cd2af8 100644 --- a/drivers/net/ethernet/broadcom/bnge/bnge_resc.c +++ b/drivers/net/ethernet/broadcom/bnge/bnge_resc.c @@ -389,7 +389,7 @@ int bnge_alloc_irqs(struct bnge_dev *bd) num_entries = irqs_demand; if (pci_msix_can_alloc_dyn(bd->pdev)) num_entries = max; - bd->irq_tbl = kcalloc(num_entries, sizeof(*bd->irq_tbl), GFP_KERNEL); + bd->irq_tbl = kzalloc_objs(*bd->irq_tbl, num_entries, GFP_KERNEL); if (!bd->irq_tbl) { rc = -ENOMEM; goto err_free_irqs; diff --git a/drivers/net/ethernet/broadcom/bnge/bnge_rmem.c b/drivers/net/ethernet/broadcom/bnge/bnge_rmem.c index ee97be440c33..fb89737b481d 100644 --- a/drivers/net/ethernet/broadcom/bnge/bnge_rmem.c +++ b/drivers/net/ethernet/broadcom/bnge/bnge_rmem.c @@ -158,8 +158,8 @@ static int bnge_alloc_ctx_pg_tbls(struct bnge_dev *bd, int nr_tbls, i; rmem->depth = 2; - ctx_pg->ctx_pg_tbl = kcalloc(MAX_CTX_PAGES, sizeof(ctx_pg), - GFP_KERNEL); + ctx_pg->ctx_pg_tbl = kzalloc_objs(ctx_pg, MAX_CTX_PAGES, + GFP_KERNEL); if (!ctx_pg->ctx_pg_tbl) return -ENOMEM; nr_tbls = DIV_ROUND_UP(ctx_pg->nr_pages, MAX_CTX_PAGES); @@ -170,7 +170,7 @@ static int bnge_alloc_ctx_pg_tbls(struct bnge_dev *bd, for (i = 0; i < nr_tbls; i++) { struct bnge_ctx_pg_info *pg_tbl; - pg_tbl = kzalloc(sizeof(*pg_tbl), GFP_KERNEL); + pg_tbl = kzalloc_obj(*pg_tbl, GFP_KERNEL); if (!pg_tbl) return -ENOMEM; ctx_pg->ctx_pg_tbl[i] = pg_tbl; diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c index 805daae9dd36..97aafe021477 100644 --- a/drivers/net/ethernet/broadcom/bnx2.c +++ b/drivers/net/ethernet/broadcom/bnx2.c @@ -8084,7 +8084,7 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev) bp->phy_flags = 0; bp->temp_stats_blk = - kzalloc(sizeof(struct statistics_block), GFP_KERNEL); + kzalloc_obj(struct statistics_block, GFP_KERNEL); if (!bp->temp_stats_blk) { rc = -ENOMEM; diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c index e59530357e2c..ea0fc6add87d 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c @@ -4582,9 +4582,9 @@ static int bnx2x_alloc_fp_mem_at(struct bnx2x *bp, int index) "allocating tx memory of fp %d cos %d\n", index, cos); - txdata->tx_buf_ring = kcalloc(NUM_TX_BD, - sizeof(struct sw_tx_bd), - GFP_KERNEL); + txdata->tx_buf_ring = kzalloc_objs(struct sw_tx_bd, + NUM_TX_BD, + GFP_KERNEL); if (!txdata->tx_buf_ring) goto alloc_mem_err; txdata->tx_desc_ring = BNX2X_PCI_ALLOC(&txdata->tx_desc_mapping, @@ -4598,7 +4598,7 @@ static int bnx2x_alloc_fp_mem_at(struct bnx2x *bp, int index) if (!skip_rx_queue(bp, index)) { /* fastpath rx rings: rx_buf rx_desc rx_comp */ bnx2x_fp(bp, index, rx_buf_ring) = - kcalloc(NUM_RX_BD, sizeof(struct sw_rx_bd), GFP_KERNEL); + kzalloc_objs(struct sw_rx_bd, NUM_RX_BD, GFP_KERNEL); if (!bnx2x_fp(bp, index, rx_buf_ring)) goto alloc_mem_err; bnx2x_fp(bp, index, rx_desc_ring) = @@ -4616,8 +4616,7 @@ static int bnx2x_alloc_fp_mem_at(struct bnx2x *bp, int index) /* SGE ring */ bnx2x_fp(bp, index, rx_page_ring) = - kcalloc(NUM_RX_SGE, sizeof(struct sw_rx_page), - GFP_KERNEL); + kzalloc_objs(struct sw_rx_page, NUM_RX_SGE, GFP_KERNEL); if (!bnx2x_fp(bp, index, rx_page_ring)) goto alloc_mem_err; bnx2x_fp(bp, index, rx_sge_ring) = @@ -4747,13 +4746,14 @@ int bnx2x_alloc_mem_bp(struct bnx2x *bp) bp->fp_array_size = fp_array_size; BNX2X_DEV_INFO("fp_array_size %d\n", bp->fp_array_size); - fp = kcalloc(bp->fp_array_size, sizeof(*fp), GFP_KERNEL); + fp = kzalloc_objs(*fp, bp->fp_array_size, GFP_KERNEL); if (!fp) goto alloc_err; for (i = 0; i < bp->fp_array_size; i++) { fp[i].tpa_info = - kcalloc(ETH_MAX_AGGREGATION_QUEUES_E1H_E2, - sizeof(struct bnx2x_agg_info), GFP_KERNEL); + kzalloc_objs(struct bnx2x_agg_info, + ETH_MAX_AGGREGATION_QUEUES_E1H_E2, + GFP_KERNEL); if (!(fp[i].tpa_info)) goto alloc_err; } @@ -4761,14 +4761,14 @@ int bnx2x_alloc_mem_bp(struct bnx2x *bp) bp->fp = fp; /* allocate sp objs */ - bp->sp_objs = kcalloc(bp->fp_array_size, sizeof(struct bnx2x_sp_objs), - GFP_KERNEL); + bp->sp_objs = kzalloc_objs(struct bnx2x_sp_objs, bp->fp_array_size, + GFP_KERNEL); if (!bp->sp_objs) goto alloc_err; /* allocate fp_stats */ - bp->fp_stats = kcalloc(bp->fp_array_size, sizeof(struct bnx2x_fp_stats), - GFP_KERNEL); + bp->fp_stats = kzalloc_objs(struct bnx2x_fp_stats, bp->fp_array_size, + GFP_KERNEL); if (!bp->fp_stats) goto alloc_err; @@ -4777,19 +4777,19 @@ int bnx2x_alloc_mem_bp(struct bnx2x *bp) BNX2X_MAX_RSS_COUNT(bp) * BNX2X_MULTI_TX_COS + CNIC_SUPPORT(bp); BNX2X_DEV_INFO("txq_array_size %d", txq_array_size); - bp->bnx2x_txq = kcalloc(txq_array_size, sizeof(struct bnx2x_fp_txdata), - GFP_KERNEL); + bp->bnx2x_txq = kzalloc_objs(struct bnx2x_fp_txdata, txq_array_size, + GFP_KERNEL); if (!bp->bnx2x_txq) goto alloc_err; /* msix table */ - tbl = kcalloc(msix_table_size, sizeof(*tbl), GFP_KERNEL); + tbl = kzalloc_objs(*tbl, msix_table_size, GFP_KERNEL); if (!tbl) goto alloc_err; bp->msix_table = tbl; /* ilt */ - ilt = kzalloc(sizeof(*ilt), GFP_KERNEL); + ilt = kzalloc_obj(*ilt, GFP_KERNEL); if (!ilt) goto alloc_err; bp->ilt = ilt; diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c index 6a1cc2032bf3..745b023e2e08 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c @@ -6577,7 +6577,7 @@ static int bnx2x_gunzip_init(struct bnx2x *bp) if (bp->gunzip_buf == NULL) goto gunzip_nomem1; - bp->strm = kmalloc(sizeof(*bp->strm), GFP_KERNEL); + bp->strm = kmalloc_obj(*bp->strm, GFP_KERNEL); if (bp->strm == NULL) goto gunzip_nomem2; @@ -8396,8 +8396,8 @@ int bnx2x_alloc_mem(struct bnx2x *bp) goto alloc_mem_err; allocated += bp->context[i].size; } - bp->ilt->lines = kcalloc(ILT_MAX_LINES, sizeof(struct ilt_line), - GFP_KERNEL); + bp->ilt->lines = kzalloc_objs(struct ilt_line, ILT_MAX_LINES, + GFP_KERNEL); if (!bp->ilt->lines) goto alloc_mem_err; @@ -10660,7 +10660,7 @@ static int bnx2x_prev_mark_path(struct bnx2x *bp, bool after_undi) up(&bnx2x_prev_sem); /* Create an entry for this path and add it */ - tmp_list = kmalloc(sizeof(struct bnx2x_prev_path_list), GFP_KERNEL); + tmp_list = kmalloc_obj(struct bnx2x_prev_path_list, GFP_KERNEL); if (!tmp_list) { BNX2X_ERR("Failed to allocate 'bnx2x_prev_path_list'\n"); return -ENOMEM; @@ -12954,7 +12954,7 @@ static int bnx2x_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid) DP(NETIF_MSG_IFUP, "Adding VLAN %d\n", vid); - vlan = kmalloc(sizeof(*vlan), GFP_KERNEL); + vlan = kmalloc_obj(*vlan, GFP_KERNEL); if (!vlan) return -ENOMEM; @@ -14841,7 +14841,7 @@ static int bnx2x_get_fc_npiv(struct net_device *dev, DP(BNX2X_MSG_MCP, "About to read the FC-NPIV table\n"); - tbl = kmalloc(sizeof(*tbl), GFP_KERNEL); + tbl = kmalloc_obj(*tbl, GFP_KERNEL); if (!tbl) { BNX2X_ERR("Failed to allocate fc_npiv table\n"); goto out; diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c index 02c8213915a5..07a908a2c72f 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c @@ -251,7 +251,7 @@ static inline struct bnx2x_exeq_elem *bnx2x_exe_queue_alloc_elem( struct bnx2x *bp) { DP(BNX2X_MSG_SP, "Allocating a new exe_queue element\n"); - return kzalloc(sizeof(struct bnx2x_exeq_elem), GFP_ATOMIC); + return kzalloc_obj(struct bnx2x_exeq_elem, GFP_ATOMIC); } /************************ raw_obj functions ***********************************/ @@ -1736,7 +1736,7 @@ static inline int bnx2x_vlan_mac_get_registry_elem( /* Allocate a new registry element if needed. */ if (!restore && ((cmd == BNX2X_VLAN_MAC_ADD) || (cmd == BNX2X_VLAN_MAC_MOVE))) { - reg_elem = kzalloc(sizeof(*reg_elem), GFP_ATOMIC); + reg_elem = kzalloc_obj(*reg_elem, GFP_ATOMIC); if (!reg_elem) return -ENOMEM; @@ -2688,7 +2688,7 @@ static int bnx2x_mcast_enqueue_cmd(struct bnx2x *bp, return 0; /* Add mcast is called under spin_lock, thus calling with GFP_ATOMIC */ - new_cmd = kzalloc(sizeof(*new_cmd), GFP_ATOMIC); + new_cmd = kzalloc_obj(*new_cmd, GFP_ATOMIC); if (!new_cmd) return -ENOMEM; @@ -3846,7 +3846,7 @@ static inline int bnx2x_mcast_refresh_registry_e1(struct bnx2x *bp, if (!list_empty(&o->registry.exact_match.macs)) return 0; - elem = kcalloc(len, sizeof(*elem), GFP_ATOMIC); + elem = kzalloc_objs(*elem, len, GFP_ATOMIC); if (!elem) { BNX2X_ERR("Failed to allocate registry memory\n"); return -ENOMEM; diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c index 12198fc3ab22..5aeb5b6a64b5 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c @@ -551,8 +551,8 @@ int bnx2x_vf_mcast(struct bnx2x *bp, struct bnx2x_virtf *vf, else set_bit(RAMROD_COMP_WAIT, &mcast.ramrod_flags); if (mc_num) { - mc = kcalloc(mc_num, sizeof(struct bnx2x_mcast_list_elem), - GFP_KERNEL); + mc = kzalloc_objs(struct bnx2x_mcast_list_elem, mc_num, + GFP_KERNEL); if (!mc) { BNX2X_ERR("Cannot Configure multicasts due to lack of memory\n"); return -ENOMEM; @@ -1218,7 +1218,7 @@ int bnx2x_iov_init_one(struct bnx2x *bp, int int_mode_param, } /* allocate the vfs database */ - bp->vfdb = kzalloc(sizeof(*(bp->vfdb)), GFP_KERNEL); + bp->vfdb = kzalloc_obj(*(bp->vfdb), GFP_KERNEL); if (!bp->vfdb) { BNX2X_ERR("failed to allocate vf database\n"); err = -ENOMEM; @@ -1247,9 +1247,8 @@ int bnx2x_iov_init_one(struct bnx2x *bp, int int_mode_param, num_vfs_param, iov->nr_virtfn); /* allocate the vf array */ - bp->vfdb->vfs = kcalloc(BNX2X_NR_VIRTFN(bp), - sizeof(struct bnx2x_virtf), - GFP_KERNEL); + bp->vfdb->vfs = kzalloc_objs(struct bnx2x_virtf, BNX2X_NR_VIRTFN(bp), + GFP_KERNEL); if (!bp->vfdb->vfs) { BNX2X_ERR("failed to allocate vf array\n"); err = -ENOMEM; @@ -1275,9 +1274,8 @@ int bnx2x_iov_init_one(struct bnx2x *bp, int int_mode_param, } /* allocate the queue arrays for all VFs */ - bp->vfdb->vfqs = kcalloc(BNX2X_MAX_NUM_VF_QUEUES, - sizeof(struct bnx2x_vf_queue), - GFP_KERNEL); + bp->vfdb->vfqs = kzalloc_objs(struct bnx2x_vf_queue, + BNX2X_MAX_NUM_VF_QUEUES, GFP_KERNEL); if (!bp->vfdb->vfqs) { BNX2X_ERR("failed to allocate vf queue array\n"); diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c index 8946a931e87e..818481f7a3ea 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c @@ -1654,8 +1654,7 @@ static int bnx2x_vf_mbx_macvlan_list(struct bnx2x *bp, int i, j; struct bnx2x_vf_mac_vlan_filters *fl = NULL; - fl = kzalloc(struct_size(fl, filters, tlv->n_mac_vlan_filters), - GFP_KERNEL); + fl = kzalloc_flex(*fl, filters, tlv->n_mac_vlan_filters, GFP_KERNEL); if (!fl) return -ENOMEM; diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index fb45e1dd1dd7..ad5035cd8ac3 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -3752,21 +3752,20 @@ static int bnxt_alloc_one_tpa_info(struct bnxt *bp, struct rx_agg_cmp *agg; int i; - rxr->rx_tpa = kcalloc(bp->max_tpa, sizeof(struct bnxt_tpa_info), - GFP_KERNEL); + rxr->rx_tpa = kzalloc_objs(struct bnxt_tpa_info, bp->max_tpa, + GFP_KERNEL); if (!rxr->rx_tpa) return -ENOMEM; if (!(bp->flags & BNXT_FLAG_CHIP_P5_PLUS)) return 0; for (i = 0; i < bp->max_tpa; i++) { - agg = kcalloc(MAX_SKB_FRAGS, sizeof(*agg), GFP_KERNEL); + agg = kzalloc_objs(*agg, MAX_SKB_FRAGS, GFP_KERNEL); if (!agg) return -ENOMEM; rxr->rx_tpa[i].agg_arr = agg; } - rxr->rx_tpa_idx_map = kzalloc(sizeof(*rxr->rx_tpa_idx_map), - GFP_KERNEL); + rxr->rx_tpa_idx_map = kzalloc_obj(*rxr->rx_tpa_idx_map, GFP_KERNEL); if (!rxr->rx_tpa_idx_map) return -ENOMEM; @@ -4081,11 +4080,11 @@ static void bnxt_free_cp_arrays(struct bnxt_cp_ring_info *cpr) static int bnxt_alloc_cp_arrays(struct bnxt_cp_ring_info *cpr, int n) { - cpr->cp_desc_ring = kcalloc(n, sizeof(*cpr->cp_desc_ring), GFP_KERNEL); + cpr->cp_desc_ring = kzalloc_objs(*cpr->cp_desc_ring, n, GFP_KERNEL); if (!cpr->cp_desc_ring) return -ENOMEM; - cpr->cp_desc_mapping = kcalloc(n, sizeof(*cpr->cp_desc_mapping), - GFP_KERNEL); + cpr->cp_desc_mapping = kzalloc_objs(*cpr->cp_desc_mapping, n, + GFP_KERNEL); if (!cpr->cp_desc_mapping) return -ENOMEM; return 0; @@ -4232,8 +4231,7 @@ static int bnxt_alloc_cp_rings(struct bnxt *bp) tx = 1; } - cpr->cp_ring_arr = kcalloc(cp_count, sizeof(*cpr), - GFP_KERNEL); + cpr->cp_ring_arr = kzalloc_objs(*cpr, cp_count, GFP_KERNEL); if (!cpr->cp_ring_arr) return -ENOMEM; cpr->cp_ring_count = cp_count; @@ -4627,9 +4625,8 @@ static int bnxt_init_ring_grps(struct bnxt *bp, bool irq_re_init) int i; if (irq_re_init) { - bp->grp_info = kcalloc(bp->cp_nr_rings, - sizeof(struct bnxt_ring_grp_info), - GFP_KERNEL); + bp->grp_info = kzalloc_objs(struct bnxt_ring_grp_info, + bp->cp_nr_rings, GFP_KERNEL); if (!bp->grp_info) return -ENOMEM; } @@ -4667,8 +4664,8 @@ static int bnxt_alloc_vnics(struct bnxt *bp) if (BNXT_CHIP_TYPE_NITRO_A0(bp)) num_vnics++; - bp->vnic_info = kcalloc(num_vnics, sizeof(struct bnxt_vnic_info), - GFP_KERNEL); + bp->vnic_info = kzalloc_objs(struct bnxt_vnic_info, num_vnics, + GFP_KERNEL); if (!bp->vnic_info) return -ENOMEM; @@ -5248,7 +5245,7 @@ static int bnxt_alloc_stats(struct bnxt *bp) struct bnxt_napi *bnapi = bp->bnapi[i]; struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; - cpr->sw_stats = kzalloc(sizeof(*cpr->sw_stats), GFP_KERNEL); + cpr->sw_stats = kzalloc_obj(*cpr->sw_stats, GFP_KERNEL); if (!cpr->sw_stats) return -ENOMEM; @@ -5516,9 +5513,8 @@ static int bnxt_alloc_mem(struct bnxt *bp, bool irq_re_init) } } - bp->rx_ring = kcalloc(bp->rx_nr_rings, - sizeof(struct bnxt_rx_ring_info), - GFP_KERNEL); + bp->rx_ring = kzalloc_objs(struct bnxt_rx_ring_info, + bp->rx_nr_rings, GFP_KERNEL); if (!bp->rx_ring) return -ENOMEM; @@ -5537,9 +5533,8 @@ static int bnxt_alloc_mem(struct bnxt *bp, bool irq_re_init) bp->bnapi[i]->rx_ring = &bp->rx_ring[i]; } - bp->tx_ring = kcalloc(bp->tx_nr_rings, - sizeof(struct bnxt_tx_ring_info), - GFP_KERNEL); + bp->tx_ring = kzalloc_objs(struct bnxt_tx_ring_info, + bp->tx_nr_rings, GFP_KERNEL); if (!bp->tx_ring) return -ENOMEM; @@ -6096,7 +6091,7 @@ static struct bnxt_l2_filter *bnxt_alloc_l2_filter(struct bnxt *bp, if (fltr) return fltr; - fltr = kzalloc(sizeof(*fltr), gfp); + fltr = kzalloc_obj(*fltr, gfp); if (!fltr) return ERR_PTR(-ENOMEM); spin_lock_bh(&bp->ntp_fltr_lock); @@ -6125,7 +6120,7 @@ struct bnxt_l2_filter *bnxt_alloc_new_l2_filter(struct bnxt *bp, fltr = ERR_PTR(-EEXIST); goto l2_filter_exit; } - fltr = kzalloc(sizeof(*fltr), GFP_ATOMIC); + fltr = kzalloc_obj(*fltr, GFP_ATOMIC); if (!fltr) { fltr = ERR_PTR(-ENOMEM); goto l2_filter_exit; @@ -8655,7 +8650,7 @@ static int bnxt_alloc_all_ctx_pg_info(struct bnxt *bp, int ctx_max) if (ctxm->instance_bmap) n = hweight32(ctxm->instance_bmap); - ctxm->pg_info = kcalloc(n, sizeof(*ctxm->pg_info), GFP_KERNEL); + ctxm->pg_info = kzalloc_objs(*ctxm->pg_info, n, GFP_KERNEL); if (!ctxm->pg_info) return -ENOMEM; } @@ -8682,7 +8677,7 @@ static int bnxt_hwrm_func_backing_store_qcaps_v2(struct bnxt *bp) return rc; if (!ctx) { - ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); + ctx = kzalloc_obj(*ctx, GFP_KERNEL); if (!ctx) return -ENOMEM; bp->ctx = ctx; @@ -8769,7 +8764,7 @@ static int bnxt_hwrm_func_backing_store_qcaps(struct bnxt *bp) ctx = bp->ctx; if (!ctx) { - ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); + ctx = kzalloc_obj(*ctx, GFP_KERNEL); if (!ctx) { rc = -ENOMEM; goto ctx_err; @@ -9048,8 +9043,8 @@ static int bnxt_alloc_ctx_pg_tbls(struct bnxt *bp, int nr_tbls, i; rmem->depth = 2; - ctx_pg->ctx_pg_tbl = kcalloc(MAX_CTX_PAGES, sizeof(ctx_pg), - GFP_KERNEL); + ctx_pg->ctx_pg_tbl = kzalloc_objs(ctx_pg, MAX_CTX_PAGES, + GFP_KERNEL); if (!ctx_pg->ctx_pg_tbl) return -ENOMEM; nr_tbls = DIV_ROUND_UP(ctx_pg->nr_pages, MAX_CTX_PAGES); @@ -9060,7 +9055,7 @@ static int bnxt_alloc_ctx_pg_tbls(struct bnxt *bp, for (i = 0; i < nr_tbls; i++) { struct bnxt_ctx_pg_info *pg_tbl; - pg_tbl = kzalloc(sizeof(*pg_tbl), GFP_KERNEL); + pg_tbl = kzalloc_obj(*pg_tbl, GFP_KERNEL); if (!pg_tbl) return -ENOMEM; ctx_pg->ctx_pg_tbl[i] = pg_tbl; @@ -9569,8 +9564,7 @@ static int bnxt_alloc_crash_dump_mem(struct bnxt *bp) if (bp->fw_crash_mem) bnxt_free_ctx_pg_tbls(bp, bp->fw_crash_mem); else - bp->fw_crash_mem = kzalloc(sizeof(*bp->fw_crash_mem), - GFP_KERNEL); + bp->fw_crash_mem = kzalloc_obj(*bp->fw_crash_mem, GFP_KERNEL); if (!bp->fw_crash_mem) return -ENOMEM; @@ -9677,7 +9671,7 @@ static int __bnxt_hwrm_ptp_qcfg(struct bnxt *bp) goto exit; } if (!ptp) { - ptp = kzalloc(sizeof(*ptp), GFP_KERNEL); + ptp = kzalloc_obj(*ptp, GFP_KERNEL); if (!ptp) { rc = -ENOMEM; goto exit; @@ -9949,7 +9943,7 @@ static int __bnxt_alloc_fw_health(struct bnxt *bp) if (bp->fw_health) return 0; - bp->fw_health = kzalloc(sizeof(*bp->fw_health), GFP_KERNEL); + bp->fw_health = kzalloc_obj(*bp->fw_health, GFP_KERNEL); if (!bp->fw_health) return -ENOMEM; @@ -11460,7 +11454,7 @@ static int bnxt_init_int_mode(struct bnxt *bp) tbl_size = total_vecs; if (pci_msix_can_alloc_dyn(bp->pdev)) tbl_size = max; - bp->irq_tbl = kcalloc(tbl_size, sizeof(*bp->irq_tbl), GFP_KERNEL); + bp->irq_tbl = kzalloc_objs(*bp->irq_tbl, tbl_size, GFP_KERNEL); if (bp->irq_tbl) { for (i = 0; i < total_vecs; i++) bp->irq_tbl[i].vector = pci_irq_vector(bp->pdev, i); @@ -12957,7 +12951,7 @@ static int bnxt_set_xps_mapping(struct bnxt *bp) cpumask_t *q_map; int rc = 0; - q_map = kcalloc(bp->tx_nr_rings_per_tc, sizeof(*q_map), GFP_KERNEL); + q_map = kzalloc_objs(*q_map, bp->tx_nr_rings_per_tc, GFP_KERNEL); if (!q_map) return -ENOMEM; @@ -15650,7 +15644,7 @@ static int bnxt_rx_flow_steer(struct net_device *dev, const struct sk_buff *skb, return -EINVAL; } } - new_fltr = kzalloc(sizeof(*new_fltr), GFP_ATOMIC); + new_fltr = kzalloc_obj(*new_fltr, GFP_ATOMIC); if (!new_fltr) { bnxt_del_l2_filter(bp, l2_fltr); return -ENOMEM; diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c index a00b67334f9b..00e3ef076d93 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c @@ -529,7 +529,7 @@ static int bnxt_dcbnl_ieee_getets(struct net_device *dev, struct ieee_ets *ets) if (bp->dcbx_cap & DCB_CAP_DCBX_HOST) return 0; - my_ets = kzalloc(sizeof(*my_ets), GFP_KERNEL); + my_ets = kzalloc_obj(*my_ets, GFP_KERNEL); if (!my_ets) return -ENOMEM; rc = bnxt_hwrm_queue_cos2bw_qcfg(bp, my_ets); @@ -568,7 +568,7 @@ static int bnxt_dcbnl_ieee_setets(struct net_device *dev, struct ieee_ets *ets) rc = bnxt_ets_validate(bp, ets, &max_tc); if (!rc) { if (!my_ets) { - my_ets = kzalloc(sizeof(*my_ets), GFP_KERNEL); + my_ets = kzalloc_obj(*my_ets, GFP_KERNEL); if (!my_ets) return -ENOMEM; /* initialize PRI2TC mappings to invalid value */ @@ -604,7 +604,7 @@ static int bnxt_dcbnl_ieee_getpfc(struct net_device *dev, struct ieee_pfc *pfc) if (bp->dcbx_cap & DCB_CAP_DCBX_HOST) return 0; - my_pfc = kzalloc(sizeof(*my_pfc), GFP_KERNEL); + my_pfc = kzalloc_obj(*my_pfc, GFP_KERNEL); if (!my_pfc) return 0; bp->ieee_pfc = my_pfc; @@ -642,7 +642,7 @@ static int bnxt_dcbnl_ieee_setpfc(struct net_device *dev, struct ieee_pfc *pfc) return -EINVAL; if (!my_pfc) { - my_pfc = kzalloc(sizeof(*my_pfc), GFP_KERNEL); + my_pfc = kzalloc_obj(*my_pfc, GFP_KERNEL); if (!my_pfc) return -ENOMEM; bp->ieee_pfc = my_pfc; diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c index 53a83b6680c4..e7455ef8984a 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c @@ -1371,7 +1371,7 @@ static int bnxt_add_ntuple_cls_rule(struct bnxt *bp, return -EOPNOTSUPP; } - new_fltr = kzalloc(sizeof(*new_fltr), GFP_KERNEL); + new_fltr = kzalloc_obj(*new_fltr, GFP_KERNEL); if (!new_fltr) return -ENOMEM; @@ -5485,7 +5485,7 @@ void bnxt_ethtool_init(struct bnxt *bp) test_info = bp->test_info; if (!test_info) { - test_info = kzalloc(sizeof(*bp->test_info), GFP_KERNEL); + test_info = kzalloc_obj(*bp->test_info, GFP_KERNEL); if (!test_info) return; bp->test_info = test_info; diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c index 5ce190f50120..fcb4edb24012 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c @@ -371,7 +371,7 @@ __hwrm_acquire_token(struct bnxt *bp, enum bnxt_hwrm_chnl dst) { struct bnxt_hwrm_wait_token *token; - token = kzalloc(sizeof(*token), GFP_KERNEL); + token = kzalloc_obj(*token, GFP_KERNEL); if (!token) return NULL; diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c index ad89c5fa9b40..0135c53d4b47 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c @@ -983,9 +983,8 @@ static int bnxt_ptp_pps_init(struct bnxt *bp) pps_info = &ptp->pps_info; pps_info->num_pins = resp->num_pins; ptp_info->n_pins = pps_info->num_pins; - ptp_info->pin_config = kcalloc(ptp_info->n_pins, - sizeof(*ptp_info->pin_config), - GFP_KERNEL); + ptp_info->pin_config = kzalloc_objs(*ptp_info->pin_config, + ptp_info->n_pins, GFP_KERNEL); if (!ptp_info->pin_config) { hwrm_req_drop(bp, req); return -ENOMEM; diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c index be7deb9cc410..d0f5f2ad5b26 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c @@ -459,7 +459,7 @@ static int bnxt_alloc_vf_resources(struct bnxt *bp, int num_vfs) struct pci_dev *pdev = bp->pdev; u32 nr_pages, size, i, j, k = 0; - bp->pf.vf = kcalloc(num_vfs, sizeof(struct bnxt_vf_info), GFP_KERNEL); + bp->pf.vf = kzalloc_objs(struct bnxt_vf_info, num_vfs, GFP_KERNEL); if (!bp->pf.vf) return -ENOMEM; diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c index 2d66bf59cd64..c678305d588c 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c @@ -977,7 +977,7 @@ bnxt_tc_get_l2_node(struct bnxt *bp, struct rhashtable *l2_table, l2_node = rhashtable_lookup_fast(l2_table, l2_key, ht_params); if (!l2_node) { - l2_node = kzalloc(sizeof(*l2_node), GFP_KERNEL); + l2_node = kzalloc_obj(*l2_node, GFP_KERNEL); if (!l2_node) { rc = -ENOMEM; return NULL; @@ -1128,7 +1128,7 @@ bnxt_tc_get_tunnel_node(struct bnxt *bp, struct rhashtable *tunnel_table, tunnel_node = rhashtable_lookup_fast(tunnel_table, tun_key, *ht_params); if (!tunnel_node) { - tunnel_node = kzalloc(sizeof(*tunnel_node), GFP_KERNEL); + tunnel_node = kzalloc_obj(*tunnel_node, GFP_KERNEL); if (!tunnel_node) { rc = -ENOMEM; goto err; @@ -1535,7 +1535,7 @@ static int bnxt_tc_add_flow(struct bnxt *bp, u16 src_fid, int rc; /* allocate memory for the new flow and it's node */ - new_node = kzalloc(sizeof(*new_node), GFP_KERNEL); + new_node = kzalloc_obj(*new_node, GFP_KERNEL); if (!new_node) { rc = -ENOMEM; goto done; @@ -1915,7 +1915,7 @@ static int bnxt_tc_setup_indr_block(struct net_device *netdev, struct Qdisc *sch switch (f->command) { case FLOW_BLOCK_BIND: - cb_priv = kmalloc(sizeof(*cb_priv), GFP_KERNEL); + cb_priv = kmalloc_obj(*cb_priv, GFP_KERNEL); if (!cb_priv) return -ENOMEM; @@ -2018,7 +2018,7 @@ int bnxt_init_tc(struct bnxt *bp) if (bp->hwrm_spec_code < 0x10803) return 0; - tc_info = kzalloc(sizeof(*tc_info), GFP_KERNEL); + tc_info = kzalloc_obj(*tc_info, GFP_KERNEL); if (!tc_info) return -ENOMEM; mutex_init(&tc_info->lock); diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c index 927971c362f1..ca95f6e70dde 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c @@ -333,8 +333,8 @@ void bnxt_ulp_irq_restart(struct bnxt *bp, int err) return; if (!err) { - ent = kcalloc(ulp->msix_requested, sizeof(*ent), - GFP_KERNEL); + ent = kzalloc_objs(*ent, ulp->msix_requested, + GFP_KERNEL); if (!ent) return; bnxt_fill_msix_vecs(bp, ent); @@ -479,7 +479,7 @@ void bnxt_rdma_aux_device_init(struct bnxt *bp) if (!(bp->flags & BNXT_FLAG_ROCE_CAP)) return; - aux_priv = kzalloc(sizeof(*bp->aux_priv), GFP_KERNEL); + aux_priv = kzalloc_obj(*bp->aux_priv, GFP_KERNEL); if (!aux_priv) goto exit; @@ -509,13 +509,13 @@ void bnxt_rdma_aux_device_init(struct bnxt *bp) * any error unwinding will need to include a call to * auxiliary_device_uninit. */ - edev = kzalloc(sizeof(*edev), GFP_KERNEL); + edev = kzalloc_obj(*edev, GFP_KERNEL); if (!edev) goto aux_dev_uninit; aux_priv->edev = edev; - ulp = kzalloc(sizeof(*ulp), GFP_KERNEL); + ulp = kzalloc_obj(*ulp, GFP_KERNEL); if (!ulp) goto aux_dev_uninit; diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c index bd116fd578d8..d0a67616f927 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c @@ -496,7 +496,7 @@ int bnxt_vf_reps_create(struct bnxt *bp) if (!(bp->flags & BNXT_FLAG_DSN_VALID)) return -ENODEV; - bp->vf_reps = kcalloc(num_vfs, sizeof(vf_rep), GFP_KERNEL); + bp->vf_reps = kzalloc_objs(vf_rep, num_vfs, GFP_KERNEL); if (!bp->vf_reps) return -ENOMEM; diff --git a/drivers/net/ethernet/broadcom/cnic.c b/drivers/net/ethernet/broadcom/cnic.c index 6e97a5a7daaf..bd4238737fef 100644 --- a/drivers/net/ethernet/broadcom/cnic.c +++ b/drivers/net/ethernet/broadcom/cnic.c @@ -1062,7 +1062,7 @@ static int cnic_alloc_uio_rings(struct cnic_dev *dev, int pages) } } - udev = kzalloc(sizeof(struct cnic_uio_dev), GFP_ATOMIC); + udev = kzalloc_obj(struct cnic_uio_dev, GFP_ATOMIC); if (!udev) return -ENOMEM; @@ -1208,7 +1208,7 @@ static int cnic_alloc_bnx2x_context(struct cnic_dev *dev) if (blks > cp->ethdev->ctx_tbl_len) return -ENOMEM; - cp->ctx_arr = kcalloc(blks, sizeof(struct cnic_ctx), GFP_KERNEL); + cp->ctx_arr = kzalloc_objs(struct cnic_ctx, blks, GFP_KERNEL); if (cp->ctx_arr == NULL) return -ENOMEM; @@ -1261,13 +1261,13 @@ static int cnic_alloc_bnx2x_resc(struct cnic_dev *dev) cp->fcoe_init_cid = 0x10; } - cp->iscsi_tbl = kcalloc(MAX_ISCSI_TBL_SZ, sizeof(struct cnic_iscsi), - GFP_KERNEL); + cp->iscsi_tbl = kzalloc_objs(struct cnic_iscsi, MAX_ISCSI_TBL_SZ, + GFP_KERNEL); if (!cp->iscsi_tbl) goto error; - cp->ctx_tbl = kcalloc(cp->max_cid_space, sizeof(struct cnic_context), - GFP_KERNEL); + cp->ctx_tbl = kzalloc_objs(struct cnic_context, cp->max_cid_space, + GFP_KERNEL); if (!cp->ctx_tbl) goto error; @@ -4105,8 +4105,8 @@ static int cnic_cm_alloc_mem(struct cnic_dev *dev) u32 port_id; int i; - cp->csk_tbl = kvcalloc(MAX_CM_SK_TBL_SZ, sizeof(struct cnic_sock), - GFP_KERNEL); + cp->csk_tbl = kvzalloc_objs(struct cnic_sock, MAX_CM_SK_TBL_SZ, + GFP_KERNEL); if (!cp->csk_tbl) return -ENOMEM; diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index 05512aa10c20..a6f8805e1932 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -3083,8 +3083,8 @@ static int bcmgenet_init_dma(struct bcmgenet_priv *priv, bool flush_rx) /* Initialize common Rx ring structures */ priv->rx_bds = priv->base + priv->hw_params->rdma_offset; priv->num_rx_bds = TOTAL_DESC; - priv->rx_cbs = kcalloc(priv->num_rx_bds, sizeof(struct enet_cb), - GFP_KERNEL); + priv->rx_cbs = kzalloc_objs(struct enet_cb, priv->num_rx_bds, + GFP_KERNEL); if (!priv->rx_cbs) return -ENOMEM; @@ -3096,8 +3096,8 @@ static int bcmgenet_init_dma(struct bcmgenet_priv *priv, bool flush_rx) /* Initialize common TX ring structures */ priv->tx_bds = priv->base + priv->hw_params->tdma_offset; priv->num_tx_bds = TOTAL_DESC; - priv->tx_cbs = kcalloc(priv->num_tx_bds, sizeof(struct enet_cb), - GFP_KERNEL); + priv->tx_cbs = kzalloc_objs(struct enet_cb, priv->num_tx_bds, + GFP_KERNEL); if (!priv->tx_cbs) { kfree(priv->rx_cbs); return -ENOMEM; diff --git a/drivers/net/ethernet/broadcom/sb1250-mac.c b/drivers/net/ethernet/broadcom/sb1250-mac.c index 30865fe03eeb..4787ea610edc 100644 --- a/drivers/net/ethernet/broadcom/sb1250-mac.c +++ b/drivers/net/ethernet/broadcom/sb1250-mac.c @@ -622,9 +622,9 @@ static void sbdma_initctx(struct sbmacdma *d, struct sbmac_softc *s, int chan, d->sbdma_maxdescr = maxdescr; - d->sbdma_dscrtable_unaligned = kcalloc(d->sbdma_maxdescr + 1, - sizeof(*d->sbdma_dscrtable), - GFP_KERNEL); + d->sbdma_dscrtable_unaligned = kzalloc_objs(*d->sbdma_dscrtable, + d->sbdma_maxdescr + 1, + GFP_KERNEL); /* * The descriptor table must be aligned to at least 16 bytes or the @@ -642,8 +642,8 @@ static void sbdma_initctx(struct sbmacdma *d, struct sbmac_softc *s, int chan, * And context table */ - d->sbdma_ctxtable = kcalloc(d->sbdma_maxdescr, - sizeof(*d->sbdma_ctxtable), GFP_KERNEL); + d->sbdma_ctxtable = kzalloc_objs(*d->sbdma_ctxtable, d->sbdma_maxdescr, + GFP_KERNEL); #ifdef CONFIG_SBMAC_COALESCE /* diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c index 75f66587983d..746c95dc11cd 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c @@ -8729,9 +8729,8 @@ static int tg3_mem_tx_acquire(struct tg3 *tp) tnapi++; for (i = 0; i < tp->txq_cnt; i++, tnapi++) { - tnapi->tx_buffers = kcalloc(TG3_TX_RING_SIZE, - sizeof(struct tg3_tx_ring_info), - GFP_KERNEL); + tnapi->tx_buffers = kzalloc_objs(struct tg3_tx_ring_info, + TG3_TX_RING_SIZE, GFP_KERNEL); if (!tnapi->tx_buffers) goto err_out; diff --git a/drivers/net/ethernet/brocade/bna/bnad.c b/drivers/net/ethernet/brocade/bna/bnad.c index 9bed33295839..ec3750f055b8 100644 --- a/drivers/net/ethernet/brocade/bna/bnad.c +++ b/drivers/net/ethernet/brocade/bna/bnad.c @@ -1345,8 +1345,8 @@ bnad_mem_alloc(struct bnad *bnad, return 0; } - mem_info->mdl = kcalloc(mem_info->num, sizeof(struct bna_mem_descr), - GFP_KERNEL); + mem_info->mdl = kzalloc_objs(struct bna_mem_descr, mem_info->num, + GFP_KERNEL); if (mem_info->mdl == NULL) return -ENOMEM; @@ -1458,9 +1458,8 @@ bnad_txrx_irq_alloc(struct bnad *bnad, enum bnad_intr_source src, if (cfg_flags & BNAD_CF_MSIX) { intr_info->intr_type = BNA_INTR_T_MSIX; - intr_info->idl = kcalloc(intr_info->num, - sizeof(struct bna_intr_descr), - GFP_KERNEL); + intr_info->idl = kzalloc_objs(struct bna_intr_descr, + intr_info->num, GFP_KERNEL); if (!intr_info->idl) return -ENOMEM; @@ -1484,9 +1483,8 @@ bnad_txrx_irq_alloc(struct bnad *bnad, enum bnad_intr_source src, } else { intr_info->intr_type = BNA_INTR_T_INTX; intr_info->num = 1; - intr_info->idl = kcalloc(intr_info->num, - sizeof(struct bna_intr_descr), - GFP_KERNEL); + intr_info->idl = kzalloc_objs(struct bna_intr_descr, + intr_info->num, GFP_KERNEL); if (!intr_info->idl) return -ENOMEM; @@ -2642,7 +2640,7 @@ bnad_enable_msix(struct bnad *bnad) return; bnad->msix_table = - kcalloc(bnad->msix_num, sizeof(struct msix_entry), GFP_KERNEL); + kzalloc_objs(struct msix_entry, bnad->msix_num, GFP_KERNEL); if (!bnad->msix_table) goto intx_mode; diff --git a/drivers/net/ethernet/brocade/bna/bnad_debugfs.c b/drivers/net/ethernet/brocade/bna/bnad_debugfs.c index 8f0972e6737c..8a2eb4504760 100644 --- a/drivers/net/ethernet/brocade/bna/bnad_debugfs.c +++ b/drivers/net/ethernet/brocade/bna/bnad_debugfs.c @@ -45,7 +45,7 @@ bnad_debugfs_open_fwtrc(struct inode *inode, struct file *file) unsigned long flags; int rc; - fw_debug = kzalloc(sizeof(struct bnad_debug_info), GFP_KERNEL); + fw_debug = kzalloc_obj(struct bnad_debug_info, GFP_KERNEL); if (!fw_debug) return -ENOMEM; @@ -85,7 +85,7 @@ bnad_debugfs_open_fwsave(struct inode *inode, struct file *file) unsigned long flags; int rc; - fw_debug = kzalloc(sizeof(struct bnad_debug_info), GFP_KERNEL); + fw_debug = kzalloc_obj(struct bnad_debug_info, GFP_KERNEL); if (!fw_debug) return -ENOMEM; @@ -122,7 +122,7 @@ bnad_debugfs_open_reg(struct inode *inode, struct file *file) { struct bnad_debug_info *reg_debug; - reg_debug = kzalloc(sizeof(struct bnad_debug_info), GFP_KERNEL); + reg_debug = kzalloc_obj(struct bnad_debug_info, GFP_KERNEL); if (!reg_debug) return -ENOMEM; @@ -185,7 +185,7 @@ bnad_debugfs_open_drvinfo(struct inode *inode, struct file *file) struct bnad_debug_info *drv_info; int rc; - drv_info = kzalloc(sizeof(struct bnad_debug_info), GFP_KERNEL); + drv_info = kzalloc_obj(struct bnad_debug_info, GFP_KERNEL); if (!drv_info) return -ENOMEM; diff --git a/drivers/net/ethernet/brocade/bna/bnad_ethtool.c b/drivers/net/ethernet/brocade/bna/bnad_ethtool.c index 216e25f26dbb..446234e3ca53 100644 --- a/drivers/net/ethernet/brocade/bna/bnad_ethtool.c +++ b/drivers/net/ethernet/brocade/bna/bnad_ethtool.c @@ -285,7 +285,7 @@ bnad_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo) strscpy(drvinfo->driver, BNAD_NAME, sizeof(drvinfo->driver)); - ioc_attr = kzalloc(sizeof(*ioc_attr), GFP_KERNEL); + ioc_attr = kzalloc_obj(*ioc_attr, GFP_KERNEL); if (ioc_attr) { spin_lock_irqsave(&bnad->bna_lock, flags); bfa_nw_ioc_get_attr(&bnad->bna.ioceth.ioc, ioc_attr); @@ -900,7 +900,7 @@ bnad_get_flash_partition_by_offset(struct bnad *bnad, u32 offset, u32 i, flash_part = 0, ret; unsigned long flags = 0; - flash_attr = kzalloc(sizeof(struct bfa_flash_attr), GFP_KERNEL); + flash_attr = kzalloc_obj(struct bfa_flash_attr, GFP_KERNEL); if (!flash_attr) return 0; diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c index 43cd013bb70e..86f516563db6 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -3734,7 +3734,7 @@ static int gem_add_flow_filter(struct net_device *netdev, int ret = -EINVAL; bool added = false; - newfs = kmalloc(sizeof(*newfs), GFP_KERNEL); + newfs = kmalloc_obj(*newfs, GFP_KERNEL); if (newfs == NULL) return -ENOMEM; memcpy(&newfs->fs, fs, sizeof(newfs->fs)); diff --git a/drivers/net/ethernet/calxeda/xgmac.c b/drivers/net/ethernet/calxeda/xgmac.c index 331ac6a3dc38..283948d784da 100644 --- a/drivers/net/ethernet/calxeda/xgmac.c +++ b/drivers/net/ethernet/calxeda/xgmac.c @@ -729,8 +729,8 @@ static int xgmac_dma_desc_rings_init(struct net_device *dev) netdev_dbg(priv->dev, "mtu [%d] bfsize [%d]\n", dev->mtu, bfsize); - priv->rx_skbuff = kcalloc(DMA_RX_RING_SZ, sizeof(struct sk_buff *), - GFP_KERNEL); + priv->rx_skbuff = kzalloc_objs(struct sk_buff *, DMA_RX_RING_SZ, + GFP_KERNEL); if (!priv->rx_skbuff) return -ENOMEM; @@ -742,8 +742,8 @@ static int xgmac_dma_desc_rings_init(struct net_device *dev) if (!priv->dma_rx) goto err_dma_rx; - priv->tx_skbuff = kcalloc(DMA_TX_RING_SZ, sizeof(struct sk_buff *), - GFP_KERNEL); + priv->tx_skbuff = kzalloc_objs(struct sk_buff *, DMA_TX_RING_SZ, + GFP_KERNEL); if (!priv->tx_skbuff) goto err_tx_skb; diff --git a/drivers/net/ethernet/cavium/liquidio/lio_core.c b/drivers/net/ethernet/cavium/liquidio/lio_core.c index 215dac201b4a..baccb0169068 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_core.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_core.c @@ -89,12 +89,12 @@ int lio_setup_glists(struct octeon_device *oct, struct lio *lio, int num_iqs) int i, j; lio->glist_lock = - kcalloc(num_iqs, sizeof(*lio->glist_lock), GFP_KERNEL); + kzalloc_objs(*lio->glist_lock, num_iqs, GFP_KERNEL); if (!lio->glist_lock) return -ENOMEM; lio->glist = - kcalloc(num_iqs, sizeof(*lio->glist), GFP_KERNEL); + kzalloc_objs(*lio->glist, num_iqs, GFP_KERNEL); if (!lio->glist) { kfree(lio->glist_lock); lio->glist_lock = NULL; @@ -107,10 +107,10 @@ int lio_setup_glists(struct octeon_device *oct, struct lio *lio, int num_iqs) /* allocate memory to store virtual and dma base address of * per glist consistent memory */ - lio->glists_virt_base = kcalloc(num_iqs, sizeof(*lio->glists_virt_base), - GFP_KERNEL); - lio->glists_dma_base = kcalloc(num_iqs, sizeof(*lio->glists_dma_base), - GFP_KERNEL); + lio->glists_virt_base = kzalloc_objs(*lio->glists_virt_base, num_iqs, + GFP_KERNEL); + lio->glists_dma_base = kzalloc_objs(*lio->glists_dma_base, num_iqs, + GFP_KERNEL); if (!lio->glists_virt_base || !lio->glists_dma_base) { lio_delete_glists(lio); @@ -138,7 +138,7 @@ int lio_setup_glists(struct octeon_device *oct, struct lio *lio, int num_iqs) g = kzalloc_node(sizeof(*g), GFP_KERNEL, numa_node); if (!g) - g = kzalloc(sizeof(*g), GFP_KERNEL); + g = kzalloc_obj(*g, GFP_KERNEL); if (!g) break; @@ -1051,9 +1051,8 @@ int octeon_setup_interrupt(struct octeon_device *oct, u32 num_ioqs) aux_irq_name = &queue_irq_names [IRQ_NAME_OFF(MAX_IOQ_INTERRUPTS_PER_PF)]; - oct->msix_entries = kcalloc(oct->num_msix_irqs, - sizeof(struct msix_entry), - GFP_KERNEL); + oct->msix_entries = kzalloc_objs(struct msix_entry, + oct->num_msix_irqs, GFP_KERNEL); if (!oct->msix_entries) { dev_err(&oct->pci_dev->dev, "Memory Alloc failed...\n"); kfree(oct->irq_name_storage); diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_device.c b/drivers/net/ethernet/cavium/liquidio/octeon_device.c index 1753bb87dfbd..e61f18467a15 100644 --- a/drivers/net/ethernet/cavium/liquidio/octeon_device.c +++ b/drivers/net/ethernet/cavium/liquidio/octeon_device.c @@ -1164,7 +1164,7 @@ octeon_register_dispatch_fn(struct octeon_device *oct, dev_dbg(&oct->pci_dev->dev, "Adding opcode to dispatch list linked list\n"); - dispatch = kmalloc(sizeof(*dispatch), GFP_KERNEL); + dispatch = kmalloc_obj(*dispatch, GFP_KERNEL); if (!dispatch) return 1; diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_main.c b/drivers/net/ethernet/cavium/thunder/nicvf_main.c index 0b6e30a8feb0..7ef2a9f606a1 100644 --- a/drivers/net/ethernet/cavium/thunder/nicvf_main.c +++ b/drivers/net/ethernet/cavium/thunder/nicvf_main.c @@ -1465,7 +1465,7 @@ int nicvf_open(struct net_device *netdev) /* Register NAPI handler for processing CQEs */ for (qidx = 0; qidx < qs->cq_cnt; qidx++) { - cq_poll = kzalloc(sizeof(*cq_poll), GFP_KERNEL); + cq_poll = kzalloc_obj(*cq_poll, GFP_KERNEL); if (!cq_poll) { err = -ENOMEM; goto napi_del; @@ -2052,9 +2052,9 @@ static void nicvf_set_rx_mode(struct net_device *netdev) mode |= BGX_XCAST_MCAST_FILTER; /* here we need to copy mc addrs */ if (netdev_mc_count(netdev)) { - mc_list = kmalloc(struct_size(mc_list, mc, - netdev_mc_count(netdev)), - GFP_ATOMIC); + mc_list = kmalloc_flex(*mc_list, mc, + netdev_mc_count(netdev), + GFP_ATOMIC); if (unlikely(!mc_list)) return; mc_list->count = 0; diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c index 5211759bfe47..12bea0b6a4e6 100644 --- a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c +++ b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c @@ -289,8 +289,7 @@ static int nicvf_init_rbdr(struct nicvf *nic, struct rbdr *rbdr, rbdr->is_xdp = true; } rbdr->pgcnt = roundup_pow_of_two(rbdr->pgcnt); - rbdr->pgcache = kcalloc(rbdr->pgcnt, sizeof(*rbdr->pgcache), - GFP_KERNEL); + rbdr->pgcache = kzalloc_objs(*rbdr->pgcache, rbdr->pgcnt, GFP_KERNEL); if (!rbdr->pgcache) return -ENOMEM; rbdr->pgidx = 0; diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c index 9efb60842ad1..87723e4140b0 100644 --- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c +++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c @@ -1086,8 +1086,7 @@ static int bgx_lmac_enable(struct bgx *bgx, u8 lmacid) /* actual number of filters available to exact LMAC */ lmac->dmacs_count = (RX_DMAC_COUNT / bgx->lmac_count); - lmac->dmacs = kcalloc(lmac->dmacs_count, sizeof(*lmac->dmacs), - GFP_KERNEL); + lmac->dmacs = kzalloc_objs(*lmac->dmacs, lmac->dmacs_count, GFP_KERNEL); if (!lmac->dmacs) return -ENOMEM; diff --git a/drivers/net/ethernet/chelsio/cxgb/espi.c b/drivers/net/ethernet/chelsio/cxgb/espi.c index ef70569435be..a7dd518b6ea9 100644 --- a/drivers/net/ethernet/chelsio/cxgb/espi.c +++ b/drivers/net/ethernet/chelsio/cxgb/espi.c @@ -280,7 +280,7 @@ void t1_espi_destroy(struct peespi *espi) struct peespi *t1_espi_create(adapter_t *adapter) { - struct peespi *espi = kzalloc(sizeof(*espi), GFP_KERNEL); + struct peespi *espi = kzalloc_obj(*espi, GFP_KERNEL); if (espi) espi->adapter = adapter; diff --git a/drivers/net/ethernet/chelsio/cxgb/mv88e1xxx.c b/drivers/net/ethernet/chelsio/cxgb/mv88e1xxx.c index 30b003484fc1..4c4a43828110 100644 --- a/drivers/net/ethernet/chelsio/cxgb/mv88e1xxx.c +++ b/drivers/net/ethernet/chelsio/cxgb/mv88e1xxx.c @@ -358,7 +358,7 @@ static struct cphy *mv88e1xxx_phy_create(struct net_device *dev, int phy_addr, const struct mdio_ops *mdio_ops) { struct adapter *adapter = netdev_priv(dev); - struct cphy *cphy = kzalloc(sizeof(*cphy), GFP_KERNEL); + struct cphy *cphy = kzalloc_obj(*cphy, GFP_KERNEL); if (!cphy) return NULL; diff --git a/drivers/net/ethernet/chelsio/cxgb/mv88x201x.c b/drivers/net/ethernet/chelsio/cxgb/mv88x201x.c index 556c8ad68fa8..8c3d3250b72c 100644 --- a/drivers/net/ethernet/chelsio/cxgb/mv88x201x.c +++ b/drivers/net/ethernet/chelsio/cxgb/mv88x201x.c @@ -203,7 +203,7 @@ static struct cphy *mv88x201x_phy_create(struct net_device *dev, int phy_addr, const struct mdio_ops *mdio_ops) { u32 val; - struct cphy *cphy = kzalloc(sizeof(*cphy), GFP_KERNEL); + struct cphy *cphy = kzalloc_obj(*cphy, GFP_KERNEL); if (!cphy) return NULL; diff --git a/drivers/net/ethernet/chelsio/cxgb/my3126.c b/drivers/net/ethernet/chelsio/cxgb/my3126.c index 60aa45b375b6..9d29f0767dcb 100644 --- a/drivers/net/ethernet/chelsio/cxgb/my3126.c +++ b/drivers/net/ethernet/chelsio/cxgb/my3126.c @@ -171,7 +171,7 @@ static const struct cphy_ops my3126_ops = { static struct cphy *my3126_phy_create(struct net_device *dev, int phy_addr, const struct mdio_ops *mdio_ops) { - struct cphy *cphy = kzalloc(sizeof (*cphy), GFP_KERNEL); + struct cphy *cphy = kzalloc_obj(*cphy, GFP_KERNEL); if (!cphy) return NULL; diff --git a/drivers/net/ethernet/chelsio/cxgb/sge.c b/drivers/net/ethernet/chelsio/cxgb/sge.c index 5f354cf62cdd..21d7f84af72e 100644 --- a/drivers/net/ethernet/chelsio/cxgb/sge.c +++ b/drivers/net/ethernet/chelsio/cxgb/sge.c @@ -366,7 +366,7 @@ static int tx_sched_init(struct sge *sge) struct sched *s; int i; - s = kzalloc(sizeof (struct sched), GFP_KERNEL); + s = kzalloc_obj(struct sched, GFP_KERNEL); if (!s) return -ENOMEM; @@ -2095,7 +2095,7 @@ static void espibug_workaround(struct timer_list *t) */ struct sge *t1_sge_create(struct adapter *adapter, struct sge_params *p) { - struct sge *sge = kzalloc(sizeof(*sge), GFP_KERNEL); + struct sge *sge = kzalloc_obj(*sge, GFP_KERNEL); int i; if (!sge) diff --git a/drivers/net/ethernet/chelsio/cxgb/tp.c b/drivers/net/ethernet/chelsio/cxgb/tp.c index 4337cee0763e..66dfe57b9f01 100644 --- a/drivers/net/ethernet/chelsio/cxgb/tp.c +++ b/drivers/net/ethernet/chelsio/cxgb/tp.c @@ -58,7 +58,7 @@ void t1_tp_destroy(struct petp *tp) struct petp *t1_tp_create(adapter_t *adapter, struct tp_params *p) { - struct petp *tp = kzalloc(sizeof(*tp), GFP_KERNEL); + struct petp *tp = kzalloc_obj(*tp, GFP_KERNEL); if (!tp) return NULL; diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c index 3b1321c8ed14..ce9880805a42 100644 --- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c +++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c @@ -3242,7 +3242,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent) mmio_len = pci_resource_len(pdev, 0); ai = t3_get_adapter_info(ent->driver_data); - adapter = kzalloc(sizeof(*adapter), GFP_KERNEL); + adapter = kzalloc_obj(*adapter, GFP_KERNEL); if (!adapter) { err = -ENOMEM; goto out_release_regions; diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c index 5a9f6925e1fa..cf8916f4e3d6 100644 --- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c +++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c @@ -1185,7 +1185,7 @@ int cxgb3_offload_activate(struct adapter *adapter) unsigned int l2t_capacity; struct l2t_data *l2td; - t = kzalloc(sizeof(*t), GFP_KERNEL); + t = kzalloc_obj(*t, GFP_KERNEL); if (!t) return -ENOMEM; diff --git a/drivers/net/ethernet/chelsio/cxgb3/l2t.c b/drivers/net/ethernet/chelsio/cxgb3/l2t.c index 5d5f3380ecca..6bcb952fe832 100644 --- a/drivers/net/ethernet/chelsio/cxgb3/l2t.c +++ b/drivers/net/ethernet/chelsio/cxgb3/l2t.c @@ -408,7 +408,7 @@ struct l2t_data *t3_init_l2t(unsigned int l2t_capacity) struct l2t_data *d; int i; - d = kvzalloc(struct_size(d, l2tab, l2t_capacity), GFP_KERNEL); + d = kvzalloc_flex(*d, l2tab, l2t_capacity, GFP_KERNEL); if (!d) return NULL; diff --git a/drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c b/drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c index 5060d3998889..fb958857bfd6 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c +++ b/drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c @@ -287,7 +287,7 @@ struct clip_tbl *t4_init_clip_tbl(unsigned int clipt_start, if (clipt_size < CLIPT_MIN_HASH_BUCKETS) return NULL; - ctbl = kvzalloc(struct_size(ctbl, hash_list, clipt_size), GFP_KERNEL); + ctbl = kvzalloc_flex(*ctbl, hash_list, clipt_size, GFP_KERNEL); if (!ctbl) return NULL; @@ -301,7 +301,7 @@ struct clip_tbl *t4_init_clip_tbl(unsigned int clipt_start, for (i = 0; i < ctbl->clipt_size; ++i) INIT_LIST_HEAD(&ctbl->hash_list[i]); - cl_list = kvcalloc(clipt_size, sizeof(struct clip_entry), GFP_KERNEL); + cl_list = kvzalloc_objs(struct clip_entry, clipt_size, GFP_KERNEL); if (!cl_list) { kvfree(ctbl); return NULL; diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c index 14e0d989c3ba..6e2e5644b825 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c @@ -860,7 +860,7 @@ static int cctrl_tbl_show(struct seq_file *seq, void *v) u16 (*incr)[NCCTRL_WIN]; struct adapter *adap = seq->private; - incr = kmalloc_array(NMTUS, sizeof(*incr), GFP_KERNEL); + incr = kmalloc_objs(*incr, NMTUS, GFP_KERNEL); if (!incr) return -ENOMEM; diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c index faf8f7e86520..3c66db1f765a 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c @@ -2250,13 +2250,12 @@ int cxgb4_init_ethtool_filters(struct adapter *adap) u32 nentries, i; int ret; - eth_filter = kzalloc(sizeof(*eth_filter), GFP_KERNEL); + eth_filter = kzalloc_obj(*eth_filter, GFP_KERNEL); if (!eth_filter) return -ENOMEM; - eth_filter_info = kcalloc(adap->params.nports, - sizeof(*eth_filter_info), - GFP_KERNEL); + eth_filter_info = kzalloc_objs(*eth_filter_info, adap->params.nports, + GFP_KERNEL); if (!eth_filter_info) { ret = -ENOMEM; goto free_eth_filter; diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c index dd9e68465e69..dad0e72a52ab 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c @@ -1389,7 +1389,7 @@ static int cxgb4_set_hash_filter(struct net_device *dev, if (iq < 0) return iq; - f = kzalloc(sizeof(*f), GFP_KERNEL); + f = kzalloc_obj(*f, GFP_KERNEL); if (!f) return -ENOMEM; diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c index 043733c5c812..20eeb4deab49 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c @@ -388,7 +388,7 @@ static int cxgb4_mac_sync(struct net_device *netdev, const u8 *mac_addr) * list and program it */ if (uhash || mhash) { - new_entry = kzalloc(sizeof(*new_entry), GFP_ATOMIC); + new_entry = kzalloc_obj(*new_entry, GFP_ATOMIC); if (!new_entry) return -ENOMEM; ether_addr_copy(new_entry->addr, mac_addr); @@ -478,7 +478,7 @@ int cxgb4_change_mac(struct port_info *pi, unsigned int viid, goto set_hash; } } - new_entry = kzalloc(sizeof(*new_entry), GFP_KERNEL); + new_entry = kzalloc_obj(*new_entry, GFP_KERNEL); if (!new_entry) return -ENOMEM; ether_addr_copy(new_entry->addr, addr); @@ -1330,7 +1330,7 @@ static int cxgb4_port_mirror_alloc_queues(struct net_device *dev) if (s->mirror_rxq[pi->port_id]) return 0; - mirror_rxq = kcalloc(pi->nmirrorqsets, sizeof(*mirror_rxq), GFP_KERNEL); + mirror_rxq = kzalloc_objs(*mirror_rxq, pi->nmirrorqsets, GFP_KERNEL); if (!mirror_rxq) return -ENOMEM; @@ -4057,7 +4057,7 @@ static int adap_config_hma(struct adapter *adapter) page_size = HMA_PAGE_SIZE; page_order = HMA_PAGE_ORDER; - adapter->hma.sgt = kzalloc(sizeof(*adapter->hma.sgt), GFP_KERNEL); + adapter->hma.sgt = kzalloc_obj(*adapter->hma.sgt, GFP_KERNEL); if (unlikely(!adapter->hma.sgt)) { dev_err(adapter->pdev_dev, "HMA SG table allocation failed\n"); return -ENOMEM; @@ -4097,8 +4097,7 @@ static int adap_config_hma(struct adapter *adapter) } adapter->hma.flags |= HMA_DMA_MAPPED_FLAG; - adapter->hma.phy_addr = kcalloc(sgt->nents, sizeof(dma_addr_t), - GFP_KERNEL); + adapter->hma.phy_addr = kzalloc_objs(dma_addr_t, sgt->nents, GFP_KERNEL); if (unlikely(!adapter->hma.phy_addr)) goto free_hma; @@ -4812,7 +4811,7 @@ static int adap_init0(struct adapter *adap, int vpd_skip) /* allocate memory to read the header of the firmware on the * card */ - card_fw = kvzalloc(sizeof(*card_fw), GFP_KERNEL); + card_fw = kvzalloc_obj(*card_fw, GFP_KERNEL); if (!card_fw) { ret = -ENOMEM; goto bye; @@ -5022,15 +5021,15 @@ static int adap_init0(struct adapter *adap, int vpd_skip) adap->sge.egr_sz = val[0] - adap->sge.egr_start + 1; adap->sge.ingr_sz = val[1] - adap->sge.ingr_start + 1; - adap->sge.egr_map = kcalloc(adap->sge.egr_sz, - sizeof(*adap->sge.egr_map), GFP_KERNEL); + adap->sge.egr_map = kzalloc_objs(*adap->sge.egr_map, adap->sge.egr_sz, + GFP_KERNEL); if (!adap->sge.egr_map) { ret = -ENOMEM; goto bye; } - adap->sge.ingr_map = kcalloc(adap->sge.ingr_sz, - sizeof(*adap->sge.ingr_map), GFP_KERNEL); + adap->sge.ingr_map = kzalloc_objs(*adap->sge.ingr_map, + adap->sge.ingr_sz, GFP_KERNEL); if (!adap->sge.ingr_map) { ret = -ENOMEM; goto bye; @@ -5836,7 +5835,7 @@ static int alloc_msix_info(struct adapter *adap, u32 num_vec) { struct msix_info *msix_info; - msix_info = kcalloc(num_vec, sizeof(*msix_info), GFP_KERNEL); + msix_info = kzalloc_objs(*msix_info, num_vec, GFP_KERNEL); if (!msix_info) return -ENOMEM; @@ -5935,7 +5934,7 @@ static int enable_msix(struct adapter *adap) want += EXTRA_VECS; need += EXTRA_VECS; - entries = kmalloc_array(want, sizeof(*entries), GFP_KERNEL); + entries = kmalloc_objs(*entries, want, GFP_KERNEL); if (!entries) return -ENOMEM; @@ -6350,8 +6349,9 @@ static int cxgb4_iov_configure(struct pci_dev *pdev, int num_vfs) return err; } /* Allocate and set up VF Information. */ - adap->vfinfo = kcalloc(pci_sriov_get_totalvfs(pdev), - sizeof(struct vf_info), GFP_KERNEL); + adap->vfinfo = kzalloc_objs(struct vf_info, + pci_sriov_get_totalvfs(pdev), + GFP_KERNEL); if (!adap->vfinfo) { unregister_netdev(adap->port[0]); free_netdev(adap->port[0]); @@ -6604,7 +6604,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent) goto out_disable_device; } - adapter = kzalloc(sizeof(*adapter), GFP_KERNEL); + adapter = kzalloc_obj(*adapter, GFP_KERNEL); if (!adapter) { err = -ENOMEM; goto out_unmap_bar0; diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_mps.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_mps.c index 60f4d5b5eb3a..94c8ce39310b 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_mps.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_mps.c @@ -42,7 +42,7 @@ static int cxgb4_mps_ref_inc(struct adapter *adap, const u8 *mac_addr, goto unlock; } } - mps_entry = kzalloc(sizeof(*mps_entry), GFP_ATOMIC); + mps_entry = kzalloc_obj(*mps_entry, GFP_ATOMIC); if (!mps_entry) { ret = -ENOMEM; goto unlock; diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c index e2b5554531b5..79db92f3ba62 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c @@ -145,7 +145,7 @@ static void cxgb4_action_natmode_tweak(struct ch_filter_specification *fs, static struct ch_tc_flower_entry *allocate_flower_entry(void) { - struct ch_tc_flower_entry *new = kzalloc(sizeof(*new), GFP_KERNEL); + struct ch_tc_flower_entry *new = kzalloc_obj(*new, GFP_KERNEL); if (new) spin_lock_init(&new->lock); return new; diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_matchall.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_matchall.c index f8dcf0b4abcd..4d53744b2130 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_matchall.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_matchall.c @@ -531,13 +531,12 @@ int cxgb4_init_tc_matchall(struct adapter *adap) struct cxgb4_tc_matchall *tc_matchall; int ret; - tc_matchall = kzalloc(sizeof(*tc_matchall), GFP_KERNEL); + tc_matchall = kzalloc_obj(*tc_matchall, GFP_KERNEL); if (!tc_matchall) return -ENOMEM; - tc_port_matchall = kcalloc(adap->params.nports, - sizeof(*tc_port_matchall), - GFP_KERNEL); + tc_port_matchall = kzalloc_objs(*tc_port_matchall, adap->params.nports, + GFP_KERNEL); if (!tc_port_matchall) { ret = -ENOMEM; goto out_free_matchall; diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c index a2dcd2e24263..9d07540e2955 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c @@ -100,8 +100,7 @@ static int cxgb4_init_eosw_txq(struct net_device *dev, memset(eosw_txq, 0, sizeof(*eosw_txq)); - ring = kcalloc(CXGB4_EOSW_TXQ_DEFAULT_DESC_NUM, - sizeof(*ring), GFP_KERNEL); + ring = kzalloc_objs(*ring, CXGB4_EOSW_TXQ_DEFAULT_DESC_NUM, GFP_KERNEL); if (!ring) return -ENOMEM; @@ -157,15 +156,13 @@ static int cxgb4_mqprio_alloc_hw_resources(struct net_device *dev) /* Allocate ETHOFLD hardware queue structures if not done already */ if (!refcount_read(&adap->tc_mqprio->refcnt)) { - adap->sge.eohw_rxq = kcalloc(adap->sge.eoqsets, - sizeof(struct sge_ofld_rxq), - GFP_KERNEL); + adap->sge.eohw_rxq = kzalloc_objs(struct sge_ofld_rxq, + adap->sge.eoqsets, GFP_KERNEL); if (!adap->sge.eohw_rxq) return -ENOMEM; - adap->sge.eohw_txq = kcalloc(adap->sge.eoqsets, - sizeof(struct sge_eohw_txq), - GFP_KERNEL); + adap->sge.eohw_txq = kzalloc_objs(struct sge_eohw_txq, + adap->sge.eoqsets, GFP_KERNEL); if (!adap->sge.eohw_txq) { kfree(adap->sge.eohw_rxq); return -ENOMEM; @@ -657,12 +654,12 @@ int cxgb4_init_tc_mqprio(struct adapter *adap) int ret = 0; u8 i; - tc_mqprio = kzalloc(sizeof(*tc_mqprio), GFP_KERNEL); + tc_mqprio = kzalloc_obj(*tc_mqprio, GFP_KERNEL); if (!tc_mqprio) return -ENOMEM; - tc_port_mqprio = kcalloc(adap->params.nports, sizeof(*tc_port_mqprio), - GFP_KERNEL); + tc_port_mqprio = kzalloc_objs(*tc_port_mqprio, adap->params.nports, + GFP_KERNEL); if (!tc_port_mqprio) { ret = -ENOMEM; goto out_free_mqprio; @@ -673,8 +670,8 @@ int cxgb4_init_tc_mqprio(struct adapter *adap) tc_mqprio->port_mqprio = tc_port_mqprio; for (i = 0; i < adap->params.nports; i++) { port_mqprio = &tc_mqprio->port_mqprio[i]; - eosw_txq = kcalloc(adap->tids.neotids, sizeof(*eosw_txq), - GFP_KERNEL); + eosw_txq = kzalloc_objs(*eosw_txq, adap->tids.neotids, + GFP_KERNEL); if (!eosw_txq) { ret = -ENOMEM; goto out_free_ports; diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c index 8524246fd67e..dbfa657c04b9 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c @@ -501,7 +501,7 @@ struct cxgb4_tc_u32_table *cxgb4_init_tc_u32(struct adapter *adap) if (!max_tids) return NULL; - t = kvzalloc(struct_size(t, table, max_tids), GFP_KERNEL); + t = kvzalloc_flex(*t, table, max_tids, GFP_KERNEL); if (!t) return NULL; diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c index 5c13bcb4550d..c1fe70fc3286 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c @@ -241,7 +241,7 @@ static int cfg_queues_uld(struct adapter *adap, unsigned int uld_type, struct sge_uld_rxq_info *rxq_info; int i, nrxq, ciq_size; - rxq_info = kzalloc(sizeof(*rxq_info), GFP_KERNEL); + rxq_info = kzalloc_obj(*rxq_info, GFP_KERNEL); if (!rxq_info) return -ENOMEM; @@ -269,8 +269,7 @@ static int cfg_queues_uld(struct adapter *adap, unsigned int uld_type, } nrxq = rxq_info->nrxq + rxq_info->nciq; /* total rxq's */ - rxq_info->uldrxq = kcalloc(nrxq, sizeof(struct sge_ofld_rxq), - GFP_KERNEL); + rxq_info->uldrxq = kzalloc_objs(struct sge_ofld_rxq, nrxq, GFP_KERNEL); if (!rxq_info->uldrxq) { kfree(rxq_info); return -ENOMEM; @@ -472,7 +471,7 @@ setup_sge_txq_uld(struct adapter *adap, unsigned int uld_type, (atomic_inc_return(&txq_info->users) > 1)) return 0; - txq_info = kzalloc(sizeof(*txq_info), GFP_KERNEL); + txq_info = kzalloc_obj(*txq_info, GFP_KERNEL); if (!txq_info) return -ENOMEM; if (uld_type == CXGB4_ULD_CRYPTO) { @@ -489,8 +488,8 @@ setup_sge_txq_uld(struct adapter *adap, unsigned int uld_type, i = min_t(int, uld_info->ntxq, num_online_cpus()); txq_info->ntxq = roundup(i, adap->params.nports); } - txq_info->uldtxq = kcalloc(txq_info->ntxq, sizeof(struct sge_uld_txq), - GFP_KERNEL); + txq_info->uldtxq = kzalloc_objs(struct sge_uld_txq, txq_info->ntxq, + GFP_KERNEL); if (!txq_info->uldtxq) { kfree(txq_info); return -ENOMEM; @@ -525,19 +524,17 @@ int t4_uld_mem_alloc(struct adapter *adap) { struct sge *s = &adap->sge; - adap->uld = kcalloc(CXGB4_ULD_MAX, sizeof(*adap->uld), GFP_KERNEL); + adap->uld = kzalloc_objs(*adap->uld, CXGB4_ULD_MAX, GFP_KERNEL); if (!adap->uld) return -ENOMEM; - s->uld_rxq_info = kcalloc(CXGB4_ULD_MAX, - sizeof(struct sge_uld_rxq_info *), - GFP_KERNEL); + s->uld_rxq_info = kzalloc_objs(struct sge_uld_rxq_info *, CXGB4_ULD_MAX, + GFP_KERNEL); if (!s->uld_rxq_info) goto err_uld; - s->uld_txq_info = kcalloc(CXGB4_TX_MAX, - sizeof(struct sge_uld_txq_info *), - GFP_KERNEL); + s->uld_txq_info = kzalloc_objs(struct sge_uld_txq_info *, CXGB4_TX_MAX, + GFP_KERNEL); if (!s->uld_txq_info) goto err_uld_rx; return 0; @@ -805,7 +802,7 @@ void cxgb4_register_uld(enum cxgb4_uld type, if (type >= CXGB4_ULD_MAX) return; - uld_entry = kzalloc(sizeof(*uld_entry), GFP_KERNEL); + uld_entry = kzalloc_obj(*uld_entry, GFP_KERNEL); if (!uld_entry) return; diff --git a/drivers/net/ethernet/chelsio/cxgb4/l2t.c b/drivers/net/ethernet/chelsio/cxgb4/l2t.c index c02b4e9c06b2..1e2a6bac25ba 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/l2t.c +++ b/drivers/net/ethernet/chelsio/cxgb4/l2t.c @@ -620,7 +620,7 @@ struct l2t_data *t4_init_l2t(unsigned int l2t_start, unsigned int l2t_end) if (l2t_size < L2T_MIN_HASH_BUCKETS) return NULL; - d = kvzalloc(struct_size(d, l2tab, l2t_size), GFP_KERNEL); + d = kvzalloc_flex(*d, l2tab, l2t_size, GFP_KERNEL); if (!d) return NULL; diff --git a/drivers/net/ethernet/chelsio/cxgb4/sched.c b/drivers/net/ethernet/chelsio/cxgb4/sched.c index 38a30aeee122..8e73a5c49529 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/sched.c +++ b/drivers/net/ethernet/chelsio/cxgb4/sched.c @@ -225,7 +225,7 @@ static int t4_sched_queue_bind(struct port_info *pi, struct ch_sched_queue *p) if (p->queue < 0 || p->queue >= pi->nqsets) return -ERANGE; - qe = kvzalloc(sizeof(struct sched_queue_entry), GFP_KERNEL); + qe = kvzalloc_obj(struct sched_queue_entry, GFP_KERNEL); if (!qe) return -ENOMEM; @@ -294,7 +294,7 @@ static int t4_sched_flowc_bind(struct port_info *pi, struct ch_sched_flowc *p) if (p->tid < 0 || p->tid >= adap->tids.neotids) return -ERANGE; - fe = kvzalloc(sizeof(*fe), GFP_KERNEL); + fe = kvzalloc_obj(*fe, GFP_KERNEL); if (!fe) return -ENOMEM; @@ -653,7 +653,7 @@ struct sched_table *t4_init_sched(unsigned int sched_size) struct sched_table *s; unsigned int i; - s = kvzalloc(struct_size(s, tab, sched_size), GFP_KERNEL); + s = kvzalloc_flex(*s, tab, sched_size, GFP_KERNEL); if (!s) return NULL; diff --git a/drivers/net/ethernet/chelsio/cxgb4/smt.c b/drivers/net/ethernet/chelsio/cxgb4/smt.c index e617e4aabbcc..315c7605622f 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/smt.c +++ b/drivers/net/ethernet/chelsio/cxgb4/smt.c @@ -47,7 +47,7 @@ struct smt_data *t4_init_smt(void) smt_size = SMT_SIZE; - s = kvzalloc(struct_size(s, smtab, smt_size), GFP_KERNEL); + s = kvzalloc_flex(*s, smtab, smt_size, GFP_KERNEL); if (!s) return NULL; s->smt_size = smt_size; diff --git a/drivers/net/ethernet/chelsio/cxgb4/srq.c b/drivers/net/ethernet/chelsio/cxgb4/srq.c index a77d6ac1ee8c..1f7e2dece66c 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/srq.c +++ b/drivers/net/ethernet/chelsio/cxgb4/srq.c @@ -40,7 +40,7 @@ struct srq_data *t4_init_srq(int srq_size) { struct srq_data *s; - s = kvzalloc(sizeof(*s), GFP_KERNEL); + s = kvzalloc_obj(*s, GFP_KERNEL); if (!s) return NULL; diff --git a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c index 2fbe0f059a0b..592f736f6c85 100644 --- a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c @@ -288,7 +288,7 @@ static int cxgb4vf_change_mac(struct port_info *pi, unsigned int viid, goto set_hash; } } - new_entry = kzalloc(sizeof(*new_entry), GFP_KERNEL); + new_entry = kzalloc_obj(*new_entry, GFP_KERNEL); if (!new_entry) return -ENOMEM; ether_addr_copy(new_entry->addr, addr); @@ -953,7 +953,7 @@ static int cxgb4vf_mac_sync(struct net_device *netdev, const u8 *mac_addr) * list and program it */ if (uhash || mhash) { - new_entry = kzalloc(sizeof(*new_entry), GFP_ATOMIC); + new_entry = kzalloc_obj(*new_entry, GFP_ATOMIC); if (!new_entry) return -ENOMEM; ether_addr_copy(new_entry->addr, mac_addr); @@ -2935,7 +2935,7 @@ static int cxgb4vf_pci_probe(struct pci_dev *pdev, /* * Allocate our adapter data structure and attach it to the device. */ - adapter = kzalloc(sizeof(*adapter), GFP_KERNEL); + adapter = kzalloc_obj(*adapter, GFP_KERNEL); if (!adapter) { err = -ENOMEM; goto err_release_regions; diff --git a/drivers/net/ethernet/chelsio/inline_crypto/ch_ipsec/chcr_ipsec.c b/drivers/net/ethernet/chelsio/inline_crypto/ch_ipsec/chcr_ipsec.c index 074717d4bb16..e89150c0f2c7 100644 --- a/drivers/net/ethernet/chelsio/inline_crypto/ch_ipsec/chcr_ipsec.c +++ b/drivers/net/ethernet/chelsio/inline_crypto/ch_ipsec/chcr_ipsec.c @@ -104,7 +104,7 @@ static void *ch_ipsec_uld_add(const struct cxgb4_lld_info *infop) pr_info_once("%s - version %s\n", CHIPSEC_DRV_DESC, CHIPSEC_DRV_VERSION); - u_ctx = kzalloc(sizeof(*u_ctx), GFP_KERNEL); + u_ctx = kzalloc_obj(*u_ctx, GFP_KERNEL); if (!u_ctx) { u_ctx = ERR_PTR(-ENOMEM); goto out; @@ -295,7 +295,7 @@ static int ch_ipsec_xfrm_add_state(struct net_device *dev, return -ENODEV; } - sa_entry = kzalloc(sizeof(*sa_entry), GFP_KERNEL); + sa_entry = kzalloc_obj(*sa_entry, GFP_KERNEL); if (!sa_entry) { res = -ENOMEM; module_put(THIS_MODULE); diff --git a/drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c b/drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c index b8ebb56de65e..eb53e3a3ccf9 100644 --- a/drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c +++ b/drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c @@ -442,7 +442,7 @@ static int chcr_ktls_dev_add(struct net_device *netdev, struct sock *sk, if (u_ctx && u_ctx->detach) goto out; - tx_info = kvzalloc(sizeof(*tx_info), GFP_KERNEL); + tx_info = kvzalloc_obj(*tx_info, GFP_KERNEL); if (!tx_info) goto out; @@ -2117,7 +2117,7 @@ static void *chcr_ktls_uld_add(const struct cxgb4_lld_info *lldi) pr_info_once("%s - version %s\n", CHCR_KTLS_DRV_DESC, CHCR_KTLS_DRV_VERSION); - u_ctx = kzalloc(sizeof(*u_ctx), GFP_KERNEL); + u_ctx = kzalloc_obj(*u_ctx, GFP_KERNEL); if (!u_ctx) { u_ctx = ERR_PTR(-ENOMEM); goto out; diff --git a/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c b/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c index ee0154337a9c..caa46c191268 100644 --- a/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c +++ b/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c @@ -57,7 +57,7 @@ static unsigned char new_state[16] = { static struct chtls_sock *chtls_sock_create(struct chtls_dev *cdev) { - struct chtls_sock *csk = kzalloc(sizeof(*csk), GFP_ATOMIC); + struct chtls_sock *csk = kzalloc_obj(*csk, GFP_ATOMIC); if (!csk) return NULL; @@ -548,7 +548,7 @@ static struct listen_info *listen_hash_add(struct chtls_dev *cdev, struct sock *sk, unsigned int stid) { - struct listen_info *p = kmalloc(sizeof(*p), GFP_KERNEL); + struct listen_info *p = kmalloc_obj(*p, GFP_KERNEL); if (p) { int key = listen_hashfn(sk); @@ -666,7 +666,7 @@ int chtls_listen_start(struct chtls_dev *cdev, struct sock *sk) if (listen_hash_find(cdev, sk) >= 0) /* already have it */ return -EADDRINUSE; - ctx = kmalloc(sizeof(*ctx), GFP_KERNEL); + ctx = kmalloc_obj(*ctx, GFP_KERNEL); if (!ctx) return -ENOMEM; diff --git a/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_main.c b/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_main.c index daa1ebaef511..511ca3bfce3f 100644 --- a/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_main.c +++ b/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_main.c @@ -95,7 +95,7 @@ static int chtls_start_listen(struct chtls_dev *cdev, struct sock *sk) return -EADDRNOTAVAIL; sk->sk_backlog_rcv = listen_backlog_rcv; - clisten = kmalloc(sizeof(*clisten), GFP_KERNEL); + clisten = kmalloc_obj(*clisten, GFP_KERNEL); if (!clisten) return -ENOMEM; clisten->cdev = cdev; @@ -114,7 +114,7 @@ static void chtls_stop_listen(struct chtls_dev *cdev, struct sock *sk) if (sk->sk_protocol != IPPROTO_TCP) return; - clisten = kmalloc(sizeof(*clisten), GFP_KERNEL); + clisten = kmalloc_obj(*clisten, GFP_KERNEL); if (!clisten) return; clisten->cdev = cdev; @@ -238,11 +238,11 @@ static void *chtls_uld_add(const struct cxgb4_lld_info *info) struct chtls_dev *cdev; int i, j; - cdev = kzalloc(sizeof(*cdev), GFP_KERNEL); + cdev = kzalloc_obj(*cdev, GFP_KERNEL); if (!cdev) goto out; - lldi = kzalloc(sizeof(*lldi), GFP_KERNEL); + lldi = kzalloc_obj(*lldi, GFP_KERNEL); if (!lldi) goto out_lldi; diff --git a/drivers/net/ethernet/cisco/enic/enic_clsf.c b/drivers/net/ethernet/cisco/enic/enic_clsf.c index 837f954873ee..581e89da9091 100644 --- a/drivers/net/ethernet/cisco/enic/enic_clsf.c +++ b/drivers/net/ethernet/cisco/enic/enic_clsf.c @@ -235,7 +235,7 @@ int enic_rx_flow_steer(struct net_device *dev, const struct sk_buff *skb, struct hlist_head *head; head = &enic->rfs_h.ht_head[tbl_idx]; - d = kmalloc(sizeof(*d), GFP_ATOMIC); + d = kmalloc_obj(*d, GFP_ATOMIC); if (d) { d->fltr_id = n->fltr_id; INIT_HLIST_NODE(&d->node); @@ -257,7 +257,7 @@ int enic_rx_flow_steer(struct net_device *dev, const struct sk_buff *skb, goto ret_unlock; } - n = kmalloc(sizeof(*n), GFP_ATOMIC); + n = kmalloc_obj(*n, GFP_ATOMIC); if (!n) { res = -ENOMEM; enic->rfs_h.free++; diff --git a/drivers/net/ethernet/cisco/enic/enic_main.c b/drivers/net/ethernet/cisco/enic/enic_main.c index 6bc8dfdb3d4b..14dc4c5aa825 100644 --- a/drivers/net/ethernet/cisco/enic/enic_main.c +++ b/drivers/net/ethernet/cisco/enic/enic_main.c @@ -2456,35 +2456,35 @@ static void enic_free_enic_resources(struct enic *enic) static int enic_alloc_enic_resources(struct enic *enic) { - enic->wq = kcalloc(enic->wq_avail, sizeof(struct enic_wq), GFP_KERNEL); + enic->wq = kzalloc_objs(struct enic_wq, enic->wq_avail, GFP_KERNEL); if (!enic->wq) goto free_queues; - enic->rq = kcalloc(enic->rq_avail, sizeof(struct enic_rq), GFP_KERNEL); + enic->rq = kzalloc_objs(struct enic_rq, enic->rq_avail, GFP_KERNEL); if (!enic->rq) goto free_queues; - enic->cq = kcalloc(enic->cq_avail, sizeof(struct vnic_cq), GFP_KERNEL); + enic->cq = kzalloc_objs(struct vnic_cq, enic->cq_avail, GFP_KERNEL); if (!enic->cq) goto free_queues; - enic->napi = kcalloc(enic->wq_avail + enic->rq_avail, - sizeof(struct napi_struct), GFP_KERNEL); + enic->napi = kzalloc_objs(struct napi_struct, + enic->wq_avail + enic->rq_avail, GFP_KERNEL); if (!enic->napi) goto free_queues; - enic->msix_entry = kcalloc(enic->intr_avail, sizeof(struct msix_entry), - GFP_KERNEL); + enic->msix_entry = kzalloc_objs(struct msix_entry, enic->intr_avail, + GFP_KERNEL); if (!enic->msix_entry) goto free_queues; - enic->msix = kcalloc(enic->intr_avail, sizeof(struct enic_msix_entry), - GFP_KERNEL); + enic->msix = kzalloc_objs(struct enic_msix_entry, enic->intr_avail, + GFP_KERNEL); if (!enic->msix) goto free_queues; - enic->intr = kcalloc(enic->intr_avail, sizeof(struct vnic_intr), - GFP_KERNEL); + enic->intr = kzalloc_objs(struct vnic_intr, enic->intr_avail, + GFP_KERNEL); if (!enic->intr) goto free_queues; @@ -2737,7 +2737,7 @@ static int enic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) #endif /* Allocate structure for port profiles */ - enic->pp = kcalloc(num_pps, sizeof(*enic->pp), GFP_KERNEL); + enic->pp = kzalloc_objs(*enic->pp, num_pps, GFP_KERNEL); if (!enic->pp) { err = -ENOMEM; goto err_out_disable_sriov_pp; diff --git a/drivers/net/ethernet/cisco/enic/vnic_dev.c b/drivers/net/ethernet/cisco/enic/vnic_dev.c index 9f6089e81608..5a8a49f8c44f 100644 --- a/drivers/net/ethernet/cisco/enic/vnic_dev.c +++ b/drivers/net/ethernet/cisco/enic/vnic_dev.c @@ -371,7 +371,7 @@ static int vnic_dev_init_devcmd2(struct vnic_dev *vdev) if (vdev->devcmd2) return 0; - vdev->devcmd2 = kzalloc(sizeof(*vdev->devcmd2), GFP_KERNEL); + vdev->devcmd2 = kzalloc_obj(*vdev->devcmd2, GFP_KERNEL); if (!vdev->devcmd2) return -ENOMEM; @@ -1053,7 +1053,7 @@ struct vnic_dev *vnic_dev_register(struct vnic_dev *vdev, unsigned int num_bars) { if (!vdev) { - vdev = kzalloc(sizeof(struct vnic_dev), GFP_KERNEL); + vdev = kzalloc_obj(struct vnic_dev, GFP_KERNEL); if (!vdev) return NULL; } diff --git a/drivers/net/ethernet/cortina/gemini.c b/drivers/net/ethernet/cortina/gemini.c index 6a2004bbe87f..d5608611cee8 100644 --- a/drivers/net/ethernet/cortina/gemini.c +++ b/drivers/net/ethernet/cortina/gemini.c @@ -554,7 +554,7 @@ static int gmac_setup_txqs(struct net_device *netdev) rwptr_reg = port->dma_base + GMAC_SW_TX_QUEUE0_PTR_REG; - skb_tab = kcalloc(len, sizeof(*skb_tab), GFP_KERNEL); + skb_tab = kzalloc_objs(*skb_tab, len, GFP_KERNEL); if (!skb_tab) return -ENOMEM; @@ -940,8 +940,7 @@ static int geth_setup_freeq(struct gemini_ethernet *geth) } /* Allocate a mapping to page look-up index */ - geth->freeq_pages = kcalloc(pages, sizeof(*geth->freeq_pages), - GFP_KERNEL); + geth->freeq_pages = kzalloc_objs(*geth->freeq_pages, pages, GFP_KERNEL); if (!geth->freeq_pages) goto err_freeq; geth->num_freeq_pages = pages; diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index 52e10467b3e4..fb9c9d8bc659 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c @@ -4207,8 +4207,7 @@ static int be_vf_setup_init(struct be_adapter *adapter) struct be_vf_cfg *vf_cfg; int vf; - adapter->vf_cfg = kcalloc(adapter->num_vfs, sizeof(*vf_cfg), - GFP_KERNEL); + adapter->vf_cfg = kzalloc_objs(*vf_cfg, adapter->num_vfs, GFP_KERNEL); if (!adapter->vf_cfg) return -ENOMEM; @@ -4686,13 +4685,13 @@ static int be_if_create(struct be_adapter *adapter) if (!adapter->pmac_id) return -ENOMEM; - adapter->mc_list = kcalloc(be_max_mc(adapter), - sizeof(*adapter->mc_list), GFP_KERNEL); + adapter->mc_list = kzalloc_objs(*adapter->mc_list, be_max_mc(adapter), + GFP_KERNEL); if (!adapter->mc_list) return -ENOMEM; - adapter->uc_list = kcalloc(be_max_uc(adapter), - sizeof(*adapter->uc_list), GFP_KERNEL); + adapter->uc_list = kzalloc_objs(*adapter->uc_list, be_max_uc(adapter), + GFP_KERNEL); if (!adapter->uc_list) return -ENOMEM; @@ -5048,7 +5047,7 @@ static struct be_cmd_work *be_alloc_work(struct be_adapter *adapter, { struct be_cmd_work *work; - work = kzalloc(sizeof(*work), GFP_ATOMIC); + work = kzalloc_obj(*work, GFP_ATOMIC); if (!work) { dev_err(&adapter->pdev->dev, "be_work memory allocation failed\n"); diff --git a/drivers/net/ethernet/engleder/tsnep_main.c b/drivers/net/ethernet/engleder/tsnep_main.c index b118407c30e8..eddfde68d503 100644 --- a/drivers/net/ethernet/engleder/tsnep_main.c +++ b/drivers/net/ethernet/engleder/tsnep_main.c @@ -2102,14 +2102,12 @@ int tsnep_enable_xsk(struct tsnep_queue *queue, struct xsk_buff_pool *pool) if (frame_size < TSNEP_XSK_RX_BUF_SIZE) return -EOPNOTSUPP; - queue->rx->page_buffer = kcalloc(TSNEP_RING_SIZE, - sizeof(*queue->rx->page_buffer), - GFP_KERNEL); + queue->rx->page_buffer = kzalloc_objs(*queue->rx->page_buffer, + TSNEP_RING_SIZE, GFP_KERNEL); if (!queue->rx->page_buffer) return -ENOMEM; - queue->rx->xdp_batch = kcalloc(TSNEP_RING_SIZE, - sizeof(*queue->rx->xdp_batch), - GFP_KERNEL); + queue->rx->xdp_batch = kzalloc_objs(*queue->rx->xdp_batch, + TSNEP_RING_SIZE, GFP_KERNEL); if (!queue->rx->xdp_batch) { kfree(queue->rx->page_buffer); queue->rx->page_buffer = NULL; diff --git a/drivers/net/ethernet/engleder/tsnep_rxnfc.c b/drivers/net/ethernet/engleder/tsnep_rxnfc.c index 9ac2a0cf3833..9342dff7a073 100644 --- a/drivers/net/ethernet/engleder/tsnep_rxnfc.c +++ b/drivers/net/ethernet/engleder/tsnep_rxnfc.c @@ -231,7 +231,7 @@ int tsnep_rxnfc_add_rule(struct tsnep_adapter *adapter, return -EINVAL; } - rule = kzalloc(sizeof(*rule), GFP_KERNEL); + rule = kzalloc_obj(*rule, GFP_KERNEL); if (!rule) return -ENOMEM; diff --git a/drivers/net/ethernet/engleder/tsnep_selftests.c b/drivers/net/ethernet/engleder/tsnep_selftests.c index 8a9145f93147..1a67d3136456 100644 --- a/drivers/net/ethernet/engleder/tsnep_selftests.c +++ b/drivers/net/ethernet/engleder/tsnep_selftests.c @@ -354,7 +354,7 @@ static bool tsnep_test_taprio(struct tsnep_adapter *adapter) struct tc_taprio_qopt_offload *qopt; int i; - qopt = kzalloc(struct_size(qopt, entries, 255), GFP_KERNEL); + qopt = kzalloc_flex(*qopt, entries, 255, GFP_KERNEL); if (!qopt) return false; for (i = 0; i < 255; i++) @@ -451,7 +451,7 @@ static bool tsnep_test_taprio_change(struct tsnep_adapter *adapter) struct tc_taprio_qopt_offload *qopt; int i; - qopt = kzalloc(struct_size(qopt, entries, 255), GFP_KERNEL); + qopt = kzalloc_flex(*qopt, entries, 255, GFP_KERNEL); if (!qopt) return false; for (i = 0; i < 255; i++) @@ -604,7 +604,7 @@ static bool tsnep_test_taprio_extension(struct tsnep_adapter *adapter) struct tc_taprio_qopt_offload *qopt; int i; - qopt = kzalloc(struct_size(qopt, entries, 255), GFP_KERNEL); + qopt = kzalloc_flex(*qopt, entries, 255, GFP_KERNEL); if (!qopt) return false; for (i = 0; i < 255; i++) diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c b/drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c index ed3fa80af8c3..0071d9538661 100644 --- a/drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c +++ b/drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c @@ -421,7 +421,7 @@ static int dpaa_set_coalesce(struct net_device *dev, bool *needs_revert; int cpu, res; - needs_revert = kcalloc(num_possible_cpus(), sizeof(bool), GFP_KERNEL); + needs_revert = kzalloc_objs(bool, num_possible_cpus(), GFP_KERNEL); if (!needs_revert) return -ENOMEM; diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-devlink.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-devlink.c index 76f808d38066..0db00bebb268 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-devlink.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-devlink.c @@ -237,14 +237,14 @@ int dpaa2_eth_dl_traps_register(struct dpaa2_eth_priv *priv) struct device *dev = net_dev->dev.parent; int err; - dpaa2_eth_trap_data = kzalloc(sizeof(*dpaa2_eth_trap_data), GFP_KERNEL); + dpaa2_eth_trap_data = kzalloc_obj(*dpaa2_eth_trap_data, GFP_KERNEL); if (!dpaa2_eth_trap_data) return -ENOMEM; priv->trap_data = dpaa2_eth_trap_data; - dpaa2_eth_trap_data->trap_items_arr = kcalloc(ARRAY_SIZE(dpaa2_eth_traps_arr), - sizeof(struct dpaa2_eth_trap_item), - GFP_KERNEL); + dpaa2_eth_trap_data->trap_items_arr = kzalloc_objs(struct dpaa2_eth_trap_item, + ARRAY_SIZE(dpaa2_eth_traps_arr), + GFP_KERNEL); if (!dpaa2_eth_trap_data->trap_items_arr) { err = -ENOMEM; goto trap_data_free; diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c index 18d86badd6ea..70691bf85e2d 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c @@ -920,7 +920,7 @@ static int dpaa2_eth_build_sg_fd(struct dpaa2_eth_priv *priv, if (unlikely(PAGE_SIZE / sizeof(struct scatterlist) < nr_frags + 1)) return -EINVAL; - scl = kmalloc_array(nr_frags + 1, sizeof(struct scatterlist), GFP_ATOMIC); + scl = kmalloc_objs(struct scatterlist, nr_frags + 1, GFP_ATOMIC); if (unlikely(!scl)) return -ENOMEM; @@ -3125,7 +3125,7 @@ static struct dpaa2_eth_channel *dpaa2_eth_alloc_channel(struct dpaa2_eth_priv * struct device *dev = priv->net_dev->dev.parent; int err; - channel = kzalloc(sizeof(*channel), GFP_KERNEL); + channel = kzalloc_obj(*channel, GFP_KERNEL); if (!channel) return NULL; @@ -3392,7 +3392,7 @@ struct dpaa2_eth_bp *dpaa2_eth_allocate_dpbp(struct dpaa2_eth_priv *priv) return ERR_PTR(err); } - bp = kzalloc(sizeof(*bp), GFP_KERNEL); + bp = kzalloc_obj(*bp, GFP_KERNEL); if (!bp) { err = -ENOMEM; goto err_alloc; @@ -4673,7 +4673,7 @@ static int dpaa2_eth_connect_mac(struct dpaa2_eth_priv *priv) goto out_put_device; } - mac = kzalloc(sizeof(struct dpaa2_mac), GFP_KERNEL); + mac = kzalloc_obj(struct dpaa2_mac, GFP_KERNEL); if (!mac) { err = -ENOMEM; goto out_put_device; diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch-flower.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch-flower.c index 701a87370737..388f81713f1e 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch-flower.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch-flower.c @@ -505,7 +505,7 @@ dpaa2_switch_cls_flower_replace_acl(struct dpaa2_switch_filter_block *block, return -ENOMEM; } - acl_entry = kzalloc(sizeof(*acl_entry), GFP_KERNEL); + acl_entry = kzalloc_obj(*acl_entry, GFP_KERNEL); if (!acl_entry) return -ENOMEM; @@ -633,7 +633,7 @@ dpaa2_switch_cls_flower_replace_mirror(struct dpaa2_switch_filter_block *block, } } - mirror_entry = kzalloc(sizeof(*mirror_entry), GFP_KERNEL); + mirror_entry = kzalloc_obj(*mirror_entry, GFP_KERNEL); if (!mirror_entry) return -ENOMEM; @@ -708,7 +708,7 @@ dpaa2_switch_cls_matchall_replace_acl(struct dpaa2_switch_filter_block *block, return -ENOMEM; } - acl_entry = kzalloc(sizeof(*acl_entry), GFP_KERNEL); + acl_entry = kzalloc_obj(*acl_entry, GFP_KERNEL); if (!acl_entry) return -ENOMEM; @@ -780,7 +780,7 @@ dpaa2_switch_cls_matchall_replace_mirror(struct dpaa2_switch_filter_block *block } } - mirror_entry = kzalloc(sizeof(*mirror_entry), GFP_KERNEL); + mirror_entry = kzalloc_obj(*mirror_entry, GFP_KERNEL); if (!mirror_entry) return -ENOMEM; diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c index 66240c340492..2b0cac347fec 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c @@ -1456,7 +1456,7 @@ static int dpaa2_switch_port_connect_mac(struct ethsw_port_priv *port_priv) goto out_put_device; } - mac = kzalloc(sizeof(*mac), GFP_KERNEL); + mac = kzalloc_obj(*mac, GFP_KERNEL); if (!mac) { err = -ENOMEM; goto out_put_device; @@ -2334,7 +2334,7 @@ static int dpaa2_switch_port_event(struct notifier_block *nb, if (!dpaa2_switch_port_dev_check(dev)) return NOTIFY_DONE; - switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC); + switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC); if (!switchdev_work) return NOTIFY_BAD; @@ -3385,7 +3385,7 @@ static int dpaa2_switch_probe(struct fsl_mc_device *sw_dev) int i, err; /* Allocate switch core*/ - ethsw = kzalloc(sizeof(*ethsw), GFP_KERNEL); + ethsw = kzalloc_obj(*ethsw, GFP_KERNEL); if (!ethsw) return -ENOMEM; @@ -3408,23 +3408,22 @@ static int dpaa2_switch_probe(struct fsl_mc_device *sw_dev) if (err) goto err_free_cmdport; - ethsw->ports = kcalloc(ethsw->sw_attr.num_ifs, sizeof(*ethsw->ports), - GFP_KERNEL); + ethsw->ports = kzalloc_objs(*ethsw->ports, ethsw->sw_attr.num_ifs, + GFP_KERNEL); if (!(ethsw->ports)) { err = -ENOMEM; goto err_teardown; } - ethsw->fdbs = kcalloc(ethsw->sw_attr.num_ifs, sizeof(*ethsw->fdbs), - GFP_KERNEL); + ethsw->fdbs = kzalloc_objs(*ethsw->fdbs, ethsw->sw_attr.num_ifs, + GFP_KERNEL); if (!ethsw->fdbs) { err = -ENOMEM; goto err_free_ports; } - ethsw->filter_blocks = kcalloc(ethsw->sw_attr.num_ifs, - sizeof(*ethsw->filter_blocks), - GFP_KERNEL); + ethsw->filter_blocks = kzalloc_objs(*ethsw->filter_blocks, + ethsw->sw_attr.num_ifs, GFP_KERNEL); if (!ethsw->filter_blocks) { err = -ENOMEM; goto err_free_fdbs; diff --git a/drivers/net/ethernet/freescale/enetc/enetc.c b/drivers/net/ethernet/freescale/enetc/enetc.c index e380a4f39855..d6575a446adf 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc.c +++ b/drivers/net/ethernet/freescale/enetc/enetc.c @@ -2268,7 +2268,7 @@ enetc_alloc_tx_resources(struct enetc_ndev_priv *priv) struct enetc_bdr_resource *tx_res; int i, err; - tx_res = kcalloc(priv->num_tx_rings, sizeof(*tx_res), GFP_KERNEL); + tx_res = kzalloc_objs(*tx_res, priv->num_tx_rings, GFP_KERNEL); if (!tx_res) return ERR_PTR(-ENOMEM); @@ -2340,7 +2340,7 @@ enetc_alloc_rx_resources(struct enetc_ndev_priv *priv, bool extended) struct enetc_bdr_resource *rx_res; int i, err; - rx_res = kcalloc(priv->num_rx_rings, sizeof(*rx_res), GFP_KERNEL); + rx_res = kzalloc_objs(*rx_res, priv->num_rx_rings, GFP_KERNEL); if (!rx_res) return ERR_PTR(-ENOMEM); @@ -2469,7 +2469,7 @@ static int enetc_setup_default_rss_table(struct enetc_si *si, int num_groups) int *rss_table; int i; - rss_table = kmalloc_array(si->num_rss, sizeof(*rss_table), GFP_KERNEL); + rss_table = kmalloc_objs(*rss_table, si->num_rss, GFP_KERNEL); if (!rss_table) return -ENOMEM; @@ -2562,8 +2562,8 @@ int enetc_alloc_si_resources(struct enetc_ndev_priv *priv) { struct enetc_si *si = priv->si; - priv->cls_rules = kcalloc(si->num_fs_entries, sizeof(*priv->cls_rules), - GFP_KERNEL); + priv->cls_rules = kzalloc_objs(*priv->cls_rules, si->num_fs_entries, + GFP_KERNEL); if (!priv->cls_rules) return -ENOMEM; @@ -3454,7 +3454,7 @@ static int enetc_int_vector_init(struct enetc_ndev_priv *priv, int i, struct enetc_bdr *bdr; int j, err; - v = kzalloc(struct_size(v, tx_ring, v_tx_rings), GFP_KERNEL); + v = kzalloc_flex(*v, tx_ring, v_tx_rings, GFP_KERNEL); if (!v) return -ENOMEM; diff --git a/drivers/net/ethernet/freescale/enetc/enetc4_pf.c b/drivers/net/ethernet/freescale/enetc/enetc4_pf.c index 5850540634b0..689b9f13c5eb 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc4_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc4_pf.c @@ -192,7 +192,7 @@ static int enetc4_pf_set_uc_exact_filter(struct enetc_pf *pf) goto unlock_netif_addr; } - mac_tbl = kcalloc(mac_cnt, sizeof(*mac_tbl), GFP_ATOMIC); + mac_tbl = kzalloc_objs(*mac_tbl, mac_cnt, GFP_ATOMIC); if (!mac_tbl) { err = -ENOMEM; goto unlock_netif_addr; diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c b/drivers/net/ethernet/freescale/enetc/enetc_pf.c index de0fb272c847..eb3a50a94df7 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -814,7 +814,7 @@ static int enetc_init_port_rss_memory(struct enetc_si *si) if (!num_rss) return 0; - rss_table = kcalloc(num_rss, sizeof(*rss_table), GFP_KERNEL); + rss_table = kzalloc_objs(*rss_table, num_rss, GFP_KERNEL); if (!rss_table) return -ENOMEM; @@ -958,8 +958,8 @@ static int enetc_pf_probe(struct pci_dev *pdev, pf->total_vfs = pci_sriov_get_totalvfs(pdev); if (pf->total_vfs) { - pf->vf_state = kcalloc(pf->total_vfs, sizeof(struct enetc_vf_state), - GFP_KERNEL); + pf->vf_state = kzalloc_objs(struct enetc_vf_state, + pf->total_vfs, GFP_KERNEL); if (!pf->vf_state) goto err_alloc_vf_state; } diff --git a/drivers/net/ethernet/freescale/enetc/enetc_ptp.c b/drivers/net/ethernet/freescale/enetc/enetc_ptp.c index b8413d3b4f16..dbf35abea7f7 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_ptp.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_ptp.c @@ -53,7 +53,7 @@ static int enetc_ptp_probe(struct pci_dev *pdev, pci_set_master(pdev); - ptp_qoriq = kzalloc(sizeof(*ptp_qoriq), GFP_KERNEL); + ptp_qoriq = kzalloc_obj(*ptp_qoriq, GFP_KERNEL); if (!ptp_qoriq) { err = -ENOMEM; goto err_alloc_ptp; diff --git a/drivers/net/ethernet/freescale/enetc/enetc_qos.c b/drivers/net/ethernet/freescale/enetc/enetc_qos.c index ccf86651455c..6ff65108cc97 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_qos.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_qos.c @@ -1153,7 +1153,7 @@ static int enetc_psfp_parse_clsflower(struct enetc_ndev_priv *priv, if (!entryg) return -EINVAL; - filter = kzalloc(sizeof(*filter), GFP_KERNEL); + filter = kzalloc_obj(*filter, GFP_KERNEL); if (!filter) return -ENOMEM; @@ -1266,7 +1266,7 @@ static int enetc_psfp_parse_clsflower(struct enetc_ndev_priv *priv, filter->sgi_index = sgi->index; - sfi = kzalloc(sizeof(*sfi), GFP_KERNEL); + sfi = kzalloc_obj(*sfi, GFP_KERNEL); if (!sfi) { err = -ENOMEM; goto free_gate; @@ -1283,7 +1283,7 @@ static int enetc_psfp_parse_clsflower(struct enetc_ndev_priv *priv, goto free_sfi; if (entryp->police.burst) { - fmi = kzalloc(sizeof(*fmi), GFP_KERNEL); + fmi = kzalloc_obj(*fmi, GFP_KERNEL); if (!fmi) { err = -ENOMEM; goto free_sfi; diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index 0d926bf18195..c43539d4bab0 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -3952,7 +3952,7 @@ static int fec_enet_alloc_queue(struct net_device *ndev) struct fec_enet_priv_tx_q *txq; for (i = 0; i < fep->num_tx_queues; i++) { - txq = kzalloc(sizeof(*txq), GFP_KERNEL); + txq = kzalloc_obj(*txq, GFP_KERNEL); if (!txq) { ret = -ENOMEM; goto alloc_failed; @@ -3975,8 +3975,7 @@ static int fec_enet_alloc_queue(struct net_device *ndev) } for (i = 0; i < fep->num_rx_queues; i++) { - fep->rx_queue[i] = kzalloc(sizeof(*fep->rx_queue[i]), - GFP_KERNEL); + fep->rx_queue[i] = kzalloc_obj(*fep->rx_queue[i], GFP_KERNEL); if (!fep->rx_queue[i]) { ret = -ENOMEM; goto alloc_failed; @@ -4426,7 +4425,7 @@ fec_alloc_new_rxq_xsk(struct fec_enet_private *fep, int queue, union fec_rx_buffer *buf; int i; - rxq = kzalloc(sizeof(*rxq), GFP_KERNEL); + rxq = kzalloc_obj(*rxq, GFP_KERNEL); if (!rxq) return NULL; @@ -4467,7 +4466,7 @@ fec_alloc_new_rxq_pp(struct fec_enet_private *fep, int queue) union fec_rx_buffer *buf; int i = 0; - rxq = kzalloc(sizeof(*rxq), GFP_KERNEL); + rxq = kzalloc_obj(*rxq, GFP_KERNEL); if (!rxq) return NULL; diff --git a/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c b/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c index 3d073f0fae63..f182480909f1 100644 --- a/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c +++ b/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c @@ -74,7 +74,7 @@ static int mpc52xx_fec_mdio_probe(struct platform_device *of) bus = mdiobus_alloc(); if (bus == NULL) return -ENOMEM; - priv = kzalloc(sizeof(*priv), GFP_KERNEL); + priv = kzalloc_obj(*priv, GFP_KERNEL); if (priv == NULL) { err = -ENOMEM; goto out_free; diff --git a/drivers/net/ethernet/freescale/fman/fman.c b/drivers/net/ethernet/freescale/fman/fman.c index 11887458f050..b8d603fb70dc 100644 --- a/drivers/net/ethernet/freescale/fman/fman.c +++ b/drivers/net/ethernet/freescale/fman/fman.c @@ -1688,12 +1688,12 @@ static int fman_config(struct fman *fman) base_addr = fman->dts_params.base_addr; - fman->state = kzalloc(sizeof(*fman->state), GFP_KERNEL); + fman->state = kzalloc_obj(*fman->state, GFP_KERNEL); if (!fman->state) goto err_fm_state; /* Allocate the FM driver's parameters structure */ - fman->cfg = kzalloc(sizeof(*fman->cfg), GFP_KERNEL); + fman->cfg = kzalloc_obj(*fman->cfg, GFP_KERNEL); if (!fman->cfg) goto err_fm_drv; @@ -2697,7 +2697,7 @@ static struct fman *read_dts_node(struct platform_device *of_dev) struct clk *clk; u32 clk_rate; - fman = kzalloc(sizeof(*fman), GFP_KERNEL); + fman = kzalloc_obj(*fman, GFP_KERNEL); if (!fman) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/freescale/fman/fman_dtsec.c b/drivers/net/ethernet/freescale/fman/fman_dtsec.c index 51402dff72c5..12d739808f16 100644 --- a/drivers/net/ethernet/freescale/fman/fman_dtsec.c +++ b/drivers/net/ethernet/freescale/fman/fman_dtsec.c @@ -1055,7 +1055,7 @@ static int dtsec_add_hash_mac_address(struct fman_mac *dtsec, set_bucket(dtsec->regs, bucket, true); /* Create element to be added to the driver hash table */ - hash_entry = kmalloc(sizeof(*hash_entry), GFP_ATOMIC); + hash_entry = kmalloc_obj(*hash_entry, GFP_ATOMIC); if (!hash_entry) return -ENOMEM; hash_entry->addr = addr; @@ -1348,12 +1348,12 @@ static struct fman_mac *dtsec_config(struct mac_device *mac_dev, struct dtsec_cfg *dtsec_drv_param; /* allocate memory for the UCC GETH data structure. */ - dtsec = kzalloc(sizeof(*dtsec), GFP_KERNEL); + dtsec = kzalloc_obj(*dtsec, GFP_KERNEL); if (!dtsec) return NULL; /* allocate memory for the d_tsec driver parameters data structure. */ - dtsec_drv_param = kzalloc(sizeof(*dtsec_drv_param), GFP_KERNEL); + dtsec_drv_param = kzalloc_obj(*dtsec_drv_param, GFP_KERNEL); if (!dtsec_drv_param) goto err_dtsec; diff --git a/drivers/net/ethernet/freescale/fman/fman_keygen.c b/drivers/net/ethernet/freescale/fman/fman_keygen.c index e73f6ef3c6ee..f4b83b5eb018 100644 --- a/drivers/net/ethernet/freescale/fman/fman_keygen.c +++ b/drivers/net/ethernet/freescale/fman/fman_keygen.c @@ -629,7 +629,7 @@ struct fman_keygen *keygen_init(struct fman_kg_regs __iomem *keygen_regs) int i; /* Allocate memory for KeyGen driver */ - keygen = kzalloc(sizeof(*keygen), GFP_KERNEL); + keygen = kzalloc_obj(*keygen, GFP_KERNEL); if (!keygen) return NULL; diff --git a/drivers/net/ethernet/freescale/fman/fman_mac.h b/drivers/net/ethernet/freescale/fman/fman_mac.h index e5d6cddea731..83d53f33abc2 100644 --- a/drivers/net/ethernet/freescale/fman/fman_mac.h +++ b/drivers/net/ethernet/freescale/fman/fman_mac.h @@ -224,14 +224,13 @@ static inline struct eth_hash_t *alloc_hash_table(u16 size) struct eth_hash_t *hash; /* Allocate address hash table */ - hash = kmalloc(sizeof(*hash), GFP_KERNEL); + hash = kmalloc_obj(*hash, GFP_KERNEL); if (!hash) return NULL; hash->size = size; - hash->lsts = kmalloc_array(hash->size, sizeof(struct list_head), - GFP_KERNEL); + hash->lsts = kmalloc_objs(struct list_head, hash->size, GFP_KERNEL); if (!hash->lsts) { kfree(hash); return NULL; diff --git a/drivers/net/ethernet/freescale/fman/fman_memac.c b/drivers/net/ethernet/freescale/fman/fman_memac.c index c84f0336c94c..f9461bba1a66 100644 --- a/drivers/net/ethernet/freescale/fman/fman_memac.c +++ b/drivers/net/ethernet/freescale/fman/fman_memac.c @@ -811,7 +811,7 @@ static int memac_add_hash_mac_address(struct fman_mac *memac, hash = get_mac_addr_hash_code(addr) & HASH_CTRL_ADDR_MASK; /* Create element to be added to the driver hash table */ - hash_entry = kmalloc(sizeof(*hash_entry), GFP_ATOMIC); + hash_entry = kmalloc_obj(*hash_entry, GFP_ATOMIC); if (!hash_entry) return -ENOMEM; hash_entry->addr = addr; @@ -1086,12 +1086,12 @@ static struct fman_mac *memac_config(struct mac_device *mac_dev, struct memac_cfg *memac_drv_param; /* allocate memory for the m_emac data structure */ - memac = kzalloc(sizeof(*memac), GFP_KERNEL); + memac = kzalloc_obj(*memac, GFP_KERNEL); if (!memac) return NULL; /* allocate memory for the m_emac driver parameters data structure */ - memac_drv_param = kzalloc(sizeof(*memac_drv_param), GFP_KERNEL); + memac_drv_param = kzalloc_obj(*memac_drv_param, GFP_KERNEL); if (!memac_drv_param) { memac_free(memac); return NULL; diff --git a/drivers/net/ethernet/freescale/fman/fman_muram.c b/drivers/net/ethernet/freescale/fman/fman_muram.c index 1ed245a2ee01..eb85c54c9408 100644 --- a/drivers/net/ethernet/freescale/fman/fman_muram.c +++ b/drivers/net/ethernet/freescale/fman/fman_muram.c @@ -40,7 +40,7 @@ struct muram_info *fman_muram_init(phys_addr_t base, size_t size) void __iomem *vaddr; int ret; - muram = kzalloc(sizeof(*muram), GFP_KERNEL); + muram = kzalloc_obj(*muram, GFP_KERNEL); if (!muram) return NULL; diff --git a/drivers/net/ethernet/freescale/fman/fman_port.c b/drivers/net/ethernet/freescale/fman/fman_port.c index e977389f7088..a3e8c77dbb57 100644 --- a/drivers/net/ethernet/freescale/fman/fman_port.c +++ b/drivers/net/ethernet/freescale/fman/fman_port.c @@ -1297,7 +1297,7 @@ int fman_port_config(struct fman_port *port, struct fman_port_params *params) int err; /* Allocate the FM driver's parameters structure */ - port->cfg = kzalloc(sizeof(*port->cfg), GFP_KERNEL); + port->cfg = kzalloc_obj(*port->cfg, GFP_KERNEL); if (!port->cfg) return -EINVAL; @@ -1753,7 +1753,7 @@ static int fman_port_probe(struct platform_device *of_dev) u16 port_speed; u8 port_id; - port = kzalloc(sizeof(*port), GFP_KERNEL); + port = kzalloc_obj(*port, GFP_KERNEL); if (!port) return -ENOMEM; diff --git a/drivers/net/ethernet/freescale/fman/fman_tgec.c b/drivers/net/ethernet/freescale/fman/fman_tgec.c index fecfca6eba03..05edac07ba6c 100644 --- a/drivers/net/ethernet/freescale/fman/fman_tgec.c +++ b/drivers/net/ethernet/freescale/fman/fman_tgec.c @@ -505,7 +505,7 @@ static int tgec_add_hash_mac_address(struct fman_mac *tgec, hash = (crc >> TGEC_HASH_MCAST_SHIFT) & TGEC_HASH_ADR_MSK; /* Create element to be added to the driver hash table */ - hash_entry = kmalloc(sizeof(*hash_entry), GFP_ATOMIC); + hash_entry = kmalloc_obj(*hash_entry, GFP_ATOMIC); if (!hash_entry) return -ENOMEM; hash_entry->addr = addr; @@ -711,12 +711,12 @@ static struct fman_mac *tgec_config(struct mac_device *mac_dev, struct tgec_cfg *cfg; /* allocate memory for the UCC GETH data structure. */ - tgec = kzalloc(sizeof(*tgec), GFP_KERNEL); + tgec = kzalloc_obj(*tgec, GFP_KERNEL); if (!tgec) return NULL; /* allocate memory for the 10G MAC driver parameters data structure. */ - cfg = kzalloc(sizeof(*cfg), GFP_KERNEL); + cfg = kzalloc_obj(*cfg, GFP_KERNEL); if (!cfg) { tgec_free(tgec); return NULL; diff --git a/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c b/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c index f563692a4a00..3ba98561f566 100644 --- a/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c +++ b/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c @@ -866,7 +866,7 @@ static int fs_enet_probe(struct platform_device *ofdev) if (!ops) return -EINVAL; - fpi = kzalloc(sizeof(*fpi), GFP_KERNEL); + fpi = kzalloc_obj(*fpi, GFP_KERNEL); if (!fpi) return -ENOMEM; diff --git a/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c b/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c index 66038e2a4ae3..2a27dc0b5653 100644 --- a/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c +++ b/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c @@ -152,7 +152,7 @@ static int fs_enet_mdio_probe(struct platform_device *ofdev) struct bb_info *bitbang; int ret = -ENOMEM; - bitbang = kzalloc(sizeof(struct bb_info), GFP_KERNEL); + bitbang = kzalloc_obj(struct bb_info, GFP_KERNEL); if (!bitbang) goto out; diff --git a/drivers/net/ethernet/freescale/fs_enet/mii-fec.c b/drivers/net/ethernet/freescale/fs_enet/mii-fec.c index dec31b638941..512e897cea08 100644 --- a/drivers/net/ethernet/freescale/fs_enet/mii-fec.c +++ b/drivers/net/ethernet/freescale/fs_enet/mii-fec.c @@ -108,7 +108,7 @@ static int fs_enet_mdio_probe(struct platform_device *ofdev) if (!new_bus) goto out; - fec = kzalloc(sizeof(struct fec_info), GFP_KERNEL); + fec = kzalloc_obj(struct fec_info, GFP_KERNEL); if (!fec) goto out_mii; diff --git a/drivers/net/ethernet/freescale/gianfar.c b/drivers/net/ethernet/freescale/gianfar.c index 7c0f049f0938..a58cd09b4c0d 100644 --- a/drivers/net/ethernet/freescale/gianfar.c +++ b/drivers/net/ethernet/freescale/gianfar.c @@ -413,8 +413,8 @@ static int gfar_alloc_tx_queues(struct gfar_private *priv) int i; for (i = 0; i < priv->num_tx_queues; i++) { - priv->tx_queue[i] = kzalloc(sizeof(struct gfar_priv_tx_q), - GFP_KERNEL); + priv->tx_queue[i] = kzalloc_obj(struct gfar_priv_tx_q, + GFP_KERNEL); if (!priv->tx_queue[i]) return -ENOMEM; @@ -431,8 +431,8 @@ static int gfar_alloc_rx_queues(struct gfar_private *priv) int i; for (i = 0; i < priv->num_rx_queues; i++) { - priv->rx_queue[i] = kzalloc(sizeof(struct gfar_priv_rx_q), - GFP_KERNEL); + priv->rx_queue[i] = kzalloc_obj(struct gfar_priv_rx_q, + GFP_KERNEL); if (!priv->rx_queue[i]) return -ENOMEM; @@ -507,8 +507,7 @@ static int gfar_parse_group(struct device_node *np, int i; for (i = 0; i < GFAR_NUM_IRQS; i++) { - grp->irqinfo[i] = kzalloc(sizeof(struct gfar_irqinfo), - GFP_KERNEL); + grp->irqinfo[i] = kzalloc_obj(struct gfar_irqinfo, GFP_KERNEL); if (!grp->irqinfo[i]) return -ENOMEM; } @@ -1376,9 +1375,8 @@ static int gfar_alloc_skb_resources(struct net_device *ndev) for (i = 0; i < priv->num_tx_queues; i++) { tx_queue = priv->tx_queue[i]; tx_queue->tx_skbuff = - kmalloc_array(tx_queue->tx_ring_size, - sizeof(*tx_queue->tx_skbuff), - GFP_KERNEL); + kmalloc_objs(*tx_queue->tx_skbuff, + tx_queue->tx_ring_size, GFP_KERNEL); if (!tx_queue->tx_skbuff) goto cleanup; @@ -1388,9 +1386,9 @@ static int gfar_alloc_skb_resources(struct net_device *ndev) for (i = 0; i < priv->num_rx_queues; i++) { rx_queue = priv->rx_queue[i]; - rx_queue->rx_buff = kcalloc(rx_queue->rx_ring_size, - sizeof(*rx_queue->rx_buff), - GFP_KERNEL); + rx_queue->rx_buff = kzalloc_objs(*rx_queue->rx_buff, + rx_queue->rx_ring_size, + GFP_KERNEL); if (!rx_queue->rx_buff) goto cleanup; } diff --git a/drivers/net/ethernet/freescale/gianfar_ethtool.c b/drivers/net/ethernet/freescale/gianfar_ethtool.c index 6fa752d3b60d..528a0717084c 100644 --- a/drivers/net/ethernet/freescale/gianfar_ethtool.c +++ b/drivers/net/ethernet/freescale/gianfar_ethtool.c @@ -1241,7 +1241,7 @@ static int gfar_process_filer_changes(struct gfar_private *priv) s32 ret = 0; /* So index is set to zero, too! */ - tab = kzalloc(sizeof(*tab), GFP_KERNEL); + tab = kzalloc_obj(*tab, GFP_KERNEL); if (tab == NULL) return -ENOMEM; @@ -1293,7 +1293,7 @@ static int gfar_add_cls(struct gfar_private *priv, struct ethtool_flow_spec_container *temp, *comp; int ret = 0; - temp = kmalloc(sizeof(*temp), GFP_KERNEL); + temp = kmalloc_obj(*temp, GFP_KERNEL); if (temp == NULL) return -ENOMEM; memcpy(&temp->fs, flow, sizeof(temp->fs)); diff --git a/drivers/net/ethernet/freescale/ucc_geth.c b/drivers/net/ethernet/freescale/ucc_geth.c index 131d1210dc4a..b1ced6432f26 100644 --- a/drivers/net/ethernet/freescale/ucc_geth.c +++ b/drivers/net/ethernet/freescale/ucc_geth.c @@ -2071,8 +2071,8 @@ static int ucc_geth_alloc_tx(struct ucc_geth_private *ugeth) for (j = 0; j < ucc_geth_tx_queues(ug_info); j++) { /* Setup the skbuff rings */ ugeth->tx_skbuff[j] = - kcalloc(ugeth->ug_info->bdRingLenTx[j], - sizeof(struct sk_buff *), GFP_KERNEL); + kzalloc_objs(struct sk_buff *, + ugeth->ug_info->bdRingLenTx[j], GFP_KERNEL); if (ugeth->tx_skbuff[j] == NULL) { if (netif_msg_ifup(ugeth)) @@ -2129,8 +2129,8 @@ static int ucc_geth_alloc_rx(struct ucc_geth_private *ugeth) for (j = 0; j < ucc_geth_rx_queues(ug_info); j++) { /* Setup the skbuff rings */ ugeth->rx_skbuff[j] = - kcalloc(ugeth->ug_info->bdRingLenRx[j], - sizeof(struct sk_buff *), GFP_KERNEL); + kzalloc_objs(struct sk_buff *, + ugeth->ug_info->bdRingLenRx[j], GFP_KERNEL); if (ugeth->rx_skbuff[j] == NULL) { if (netif_msg_ifup(ugeth)) @@ -2677,7 +2677,7 @@ static int ucc_geth_startup(struct ucc_geth_private *ugeth) * allocated resources can be released when the channel is freed. */ if (!(ugeth->p_init_enet_param_shadow = - kzalloc(sizeof(struct ucc_geth_init_pram), GFP_KERNEL))) { + kzalloc_obj(struct ucc_geth_init_pram, GFP_KERNEL))) { if (netif_msg_ifup(ugeth)) pr_err("Can not allocate memory for p_UccInitEnetParamShadows\n"); return -ENOMEM; diff --git a/drivers/net/ethernet/fungible/funcore/fun_dev.c b/drivers/net/ethernet/fungible/funcore/fun_dev.c index ce97b76f9ae0..1c1e66068fed 100644 --- a/drivers/net/ethernet/fungible/funcore/fun_dev.c +++ b/drivers/net/ethernet/fungible/funcore/fun_dev.c @@ -210,7 +210,7 @@ static int fun_init_cmd_ctx(struct fun_dev *fdev, unsigned int ntags) { unsigned int i; - fdev->cmd_ctx = kvcalloc(ntags, sizeof(*fdev->cmd_ctx), GFP_KERNEL); + fdev->cmd_ctx = kvzalloc_objs(*fdev->cmd_ctx, ntags, GFP_KERNEL); if (!fdev->cmd_ctx) return -ENOMEM; diff --git a/drivers/net/ethernet/fungible/funcore/fun_queue.c b/drivers/net/ethernet/fungible/funcore/fun_queue.c index d07ee3e4f52a..200983145606 100644 --- a/drivers/net/ethernet/fungible/funcore/fun_queue.c +++ b/drivers/net/ethernet/fungible/funcore/fun_queue.c @@ -405,7 +405,7 @@ void fun_free_queue(struct fun_queue *funq) struct fun_queue *fun_alloc_queue(struct fun_dev *fdev, int qid, const struct fun_queue_alloc_req *req) { - struct fun_queue *funq = kzalloc(sizeof(*funq), GFP_KERNEL); + struct fun_queue *funq = kzalloc_obj(*funq, GFP_KERNEL); if (!funq) return NULL; diff --git a/drivers/net/ethernet/fungible/funeth/funeth_main.c b/drivers/net/ethernet/fungible/funeth/funeth_main.c index 792cddac6f1b..2255f203674a 100644 --- a/drivers/net/ethernet/fungible/funeth/funeth_main.c +++ b/drivers/net/ethernet/fungible/funeth/funeth_main.c @@ -424,7 +424,7 @@ static struct funeth_txq **alloc_xdpqs(struct net_device *dev, unsigned int nqs, unsigned int i; int err; - xdpqs = kcalloc(nqs, sizeof(*xdpqs), GFP_KERNEL); + xdpqs = kzalloc_objs(*xdpqs, nqs, GFP_KERNEL); if (!xdpqs) return ERR_PTR(-ENOMEM); @@ -486,7 +486,7 @@ static int fun_alloc_rings(struct net_device *netdev, struct fun_qset *qset) if (err) return err; - rxqs = kcalloc(qset->ntxqs + qset->nrxqs, sizeof(*rxqs), GFP_KERNEL); + rxqs = kzalloc_objs(*rxqs, qset->ntxqs + qset->nrxqs, GFP_KERNEL); if (!rxqs) return -ENOMEM; @@ -1175,7 +1175,7 @@ static int fun_init_vports(struct fun_ethdev *ed, unsigned int n) if (ed->num_vports) return -EINVAL; - ed->vport_info = kvcalloc(n, sizeof(*ed->vport_info), GFP_KERNEL); + ed->vport_info = kvzalloc_objs(*ed->vport_info, n, GFP_KERNEL); if (!ed->vport_info) return -ENOMEM; ed->num_vports = n; @@ -1833,7 +1833,7 @@ static int fun_create_ports(struct fun_ethdev *ed, unsigned int nports) return -EINVAL; } - ed->netdevs = kcalloc(nports, sizeof(*ed->netdevs), GFP_KERNEL); + ed->netdevs = kzalloc_objs(*ed->netdevs, nports, GFP_KERNEL); if (!ed->netdevs) return -ENOMEM; diff --git a/drivers/net/ethernet/google/gve/gve_ethtool.c b/drivers/net/ethernet/google/gve/gve_ethtool.c index 42a0a6f7b296..a2b5aeee0831 100644 --- a/drivers/net/ethernet/google/gve/gve_ethtool.c +++ b/drivers/net/ethernet/google/gve/gve_ethtool.c @@ -176,8 +176,8 @@ gve_get_ethtool_stats(struct net_device *netdev, priv = netdev_priv(netdev); num_tx_queues = gve_num_tx_queues(priv); report_stats = priv->stats_report->stats; - rx_qid_to_stats_idx = kmalloc_array(priv->rx_cfg.num_queues, - sizeof(int), GFP_KERNEL); + rx_qid_to_stats_idx = kmalloc_objs(int, priv->rx_cfg.num_queues, + GFP_KERNEL); if (!rx_qid_to_stats_idx) return; for (ring = 0; ring < priv->rx_cfg.num_queues; ring++) { @@ -185,8 +185,7 @@ gve_get_ethtool_stats(struct net_device *netdev, if (!gve_rx_was_added_to_block(priv, ring)) num_stopped_rxqs++; } - tx_qid_to_stats_idx = kmalloc_array(num_tx_queues, - sizeof(int), GFP_KERNEL); + tx_qid_to_stats_idx = kmalloc_objs(int, num_tx_queues, GFP_KERNEL); if (!tx_qid_to_stats_idx) { kfree(rx_qid_to_stats_idx); return; diff --git a/drivers/net/ethernet/google/gve/gve_flow_rule.c b/drivers/net/ethernet/google/gve/gve_flow_rule.c index 0bb8cd1876a3..f97b124b1c6a 100644 --- a/drivers/net/ethernet/google/gve/gve_flow_rule.c +++ b/drivers/net/ethernet/google/gve/gve_flow_rule.c @@ -269,7 +269,7 @@ int gve_add_flow_rule(struct gve_priv *priv, struct ethtool_rxnfc *cmd) if (!priv->max_flow_rules) return -EOPNOTSUPP; - rule = kvzalloc(sizeof(*rule), GFP_KERNEL); + rule = kvzalloc_obj(*rule, GFP_KERNEL); if (!rule) return -ENOMEM; diff --git a/drivers/net/ethernet/google/gve/gve_main.c b/drivers/net/ethernet/google/gve/gve_main.c index 0ee864b0afe0..75c4748f9de2 100644 --- a/drivers/net/ethernet/google/gve/gve_main.c +++ b/drivers/net/ethernet/google/gve/gve_main.c @@ -151,8 +151,8 @@ static int gve_alloc_flow_rule_caches(struct gve_priv *priv) return 0; flow_rules_cache->rules_cache = - kvcalloc(GVE_FLOW_RULES_CACHE_SIZE, sizeof(*flow_rules_cache->rules_cache), - GFP_KERNEL); + kvzalloc_objs(*flow_rules_cache->rules_cache, + GVE_FLOW_RULES_CACHE_SIZE, GFP_KERNEL); if (!flow_rules_cache->rules_cache) { dev_err(&priv->pdev->dev, "Cannot alloc flow rules cache\n"); return -ENOMEM; @@ -485,8 +485,8 @@ static int gve_alloc_notify_blocks(struct gve_priv *priv) int i, j; int err; - priv->msix_vectors = kvcalloc(num_vecs_requested, - sizeof(*priv->msix_vectors), GFP_KERNEL); + priv->msix_vectors = kvzalloc_objs(*priv->msix_vectors, + num_vecs_requested, GFP_KERNEL); if (!priv->msix_vectors) return -ENOMEM; for (i = 0; i < num_vecs_requested; i++) @@ -666,8 +666,8 @@ static int gve_setup_device_resources(struct gve_priv *priv) } if (!gve_is_gqi(priv)) { - priv->ptype_lut_dqo = kvzalloc(sizeof(*priv->ptype_lut_dqo), - GFP_KERNEL); + priv->ptype_lut_dqo = kvzalloc_obj(*priv->ptype_lut_dqo, + GFP_KERNEL); if (!priv->ptype_lut_dqo) { err = -ENOMEM; goto abort_with_stats_report; @@ -1090,17 +1090,17 @@ struct gve_queue_page_list *gve_alloc_queue_page_list(struct gve_priv *priv, int err; int i; - qpl = kvzalloc(sizeof(*qpl), GFP_KERNEL); + qpl = kvzalloc_obj(*qpl, GFP_KERNEL); if (!qpl) return NULL; qpl->id = id; qpl->num_entries = 0; - qpl->pages = kvcalloc(pages, sizeof(*qpl->pages), GFP_KERNEL); + qpl->pages = kvzalloc_objs(*qpl->pages, pages, GFP_KERNEL); if (!qpl->pages) goto abort; - qpl->page_buses = kvcalloc(pages, sizeof(*qpl->page_buses), GFP_KERNEL); + qpl->page_buses = kvzalloc_objs(*qpl->page_buses, pages, GFP_KERNEL); if (!qpl->page_buses) goto abort; diff --git a/drivers/net/ethernet/google/gve/gve_ptp.c b/drivers/net/ethernet/google/gve/gve_ptp.c index de42fc2c19a1..eb836ebcbd60 100644 --- a/drivers/net/ethernet/google/gve/gve_ptp.c +++ b/drivers/net/ethernet/google/gve/gve_ptp.c @@ -70,7 +70,7 @@ static int gve_ptp_init(struct gve_priv *priv) struct gve_ptp *ptp; int err; - priv->ptp = kzalloc(sizeof(*priv->ptp), GFP_KERNEL); + priv->ptp = kzalloc_obj(*priv->ptp, GFP_KERNEL); if (!priv->ptp) return -ENOMEM; diff --git a/drivers/net/ethernet/google/gve/gve_rx.c b/drivers/net/ethernet/google/gve/gve_rx.c index ec424d2f4f57..197513da0fe5 100644 --- a/drivers/net/ethernet/google/gve/gve_rx.c +++ b/drivers/net/ethernet/google/gve/gve_rx.c @@ -390,8 +390,8 @@ int gve_rx_alloc_rings_gqi(struct gve_priv *priv, int err = 0; int i, j; - rx = kvcalloc(cfg->qcfg_rx->max_queues, sizeof(struct gve_rx_ring), - GFP_KERNEL); + rx = kvzalloc_objs(struct gve_rx_ring, cfg->qcfg_rx->max_queues, + GFP_KERNEL); if (!rx) return -ENOMEM; diff --git a/drivers/net/ethernet/google/gve/gve_rx_dqo.c b/drivers/net/ethernet/google/gve/gve_rx_dqo.c index 63a96106a693..282c10e50d53 100644 --- a/drivers/net/ethernet/google/gve/gve_rx_dqo.c +++ b/drivers/net/ethernet/google/gve/gve_rx_dqo.c @@ -320,8 +320,8 @@ int gve_rx_alloc_rings_dqo(struct gve_priv *priv, int err; int i; - rx = kvcalloc(cfg->qcfg_rx->max_queues, sizeof(struct gve_rx_ring), - GFP_KERNEL); + rx = kvzalloc_objs(struct gve_rx_ring, cfg->qcfg_rx->max_queues, + GFP_KERNEL); if (!rx) return -ENOMEM; diff --git a/drivers/net/ethernet/google/gve/gve_tx.c b/drivers/net/ethernet/google/gve/gve_tx.c index 97efc8d27e6f..d2023cee1f35 100644 --- a/drivers/net/ethernet/google/gve/gve_tx.c +++ b/drivers/net/ethernet/google/gve/gve_tx.c @@ -345,8 +345,8 @@ int gve_tx_alloc_rings_gqi(struct gve_priv *priv, return -EINVAL; } - tx = kvcalloc(cfg->qcfg->max_queues, sizeof(struct gve_tx_ring), - GFP_KERNEL); + tx = kvzalloc_objs(struct gve_tx_ring, cfg->qcfg->max_queues, + GFP_KERNEL); if (!tx) return -ENOMEM; diff --git a/drivers/net/ethernet/google/gve/gve_tx_dqo.c b/drivers/net/ethernet/google/gve/gve_tx_dqo.c index 28e85730f785..44980f61e330 100644 --- a/drivers/net/ethernet/google/gve/gve_tx_dqo.c +++ b/drivers/net/ethernet/google/gve/gve_tx_dqo.c @@ -266,9 +266,8 @@ static int gve_tx_qpl_buf_init(struct gve_tx_ring *tx) tx->dqo.qpl->num_entries; int i; - tx->dqo.tx_qpl_buf_next = kvcalloc(num_tx_qpl_bufs, - sizeof(tx->dqo.tx_qpl_buf_next[0]), - GFP_KERNEL); + tx->dqo.tx_qpl_buf_next = kvzalloc_objs(tx->dqo.tx_qpl_buf_next[0], + num_tx_qpl_bufs, GFP_KERNEL); if (!tx->dqo.tx_qpl_buf_next) return -ENOMEM; @@ -337,9 +336,9 @@ static int gve_tx_alloc_ring_dqo(struct gve_priv *priv, num_pending_packets /= 2; tx->dqo.num_pending_packets = min_t(int, num_pending_packets, S16_MAX); - tx->dqo.pending_packets = kvcalloc(tx->dqo.num_pending_packets, - sizeof(tx->dqo.pending_packets[0]), - GFP_KERNEL); + tx->dqo.pending_packets = kvzalloc_objs(tx->dqo.pending_packets[0], + tx->dqo.num_pending_packets, + GFP_KERNEL); if (!tx->dqo.pending_packets) goto err; @@ -417,8 +416,8 @@ int gve_tx_alloc_rings_dqo(struct gve_priv *priv, return -EINVAL; } - tx = kvcalloc(cfg->qcfg->max_queues, sizeof(struct gve_tx_ring), - GFP_KERNEL); + tx = kvzalloc_objs(struct gve_tx_ring, cfg->qcfg->max_queues, + GFP_KERNEL); if (!tx) return -ENOMEM; diff --git a/drivers/net/ethernet/hisilicon/hns/hnae.c b/drivers/net/ethernet/hisilicon/hns/hnae.c index d4293f76d69d..5c3b4eaf144b 100644 --- a/drivers/net/ethernet/hisilicon/hns/hnae.c +++ b/drivers/net/ethernet/hisilicon/hns/hnae.c @@ -208,8 +208,8 @@ hnae_init_ring(struct hnae_queue *q, struct hnae_ring *ring, int flags) assert(ring->next_to_use == 0); assert(ring->next_to_clean == 0); - ring->desc_cb = kcalloc(ring->desc_num, sizeof(ring->desc_cb[0]), - GFP_KERNEL); + ring->desc_cb = kzalloc_objs(ring->desc_cb[0], ring->desc_num, + GFP_KERNEL); if (!ring->desc_cb) { ret = -ENOMEM; goto out; diff --git a/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c b/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c index 8ce910f8d0cc..a4f4c4d14035 100644 --- a/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c +++ b/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c @@ -81,8 +81,7 @@ static struct hnae_handle *hns_ae_get_handle(struct hnae_ae_dev *dev, vfnum_per_port = hns_ae_get_vf_num_per_port(dsaf_dev, port_id); qnum_per_vf = hns_ae_get_q_num_per_vf(dsaf_dev, port_id); - vf_cb = kzalloc(struct_size(vf_cb, ae_handle.qs, qnum_per_vf), - GFP_KERNEL); + vf_cb = kzalloc_flex(*vf_cb, ae_handle.qs, qnum_per_vf, GFP_KERNEL); if (unlikely(!vf_cb)) { dev_err(dsaf_dev->dev, "malloc vf_cb fail!\n"); ae_handle = ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c index 6d746a9fb687..dbc6d5c6644c 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c @@ -1099,8 +1099,8 @@ static struct hns3_enet_ring *hns3_backup_ringparam(struct hns3_nic_priv *priv) struct hns3_enet_ring *tmp_rings; int i; - tmp_rings = kcalloc(handle->kinfo.num_tqps * 2, - sizeof(struct hns3_enet_ring), GFP_KERNEL); + tmp_rings = kzalloc_objs(struct hns3_enet_ring, + handle->kinfo.num_tqps * 2, GFP_KERNEL); if (!tmp_rings) return NULL; diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c index b76d25074e99..5a7ce1eea30c 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c @@ -800,7 +800,7 @@ hclge_dbg_dump_reg_tqp(struct hclge_dev *hdev, if (ret) return ret; - desc_src = kcalloc(bd_num, sizeof(struct hclge_desc), GFP_KERNEL); + desc_src = kzalloc_objs(struct hclge_desc, bd_num, GFP_KERNEL); if (!desc_src) return -ENOMEM; @@ -852,7 +852,7 @@ hclge_dbg_dump_reg_common(struct hclge_dev *hdev, if (ret) return ret; - desc_src = kcalloc(bd_num, sizeof(struct hclge_desc), GFP_KERNEL); + desc_src = kzalloc_objs(struct hclge_desc, bd_num, GFP_KERNEL); if (!desc_src) return -ENOMEM; @@ -2278,7 +2278,7 @@ static int hclge_dbg_get_imp_stats_info(struct seq_file *s, void *data) return -EINVAL; } - desc_src = kcalloc(bd_num, sizeof(struct hclge_desc), GFP_KERNEL); + desc_src = kzalloc_objs(struct hclge_desc, bd_num, GFP_KERNEL); if (!desc_src) return -ENOMEM; diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c index cc7f46c0b35f..02d21c5e8e0e 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c @@ -2481,7 +2481,7 @@ static int hclge_handle_all_ras_errors(struct hclge_dev *hdev) return ret; bd_num = max_t(u32, mpf_bd_num, pf_bd_num); - desc = kcalloc(bd_num, sizeof(struct hclge_desc), GFP_KERNEL); + desc = kzalloc_objs(struct hclge_desc, bd_num, GFP_KERNEL); if (!desc) return -ENOMEM; @@ -3038,7 +3038,7 @@ static int hclge_handle_all_hw_msix_error(struct hclge_dev *hdev, goto out; bd_num = max_t(u32, mpf_bd_num, pf_bd_num); - desc = kcalloc(bd_num, sizeof(struct hclge_desc), GFP_KERNEL); + desc = kzalloc_objs(struct hclge_desc, bd_num, GFP_KERNEL); if (!desc) return -ENOMEM; @@ -3127,7 +3127,7 @@ void hclge_handle_all_hns_hw_errors(struct hnae3_ae_dev *ae_dev) return; bd_num = max_t(u32, mpf_bd_num, pf_bd_num); - desc = kcalloc(bd_num, sizeof(struct hclge_desc), GFP_KERNEL); + desc = kzalloc_objs(struct hclge_desc, bd_num, GFP_KERNEL); if (!desc) return; diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c index edec994981c7..80aa566ad31f 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c @@ -492,7 +492,7 @@ static int hclge_mac_update_stats_complete(struct hclge_dev *hdev) /* This may be called inside atomic sections, * so GFP_ATOMIC is more suitable here */ - desc = kcalloc(desc_num, sizeof(struct hclge_desc), GFP_ATOMIC); + desc = kzalloc_objs(struct hclge_desc, desc_num, GFP_ATOMIC); if (!desc) return -ENOMEM; @@ -2418,7 +2418,7 @@ int hclge_buffer_alloc(struct hclge_dev *hdev) struct hclge_pkt_buf_alloc *pkt_buf; int ret; - pkt_buf = kzalloc(sizeof(*pkt_buf), GFP_KERNEL); + pkt_buf = kzalloc_obj(*pkt_buf, GFP_KERNEL); if (!pkt_buf) return -ENOMEM; @@ -6582,7 +6582,7 @@ static int hclge_add_fd_entry(struct hnae3_handle *handle, if (ret) return ret; - rule = kzalloc(sizeof(*rule), GFP_KERNEL); + rule = kzalloc_obj(*rule, GFP_KERNEL); if (!rule) return -ENOMEM; @@ -7124,7 +7124,7 @@ static int hclge_add_fd_entry_by_arfs(struct hnae3_handle *handle, u16 queue_id, return -ENOSPC; } - rule = kzalloc(sizeof(*rule), GFP_ATOMIC); + rule = kzalloc_obj(*rule, GFP_ATOMIC); if (!rule) { spin_unlock_bh(&hdev->fd_rule_lock); return -ENOMEM; @@ -7410,7 +7410,7 @@ static int hclge_add_cls_flower(struct hnae3_handle *handle, return ret; } - rule = kzalloc(sizeof(*rule), GFP_KERNEL); + rule = kzalloc_obj(*rule, GFP_KERNEL); if (!rule) return -ENOMEM; @@ -8578,7 +8578,7 @@ int hclge_update_mac_list(struct hclge_vport *vport, return -ENOENT; } - mac_node = kzalloc(sizeof(*mac_node), GFP_ATOMIC); + mac_node = kzalloc_obj(*mac_node, GFP_ATOMIC); if (!mac_node) { spin_unlock_bh(&vport->mac_list_lock); return -ENOMEM; @@ -8986,7 +8986,7 @@ static void hclge_sync_vport_mac_table(struct hclge_vport *vport, list_move_tail(&mac_node->node, &tmp_del_list); break; case HCLGE_MAC_TO_ADD: - new_node = kzalloc(sizeof(*new_node), GFP_ATOMIC); + new_node = kzalloc_obj(*new_node, GFP_ATOMIC); if (!new_node) goto stop_traverse; ether_addr_copy(new_node->mac_addr, mac_node->mac_addr); @@ -9328,7 +9328,7 @@ int hclge_update_mac_node_for_dev_addr(struct hclge_vport *vport, new_node = hclge_find_mac_node(list, new_addr); if (!new_node) { - new_node = kzalloc(sizeof(*new_node), GFP_ATOMIC); + new_node = kzalloc_obj(*new_node, GFP_ATOMIC); if (!new_node) return -ENOMEM; @@ -10093,7 +10093,7 @@ static void hclge_add_vport_vlan_table(struct hclge_vport *vport, u16 vlan_id, } } - vlan = kzalloc(sizeof(*vlan), GFP_KERNEL); + vlan = kzalloc_obj(*vlan, GFP_KERNEL); if (!vlan) { mutex_unlock(&hdev->vport_lock); return; diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c index b7d4e06a55d4..7801c39df38d 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c @@ -212,7 +212,7 @@ static int hclge_get_ring_chain_from_mbx( cur_chain = ring_chain; for (i = 1; i < ring_num; i++) { - new_chain = kzalloc(sizeof(*new_chain), GFP_KERNEL); + new_chain = kzalloc_obj(*new_chain, GFP_KERNEL); if (!new_chain) goto err; diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_regs.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_regs.c index 8c057192aae6..3bd3195d789e 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_regs.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_regs.c @@ -190,7 +190,7 @@ static int hclge_get_32_bit_regs(struct hclge_dev *hdev, u32 regs_num, nodata_num = HCLGE_32_BIT_DESC_NODATA_LEN; cmd_num = DIV_ROUND_UP(regs_num + nodata_num, HCLGE_32_BIT_REG_RTN_DATANUM); - desc = kcalloc(cmd_num, sizeof(struct hclge_desc), GFP_KERNEL); + desc = kzalloc_objs(struct hclge_desc, cmd_num, GFP_KERNEL); if (!desc) return -ENOMEM; @@ -244,7 +244,7 @@ static int hclge_get_64_bit_regs(struct hclge_dev *hdev, u32 regs_num, nodata_len = HCLGE_64_BIT_DESC_NODATA_LEN; cmd_num = DIV_ROUND_UP(regs_num + nodata_len, HCLGE_64_BIT_REG_RTN_DATANUM); - desc = kcalloc(cmd_num, sizeof(struct hclge_desc), GFP_KERNEL); + desc = kzalloc_objs(struct hclge_desc, cmd_num, GFP_KERNEL); if (!desc) return -ENOMEM; @@ -394,7 +394,7 @@ static int hclge_get_dfx_reg_len(struct hclge_dev *hdev, int *len) int ret; u32 i; - bd_num_list = kcalloc(dfx_reg_type_num, sizeof(int), GFP_KERNEL); + bd_num_list = kzalloc_objs(int, dfx_reg_type_num, GFP_KERNEL); if (!bd_num_list) return -ENOMEM; @@ -455,7 +455,7 @@ static int hclge_get_dfx_reg(struct hclge_dev *hdev, void *data) int ret; u32 i; - bd_num_list = kcalloc(dfx_reg_type_num, sizeof(int), GFP_KERNEL); + bd_num_list = kzalloc_objs(int, dfx_reg_type_num, GFP_KERNEL); if (!bd_num_list) return -ENOMEM; diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c index 70327a73dee3..0cc911e6c732 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c @@ -977,7 +977,7 @@ static int hclgevf_update_mac_list(struct hnae3_handle *handle, return -ENOENT; } - mac_node = kzalloc(sizeof(*mac_node), GFP_ATOMIC); + mac_node = kzalloc_obj(*mac_node, GFP_ATOMIC); if (!mac_node) { spin_unlock_bh(&hdev->mac_table.mac_list_lock); return -ENOMEM; @@ -1156,7 +1156,7 @@ static void hclgevf_sync_mac_list(struct hclgevf_dev *hdev, list_move_tail(&mac_node->node, &tmp_del_list); break; case HCLGEVF_MAC_TO_ADD: - new_node = kzalloc(sizeof(*new_node), GFP_ATOMIC); + new_node = kzalloc_obj(*new_node, GFP_ATOMIC); if (!new_node) goto stop_traverse; diff --git a/drivers/net/ethernet/huawei/hinic/hinic_debugfs.c b/drivers/net/ethernet/huawei/hinic/hinic_debugfs.c index 061952c6c21a..39ceba2820bf 100644 --- a/drivers/net/ethernet/huawei/hinic/hinic_debugfs.c +++ b/drivers/net/ethernet/huawei/hinic/hinic_debugfs.c @@ -88,7 +88,7 @@ static int hinic_dbg_get_func_table(struct hinic_dev *nic_dev, int idx) int ret = ~0; int err; - read_data = kzalloc(sizeof(*read_data), GFP_KERNEL); + read_data = kzalloc_obj(*read_data, GFP_KERNEL); if (!read_data) return ~0; @@ -182,7 +182,7 @@ static int create_dbg_files(struct hinic_dev *dev, enum hinic_dbg_type type, voi struct hinic_debug_priv *tmp; int i; - tmp = kzalloc(sizeof(*tmp), GFP_KERNEL); + tmp = kzalloc_obj(*tmp, GFP_KERNEL); if (!tmp) return -ENOMEM; diff --git a/drivers/net/ethernet/huawei/hinic/hinic_devlink.c b/drivers/net/ethernet/huawei/hinic/hinic_devlink.c index 300bc267a259..f4d34fdbc014 100644 --- a/drivers/net/ethernet/huawei/hinic/hinic_devlink.c +++ b/drivers/net/ethernet/huawei/hinic/hinic_devlink.c @@ -130,7 +130,7 @@ static int hinic_flash_fw(struct hinic_devlink_priv *priv, const u8 *data, int total_len_flag = 0; int err; - fw_update_msg = kzalloc(sizeof(*fw_update_msg), GFP_KERNEL); + fw_update_msg = kzalloc_obj(*fw_update_msg, GFP_KERNEL); if (!fw_update_msg) return -ENOMEM; diff --git a/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c b/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c index f28528df5aac..d4787347d0c5 100644 --- a/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c +++ b/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c @@ -1392,7 +1392,7 @@ static void hinic_get_ethtool_stats(struct net_device *netdev, sizeof(u64)) ? *(u64 *)p : *(u32 *)p; } - port_stats = kzalloc(sizeof(*port_stats), GFP_KERNEL); + port_stats = kzalloc_obj(*port_stats, GFP_KERNEL); if (!port_stats) { memset(&data[i], 0, ARRAY_SIZE(hinic_port_stats) * sizeof(*data)); diff --git a/drivers/net/ethernet/huawei/hinic/hinic_hw_mbox.c b/drivers/net/ethernet/huawei/hinic/hinic_hw_mbox.c index 97c1584dc05b..f8aef328f8c0 100644 --- a/drivers/net/ethernet/huawei/hinic/hinic_hw_mbox.c +++ b/drivers/net/ethernet/huawei/hinic/hinic_hw_mbox.c @@ -487,7 +487,7 @@ static void recv_mbox_handler(struct hinic_mbox_func_to_func *func_to_func, if (!rcv_mbox_temp->buf_out) goto err_alloc_rcv_mbox_buf; - mbox_work = kzalloc(sizeof(*mbox_work), GFP_KERNEL); + mbox_work = kzalloc_obj(*mbox_work, GFP_KERNEL); if (!mbox_work) goto err_alloc_mbox_work; @@ -603,7 +603,7 @@ static bool check_vf_mbox_random_id(struct hinic_mbox_func_to_func *func_to_func "The mailbox random id(0x%x) of func_id(0x%x) doesn't match with pf reservation(0x%x)\n", random_id, src, func_to_func->vf_mbx_rand_id[src]); - mbox_work = kzalloc(sizeof(*mbox_work), GFP_KERNEL); + mbox_work = kzalloc_obj(*mbox_work, GFP_KERNEL); if (!mbox_work) return false; @@ -1402,7 +1402,7 @@ int hinic_func_to_func_init(struct hinic_hwdev *hwdev) int err; pfhwdev = container_of(hwdev, struct hinic_pfhwdev, hwdev); - func_to_func = kzalloc(sizeof(*func_to_func), GFP_KERNEL); + func_to_func = kzalloc_obj(*func_to_func, GFP_KERNEL); if (!func_to_func) return -ENOMEM; diff --git a/drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c b/drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c index 4aa1f433ed24..8bda0a26a345 100644 --- a/drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c +++ b/drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c @@ -441,7 +441,7 @@ static void mgmt_recv_msg_handler(struct hinic_pf_to_mgmt *pf_to_mgmt, { struct hinic_mgmt_msg_handle_work *mgmt_work = NULL; - mgmt_work = kzalloc(sizeof(*mgmt_work), GFP_KERNEL); + mgmt_work = kzalloc_obj(*mgmt_work, GFP_KERNEL); if (!mgmt_work) return; diff --git a/drivers/net/ethernet/huawei/hinic/hinic_port.c b/drivers/net/ethernet/huawei/hinic/hinic_port.c index 486fb0e20bef..868e666cc392 100644 --- a/drivers/net/ethernet/huawei/hinic/hinic_port.c +++ b/drivers/net/ethernet/huawei/hinic/hinic_port.c @@ -1032,7 +1032,7 @@ int hinic_get_phy_port_stats(struct hinic_dev *nic_dev, struct pci_dev *pdev = hwif->pdev; int err; - port_stats = kzalloc(sizeof(*port_stats), GFP_KERNEL); + port_stats = kzalloc_obj(*port_stats, GFP_KERNEL); if (!port_stats) return -ENOMEM; diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_cmdq.c b/drivers/net/ethernet/huawei/hinic3/hinic3_cmdq.c index 86720bb119e9..ab38da085ae5 100644 --- a/drivers/net/ethernet/huawei/hinic3/hinic3_cmdq.c +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_cmdq.c @@ -123,7 +123,7 @@ struct hinic3_cmd_buf *hinic3_alloc_cmd_buf(struct hinic3_hwdev *hwdev) cmdqs = hwdev->cmdqs; - cmd_buf = kmalloc(sizeof(*cmd_buf), GFP_ATOMIC); + cmd_buf = kmalloc_obj(*cmd_buf, GFP_ATOMIC); if (!cmd_buf) return NULL; @@ -614,8 +614,8 @@ static int init_cmdq(struct hinic3_cmdq *cmdq, struct hinic3_hwdev *hwdev, spin_lock_init(&cmdq->cmdq_lock); - cmdq->cmd_infos = kcalloc(cmdq->wq.q_depth, sizeof(*cmdq->cmd_infos), - GFP_KERNEL); + cmdq->cmd_infos = kzalloc_objs(*cmdq->cmd_infos, cmdq->wq.q_depth, + GFP_KERNEL); if (!cmdq->cmd_infos) { err = -ENOMEM; return err; @@ -738,7 +738,7 @@ static int init_cmdqs(struct hinic3_hwdev *hwdev) { struct hinic3_cmdqs *cmdqs; - cmdqs = kzalloc(sizeof(*cmdqs), GFP_KERNEL); + cmdqs = kzalloc_obj(*cmdqs, GFP_KERNEL); if (!cmdqs) return -ENOMEM; diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_eqs.c b/drivers/net/ethernet/huawei/hinic3/hinic3_eqs.c index a2c3962116d5..78f50dc6513a 100644 --- a/drivers/net/ethernet/huawei/hinic3/hinic3_eqs.c +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_eqs.c @@ -648,7 +648,7 @@ int hinic3_aeqs_init(struct hinic3_hwdev *hwdev, u16 num_aeqs, u16 q_id; int err; - aeqs = kzalloc(sizeof(*aeqs), GFP_KERNEL); + aeqs = kzalloc_obj(*aeqs, GFP_KERNEL); if (!aeqs) return -ENOMEM; @@ -720,7 +720,7 @@ int hinic3_ceqs_init(struct hinic3_hwdev *hwdev, u16 num_ceqs, u16 q_id; int err; - ceqs = kzalloc(sizeof(*ceqs), GFP_KERNEL); + ceqs = kzalloc_obj(*ceqs, GFP_KERNEL); if (!ceqs) return -ENOMEM; diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_filter.c b/drivers/net/ethernet/huawei/hinic3/hinic3_filter.c index 6349d71f574b..6d378c86aabd 100644 --- a/drivers/net/ethernet/huawei/hinic3/hinic3_filter.c +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_filter.c @@ -75,7 +75,7 @@ static void hinic3_add_filter(struct net_device *netdev, struct hinic3_nic_dev *nic_dev = netdev_priv(netdev); struct hinic3_mac_filter *f; - f = kzalloc(sizeof(*f), GFP_ATOMIC); + f = kzalloc_obj(*f, GFP_ATOMIC); if (!f) return; @@ -110,7 +110,7 @@ hinic3_mac_filter_entry_clone(const struct hinic3_mac_filter *src) { struct hinic3_mac_filter *f; - f = kzalloc(sizeof(*f), GFP_ATOMIC); + f = kzalloc_obj(*f, GFP_ATOMIC); if (!f) return NULL; diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_hw_cfg.c b/drivers/net/ethernet/huawei/hinic3/hinic3_hw_cfg.c index 7827c1f626db..c65dec383535 100644 --- a/drivers/net/ethernet/huawei/hinic3/hinic3_hw_cfg.c +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_hw_cfg.c @@ -86,8 +86,7 @@ static int hinic3_init_irq_info(struct hinic3_hwdev *hwdev) } irq_info = &cfg_mgmt->irq_info; - irq_info->irq = kcalloc(intr_num, sizeof(struct hinic3_irq), - GFP_KERNEL); + irq_info->irq = kzalloc_objs(struct hinic3_irq, intr_num, GFP_KERNEL); if (!irq_info->irq) return -ENOMEM; @@ -130,7 +129,7 @@ int hinic3_init_cfg_mgmt(struct hinic3_hwdev *hwdev) struct hinic3_cfg_mgmt_info *cfg_mgmt; int err; - cfg_mgmt = kzalloc(sizeof(*cfg_mgmt), GFP_KERNEL); + cfg_mgmt = kzalloc_obj(*cfg_mgmt, GFP_KERNEL); if (!cfg_mgmt) return -ENOMEM; diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_hwdev.c b/drivers/net/ethernet/huawei/hinic3/hinic3_hwdev.c index 7906d4057cf2..f0b402b792b9 100644 --- a/drivers/net/ethernet/huawei/hinic3/hinic3_hwdev.c +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_hwdev.c @@ -528,7 +528,7 @@ int hinic3_init_hwdev(struct pci_dev *pdev) struct hinic3_hwdev *hwdev; int err; - hwdev = kzalloc(sizeof(*hwdev), GFP_KERNEL); + hwdev = kzalloc_obj(*hwdev, GFP_KERNEL); if (!hwdev) return -ENOMEM; diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_hwif.c b/drivers/net/ethernet/huawei/hinic3/hinic3_hwif.c index 801f48e241f8..c1eeedbe0c15 100644 --- a/drivers/net/ethernet/huawei/hinic3/hinic3_hwif.c +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_hwif.c @@ -432,7 +432,7 @@ int hinic3_init_hwif(struct hinic3_hwdev *hwdev) u32 attr1, attr4, attr5; int err; - hwif = kzalloc(sizeof(*hwif), GFP_KERNEL); + hwif = kzalloc_obj(*hwif, GFP_KERNEL); if (!hwif) return -ENOMEM; diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_lld.c b/drivers/net/ethernet/huawei/hinic3/hinic3_lld.c index 87413e192f10..b5d026c95d39 100644 --- a/drivers/net/ethernet/huawei/hinic3/hinic3_lld.c +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_lld.c @@ -60,7 +60,7 @@ static struct hinic3_adev *hinic3_add_one_adev(struct hinic3_hwdev *hwdev, const char *svc_name; int ret; - hadev = kzalloc(sizeof(*hadev), GFP_KERNEL); + hadev = kzalloc_obj(*hadev, GFP_KERNEL); if (!hadev) return NULL; @@ -250,7 +250,7 @@ static int hinic3_pci_init(struct pci_dev *pdev) struct hinic3_pcidev *pci_adapter; int err; - pci_adapter = kzalloc(sizeof(*pci_adapter), GFP_KERNEL); + pci_adapter = kzalloc_obj(*pci_adapter, GFP_KERNEL); if (!pci_adapter) return -ENOMEM; diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_main.c b/drivers/net/ethernet/huawei/hinic3/hinic3_main.c index 6275d94dfefd..3c9efe037793 100644 --- a/drivers/net/ethernet/huawei/hinic3/hinic3_main.c +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_main.c @@ -57,9 +57,8 @@ static int hinic3_init_intr_coalesce(struct net_device *netdev) { struct hinic3_nic_dev *nic_dev = netdev_priv(netdev); - nic_dev->intr_coalesce = kcalloc(nic_dev->max_qps, - sizeof(*nic_dev->intr_coalesce), - GFP_KERNEL); + nic_dev->intr_coalesce = kzalloc_objs(*nic_dev->intr_coalesce, + nic_dev->max_qps, GFP_KERNEL); if (!nic_dev->intr_coalesce) return -ENOMEM; diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_mbox.c b/drivers/net/ethernet/huawei/hinic3/hinic3_mbox.c index c871fd0fb109..8c7bb38cc57d 100644 --- a/drivers/net/ethernet/huawei/hinic3/hinic3_mbox.c +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_mbox.c @@ -320,7 +320,7 @@ static int hinic3_init_func_mbox_msg_channel(struct hinic3_hwdev *hwdev) int err; mbox = hwdev->mbox; - mbox->func_msg = kzalloc(sizeof(*mbox->func_msg), GFP_KERNEL); + mbox->func_msg = kzalloc_obj(*mbox->func_msg, GFP_KERNEL); if (!mbox->func_msg) return -ENOMEM; @@ -412,7 +412,7 @@ int hinic3_init_mbox(struct hinic3_hwdev *hwdev) struct hinic3_mbox *mbox; int err; - mbox = kzalloc(sizeof(*mbox), GFP_KERNEL); + mbox = kzalloc_obj(*mbox, GFP_KERNEL); if (!mbox) return -ENOMEM; diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_mgmt.c b/drivers/net/ethernet/huawei/hinic3/hinic3_mgmt.c index be2a2ae75fc0..29422ac14bb8 100644 --- a/drivers/net/ethernet/huawei/hinic3/hinic3_mgmt.c +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_mgmt.c @@ -120,7 +120,7 @@ static void hinic3_init_mgmt_msg_work(struct hinic3_msg_pf_to_mgmt *pf_to_mgmt, { struct mgmt_msg_handle_work *mgmt_work; - mgmt_work = kmalloc(sizeof(*mgmt_work), GFP_KERNEL); + mgmt_work = kmalloc_obj(*mgmt_work, GFP_KERNEL); if (!mgmt_work) return; @@ -252,7 +252,7 @@ int hinic3_pf_to_mgmt_init(struct hinic3_hwdev *hwdev) struct hinic3_msg_pf_to_mgmt *pf_to_mgmt; int err; - pf_to_mgmt = kzalloc(sizeof(*pf_to_mgmt), GFP_KERNEL); + pf_to_mgmt = kzalloc_obj(*pf_to_mgmt, GFP_KERNEL); if (!pf_to_mgmt) return -ENOMEM; diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_netdev_ops.c b/drivers/net/ethernet/huawei/hinic3/hinic3_netdev_ops.c index 75adfe897e81..7830bff30859 100644 --- a/drivers/net/ethernet/huawei/hinic3/hinic3_netdev_ops.c +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_netdev_ops.c @@ -99,9 +99,8 @@ static int hinic3_setup_num_qps(struct net_device *netdev) nic_dev->num_qp_irq = 0; - nic_dev->qps_msix_entries = kcalloc(nic_dev->max_qps, - sizeof(struct msix_entry), - GFP_KERNEL); + nic_dev->qps_msix_entries = kzalloc_objs(struct msix_entry, + nic_dev->max_qps, GFP_KERNEL); if (!nic_dev->qps_msix_entries) return -ENOMEM; @@ -127,20 +126,20 @@ static int hinic3_alloc_txrxq_resources(struct net_device *netdev, { int err; - q_params->txqs_res = kcalloc(q_params->num_qps, - sizeof(*q_params->txqs_res), GFP_KERNEL); + q_params->txqs_res = kzalloc_objs(*q_params->txqs_res, + q_params->num_qps, GFP_KERNEL); if (!q_params->txqs_res) return -ENOMEM; - q_params->rxqs_res = kcalloc(q_params->num_qps, - sizeof(*q_params->rxqs_res), GFP_KERNEL); + q_params->rxqs_res = kzalloc_objs(*q_params->rxqs_res, + q_params->num_qps, GFP_KERNEL); if (!q_params->rxqs_res) { err = -ENOMEM; goto err_free_txqs_res_arr; } - q_params->irq_cfg = kcalloc(q_params->num_qps, - sizeof(*q_params->irq_cfg), GFP_KERNEL); + q_params->irq_cfg = kzalloc_objs(*q_params->irq_cfg, q_params->num_qps, + GFP_KERNEL); if (!q_params->irq_cfg) { err = -ENOMEM; goto err_free_rxqs_res_arr; diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_nic_io.c b/drivers/net/ethernet/huawei/hinic3/hinic3_nic_io.c index 90887d2bb127..0ded1000b369 100644 --- a/drivers/net/ethernet/huawei/hinic3/hinic3_nic_io.c +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_nic_io.c @@ -212,7 +212,7 @@ int hinic3_init_nic_io(struct hinic3_nic_dev *nic_dev) struct hinic3_nic_io *nic_io; int err; - nic_io = kzalloc(sizeof(*nic_io), GFP_KERNEL); + nic_io = kzalloc_obj(*nic_io, GFP_KERNEL); if (!nic_io) return -ENOMEM; @@ -408,13 +408,13 @@ int hinic3_alloc_qps(struct hinic3_nic_dev *nic_dev, if (qp_params->num_qps > nic_io->max_qps || !qp_params->num_qps) return -EINVAL; - sqs = kcalloc(qp_params->num_qps, sizeof(*sqs), GFP_KERNEL); + sqs = kzalloc_objs(*sqs, qp_params->num_qps, GFP_KERNEL); if (!sqs) { err = -ENOMEM; goto err_out; } - rqs = kcalloc(qp_params->num_qps, sizeof(*rqs), GFP_KERNEL); + rqs = kzalloc_objs(*rqs, qp_params->num_qps, GFP_KERNEL); if (!rqs) { err = -ENOMEM; goto err_free_sqs; diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_queue_common.c b/drivers/net/ethernet/huawei/hinic3/hinic3_queue_common.c index fab9011de9ad..9c00d1ed825a 100644 --- a/drivers/net/ethernet/huawei/hinic3/hinic3_queue_common.c +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_queue_common.c @@ -44,8 +44,8 @@ int hinic3_queue_pages_alloc(struct hinic3_hwdev *hwdev, u32 pg_idx; int err; - qpages->pages = kcalloc(qpages->num_pages, sizeof(qpages->pages[0]), - GFP_KERNEL); + qpages->pages = kzalloc_objs(qpages->pages[0], qpages->num_pages, + GFP_KERNEL); if (!qpages->pages) return -ENOMEM; diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_rx.c b/drivers/net/ethernet/huawei/hinic3/hinic3_rx.c index 159c291fa293..f2d43beab444 100644 --- a/drivers/net/ethernet/huawei/hinic3/hinic3_rx.c +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_rx.c @@ -66,7 +66,7 @@ int hinic3_alloc_rxqs(struct net_device *netdev) struct hinic3_rxq *rxq; u16 q_id; - nic_dev->rxqs = kcalloc(num_rxqs, sizeof(*nic_dev->rxqs), GFP_KERNEL); + nic_dev->rxqs = kzalloc_objs(*nic_dev->rxqs, num_rxqs, GFP_KERNEL); if (!nic_dev->rxqs) return -ENOMEM; @@ -419,8 +419,8 @@ int hinic3_alloc_rxqs_res(struct net_device *netdev, u16 num_rq, for (idx = 0; idx < num_rq; idx++) { rqres = &rxqs_res[idx]; - rqres->rx_info = kcalloc(rq_depth, sizeof(*rqres->rx_info), - GFP_KERNEL); + rqres->rx_info = kzalloc_objs(*rqres->rx_info, rq_depth, + GFP_KERNEL); if (!rqres->rx_info) goto err_free_rqres; diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_tx.c b/drivers/net/ethernet/huawei/hinic3/hinic3_tx.c index 6d3dc930ca97..8c988df8963e 100644 --- a/drivers/net/ethernet/huawei/hinic3/hinic3_tx.c +++ b/drivers/net/ethernet/huawei/hinic3/hinic3_tx.c @@ -48,7 +48,7 @@ int hinic3_alloc_txqs(struct net_device *netdev) struct pci_dev *pdev = nic_dev->pdev; struct hinic3_txq *txq; - nic_dev->txqs = kcalloc(num_txqs, sizeof(*nic_dev->txqs), GFP_KERNEL); + nic_dev->txqs = kzalloc_objs(*nic_dev->txqs, num_txqs, GFP_KERNEL); if (!nic_dev->txqs) return -ENOMEM; @@ -681,14 +681,14 @@ int hinic3_alloc_txqs_res(struct net_device *netdev, u16 num_sq, for (idx = 0; idx < num_sq; idx++) { tqres = &txqs_res[idx]; - tqres->tx_info = kcalloc(sq_depth, sizeof(*tqres->tx_info), - GFP_KERNEL); + tqres->tx_info = kzalloc_objs(*tqres->tx_info, sq_depth, + GFP_KERNEL); if (!tqres->tx_info) goto err_free_tqres; - tqres->bds = kcalloc(sq_depth * HINIC3_BDS_PER_SQ_WQEBB + - HINIC3_MAX_SQ_SGE, sizeof(*tqres->bds), - GFP_KERNEL); + tqres->bds = kzalloc_objs(*tqres->bds, + sq_depth * HINIC3_BDS_PER_SQ_WQEBB + HINIC3_MAX_SQ_SGE, + GFP_KERNEL); if (!tqres->bds) { kfree(tqres->tx_info); goto err_free_tqres; diff --git a/drivers/net/ethernet/ibm/ehea/ehea_main.c b/drivers/net/ethernet/ibm/ehea/ehea_main.c index 9b006bc353a1..a2d7f5468590 100644 --- a/drivers/net/ethernet/ibm/ehea/ehea_main.c +++ b/drivers/net/ethernet/ibm/ehea/ehea_main.c @@ -173,7 +173,7 @@ static void ehea_update_firmware_handles(void) num_portres * EHEA_NUM_PORTRES_FW_HANDLES; if (num_fw_handles) { - arr = kcalloc(num_fw_handles, sizeof(*arr), GFP_KERNEL); + arr = kzalloc_objs(*arr, num_fw_handles, GFP_KERNEL); if (!arr) goto out; /* Keep the existing array */ } else @@ -256,7 +256,7 @@ static void ehea_update_bcmc_registrations(void) } if (num_registrations) { - arr = kcalloc(num_registrations, sizeof(*arr), GFP_ATOMIC); + arr = kzalloc_objs(*arr, num_registrations, GFP_ATOMIC); if (!arr) goto out; /* Keep the existing array */ } else @@ -1487,7 +1487,7 @@ static int ehea_init_port_res(struct ehea_port *port, struct ehea_port_res *pr, pr->send_cq->attr.act_nr_of_cqes, pr->recv_cq->attr.act_nr_of_cqes); - init_attr = kzalloc(sizeof(*init_attr), GFP_KERNEL); + init_attr = kzalloc_obj(*init_attr, GFP_KERNEL); if (!init_attr) { ret = -ENOMEM; pr_err("no mem for ehea_qp_init_attr\n"); @@ -1899,7 +1899,7 @@ static void ehea_add_multicast_entry(struct ehea_port *port, u8 *mc_mac_addr) struct ehea_mc_list *ehea_mcl_entry; u64 hret; - ehea_mcl_entry = kzalloc(sizeof(*ehea_mcl_entry), GFP_ATOMIC); + ehea_mcl_entry = kzalloc_obj(*ehea_mcl_entry, GFP_ATOMIC); if (!ehea_mcl_entry) return; @@ -2968,7 +2968,7 @@ static struct ehea_port *ehea_setup_single_port(struct ehea_adapter *adapter, port->msg_enable = netif_msg_init(msg_level, EHEA_MSG_DEFAULT); - port->mc_list = kzalloc(sizeof(struct ehea_mc_list), GFP_KERNEL); + port->mc_list = kzalloc_obj(struct ehea_mc_list, GFP_KERNEL); if (!port->mc_list) { ret = -ENOMEM; goto out_free_ethdev; diff --git a/drivers/net/ethernet/ibm/ehea/ehea_qmr.c b/drivers/net/ethernet/ibm/ehea/ehea_qmr.c index db45373ea31c..e9d51e65efe8 100644 --- a/drivers/net/ethernet/ibm/ehea/ehea_qmr.c +++ b/drivers/net/ethernet/ibm/ehea/ehea_qmr.c @@ -114,7 +114,7 @@ struct ehea_cq *ehea_create_cq(struct ehea_adapter *adapter, int ret; void *vpage; - cq = kzalloc(sizeof(*cq), GFP_KERNEL); + cq = kzalloc_obj(*cq, GFP_KERNEL); if (!cq) goto out_nomem; @@ -235,7 +235,7 @@ struct ehea_eq *ehea_create_eq(struct ehea_adapter *adapter, void *vpage; struct ehea_eq *eq; - eq = kzalloc(sizeof(*eq), GFP_KERNEL); + eq = kzalloc_obj(*eq, GFP_KERNEL); if (!eq) return NULL; @@ -404,7 +404,7 @@ struct ehea_qp *ehea_create_qp(struct ehea_adapter *adapter, u32 wqe_size_in_bytes_rq2, wqe_size_in_bytes_rq3; - qp = kzalloc(sizeof(*qp), GFP_KERNEL); + qp = kzalloc_obj(*qp, GFP_KERNEL); if (!qp) return NULL; @@ -542,7 +542,7 @@ static inline int ehea_init_top_bmap(struct ehea_top_bmap *ehea_top_bmap, { if (!ehea_top_bmap->dir[dir]) { ehea_top_bmap->dir[dir] = - kzalloc(sizeof(struct ehea_dir_bmap), GFP_KERNEL); + kzalloc_obj(struct ehea_dir_bmap, GFP_KERNEL); if (!ehea_top_bmap->dir[dir]) return -ENOMEM; } @@ -553,7 +553,7 @@ static inline int ehea_init_bmap(struct ehea_bmap *ehea_bmap, int top, int dir) { if (!ehea_bmap->top[top]) { ehea_bmap->top[top] = - kzalloc(sizeof(struct ehea_top_bmap), GFP_KERNEL); + kzalloc_obj(struct ehea_top_bmap, GFP_KERNEL); if (!ehea_bmap->top[top]) return -ENOMEM; } @@ -613,7 +613,7 @@ static int ehea_update_busmap(unsigned long pfn, unsigned long nr_pages, int add return 0; if (!ehea_bmap) { - ehea_bmap = kzalloc(sizeof(struct ehea_bmap), GFP_KERNEL); + ehea_bmap = kzalloc_obj(struct ehea_bmap, GFP_KERNEL); if (!ehea_bmap) return -ENOMEM; } diff --git a/drivers/net/ethernet/ibm/ibmveth.c b/drivers/net/ethernet/ibm/ibmveth.c index 6f0821f1e798..3108bf50576f 100644 --- a/drivers/net/ethernet/ibm/ibmveth.c +++ b/drivers/net/ethernet/ibm/ibmveth.c @@ -169,7 +169,7 @@ static int ibmveth_alloc_buffer_pool(struct ibmveth_buff_pool *pool) if (!pool->free_map) return -1; - pool->dma_addr = kcalloc(pool->size, sizeof(dma_addr_t), GFP_KERNEL); + pool->dma_addr = kzalloc_objs(dma_addr_t, pool->size, GFP_KERNEL); if (!pool->dma_addr) { kfree(pool->free_map); pool->free_map = NULL; diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 3808148c1fc7..1241be315d58 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -932,16 +932,14 @@ static void release_stats_buffers(struct ibmvnic_adapter *adapter) static int init_stats_buffers(struct ibmvnic_adapter *adapter) { adapter->tx_stats_buffers = - kcalloc(IBMVNIC_MAX_QUEUES, - sizeof(struct ibmvnic_tx_queue_stats), - GFP_KERNEL); + kzalloc_objs(struct ibmvnic_tx_queue_stats, + IBMVNIC_MAX_QUEUES, GFP_KERNEL); if (!adapter->tx_stats_buffers) return -ENOMEM; adapter->rx_stats_buffers = - kcalloc(IBMVNIC_MAX_QUEUES, - sizeof(struct ibmvnic_rx_queue_stats), - GFP_KERNEL); + kzalloc_objs(struct ibmvnic_rx_queue_stats, + IBMVNIC_MAX_QUEUES, GFP_KERNEL); if (!adapter->rx_stats_buffers) return -ENOMEM; @@ -1096,9 +1094,8 @@ static int init_rx_pools(struct net_device *netdev) /* Allocate/populate the pools. */ release_rx_pools(adapter); - adapter->rx_pool = kcalloc(num_pools, - sizeof(struct ibmvnic_rx_pool), - GFP_KERNEL); + adapter->rx_pool = kzalloc_objs(struct ibmvnic_rx_pool, num_pools, + GFP_KERNEL); if (!adapter->rx_pool) { dev_err(dev, "Failed to allocate rx pools\n"); return -ENOMEM; @@ -1120,17 +1117,15 @@ static int init_rx_pools(struct net_device *netdev) rx_pool->index = i; rx_pool->buff_size = ALIGN(buff_size, L1_CACHE_BYTES); - rx_pool->free_map = kcalloc(rx_pool->size, sizeof(int), - GFP_KERNEL); + rx_pool->free_map = kzalloc_objs(int, rx_pool->size, GFP_KERNEL); if (!rx_pool->free_map) { dev_err(dev, "Couldn't alloc free_map %d\n", i); rc = -ENOMEM; goto out_release; } - rx_pool->rx_buff = kcalloc(rx_pool->size, - sizeof(struct ibmvnic_rx_buff), - GFP_KERNEL); + rx_pool->rx_buff = kzalloc_objs(struct ibmvnic_rx_buff, + rx_pool->size, GFP_KERNEL); if (!rx_pool->rx_buff) { dev_err(dev, "Couldn't alloc rx buffers\n"); rc = -ENOMEM; @@ -1243,13 +1238,12 @@ static int init_one_tx_pool(struct net_device *netdev, { int i; - tx_pool->tx_buff = kcalloc(pool_size, - sizeof(struct ibmvnic_tx_buff), - GFP_KERNEL); + tx_pool->tx_buff = kzalloc_objs(struct ibmvnic_tx_buff, pool_size, + GFP_KERNEL); if (!tx_pool->tx_buff) return -ENOMEM; - tx_pool->free_map = kcalloc(pool_size, sizeof(int), GFP_KERNEL); + tx_pool->free_map = kzalloc_objs(int, pool_size, GFP_KERNEL); if (!tx_pool->free_map) { kfree(tx_pool->tx_buff); tx_pool->tx_buff = NULL; @@ -1341,13 +1335,13 @@ static int init_tx_pools(struct net_device *netdev) pool_size = adapter->req_tx_entries_per_subcrq; num_pools = adapter->num_active_tx_scrqs; - adapter->tx_pool = kcalloc(num_pools, - sizeof(struct ibmvnic_tx_pool), GFP_KERNEL); + adapter->tx_pool = kzalloc_objs(struct ibmvnic_tx_pool, num_pools, + GFP_KERNEL); if (!adapter->tx_pool) return -ENOMEM; - adapter->tso_pool = kcalloc(num_pools, - sizeof(struct ibmvnic_tx_pool), GFP_KERNEL); + adapter->tso_pool = kzalloc_objs(struct ibmvnic_tx_pool, num_pools, + GFP_KERNEL); /* To simplify release_tx_pools() ensure that ->tx_pool and * ->tso_pool are either both NULL or both non-NULL. */ @@ -1471,8 +1465,8 @@ static int init_napi(struct ibmvnic_adapter *adapter) { int i; - adapter->napi = kcalloc(adapter->req_rx_queues, - sizeof(struct napi_struct), GFP_KERNEL); + adapter->napi = kzalloc_objs(struct napi_struct, adapter->req_rx_queues, + GFP_KERNEL); if (!adapter->napi) return -ENOMEM; @@ -1859,7 +1853,7 @@ static int init_resources(struct ibmvnic_adapter *adapter) if (rc) return rc; - adapter->vpd = kzalloc(sizeof(*adapter->vpd), GFP_KERNEL); + adapter->vpd = kzalloc_obj(*adapter->vpd, GFP_KERNEL); if (!adapter->vpd) return -ENOMEM; @@ -3450,7 +3444,7 @@ static int ibmvnic_reset(struct ibmvnic_adapter *adapter, } } - rwi = kzalloc(sizeof(*rwi), GFP_ATOMIC); + rwi = kzalloc_obj(*rwi, GFP_ATOMIC); if (!rwi) { ret = ENOMEM; goto err; @@ -4055,7 +4049,7 @@ static struct ibmvnic_sub_crq_queue *init_sub_crq_queue(struct ibmvnic_adapter struct ibmvnic_sub_crq_queue *scrq; int rc; - scrq = kzalloc(sizeof(*scrq), GFP_KERNEL); + scrq = kzalloc_obj(*scrq, GFP_KERNEL); if (!scrq) return NULL; @@ -4447,7 +4441,7 @@ static int init_sub_crqs(struct ibmvnic_adapter *adapter) total_queues = adapter->req_tx_queues + adapter->req_rx_queues; - allqueues = kcalloc(total_queues, sizeof(*allqueues), GFP_KERNEL); + allqueues = kzalloc_objs(*allqueues, total_queues, GFP_KERNEL); if (!allqueues) return -ENOMEM; @@ -4486,8 +4480,8 @@ static int init_sub_crqs(struct ibmvnic_adapter *adapter) } } - adapter->tx_scrq = kcalloc(adapter->req_tx_queues, - sizeof(*adapter->tx_scrq), GFP_KERNEL); + adapter->tx_scrq = kzalloc_objs(*adapter->tx_scrq, + adapter->req_tx_queues, GFP_KERNEL); if (!adapter->tx_scrq) goto tx_failed; @@ -4497,8 +4491,8 @@ static int init_sub_crqs(struct ibmvnic_adapter *adapter) adapter->num_active_tx_scrqs++; } - adapter->rx_scrq = kcalloc(adapter->req_rx_queues, - sizeof(*adapter->rx_scrq), GFP_KERNEL); + adapter->rx_scrq = kzalloc_objs(*adapter->rx_scrq, + adapter->req_rx_queues, GFP_KERNEL); if (!adapter->rx_scrq) goto rx_failed; diff --git a/drivers/net/ethernet/intel/e100.c b/drivers/net/ethernet/intel/e100.c index 5c56c1edd492..321a15a220a6 100644 --- a/drivers/net/ethernet/intel/e100.c +++ b/drivers/net/ethernet/intel/e100.c @@ -2156,7 +2156,7 @@ static int e100_rx_alloc_list(struct nic *nic) nic->rx_to_use = nic->rx_to_clean = NULL; nic->ru_running = RU_UNINITIALIZED; - if (!(nic->rxs = kcalloc(count, sizeof(struct rx), GFP_KERNEL))) + if (!(nic->rxs = kzalloc_objs(struct rx, count, GFP_KERNEL))) return -ENOMEM; for (rx = nic->rxs, i = 0; i < count; rx++, i++) { diff --git a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c index 726365c567ef..132644a387ef 100644 --- a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c +++ b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c @@ -582,13 +582,13 @@ static int e1000_set_ringparam(struct net_device *netdev, rx_old = adapter->rx_ring; err = -ENOMEM; - txdr = kcalloc(adapter->num_tx_queues, sizeof(struct e1000_tx_ring), - GFP_KERNEL); + txdr = kzalloc_objs(struct e1000_tx_ring, adapter->num_tx_queues, + GFP_KERNEL); if (!txdr) goto err_alloc_tx; - rxdr = kcalloc(adapter->num_rx_queues, sizeof(struct e1000_rx_ring), - GFP_KERNEL); + rxdr = kzalloc_objs(struct e1000_rx_ring, adapter->num_rx_queues, + GFP_KERNEL); if (!rxdr) goto err_alloc_rx; @@ -984,8 +984,8 @@ static int e1000_setup_desc_rings(struct e1000_adapter *adapter) if (!txdr->count) txdr->count = E1000_DEFAULT_TXD; - txdr->buffer_info = kcalloc(txdr->count, sizeof(struct e1000_tx_buffer), - GFP_KERNEL); + txdr->buffer_info = kzalloc_objs(struct e1000_tx_buffer, txdr->count, + GFP_KERNEL); if (!txdr->buffer_info) { ret_val = 1; goto err_nomem; @@ -1043,8 +1043,8 @@ static int e1000_setup_desc_rings(struct e1000_adapter *adapter) if (!rxdr->count) rxdr->count = E1000_DEFAULT_RXD; - rxdr->buffer_info = kcalloc(rxdr->count, sizeof(struct e1000_rx_buffer), - GFP_KERNEL); + rxdr->buffer_info = kzalloc_objs(struct e1000_rx_buffer, rxdr->count, + GFP_KERNEL); if (!rxdr->buffer_info) { ret_val = 5; goto err_nomem; diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c index 7f078ec9c14c..b0ecd3413ffb 100644 --- a/drivers/net/ethernet/intel/e1000/e1000_main.c +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c @@ -1322,13 +1322,13 @@ static int e1000_sw_init(struct e1000_adapter *adapter) **/ static int e1000_alloc_queues(struct e1000_adapter *adapter) { - adapter->tx_ring = kcalloc(adapter->num_tx_queues, - sizeof(struct e1000_tx_ring), GFP_KERNEL); + adapter->tx_ring = kzalloc_objs(struct e1000_tx_ring, + adapter->num_tx_queues, GFP_KERNEL); if (!adapter->tx_ring) return -ENOMEM; - adapter->rx_ring = kcalloc(adapter->num_rx_queues, - sizeof(struct e1000_rx_ring), GFP_KERNEL); + adapter->rx_ring = kzalloc_objs(struct e1000_rx_ring, + adapter->num_rx_queues, GFP_KERNEL); if (!adapter->rx_ring) { kfree(adapter->tx_ring); return -ENOMEM; diff --git a/drivers/net/ethernet/intel/e1000e/ethtool.c b/drivers/net/ethernet/intel/e1000e/ethtool.c index 7b1ac90b3de4..21094a03189a 100644 --- a/drivers/net/ethernet/intel/e1000e/ethtool.c +++ b/drivers/net/ethernet/intel/e1000e/ethtool.c @@ -1173,8 +1173,8 @@ static int e1000_setup_desc_rings(struct e1000_adapter *adapter) if (!tx_ring->count) tx_ring->count = E1000_DEFAULT_TXD; - tx_ring->buffer_info = kcalloc(tx_ring->count, - sizeof(struct e1000_buffer), GFP_KERNEL); + tx_ring->buffer_info = kzalloc_objs(struct e1000_buffer, tx_ring->count, + GFP_KERNEL); if (!tx_ring->buffer_info) { ret_val = 1; goto err_nomem; @@ -1234,8 +1234,8 @@ static int e1000_setup_desc_rings(struct e1000_adapter *adapter) if (!rx_ring->count) rx_ring->count = E1000_DEFAULT_RXD; - rx_ring->buffer_info = kcalloc(rx_ring->count, - sizeof(struct e1000_buffer), GFP_KERNEL); + rx_ring->buffer_info = kzalloc_objs(struct e1000_buffer, rx_ring->count, + GFP_KERNEL); if (!rx_ring->buffer_info) { ret_val = 5; goto err_nomem; diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index ddbe2f7d8112..edd503b79f98 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c @@ -2050,10 +2050,9 @@ void e1000e_set_interrupt_capability(struct e1000_adapter *adapter) case E1000E_INT_MODE_MSIX: if (adapter->flags & FLAG_HAS_MSIX) { adapter->num_vectors = 3; /* RxQ0, TxQ0 and other */ - adapter->msix_entries = kcalloc(adapter->num_vectors, - sizeof(struct - msix_entry), - GFP_KERNEL); + adapter->msix_entries = kzalloc_objs(struct msix_entry, + adapter->num_vectors, + GFP_KERNEL); if (adapter->msix_entries) { struct e1000_adapter *a = adapter; @@ -2370,9 +2369,9 @@ int e1000e_setup_rx_resources(struct e1000_ring *rx_ring) for (i = 0; i < rx_ring->count; i++) { buffer_info = &rx_ring->buffer_info[i]; - buffer_info->ps_pages = kcalloc(PS_PAGE_BUFFERS, - sizeof(struct e1000_ps_page), - GFP_KERNEL); + buffer_info->ps_pages = kzalloc_objs(struct e1000_ps_page, + PS_PAGE_BUFFERS, + GFP_KERNEL); if (!buffer_info->ps_pages) goto err_pages; } diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_main.c b/drivers/net/ethernet/intel/fm10k/fm10k_main.c index b8c15b837fda..9f2620a14484 100644 --- a/drivers/net/ethernet/intel/fm10k/fm10k_main.c +++ b/drivers/net/ethernet/intel/fm10k/fm10k_main.c @@ -1597,7 +1597,7 @@ static int fm10k_alloc_q_vector(struct fm10k_intfc *interface, ring_count = txr_count + rxr_count; /* allocate q_vector and rings */ - q_vector = kzalloc(struct_size(q_vector, ring, ring_count), GFP_KERNEL); + q_vector = kzalloc_flex(*q_vector, ring, ring_count, GFP_KERNEL); if (!q_vector) return -ENOMEM; @@ -1825,8 +1825,8 @@ static int fm10k_init_msix_capability(struct fm10k_intfc *interface) v_budget = min_t(int, v_budget, hw->mac.max_msix_vectors); /* A failure in MSI-X entry allocation is fatal. */ - interface->msix_entries = kcalloc(v_budget, sizeof(struct msix_entry), - GFP_KERNEL); + interface->msix_entries = kzalloc_objs(struct msix_entry, v_budget, + GFP_KERNEL); if (!interface->msix_entries) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c b/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c index 34ab5ff9823b..c86701be4364 100644 --- a/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c +++ b/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c @@ -649,7 +649,7 @@ int fm10k_queue_vlan_request(struct fm10k_intfc *interface, /* This must be atomic since we may be called while the netdev * addr_list_lock is held */ - request = kzalloc(sizeof(*request), GFP_ATOMIC); + request = kzalloc_obj(*request, GFP_ATOMIC); if (!request) return -ENOMEM; @@ -688,7 +688,7 @@ int fm10k_queue_mac_request(struct fm10k_intfc *interface, u16 glort, /* This must be atomic since we may be called while the netdev * addr_list_lock is held */ - request = kzalloc(sizeof(*request), GFP_ATOMIC); + request = kzalloc_obj(*request, GFP_ATOMIC); if (!request) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/i40e/i40e_client.c b/drivers/net/ethernet/intel/i40e/i40e_client.c index 518bc738ea3b..dacebf773adf 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_client.c +++ b/drivers/net/ethernet/intel/i40e/i40e_client.c @@ -291,7 +291,7 @@ static int i40e_register_auxiliary_dev(struct i40e_info *ldev, const char *name) struct auxiliary_device *aux_dev; int ret; - i40e_aux_dev = kzalloc(sizeof(*i40e_aux_dev), GFP_KERNEL); + i40e_aux_dev = kzalloc_obj(*i40e_aux_dev, GFP_KERNEL); if (!i40e_aux_dev) return -ENOMEM; @@ -337,7 +337,7 @@ static void i40e_client_add_instance(struct i40e_pf *pf) struct i40e_client_instance *cdev = NULL; struct netdev_hw_addr *mac = NULL; - cdev = kzalloc(sizeof(*cdev), GFP_KERNEL); + cdev = kzalloc_obj(*cdev, GFP_KERNEL); if (!cdev) return; @@ -466,7 +466,7 @@ int i40e_lan_add_device(struct i40e_pf *pf) goto out; } } - ldev = kzalloc(sizeof(*ldev), GFP_KERNEL); + ldev = kzalloc_obj(*ldev, GFP_KERNEL); if (!ldev) { ret = -ENOMEM; goto out; @@ -566,8 +566,8 @@ static int i40e_client_setup_qvlist(struct i40e_info *ldev, struct i40e_qv_info *qv_info; u32 v_idx, i, reg_idx, reg; - ldev->qvlist_info = kzalloc(struct_size(ldev->qvlist_info, qv_info, - qvlist_info->num_vectors), GFP_KERNEL); + ldev->qvlist_info = kzalloc_flex(*ldev->qvlist_info, qv_info, + qvlist_info->num_vectors, GFP_KERNEL); if (!ldev->qvlist_info) return -ENOMEM; ldev->qvlist_info->num_vectors = qvlist_info->num_vectors; diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c index c17b5d290f0a..8056fa9d9cf2 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c +++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c @@ -983,9 +983,8 @@ static ssize_t i40e_dbg_command_write(struct file *filp, int i, ret; u16 switch_id; - bw_data = kzalloc(sizeof( - struct i40e_aqc_query_port_ets_config_resp), - GFP_KERNEL); + bw_data = kzalloc_obj(struct i40e_aqc_query_port_ets_config_resp, + GFP_KERNEL); if (!bw_data) { ret = -ENOMEM; goto command_write_done; @@ -1229,7 +1228,7 @@ static ssize_t i40e_dbg_command_write(struct file *filp, struct libie_aq_desc *desc; int ret; - desc = kzalloc(sizeof(*desc), GFP_KERNEL); + desc = kzalloc_obj(*desc, GFP_KERNEL); if (!desc) goto command_write_done; cnt = sscanf(&cmd_buf[11], @@ -1277,7 +1276,7 @@ static ssize_t i40e_dbg_command_write(struct file *filp, u8 *buff; int ret; - desc = kzalloc(sizeof(*desc), GFP_KERNEL); + desc = kzalloc_obj(*desc, GFP_KERNEL); if (!desc) goto command_write_done; cnt = sscanf(&cmd_buf[20], diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c index 6a47ea0927e9..3ddc29db8dc5 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c +++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c @@ -2120,8 +2120,8 @@ static int i40e_set_ringparam(struct net_device *netdev, netdev_info(netdev, "Changing Tx descriptor count from %d to %d.\n", vsi->tx_rings[0]->count, new_tx_count); - tx_rings = kcalloc(tx_alloc_queue_pairs, - sizeof(struct i40e_ring), GFP_KERNEL); + tx_rings = kzalloc_objs(struct i40e_ring, tx_alloc_queue_pairs, + GFP_KERNEL); if (!tx_rings) { err = -ENOMEM; goto done; @@ -2159,8 +2159,8 @@ static int i40e_set_ringparam(struct net_device *netdev, netdev_info(netdev, "Changing Rx descriptor count from %d to %d\n", vsi->rx_rings[0]->count, new_rx_count); - rx_rings = kcalloc(vsi->alloc_queue_pairs, - sizeof(struct i40e_ring), GFP_KERNEL); + rx_rings = kzalloc_objs(struct i40e_ring, + vsi->alloc_queue_pairs, GFP_KERNEL); if (!rx_rings) { err = -ENOMEM; goto free_tx; @@ -3976,7 +3976,7 @@ static int i40e_add_flex_offset(struct list_head *flex_pit_list, { struct i40e_flex_pit *new_pit, *entry; - new_pit = kzalloc(sizeof(*entry), GFP_KERNEL); + new_pit = kzalloc_obj(*entry, GFP_KERNEL); if (!new_pit) return -ENOMEM; @@ -4867,7 +4867,7 @@ static int i40e_add_fdir_ethtool(struct i40e_vsi *vsi, q_index = ring; } - input = kzalloc(sizeof(*input), GFP_KERNEL); + input = kzalloc_obj(*input, GFP_KERNEL); if (!input) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index 02de186dcc8f..05dc5ddc918c 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -1462,7 +1462,7 @@ static int i40e_correct_mac_vlan_filters(struct i40e_vsi *vsi, return -ENOMEM; /* Create a temporary i40e_new_mac_filter */ - new = kzalloc(sizeof(*new), GFP_ATOMIC); + new = kzalloc_obj(*new, GFP_ATOMIC); if (!new) return -ENOMEM; @@ -1574,7 +1574,7 @@ static int i40e_correct_vf_mac_vlan_filters(struct i40e_vsi *vsi, if (!add_head) return -ENOMEM; /* Create a temporary i40e_new_mac_filter */ - new_mac = kzalloc(sizeof(*new_mac), GFP_ATOMIC); + new_mac = kzalloc_obj(*new_mac, GFP_ATOMIC); if (!new_mac) return -ENOMEM; new_mac->f = add_head; @@ -1651,7 +1651,7 @@ struct i40e_mac_filter *i40e_add_filter(struct i40e_vsi *vsi, f = i40e_find_filter(vsi, macaddr, vlan); if (!f) { - f = kzalloc(sizeof(*f), GFP_ATOMIC); + f = kzalloc_obj(*f, GFP_ATOMIC); if (!f) return NULL; @@ -2606,7 +2606,7 @@ int i40e_sync_vsi_filters(struct i40e_vsi *vsi) } if (f->state == I40E_FILTER_NEW) { /* Create a temporary i40e_new_mac_filter */ - new = kzalloc(sizeof(*new), GFP_ATOMIC); + new = kzalloc_obj(*new, GFP_ATOMIC); if (!new) goto err_no_memory_locked; @@ -6686,7 +6686,7 @@ static int i40e_configure_queue_channels(struct i40e_vsi *vsi) vsi->tc_seid_map[0] = vsi->seid; for (i = 1; i < I40E_MAX_TRAFFIC_CLASS; i++) { if (vsi->tc_config.enabled_tc & BIT(i)) { - ch = kzalloc(sizeof(*ch), GFP_KERNEL); + ch = kzalloc_obj(*ch, GFP_KERNEL); if (!ch) { ret = -ENOMEM; goto err_free; @@ -7962,7 +7962,7 @@ static int i40e_setup_macvlans(struct i40e_vsi *vsi, u16 macvlan_cnt, u16 qcnt, /* Create channels for macvlans */ INIT_LIST_HEAD(&vsi->macvlan_list); for (i = 0; i < macvlan_cnt; i++) { - ch = kzalloc(sizeof(*ch), GFP_KERNEL); + ch = kzalloc_obj(*ch, GFP_KERNEL); if (!ch) { ret = -ENOMEM; goto err_free; @@ -8074,7 +8074,7 @@ static void *i40e_fwd_add(struct net_device *netdev, struct net_device *vdev) return ERR_PTR(-EBUSY); /* create the fwd struct */ - fwd = kzalloc(sizeof(*fwd), GFP_KERNEL); + fwd = kzalloc_obj(*fwd, GFP_KERNEL); if (!fwd) return ERR_PTR(-ENOMEM); @@ -8835,7 +8835,7 @@ static int i40e_configure_clsflower(struct i40e_vsi *vsi, clear_bit(I40E_FLAG_FD_SB_TO_CLOUD_FILTER, vsi->back->flags); } - filter = kzalloc(sizeof(*filter), GFP_KERNEL); + filter = kzalloc_obj(*filter, GFP_KERNEL); if (!filter) return -ENOMEM; @@ -11540,7 +11540,7 @@ static int i40e_vsi_mem_alloc(struct i40e_pf *pf, enum i40e_vsi_type type) } pf->next_vsi = ++i; - vsi = kzalloc(sizeof(*vsi), GFP_KERNEL); + vsi = kzalloc_obj(*vsi, GFP_KERNEL); if (!vsi) { ret = -ENOMEM; goto unlock_pf; @@ -11711,7 +11711,7 @@ static int i40e_alloc_rings(struct i40e_vsi *vsi) /* Set basic values in the rings to be used later during open() */ for (i = 0; i < vsi->alloc_queue_pairs; i++) { /* allocate space for both Tx and Rx in one shot */ - ring = kcalloc(qpv, sizeof(struct i40e_ring), GFP_KERNEL); + ring = kzalloc_objs(struct i40e_ring, qpv, GFP_KERNEL); if (!ring) goto err_out; @@ -11914,8 +11914,7 @@ static int i40e_init_msix(struct i40e_pf *pf) "Calculation of remaining vectors underflowed. This is an accounting bug when determining total MSI-X vectors.\n"); v_budget += pf->num_lan_msix; - pf->msix_entries = kcalloc(v_budget, sizeof(struct msix_entry), - GFP_KERNEL); + pf->msix_entries = kzalloc_objs(struct msix_entry, v_budget, GFP_KERNEL); if (!pf->msix_entries) return -ENOMEM; @@ -12028,7 +12027,7 @@ static int i40e_vsi_alloc_q_vector(struct i40e_vsi *vsi, int v_idx) struct i40e_q_vector *q_vector; /* allocate q_vector */ - q_vector = kzalloc(sizeof(struct i40e_q_vector), GFP_KERNEL); + q_vector = kzalloc_obj(struct i40e_q_vector, GFP_KERNEL); if (!q_vector) return -ENOMEM; @@ -14581,7 +14580,7 @@ static int i40e_veb_mem_alloc(struct i40e_pf *pf) goto err_alloc_veb; /* out of VEB slots! */ } - veb = kzalloc(sizeof(*veb), GFP_KERNEL); + veb = kzalloc_obj(*veb, GFP_KERNEL); if (!veb) { ret = -ENOMEM; goto err_alloc_veb; @@ -15441,8 +15440,7 @@ static int i40e_init_recovery_mode(struct i40e_pf *pf, struct i40e_hw *hw) pf->num_alloc_vsi = pf->hw.func_caps.num_vsis; /* Set up the vsi struct and our local tracking of the MAIN PF vsi. */ - pf->vsi = kcalloc(pf->num_alloc_vsi, sizeof(struct i40e_vsi *), - GFP_KERNEL); + pf->vsi = kzalloc_objs(struct i40e_vsi *, pf->num_alloc_vsi, GFP_KERNEL); if (!pf->vsi) { err = -ENOMEM; goto err_switch_setup; @@ -15865,8 +15863,7 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent) } /* Set up the *vsi struct and our local tracking of the MAIN PF vsi. */ - pf->vsi = kcalloc(pf->num_alloc_vsi, sizeof(struct i40e_vsi *), - GFP_KERNEL); + pf->vsi = kzalloc_objs(struct i40e_vsi *, pf->num_alloc_vsi, GFP_KERNEL); if (!pf->vsi) { err = -ENOMEM; goto err_switch_setup; diff --git a/drivers/net/ethernet/intel/i40e/i40e_ptp.c b/drivers/net/ethernet/intel/i40e/i40e_ptp.c index 33535418178b..416b42743439 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_ptp.c +++ b/drivers/net/ethernet/intel/i40e/i40e_ptp.c @@ -1132,7 +1132,7 @@ int i40e_ptp_alloc_pins(struct i40e_pf *pf) return 0; pf->ptp_pins = - kzalloc(sizeof(struct i40e_ptp_pins_settings), GFP_KERNEL); + kzalloc_obj(struct i40e_ptp_pins_settings, GFP_KERNEL); if (!pf->ptp_pins) { dev_warn(&pf->pdev->dev, "Cannot allocate memory for PTP pins structure.\n"); @@ -1344,9 +1344,8 @@ static int i40e_init_pin_config(struct i40e_pf *pf) pf->ptp_caps.pps = 1; pf->ptp_caps.n_per_out = 2; - pf->ptp_caps.pin_config = kcalloc(pf->ptp_caps.n_pins, - sizeof(*pf->ptp_caps.pin_config), - GFP_KERNEL); + pf->ptp_caps.pin_config = kzalloc_objs(*pf->ptp_caps.pin_config, + pf->ptp_caps.n_pins, GFP_KERNEL); if (!pf->ptp_caps.pin_config) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c index cc0b9efc2637..f89927bfa9d1 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c +++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c @@ -1572,7 +1572,7 @@ int i40e_setup_rx_descriptors(struct i40e_ring *rx_ring) rx_ring->xdp_prog = rx_ring->vsi->xdp_prog; rx_ring->rx_bi = - kcalloc(rx_ring->count, sizeof(*rx_ring->rx_bi), GFP_KERNEL); + kzalloc_objs(*rx_ring->rx_bi, rx_ring->count, GFP_KERNEL); if (!rx_ring->rx_bi) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c index 1fa877b52f61..fb4560cc42f4 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c @@ -1261,7 +1261,7 @@ static void i40e_get_vlan_list_sync(struct i40e_vsi *vsi, u16 *num_vlans, spin_lock_bh(&vsi->mac_filter_hash_lock); *num_vlans = __i40e_getnum_vf_vsi_vlan_filters(vsi); - *vlan_list = kcalloc(*num_vlans, sizeof(**vlan_list), GFP_ATOMIC); + *vlan_list = kzalloc_objs(**vlan_list, *num_vlans, GFP_ATOMIC); if (!(*vlan_list)) goto err; @@ -1844,7 +1844,7 @@ int i40e_alloc_vfs(struct i40e_pf *pf, u16 num_alloc_vfs) } } /* allocate memory */ - vfs = kcalloc(num_alloc_vfs, sizeof(struct i40e_vf), GFP_KERNEL); + vfs = kzalloc_objs(struct i40e_vf, num_alloc_vfs, GFP_KERNEL); if (!vfs) { ret = -ENOMEM; goto err_alloc; @@ -3956,7 +3956,7 @@ static int i40e_vc_add_cloud_filter(struct i40e_vf *vf, u8 *msg) goto err_out; } - cfilter = kzalloc(sizeof(*cfilter), GFP_KERNEL); + cfilter = kzalloc_obj(*cfilter, GFP_KERNEL); if (!cfilter) { aq_ret = -ENOMEM; goto err_out; diff --git a/drivers/net/ethernet/intel/iavf/iavf_ethtool.c b/drivers/net/ethernet/intel/iavf/iavf_ethtool.c index 2cc21289a707..e0163e2e022b 100644 --- a/drivers/net/ethernet/intel/iavf/iavf_ethtool.c +++ b/drivers/net/ethernet/intel/iavf/iavf_ethtool.c @@ -1276,7 +1276,7 @@ static int iavf_add_fdir_ethtool(struct iavf_adapter *adapter, struct ethtool_rx } spin_unlock_bh(&adapter->fdir_fltr_lock); - fltr = kzalloc(sizeof(*fltr), GFP_KERNEL); + fltr = kzalloc_obj(*fltr, GFP_KERNEL); if (!fltr) return -ENOMEM; @@ -1519,7 +1519,7 @@ iavf_set_rxfh_fields(struct net_device *netdev, if (hash_flds == IAVF_ADV_RSS_HASH_INVALID) return -EINVAL; - rss_new = kzalloc(sizeof(*rss_new), GFP_KERNEL); + rss_new = kzalloc_obj(*rss_new, GFP_KERNEL); if (!rss_new) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c b/drivers/net/ethernet/intel/iavf/iavf_main.c index 4b0fc8f354bc..5ee145d9dd0b 100644 --- a/drivers/net/ethernet/intel/iavf/iavf_main.c +++ b/drivers/net/ethernet/intel/iavf/iavf_main.c @@ -771,7 +771,7 @@ iavf_vlan_filter *iavf_add_vlan(struct iavf_adapter *adapter, f = iavf_find_vlan(adapter, vlan); if (!f) { - f = kzalloc(sizeof(*f), GFP_ATOMIC); + f = kzalloc_obj(*f, GFP_ATOMIC); if (!f) goto clearout; @@ -978,7 +978,7 @@ struct iavf_mac_filter *iavf_add_filter(struct iavf_adapter *adapter, f = iavf_find_filter(adapter, macaddr); if (!f) { - f = kzalloc(sizeof(*f), GFP_ATOMIC); + f = kzalloc_obj(*f, GFP_ATOMIC); if (!f) return f; @@ -1585,12 +1585,12 @@ static int iavf_alloc_queues(struct iavf_adapter *adapter) (int)(num_online_cpus())); - adapter->tx_rings = kcalloc(num_active_queues, - sizeof(struct iavf_ring), GFP_KERNEL); + adapter->tx_rings = kzalloc_objs(struct iavf_ring, num_active_queues, + GFP_KERNEL); if (!adapter->tx_rings) goto err_out; - adapter->rx_rings = kcalloc(num_active_queues, - sizeof(struct iavf_ring), GFP_KERNEL); + adapter->rx_rings = kzalloc_objs(struct iavf_ring, num_active_queues, + GFP_KERNEL); if (!adapter->rx_rings) goto err_out; @@ -1653,8 +1653,8 @@ static int iavf_set_interrupt_capability(struct iavf_adapter *adapter) v_budget = min_t(int, pairs + NONQ_VECS, (int)adapter->vf_res->max_vectors); - adapter->msix_entries = kcalloc(v_budget, - sizeof(struct msix_entry), GFP_KERNEL); + adapter->msix_entries = kzalloc_objs(struct msix_entry, v_budget, + GFP_KERNEL); if (!adapter->msix_entries) { err = -ENOMEM; goto out; @@ -1812,8 +1812,7 @@ static int iavf_alloc_q_vectors(struct iavf_adapter *adapter) struct iavf_q_vector *q_vector; num_q_vectors = adapter->num_msix_vectors - NONQ_VECS; - adapter->q_vectors = kcalloc(num_q_vectors, sizeof(*q_vector), - GFP_KERNEL); + adapter->q_vectors = kzalloc_objs(*q_vector, num_q_vectors, GFP_KERNEL); if (!adapter->q_vectors) return -ENOMEM; @@ -4119,7 +4118,7 @@ static int iavf_configure_clsflower(struct iavf_adapter *adapter, return -EINVAL; } - filter = kzalloc(sizeof(*filter), GFP_KERNEL); + filter = kzalloc_obj(*filter, GFP_KERNEL); if (!filter) return -ENOMEM; filter->cookie = cls_flower->cookie; @@ -4234,7 +4233,7 @@ static int iavf_add_cls_u32(struct iavf_adapter *adapter, return -EOPNOTSUPP; } - fltr = kzalloc(sizeof(*fltr), GFP_KERNEL); + fltr = kzalloc_obj(*fltr, GFP_KERNEL); if (!fltr) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/iavf/iavf_ptp.c b/drivers/net/ethernet/intel/iavf/iavf_ptp.c index 9cbd8c154031..f2f3411878e1 100644 --- a/drivers/net/ethernet/intel/iavf/iavf_ptp.c +++ b/drivers/net/ethernet/intel/iavf/iavf_ptp.c @@ -133,7 +133,7 @@ static struct iavf_ptp_aq_cmd *iavf_allocate_ptp_cmd(enum virtchnl_ops v_opcode, { struct iavf_ptp_aq_cmd *cmd; - cmd = kzalloc(struct_size(cmd, msg, msglen), GFP_KERNEL); + cmd = kzalloc_flex(*cmd, msg, msglen, GFP_KERNEL); if (!cmd) return NULL; diff --git a/drivers/net/ethernet/intel/ice/devlink/devlink.c b/drivers/net/ethernet/intel/ice/devlink/devlink.c index 2ef39cc70c21..38081776ce65 100644 --- a/drivers/net/ethernet/intel/ice/devlink/devlink.c +++ b/drivers/net/ethernet/intel/ice/devlink/devlink.c @@ -285,7 +285,7 @@ static int ice_devlink_info_get(struct devlink *devlink, return err; } - ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); + ctx = kzalloc_obj(*ctx, GFP_KERNEL); if (!ctx) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ice/devlink/port.c b/drivers/net/ethernet/intel/ice/devlink/port.c index 63fb36fc4b3d..ce830213e73a 100644 --- a/drivers/net/ethernet/intel/ice/devlink/port.c +++ b/drivers/net/ethernet/intel/ice/devlink/port.c @@ -58,8 +58,9 @@ static void ice_devlink_port_options_print(struct ice_pf *pf) const char *str; int status; - options = kcalloc(ICE_AQC_PORT_OPT_MAX * ICE_MAX_PORT_PER_PCI_DEV, - sizeof(*options), GFP_KERNEL); + options = kzalloc_objs(*options, + ICE_AQC_PORT_OPT_MAX * ICE_MAX_PORT_PER_PCI_DEV, + GFP_KERNEL); if (!options) return; @@ -920,7 +921,7 @@ ice_alloc_dynamic_port(struct ice_pf *pf, if (err) return err; - dyn_port = kzalloc(sizeof(*dyn_port), GFP_KERNEL); + dyn_port = kzalloc_obj(*dyn_port, GFP_KERNEL); if (!dyn_port) { err = -ENOMEM; goto unroll_reserve_sf_num; diff --git a/drivers/net/ethernet/intel/ice/ice_adapter.c b/drivers/net/ethernet/intel/ice/ice_adapter.c index 0a8a48cd4bce..d5b857b07f21 100644 --- a/drivers/net/ethernet/intel/ice/ice_adapter.c +++ b/drivers/net/ethernet/intel/ice/ice_adapter.c @@ -55,7 +55,7 @@ static struct ice_adapter *ice_adapter_new(struct pci_dev *pdev) { struct ice_adapter *adapter; - adapter = kzalloc(sizeof(*adapter), GFP_KERNEL); + adapter = kzalloc_obj(*adapter, GFP_KERNEL); if (!adapter) return NULL; diff --git a/drivers/net/ethernet/intel/ice/ice_arfs.c b/drivers/net/ethernet/intel/ice/ice_arfs.c index 1f7834c03550..fe9b40654df2 100644 --- a/drivers/net/ethernet/intel/ice/ice_arfs.c +++ b/drivers/net/ethernet/intel/ice/ice_arfs.c @@ -534,13 +534,12 @@ static int ice_init_arfs_cntrs(struct ice_vsi *vsi) if (!vsi || vsi->type != ICE_VSI_PF) return -EINVAL; - vsi->arfs_fltr_cntrs = kzalloc(sizeof(*vsi->arfs_fltr_cntrs), - GFP_KERNEL); + vsi->arfs_fltr_cntrs = kzalloc_obj(*vsi->arfs_fltr_cntrs, GFP_KERNEL); if (!vsi->arfs_fltr_cntrs) return -ENOMEM; - vsi->arfs_last_fltr_id = kzalloc(sizeof(*vsi->arfs_last_fltr_id), - GFP_KERNEL); + vsi->arfs_last_fltr_id = kzalloc_obj(*vsi->arfs_last_fltr_id, + GFP_KERNEL); if (!vsi->arfs_last_fltr_id) { kfree(vsi->arfs_fltr_cntrs); vsi->arfs_fltr_cntrs = NULL; @@ -562,8 +561,8 @@ void ice_init_arfs(struct ice_vsi *vsi) if (!vsi || vsi->type != ICE_VSI_PF || ice_is_arfs_active(vsi)) return; - arfs_fltr_list = kcalloc(ICE_MAX_ARFS_LIST, sizeof(*arfs_fltr_list), - GFP_KERNEL); + arfs_fltr_list = kzalloc_objs(*arfs_fltr_list, ICE_MAX_ARFS_LIST, + GFP_KERNEL); if (!arfs_fltr_list) return; diff --git a/drivers/net/ethernet/intel/ice/ice_base.c b/drivers/net/ethernet/intel/ice/ice_base.c index afbff8aa9ceb..35089e80e810 100644 --- a/drivers/net/ethernet/intel/ice/ice_base.c +++ b/drivers/net/ethernet/intel/ice/ice_base.c @@ -107,7 +107,7 @@ static int ice_vsi_alloc_q_vector(struct ice_vsi *vsi, u16 v_idx) int err; /* allocate q_vector */ - q_vector = kzalloc(sizeof(*q_vector), GFP_KERNEL); + q_vector = kzalloc_obj(*q_vector, GFP_KERNEL); if (!q_vector) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ice/ice_common.c b/drivers/net/ethernet/intel/ice/ice_common.c index 64e798b8f18f..651cd5476f88 100644 --- a/drivers/net/ethernet/intel/ice/ice_common.c +++ b/drivers/net/ethernet/intel/ice/ice_common.c @@ -1067,7 +1067,7 @@ int ice_init_hw(struct ice_hw *hw) if (status) goto err_unroll_sched; - pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL); + pcaps = kzalloc_obj(*pcaps, GFP_KERNEL); if (!pcaps) { status = -ENOMEM; goto err_unroll_sched; @@ -1103,8 +1103,8 @@ int ice_init_hw(struct ice_hw *hw) /* Get MAC information */ /* A single port can report up to two (LAN and WoL) addresses */ - mac_buf = kcalloc(2, sizeof(struct ice_aqc_manage_mac_read_resp), - GFP_KERNEL); + mac_buf = kzalloc_objs(struct ice_aqc_manage_mac_read_resp, 2, + GFP_KERNEL); if (!mac_buf) { status = -ENOMEM; goto err_unroll_fltr_mgmt_struct; @@ -3630,7 +3630,7 @@ int ice_update_link_info(struct ice_port_info *pi) if (li->link_info & ICE_AQ_MEDIA_AVAILABLE) { struct ice_aqc_get_phy_caps_data *pcaps __free(kfree) = NULL; - pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL); + pcaps = kzalloc_obj(*pcaps, GFP_KERNEL); if (!pcaps) return -ENOMEM; @@ -3881,7 +3881,7 @@ ice_set_fc(struct ice_port_info *pi, u8 *aq_failures, bool ena_auto_link_update) *aq_failures = 0; hw = pi->hw; - pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL); + pcaps = kzalloc_obj(*pcaps, GFP_KERNEL); if (!pcaps) return -ENOMEM; @@ -4020,7 +4020,7 @@ ice_cfg_phy_fec(struct ice_port_info *pi, struct ice_aqc_set_phy_cfg_data *cfg, hw = pi->hw; - pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL); + pcaps = kzalloc_obj(*pcaps, GFP_KERNEL); if (!pcaps) return -ENOMEM; @@ -4358,7 +4358,7 @@ int ice_get_phy_lane_number(struct ice_hw *hw) hw->device_id == ICE_DEV_ID_E825C_SGMII) return hw->pf_id; - options = kcalloc(ICE_AQC_PORT_OPT_MAX, sizeof(*options), GFP_KERNEL); + options = kzalloc_objs(*options, ICE_AQC_PORT_OPT_MAX, GFP_KERNEL); if (!options) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ice/ice_dcb_lib.c b/drivers/net/ethernet/intel/ice/ice_dcb_lib.c index 9fc8681cc58e..9d0e71598948 100644 --- a/drivers/net/ethernet/intel/ice/ice_dcb_lib.c +++ b/drivers/net/ethernet/intel/ice/ice_dcb_lib.c @@ -399,7 +399,7 @@ int ice_pf_dcb_cfg(struct ice_pf *pf, struct ice_dcbx_cfg *new_cfg, bool locked) } /* Notify AUX drivers about impending change to TCs */ - event = kzalloc(sizeof(*event), GFP_KERNEL); + event = kzalloc_obj(*event, GFP_KERNEL); if (!event) { ret = -ENOMEM; goto free_cfg; @@ -575,7 +575,7 @@ void ice_dcb_rebuild(struct ice_pf *pf) dcb_error: dev_err(dev, "Disabling DCB until new settings occur\n"); - err_cfg = kzalloc(sizeof(*err_cfg), GFP_KERNEL); + err_cfg = kzalloc_obj(*err_cfg, GFP_KERNEL); if (!err_cfg) { mutex_unlock(&pf->tc_mutex); return; @@ -641,7 +641,7 @@ int ice_dcb_sw_dflt_cfg(struct ice_pf *pf, bool ets_willing, bool locked) hw = &pf->hw; pi = hw->port_info; - dcbcfg = kzalloc(sizeof(*dcbcfg), GFP_KERNEL); + dcbcfg = kzalloc_obj(*dcbcfg, GFP_KERNEL); if (!dcbcfg) return -ENOMEM; @@ -791,7 +791,7 @@ void ice_pf_dcb_recfg(struct ice_pf *pf, bool locked) privd = cdev->iidc_priv; ice_setup_dcb_qos_info(pf, &privd->qos_info); /* Notify the AUX drivers that TC change is finished */ - event = kzalloc(sizeof(*event), GFP_KERNEL); + event = kzalloc_obj(*event, GFP_KERNEL); if (!event) return; diff --git a/drivers/net/ethernet/intel/ice/ice_dpll.c b/drivers/net/ethernet/intel/ice/ice_dpll.c index baf02512d041..23bbfcbca490 100644 --- a/drivers/net/ethernet/intel/ice/ice_dpll.c +++ b/drivers/net/ethernet/intel/ice/ice_dpll.c @@ -3276,7 +3276,7 @@ static int ice_dpll_pin_notify(struct notifier_block *nb, unsigned long action, if (pin->fwnode != info->fwnode) return NOTIFY_DONE; /* Not this pin */ - work = kzalloc(sizeof(*work), GFP_KERNEL); + work = kzalloc_obj(*work, GFP_KERNEL); if (!work) return NOTIFY_DONE; @@ -4145,7 +4145,7 @@ static int ice_dpll_init_info_e825c(struct ice_pf *pf) d->clock_id = ice_generate_clock_id(pf); d->num_inputs = ICE_SYNCE_CLK_NUM; - d->inputs = kcalloc(d->num_inputs, sizeof(*d->inputs), GFP_KERNEL); + d->inputs = kzalloc_objs(*d->inputs, d->num_inputs, GFP_KERNEL); if (!d->inputs) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ice/ice_eswitch_br.c b/drivers/net/ethernet/intel/ice/ice_eswitch_br.c index cccb7ddf61c9..e043e8ddbc9d 100644 --- a/drivers/net/ethernet/intel/ice/ice_eswitch_br.c +++ b/drivers/net/ethernet/intel/ice/ice_eswitch_br.c @@ -129,11 +129,11 @@ ice_eswitch_br_fwd_rule_create(struct ice_hw *hw, int vsi_idx, int port_type, lkups_cnt = ice_eswitch_br_get_lkups_cnt(vid); - rule = kzalloc(sizeof(*rule), GFP_KERNEL); + rule = kzalloc_obj(*rule, GFP_KERNEL); if (!rule) return ERR_PTR(-ENOMEM); - list = kcalloc(lkups_cnt, sizeof(*list), GFP_ATOMIC); + list = kzalloc_objs(*list, lkups_cnt, GFP_ATOMIC); if (!list) { err = -ENOMEM; goto err_list_alloc; @@ -190,11 +190,11 @@ ice_eswitch_br_guard_rule_create(struct ice_hw *hw, u16 vsi_idx, lkups_cnt = ice_eswitch_br_get_lkups_cnt(vid); - rule = kzalloc(sizeof(*rule), GFP_KERNEL); + rule = kzalloc_obj(*rule, GFP_KERNEL); if (!rule) goto err_exit; - list = kcalloc(lkups_cnt, sizeof(*list), GFP_ATOMIC); + list = kzalloc_objs(*list, lkups_cnt, GFP_ATOMIC); if (!list) goto err_list_alloc; @@ -233,7 +233,7 @@ ice_eswitch_br_flow_create(struct device *dev, struct ice_hw *hw, int vsi_idx, struct ice_esw_br_flow *flow; int err; - flow = kzalloc(sizeof(*flow), GFP_KERNEL); + flow = kzalloc_obj(*flow, GFP_KERNEL); if (!flow) return ERR_PTR(-ENOMEM); @@ -418,7 +418,7 @@ ice_eswitch_br_fdb_entry_create(struct net_device *netdev, if (fdb_entry) ice_eswitch_br_fdb_entry_notify_and_cleanup(bridge, fdb_entry); - fdb_entry = kzalloc(sizeof(*fdb_entry), GFP_KERNEL); + fdb_entry = kzalloc_obj(*fdb_entry, GFP_KERNEL); if (!fdb_entry) { err = -ENOMEM; goto err_exit; @@ -513,7 +513,7 @@ ice_eswitch_br_fdb_work_alloc(struct switchdev_notifier_fdb_info *fdb_info, struct ice_esw_br_fdb_work *work; unsigned char *mac; - work = kzalloc(sizeof(*work), GFP_ATOMIC); + work = kzalloc_obj(*work, GFP_ATOMIC); if (!work) return ERR_PTR(-ENOMEM); @@ -698,7 +698,7 @@ ice_eswitch_br_vlan_create(u16 vid, u16 flags, struct ice_esw_br_port *port) struct ice_esw_br_vlan *vlan; int err; - vlan = kzalloc(sizeof(*vlan), GFP_KERNEL); + vlan = kzalloc_obj(*vlan, GFP_KERNEL); if (!vlan) return ERR_PTR(-ENOMEM); @@ -916,7 +916,7 @@ ice_eswitch_br_port_init(struct ice_esw_br *bridge) { struct ice_esw_br_port *br_port; - br_port = kzalloc(sizeof(*br_port), GFP_KERNEL); + br_port = kzalloc_obj(*br_port, GFP_KERNEL); if (!br_port) return ERR_PTR(-ENOMEM); @@ -1013,7 +1013,7 @@ ice_eswitch_br_init(struct ice_esw_br_offloads *br_offloads, int ifindex) struct ice_esw_br *bridge; int err; - bridge = kzalloc(sizeof(*bridge), GFP_KERNEL); + bridge = kzalloc_obj(*bridge, GFP_KERNEL); if (!bridge) return ERR_PTR(-ENOMEM); @@ -1217,7 +1217,7 @@ ice_eswitch_br_offloads_alloc(struct ice_pf *pf) if (pf->eswitch.br_offloads) return ERR_PTR(-EEXIST); - br_offloads = kzalloc(sizeof(*br_offloads), GFP_KERNEL); + br_offloads = kzalloc_obj(*br_offloads, GFP_KERNEL); if (!br_offloads) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c b/drivers/net/ethernet/intel/ice/ice_ethtool.c index c6bc29cfb8e6..4cce51840369 100644 --- a/drivers/net/ethernet/intel/ice/ice_ethtool.c +++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c @@ -1652,7 +1652,7 @@ ice_get_fecparam(struct net_device *netdev, struct ethtool_fecparam *fecparam) break; } - caps = kzalloc(sizeof(*caps), GFP_KERNEL); + caps = kzalloc_obj(*caps, GFP_KERNEL); if (!caps) return -ENOMEM; @@ -2364,7 +2364,7 @@ ice_get_link_ksettings(struct net_device *netdev, /* flow control is symmetric and always supported */ ethtool_link_ksettings_add_link_mode(ks, supported, Pause); - caps = kzalloc(sizeof(*caps), GFP_KERNEL); + caps = kzalloc_obj(*caps, GFP_KERNEL); if (!caps) return -ENOMEM; @@ -2629,7 +2629,7 @@ ice_set_link_ksettings(struct net_device *netdev, pi->phy.link_info.link_info & ICE_AQ_LINK_UP) return -EOPNOTSUPP; - phy_caps = kzalloc(sizeof(*phy_caps), GFP_KERNEL); + phy_caps = kzalloc_obj(*phy_caps, GFP_KERNEL); if (!phy_caps) return -ENOMEM; @@ -3265,7 +3265,7 @@ ice_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring, netdev_info(netdev, "Changing Tx descriptor count from %d to %d\n", vsi->tx_rings[0]->count, new_tx_cnt); - tx_rings = kcalloc(vsi->num_txq, sizeof(*tx_rings), GFP_KERNEL); + tx_rings = kzalloc_objs(*tx_rings, vsi->num_txq, GFP_KERNEL); if (!tx_rings) { err = -ENOMEM; goto done; @@ -3295,7 +3295,7 @@ ice_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring, netdev_info(netdev, "Changing XDP descriptor count from %d to %d\n", vsi->xdp_rings[0]->count, new_tx_cnt); - xdp_rings = kcalloc(vsi->num_xdp_txq, sizeof(*xdp_rings), GFP_KERNEL); + xdp_rings = kzalloc_objs(*xdp_rings, vsi->num_xdp_txq, GFP_KERNEL); if (!xdp_rings) { err = -ENOMEM; goto free_tx; @@ -3325,7 +3325,7 @@ process_rx: netdev_info(netdev, "Changing Rx descriptor count from %d to %d\n", vsi->rx_rings[0]->count, new_rx_cnt); - rx_rings = kcalloc(vsi->num_rxq, sizeof(*rx_rings), GFP_KERNEL); + rx_rings = kzalloc_objs(*rx_rings, vsi->num_rxq, GFP_KERNEL); if (!rx_rings) { err = -ENOMEM; goto done; @@ -3445,7 +3445,7 @@ ice_get_pauseparam(struct net_device *netdev, struct ethtool_pauseparam *pause) dcbx_cfg = &pi->qos_cfg.local_dcbx_cfg; - pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL); + pcaps = kzalloc_obj(*pcaps, GFP_KERNEL); if (!pcaps) return; @@ -3511,7 +3511,7 @@ ice_set_pauseparam(struct net_device *netdev, struct ethtool_pauseparam *pause) * so compare pause->autoneg with SW configured to prevent the user from * using set pause param to chance autoneg. */ - pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL); + pcaps = kzalloc_obj(*pcaps, GFP_KERNEL); if (!pcaps) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ice/ice_flex_pipe.c b/drivers/net/ethernet/intel/ice/ice_flex_pipe.c index c0dbec369366..28516878fa53 100644 --- a/drivers/net/ethernet/intel/ice/ice_flex_pipe.c +++ b/drivers/net/ethernet/intel/ice/ice_flex_pipe.c @@ -3734,7 +3734,7 @@ ice_adj_prof_priorities(struct ice_hw *hw, enum ice_block blk, u16 vsig, int status = 0; u16 idx; - attr_used = kcalloc(ICE_MAX_PTG_ATTRS, sizeof(*attr_used), GFP_KERNEL); + attr_used = kzalloc_objs(*attr_used, ICE_MAX_PTG_ATTRS, GFP_KERNEL); if (!attr_used) return -ENOMEM; @@ -4021,7 +4021,7 @@ ice_find_prof_vsig(struct ice_hw *hw, enum ice_block blk, u64 hdl, u16 *vsig) INIT_LIST_HEAD(&lst); - t = kzalloc(sizeof(*t), GFP_KERNEL); + t = kzalloc_obj(*t, GFP_KERNEL); if (!t) return false; diff --git a/drivers/net/ethernet/intel/ice/ice_flow.c b/drivers/net/ethernet/intel/ice/ice_flow.c index c9b6d0a84bd1..51f718020073 100644 --- a/drivers/net/ethernet/intel/ice/ice_flow.c +++ b/drivers/net/ethernet/intel/ice/ice_flow.c @@ -1468,7 +1468,7 @@ ice_flow_add_prof_sync(struct ice_hw *hw, enum ice_block blk, if (prof_id >= ids->count) return -ENOSPC; - params = kzalloc(sizeof(*params), GFP_KERNEL); + params = kzalloc_obj(*params, GFP_KERNEL); if (!params) return -ENOMEM; @@ -1661,7 +1661,7 @@ ice_flow_set_parser_prof(struct ice_hw *hw, u16 dest_vsi, u16 fdir_vsi, int status; int i, idx; - params = kzalloc(sizeof(*params), GFP_KERNEL); + params = kzalloc_obj(*params, GFP_KERNEL); if (!params) return -ENOMEM; @@ -2552,7 +2552,7 @@ ice_add_rss_cfg_sync(struct ice_hw *hw, u16 vsi_handle, segs_cnt = (cfg->hdr_type == ICE_RSS_OUTER_HEADERS) ? ICE_FLOW_SEG_SINGLE : ICE_FLOW_SEG_MAX; - segs = kcalloc(segs_cnt, sizeof(*segs), GFP_KERNEL); + segs = kzalloc_objs(*segs, segs_cnt, GFP_KERNEL); if (!segs) return -ENOMEM; @@ -2699,7 +2699,7 @@ ice_rem_rss_cfg_sync(struct ice_hw *hw, u16 vsi_handle, segs_cnt = (cfg->hdr_type == ICE_RSS_OUTER_HEADERS) ? ICE_FLOW_SEG_SINGLE : ICE_FLOW_SEG_MAX; - segs = kcalloc(segs_cnt, sizeof(*segs), GFP_KERNEL); + segs = kzalloc_objs(*segs, segs_cnt, GFP_KERNEL); if (!segs) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ice/ice_fw_update.c b/drivers/net/ethernet/intel/ice/ice_fw_update.c index 973a13d3d92a..b67fde32577a 100644 --- a/drivers/net/ethernet/intel/ice/ice_fw_update.c +++ b/drivers/net/ethernet/intel/ice/ice_fw_update.c @@ -862,7 +862,7 @@ int ice_get_pending_updates(struct ice_pf *pf, u8 *pending, struct ice_hw *hw = &pf->hw; int err; - dev_caps = kzalloc(sizeof(*dev_caps), GFP_KERNEL); + dev_caps = kzalloc_obj(*dev_caps, GFP_KERNEL); if (!dev_caps) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ice/ice_gnss.c b/drivers/net/ethernet/intel/ice/ice_gnss.c index 6b26290452d4..e81d46412043 100644 --- a/drivers/net/ethernet/intel/ice/ice_gnss.c +++ b/drivers/net/ethernet/intel/ice/ice_gnss.c @@ -174,7 +174,7 @@ static struct gnss_serial *ice_gnss_struct_init(struct ice_pf *pf) struct kthread_worker *kworker; struct gnss_serial *gnss; - gnss = kzalloc(sizeof(*gnss), GFP_KERNEL); + gnss = kzalloc_obj(*gnss, GFP_KERNEL); if (!gnss) return NULL; diff --git a/drivers/net/ethernet/intel/ice/ice_idc.c b/drivers/net/ethernet/intel/ice/ice_idc.c index 420d45c2558b..5487edc36260 100644 --- a/drivers/net/ethernet/intel/ice/ice_idc.c +++ b/drivers/net/ethernet/intel/ice/ice_idc.c @@ -308,7 +308,7 @@ int ice_plug_aux_dev(struct ice_pf *pf) if (!cdev) return -ENODEV; - iadev = kzalloc(sizeof(*iadev), GFP_KERNEL); + iadev = kzalloc_obj(*iadev, GFP_KERNEL); if (!iadev) return -ENOMEM; @@ -376,13 +376,13 @@ int ice_init_rdma(struct ice_pf *pf) return 0; } - cdev = kzalloc(sizeof(*cdev), GFP_KERNEL); + cdev = kzalloc_obj(*cdev, GFP_KERNEL); if (!cdev) return -ENOMEM; pf->cdev_info = cdev; - privd = kzalloc(sizeof(*privd), GFP_KERNEL); + privd = kzalloc_obj(*privd, GFP_KERNEL); if (!privd) { ret = -ENOMEM; goto err_privd_alloc; diff --git a/drivers/net/ethernet/intel/ice/ice_irq.c b/drivers/net/ethernet/intel/ice/ice_irq.c index 1d9b2d646474..3864fdcdeae0 100644 --- a/drivers/net/ethernet/intel/ice/ice_irq.c +++ b/drivers/net/ethernet/intel/ice/ice_irq.c @@ -81,7 +81,7 @@ static struct ice_irq_entry *ice_get_irq_res(struct ice_pf *pf, unsigned int index; int ret; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) return NULL; diff --git a/drivers/net/ethernet/intel/ice/ice_lag.c b/drivers/net/ethernet/intel/ice/ice_lag.c index d2576d606e10..af285bba3b1a 100644 --- a/drivers/net/ethernet/intel/ice/ice_lag.c +++ b/drivers/net/ethernet/intel/ice/ice_lag.c @@ -742,7 +742,7 @@ static void ice_lag_build_netdev_list(struct ice_lag *lag, INIT_LIST_HEAD(&ndlist->node); rcu_read_lock(); for_each_netdev_in_bond_rcu(lag->upper_netdev, tmp_nd) { - nl = kzalloc(sizeof(*nl), GFP_ATOMIC); + nl = kzalloc_obj(*nl, GFP_ATOMIC); if (!nl) break; @@ -2310,7 +2310,7 @@ ice_lag_event_handler(struct notifier_block *notif_blk, unsigned long event, return NOTIFY_DONE; /* This memory will be freed at the end of ice_lag_process_event */ - lag_work = kzalloc(sizeof(*lag_work), GFP_KERNEL); + lag_work = kzalloc_obj(*lag_work, GFP_KERNEL); if (!lag_work) return -ENOMEM; @@ -2332,7 +2332,7 @@ ice_lag_event_handler(struct notifier_block *notif_blk, unsigned long event, rcu_read_lock(); for_each_netdev_in_bond_rcu(upper_netdev, tmp_nd) { - nd_list = kzalloc(sizeof(*nd_list), GFP_ATOMIC); + nd_list = kzalloc_obj(*nd_list, GFP_ATOMIC); if (!nd_list) break; @@ -2577,7 +2577,7 @@ int ice_init_lag(struct ice_pf *pf) if (!ice_is_feature_supported(pf, ICE_F_SRIOV_LAG)) return 0; - pf->lag = kzalloc(sizeof(*lag), GFP_KERNEL); + pf->lag = kzalloc_obj(*lag, GFP_KERNEL); if (!pf->lag) return -ENOMEM; lag = pf->lag; diff --git a/drivers/net/ethernet/intel/ice/ice_lib.c b/drivers/net/ethernet/intel/ice/ice_lib.c index d921269e1fe7..c5695b2e2319 100644 --- a/drivers/net/ethernet/intel/ice/ice_lib.c +++ b/drivers/net/ethernet/intel/ice/ice_lib.c @@ -290,7 +290,7 @@ static void ice_vsi_delete_from_hw(struct ice_vsi *vsi) int status; ice_fltr_remove_all(vsi); - ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); + ctxt = kzalloc_obj(*ctxt, GFP_KERNEL); if (!ctxt) return; @@ -396,7 +396,7 @@ static int ice_vsi_alloc_ring_stats(struct ice_vsi *vsi) ring_stats = tx_ring_stats[i]; if (!ring_stats) { - ring_stats = kzalloc(sizeof(*ring_stats), GFP_KERNEL); + ring_stats = kzalloc_obj(*ring_stats, GFP_KERNEL); if (!ring_stats) goto err_out; @@ -417,7 +417,7 @@ static int ice_vsi_alloc_ring_stats(struct ice_vsi *vsi) ring_stats = rx_ring_stats[i]; if (!ring_stats) { - ring_stats = kzalloc(sizeof(*ring_stats), GFP_KERNEL); + ring_stats = kzalloc_obj(*ring_stats, GFP_KERNEL); if (!ring_stats) goto err_out; @@ -533,19 +533,19 @@ static int ice_vsi_alloc_stat_arrays(struct ice_vsi *vsi) /* realloc will happen in rebuild path */ return 0; - vsi_stat = kzalloc(sizeof(*vsi_stat), GFP_KERNEL); + vsi_stat = kzalloc_obj(*vsi_stat, GFP_KERNEL); if (!vsi_stat) return -ENOMEM; vsi_stat->tx_ring_stats = - kcalloc(vsi->alloc_txq, sizeof(*vsi_stat->tx_ring_stats), - GFP_KERNEL); + kzalloc_objs(*vsi_stat->tx_ring_stats, vsi->alloc_txq, + GFP_KERNEL); if (!vsi_stat->tx_ring_stats) goto err_alloc_tx; vsi_stat->rx_ring_stats = - kcalloc(vsi->alloc_rxq, sizeof(*vsi_stat->rx_ring_stats), - GFP_KERNEL); + kzalloc_objs(*vsi_stat->rx_ring_stats, vsi->alloc_rxq, + GFP_KERNEL); if (!vsi_stat->rx_ring_stats) goto err_alloc_rx; @@ -1239,7 +1239,7 @@ static int ice_vsi_init(struct ice_vsi *vsi, u32 vsi_flags) int ret = 0; dev = ice_pf_to_dev(pf); - ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); + ctxt = kzalloc_obj(*ctxt, GFP_KERNEL); if (!ctxt) return -ENOMEM; @@ -1403,7 +1403,7 @@ static int ice_vsi_alloc_rings(struct ice_vsi *vsi) struct ice_tx_ring *ring; /* allocate with kzalloc(), free with kfree_rcu() */ - ring = kzalloc(sizeof(*ring), GFP_KERNEL); + ring = kzalloc_obj(*ring, GFP_KERNEL); if (!ring) goto err_out; @@ -1427,7 +1427,7 @@ static int ice_vsi_alloc_rings(struct ice_vsi *vsi) struct ice_rx_ring *ring; /* allocate with kzalloc(), free with kfree_rcu() */ - ring = kzalloc(sizeof(*ring), GFP_KERNEL); + ring = kzalloc_obj(*ring, GFP_KERNEL); if (!ring) goto err_out; @@ -3104,8 +3104,8 @@ int ice_vsi_rebuild(struct ice_vsi *vsi, u32 vsi_flags) if (ret) goto unlock; - coalesce = kcalloc(vsi->num_q_vectors, - sizeof(struct ice_coalesce_stored), GFP_KERNEL); + coalesce = kzalloc_objs(struct ice_coalesce_stored, vsi->num_q_vectors, + GFP_KERNEL); if (!coalesce) { ret = -ENOMEM; goto decfg; @@ -3387,7 +3387,7 @@ int ice_vsi_cfg_tc(struct ice_vsi *vsi, u8 ena_tc) vsi->tc_cfg.ena_tc = ena_tc; vsi->tc_cfg.numtc = num_tc; - ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); + ctx = kzalloc_obj(*ctx, GFP_KERNEL); if (!ctx) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c index 4da37caa3ec9..45036a066012 100644 --- a/drivers/net/ethernet/intel/ice/ice_main.c +++ b/drivers/net/ethernet/intel/ice/ice_main.c @@ -875,7 +875,7 @@ void ice_print_link_msg(struct ice_vsi *vsi, bool isup) an = "False"; /* Get FEC mode requested based on PHY caps last SW configuration */ - caps = kzalloc(sizeof(*caps), GFP_KERNEL); + caps = kzalloc_obj(*caps, GFP_KERNEL); if (!caps) { fec_req = "Unknown"; an_advertised = "Unknown"; @@ -1951,7 +1951,7 @@ static int ice_force_phys_link_state(struct ice_vsi *vsi, bool link_up) pi = vsi->port_info; - pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL); + pcaps = kzalloc_obj(*pcaps, GFP_KERNEL); if (!pcaps) return -ENOMEM; @@ -2010,7 +2010,7 @@ static int ice_init_nvm_phy_type(struct ice_port_info *pi) struct ice_pf *pf = pi->hw->back; int err; - pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL); + pcaps = kzalloc_obj(*pcaps, GFP_KERNEL); if (!pcaps) return -ENOMEM; @@ -2122,7 +2122,7 @@ static int ice_init_phy_user_cfg(struct ice_port_info *pi) if (!(phy->link_info.link_info & ICE_AQ_MEDIA_AVAILABLE)) return -EIO; - pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL); + pcaps = kzalloc_obj(*pcaps, GFP_KERNEL); if (!pcaps) return -ENOMEM; @@ -2202,7 +2202,7 @@ static int ice_configure_phy(struct ice_vsi *vsi) if (test_bit(ICE_FLAG_LINK_DOWN_ON_CLOSE_ENA, pf->flags)) return ice_force_phys_link_state(vsi, true); - pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL); + pcaps = kzalloc_obj(*pcaps, GFP_KERNEL); if (!pcaps) return -ENOMEM; @@ -2236,7 +2236,7 @@ static int ice_configure_phy(struct ice_vsi *vsi) goto done; } - cfg = kzalloc(sizeof(*cfg), GFP_KERNEL); + cfg = kzalloc_obj(*cfg, GFP_KERNEL); if (!cfg) { err = -ENOMEM; goto done; @@ -2385,7 +2385,7 @@ static void ice_service_task(struct work_struct *work) if (test_and_clear_bit(ICE_AUX_ERR_PENDING, pf->state)) { struct iidc_rdma_event *event; - event = kzalloc(sizeof(*event), GFP_KERNEL); + event = kzalloc_obj(*event, GFP_KERNEL); if (event) { set_bit(IIDC_RDMA_EVENT_CRIT_ERR, event->type); /* report the entire OICR value to AUX driver */ @@ -2408,7 +2408,7 @@ static void ice_service_task(struct work_struct *work) if (test_and_clear_bit(ICE_FLAG_MTU_CHANGED, pf->flags)) { struct iidc_rdma_event *event; - event = kzalloc(sizeof(*event), GFP_KERNEL); + event = kzalloc_obj(*event, GFP_KERNEL); if (event) { set_bit(IIDC_RDMA_EVENT_AFTER_MTU_CHANGE, event->type); ice_send_event_to_aux(pf, event); @@ -2609,11 +2609,11 @@ static int ice_xdp_alloc_setup_rings(struct ice_vsi *vsi) struct ice_ring_stats *ring_stats; struct ice_tx_ring *xdp_ring; - xdp_ring = kzalloc(sizeof(*xdp_ring), GFP_KERNEL); + xdp_ring = kzalloc_obj(*xdp_ring, GFP_KERNEL); if (!xdp_ring) goto free_xdp_rings; - ring_stats = kzalloc(sizeof(*ring_stats), GFP_KERNEL); + ring_stats = kzalloc_obj(*ring_stats, GFP_KERNEL); if (!ring_stats) { ice_free_tx_ring(xdp_ring); goto free_xdp_rings; @@ -4204,7 +4204,7 @@ static void ice_set_safe_mode_vlan_cfg(struct ice_pf *pf) if (!vsi) return; - ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); + ctxt = kzalloc_obj(*ctxt, GFP_KERNEL); if (!ctxt) return; @@ -4910,7 +4910,7 @@ static int ice_init_pf_sw(struct ice_pf *pf) int err; /* create switch struct for the switch element created by FW on boot */ - pf->first_sw = kzalloc(sizeof(*pf->first_sw), GFP_KERNEL); + pf->first_sw = kzalloc_obj(*pf->first_sw, GFP_KERNEL); if (!pf->first_sw) return -ENOMEM; @@ -8096,7 +8096,7 @@ int ice_set_rss_hfunc(struct ice_vsi *vsi, u8 hfunc) hfunc != ICE_AQ_VSI_Q_OPT_RSS_HASH_SYM_TPLZ) return -EOPNOTSUPP; - ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); + ctx = kzalloc_obj(*ctx, GFP_KERNEL); if (!ctx) return -ENOMEM; @@ -8168,7 +8168,7 @@ static int ice_vsi_update_bridge_mode(struct ice_vsi *vsi, u16 bmode) vsi_props = &vsi->info; - ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); + ctxt = kzalloc_obj(*ctxt, GFP_KERNEL); if (!ctxt) return -ENOMEM; @@ -9142,7 +9142,7 @@ static int ice_create_q_channels(struct ice_vsi *vsi) if (!(vsi->all_enatc & BIT(i))) continue; - ch = kzalloc(sizeof(*ch), GFP_KERNEL); + ch = kzalloc_obj(*ch, GFP_KERNEL); if (!ch) { ret = -ENOMEM; goto err_free; @@ -9573,7 +9573,7 @@ ice_indr_setup_tc_block(struct net_device *netdev, struct Qdisc *sch, if (indr_priv) return -EEXIST; - indr_priv = kzalloc(sizeof(*indr_priv), GFP_KERNEL); + indr_priv = kzalloc_obj(*indr_priv, GFP_KERNEL); if (!indr_priv) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ice/ice_parser.c b/drivers/net/ethernet/intel/ice/ice_parser.c index 664beb64f557..4dd3f666daa8 100644 --- a/drivers/net/ethernet/intel/ice/ice_parser.c +++ b/drivers/net/ethernet/intel/ice/ice_parser.c @@ -1895,7 +1895,7 @@ static struct ice_xlt_kb *ice_xlt_kb_get(struct ice_hw *hw, u32 sect_type) if (!seg) return ERR_PTR(-EINVAL); - kb = kzalloc(sizeof(*kb), GFP_KERNEL); + kb = kzalloc_obj(*kb, GFP_KERNEL); if (!kb) return ERR_PTR(-ENOMEM); @@ -2000,7 +2000,7 @@ struct ice_parser *ice_parser_create(struct ice_hw *hw) struct ice_parser *p; void *err; - p = kzalloc(sizeof(*p), GFP_KERNEL); + p = kzalloc_obj(*p, GFP_KERNEL); if (!p) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c b/drivers/net/ethernet/intel/ice/ice_ptp.c index 22c3986b910a..db2213e0e1b5 100644 --- a/drivers/net/ethernet/intel/ice/ice_ptp.c +++ b/drivers/net/ethernet/intel/ice/ice_ptp.c @@ -706,7 +706,7 @@ ice_ptp_alloc_tx_tracker(struct ice_ptp_tx *tx) unsigned long *in_use, *stale; struct ice_tx_tstamp *tstamps; - tstamps = kcalloc(tx->len, sizeof(*tstamps), GFP_KERNEL); + tstamps = kzalloc_objs(*tstamps, tx->len, GFP_KERNEL); in_use = bitmap_zalloc(tx->len, GFP_KERNEL); stale = bitmap_zalloc(tx->len, GFP_KERNEL); diff --git a/drivers/net/ethernet/intel/ice/ice_repr.c b/drivers/net/ethernet/intel/ice/ice_repr.c index cb08746556a6..7bdcc0e5986b 100644 --- a/drivers/net/ethernet/intel/ice/ice_repr.c +++ b/drivers/net/ethernet/intel/ice/ice_repr.c @@ -369,7 +369,7 @@ static struct ice_repr *ice_repr_create(struct ice_vsi *src_vsi) struct ice_repr *repr; int err; - repr = kzalloc(sizeof(*repr), GFP_KERNEL); + repr = kzalloc_obj(*repr, GFP_KERNEL); if (!repr) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/intel/ice/ice_sf_eth.c b/drivers/net/ethernet/intel/ice/ice_sf_eth.c index 1a2c94375ca7..93e62050e00a 100644 --- a/drivers/net/ethernet/intel/ice/ice_sf_eth.c +++ b/drivers/net/ethernet/intel/ice/ice_sf_eth.c @@ -273,7 +273,7 @@ ice_sf_eth_activate(struct ice_dynamic_port *dyn_port, return err; } - sf_dev = kzalloc(sizeof(*sf_dev), GFP_KERNEL); + sf_dev = kzalloc_obj(*sf_dev, GFP_KERNEL); if (!sf_dev) { err = -ENOMEM; NL_SET_ERR_MSG_MOD(extack, "Could not allocate SF memory"); diff --git a/drivers/net/ethernet/intel/ice/ice_sriov.c b/drivers/net/ethernet/intel/ice/ice_sriov.c index 6b1126ddb561..7c15d62bb14b 100644 --- a/drivers/net/ethernet/intel/ice/ice_sriov.c +++ b/drivers/net/ethernet/intel/ice/ice_sriov.c @@ -695,7 +695,7 @@ static int ice_create_vf_entries(struct ice_pf *pf, u16 num_vfs) pci_read_config_word(pdev, pos + PCI_SRIOV_VF_DID, &vf_pdev_id); for (u16 vf_id = 0; vf_id < num_vfs; vf_id++) { - vf = kzalloc(sizeof(*vf), GFP_KERNEL); + vf = kzalloc_obj(*vf, GFP_KERNEL); if (!vf) { err = -ENOMEM; goto err_free_entries; diff --git a/drivers/net/ethernet/intel/ice/ice_switch.c b/drivers/net/ethernet/intel/ice/ice_switch.c index 84848f0123e7..515e96c44bfa 100644 --- a/drivers/net/ethernet/intel/ice/ice_switch.c +++ b/drivers/net/ethernet/intel/ice/ice_switch.c @@ -1847,7 +1847,7 @@ ice_cfg_rdma_fltr(struct ice_hw *hw, u16 vsi_handle, bool enable) if (!cached_ctx) return -ENOENT; - ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); + ctx = kzalloc_obj(*ctx, GFP_KERNEL); if (!ctx) return -ENOMEM; @@ -2069,7 +2069,7 @@ ice_update_recipe_lkup_idx(struct ice_hw *hw, u16 num_recps = ICE_MAX_NUM_RECIPES; int status; - rcp_list = kcalloc(num_recps, sizeof(*rcp_list), GFP_KERNEL); + rcp_list = kzalloc_objs(*rcp_list, num_recps, GFP_KERNEL); if (!rcp_list) return -ENOMEM; @@ -2326,7 +2326,7 @@ ice_get_recp_frm_fw(struct ice_hw *hw, struct ice_sw_recipe *recps, u8 rid, bitmap_zero(result_bm, ICE_MAX_FV_WORDS); /* we need a buffer big enough to accommodate all the recipes */ - tmp = kcalloc(ICE_MAX_NUM_RECIPES, sizeof(*tmp), GFP_KERNEL); + tmp = kzalloc_objs(*tmp, ICE_MAX_NUM_RECIPES, GFP_KERNEL); if (!tmp) return -ENOMEM; @@ -5096,7 +5096,7 @@ ice_add_sw_recipe(struct ice_hw *hw, struct ice_sw_recipe *rm, if (recp_cnt > ICE_MAX_CHAIN_RECIPE_RES) return -E2BIG; - buf = kcalloc(recp_cnt, sizeof(*buf), GFP_KERNEL); + buf = kzalloc_objs(*buf, recp_cnt, GFP_KERNEL); if (!buf) return -ENOMEM; @@ -5324,7 +5324,7 @@ ice_add_adv_recipe(struct ice_hw *hw, struct ice_adv_lkup_elem *lkups, if (!lkups_cnt) return -EINVAL; - lkup_exts = kzalloc(sizeof(*lkup_exts), GFP_KERNEL); + lkup_exts = kzalloc_obj(*lkup_exts, GFP_KERNEL); if (!lkup_exts) return -ENOMEM; @@ -5346,7 +5346,7 @@ ice_add_adv_recipe(struct ice_hw *hw, struct ice_adv_lkup_elem *lkups, } } - rm = kzalloc(sizeof(*rm), GFP_KERNEL); + rm = kzalloc_obj(*rm, GFP_KERNEL); if (!rm) { status = -ENOMEM; goto err_free_lkup_exts; @@ -5530,7 +5530,7 @@ ice_dummy_packet_add_vlan(const struct ice_dummy_pkt_profile *dummy_pkt, memcpy(pkt + etype_off + off, dummy_pkt->pkt + etype_off, dummy_pkt->pkt_len - etype_off); - profile = kzalloc(sizeof(*profile), GFP_KERNEL); + profile = kzalloc_obj(*profile, GFP_KERNEL); if (!profile) { kfree(offsets); kfree(pkt); diff --git a/drivers/net/ethernet/intel/ice/ice_tc_lib.c b/drivers/net/ethernet/intel/ice/ice_tc_lib.c index fb9ea7f8ef44..c687da8d950d 100644 --- a/drivers/net/ethernet/intel/ice/ice_tc_lib.c +++ b/drivers/net/ethernet/intel/ice/ice_tc_lib.c @@ -931,7 +931,7 @@ ice_eswitch_add_tc_fltr(struct ice_vsi *vsi, struct ice_tc_flower_fltr *fltr) return ice_pass_vf_tx_lldp(vsi, false); lkups_cnt = ice_tc_count_lkups(flags, fltr); - list = kcalloc(lkups_cnt, sizeof(*list), GFP_ATOMIC); + list = kzalloc_objs(*list, lkups_cnt, GFP_ATOMIC); if (!list) return -ENOMEM; @@ -1177,7 +1177,7 @@ ice_add_tc_flower_adv_fltr(struct ice_vsi *vsi, } lkups_cnt = ice_tc_count_lkups(flags, tc_fltr); - list = kcalloc(lkups_cnt, sizeof(*list), GFP_ATOMIC); + list = kzalloc_objs(*list, lkups_cnt, GFP_ATOMIC); if (!list) return -ENOMEM; @@ -2191,7 +2191,7 @@ ice_add_tc_fltr(struct net_device *netdev, struct ice_vsi *vsi, /* by default, set output to be INVALID */ *__fltr = NULL; - fltr = kzalloc(sizeof(*fltr), GFP_KERNEL); + fltr = kzalloc_obj(*fltr, GFP_KERNEL); if (!fltr) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ice/ice_txrx.c b/drivers/net/ethernet/intel/ice/ice_txrx.c index 6fa201a14f51..642b761c38a2 100644 --- a/drivers/net/ethernet/intel/ice/ice_txrx.c +++ b/drivers/net/ethernet/intel/ice/ice_txrx.c @@ -397,7 +397,7 @@ static int ice_alloc_tstamp_ring(struct ice_tx_ring *tx_ring) struct ice_tstamp_ring *tstamp_ring; /* allocate with kzalloc(), free with kfree_rcu() */ - tstamp_ring = kzalloc(sizeof(*tstamp_ring), GFP_KERNEL); + tstamp_ring = kzalloc_obj(*tstamp_ring, GFP_KERNEL); if (!tstamp_ring) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ice/ice_vf_lib.c b/drivers/net/ethernet/intel/ice/ice_vf_lib.c index de9e81ccee66..dba56e317b77 100644 --- a/drivers/net/ethernet/intel/ice/ice_vf_lib.c +++ b/drivers/net/ethernet/intel/ice/ice_vf_lib.c @@ -1112,7 +1112,7 @@ static int ice_cfg_mac_antispoof(struct ice_vsi *vsi, bool enable) struct ice_vsi_ctx *ctx; int err; - ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); + ctx = kzalloc_obj(*ctx, GFP_KERNEL); if (!ctx) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ice/ice_vsi_vlan_lib.c b/drivers/net/ethernet/intel/ice/ice_vsi_vlan_lib.c index ada78f83b3ac..79f18e693e04 100644 --- a/drivers/net/ethernet/intel/ice/ice_vsi_vlan_lib.c +++ b/drivers/net/ethernet/intel/ice/ice_vsi_vlan_lib.c @@ -94,7 +94,7 @@ static int ice_vsi_manage_vlan_insertion(struct ice_vsi *vsi) struct ice_vsi_ctx *ctxt; int err; - ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); + ctxt = kzalloc_obj(*ctxt, GFP_KERNEL); if (!ctxt) return -ENOMEM; @@ -141,7 +141,7 @@ static int ice_vsi_manage_vlan_stripping(struct ice_vsi *vsi, bool ena) if (vsi->info.port_based_inner_vlan) return 0; - ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); + ctxt = kzalloc_obj(*ctxt, GFP_KERNEL); if (!ctxt) return -ENOMEM; @@ -239,7 +239,7 @@ static int __ice_vsi_set_inner_port_vlan(struct ice_vsi *vsi, u16 pvid_info) struct ice_vsi_ctx *ctxt; int ret; - ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); + ctxt = kzalloc_obj(*ctxt, GFP_KERNEL); if (!ctxt) return -ENOMEM; @@ -292,7 +292,7 @@ int ice_vsi_clear_inner_port_vlan(struct ice_vsi *vsi) struct ice_vsi_ctx *ctxt; int ret; - ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); + ctxt = kzalloc_obj(*ctxt, GFP_KERNEL); if (!ctxt) return -ENOMEM; @@ -336,7 +336,7 @@ static int ice_cfg_vlan_pruning(struct ice_vsi *vsi, bool ena) return 0; pf = vsi->back; - ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); + ctxt = kzalloc_obj(*ctxt, GFP_KERNEL); if (!ctxt) return -ENOMEM; @@ -382,7 +382,7 @@ static int ice_cfg_vlan_antispoof(struct ice_vsi *vsi, bool enable) struct ice_vsi_ctx *ctx; int err; - ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); + ctx = kzalloc_obj(*ctx, GFP_KERNEL); if (!ctx) return -ENOMEM; @@ -478,7 +478,7 @@ int ice_vsi_ena_outer_stripping(struct ice_vsi *vsi, u16 tpid) if (tpid_to_vsi_outer_vlan_type(tpid, &tag_type)) return -EINVAL; - ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); + ctxt = kzalloc_obj(*ctxt, GFP_KERNEL); if (!ctxt) return -ENOMEM; @@ -529,7 +529,7 @@ int ice_vsi_dis_outer_stripping(struct ice_vsi *vsi) if (vsi->info.port_based_outer_vlan) return 0; - ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); + ctxt = kzalloc_obj(*ctxt, GFP_KERNEL); if (!ctxt) return -ENOMEM; @@ -584,7 +584,7 @@ int ice_vsi_ena_outer_insertion(struct ice_vsi *vsi, u16 tpid) if (tpid_to_vsi_outer_vlan_type(tpid, &tag_type)) return -EINVAL; - ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); + ctxt = kzalloc_obj(*ctxt, GFP_KERNEL); if (!ctxt) return -ENOMEM; @@ -636,7 +636,7 @@ int ice_vsi_dis_outer_insertion(struct ice_vsi *vsi) if (vsi->info.port_based_outer_vlan) return 0; - ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); + ctxt = kzalloc_obj(*ctxt, GFP_KERNEL); if (!ctxt) return -ENOMEM; @@ -694,7 +694,7 @@ __ice_vsi_set_outer_port_vlan(struct ice_vsi *vsi, u16 vlan_info, u16 tpid) if (tpid_to_vsi_outer_vlan_type(tpid, &tag_type)) return -EINVAL; - ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); + ctxt = kzalloc_obj(*ctxt, GFP_KERNEL); if (!ctxt) return -ENOMEM; @@ -767,7 +767,7 @@ int ice_vsi_clear_outer_port_vlan(struct ice_vsi *vsi) struct ice_vsi_ctx *ctxt; int err; - ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); + ctxt = kzalloc_obj(*ctxt, GFP_KERNEL); if (!ctxt) return -ENOMEM; @@ -794,7 +794,7 @@ int ice_vsi_clear_port_vlan(struct ice_vsi *vsi) struct ice_vsi_ctx *ctxt; int err; - ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL); + ctxt = kzalloc_obj(*ctxt, GFP_KERNEL); if (!ctxt) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ice/ice_xsk.c b/drivers/net/ethernet/intel/ice/ice_xsk.c index 953e68ed0f9a..e01eae07b6ed 100644 --- a/drivers/net/ethernet/intel/ice/ice_xsk.c +++ b/drivers/net/ethernet/intel/ice/ice_xsk.c @@ -174,9 +174,8 @@ int ice_realloc_rx_xdp_bufs(struct ice_rx_ring *rx_ring, bool pool_present) { if (pool_present) { - rx_ring->xdp_buf = kcalloc(rx_ring->count, - sizeof(*rx_ring->xdp_buf), - GFP_KERNEL); + rx_ring->xdp_buf = kzalloc_objs(*rx_ring->xdp_buf, + rx_ring->count, GFP_KERNEL); if (!rx_ring->xdp_buf) return -ENOMEM; } else { diff --git a/drivers/net/ethernet/intel/ice/virt/fdir.c b/drivers/net/ethernet/intel/ice/virt/fdir.c index ae83c3914e29..8b2c882fb39c 100644 --- a/drivers/net/ethernet/intel/ice/virt/fdir.c +++ b/drivers/net/ethernet/intel/ice/virt/fdir.c @@ -875,7 +875,7 @@ ice_vc_fdir_parse_raw(struct ice_vf *vf, if (hw->debug_mask & ICE_DBG_PARSER) ice_parser_result_dump(hw, &rslt); - conf->prof = kzalloc(sizeof(*conf->prof), GFP_KERNEL); + conf->prof = kzalloc_obj(*conf->prof, GFP_KERNEL); if (!conf->prof) { status = -ENOMEM; goto err_parser_destroy; @@ -2128,7 +2128,7 @@ int ice_vc_add_fdir_fltr(struct ice_vf *vf, u8 *msg) goto err_exit; } - stat = kzalloc(sizeof(*stat), GFP_KERNEL); + stat = kzalloc_obj(*stat, GFP_KERNEL); if (!stat) { v_ret = VIRTCHNL_STATUS_ERR_NO_MEMORY; dev_dbg(dev, "Alloc stat for VF %d failed\n", vf->vf_id); @@ -2332,7 +2332,7 @@ int ice_vc_del_fdir_fltr(struct ice_vf *vf, u8 *msg) goto err_exit; } - stat = kzalloc(sizeof(*stat), GFP_KERNEL); + stat = kzalloc_obj(*stat, GFP_KERNEL); if (!stat) { v_ret = VIRTCHNL_STATUS_ERR_NO_MEMORY; dev_dbg(dev, "Alloc stat for VF %d failed\n", vf->vf_id); diff --git a/drivers/net/ethernet/intel/ice/virt/rss.c b/drivers/net/ethernet/intel/ice/virt/rss.c index 085e69ec0cfc..2f259b261512 100644 --- a/drivers/net/ethernet/intel/ice/virt/rss.c +++ b/drivers/net/ethernet/intel/ice/virt/rss.c @@ -380,7 +380,7 @@ ice_vc_rss_hash_update(struct ice_hw *hw, struct ice_vsi *vsi, u8 hash_type) struct ice_vsi_ctx *ctx; int ret; - ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); + ctx = kzalloc_obj(*ctx, GFP_KERNEL); if (!ctx) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ice/virt/virtchnl.c b/drivers/net/ethernet/intel/ice/virt/virtchnl.c index f3f921134379..9abfba8ae6bd 100644 --- a/drivers/net/ethernet/intel/ice/virt/virtchnl.c +++ b/drivers/net/ethernet/intel/ice/virt/virtchnl.c @@ -1658,7 +1658,7 @@ static int ice_vc_get_offload_vlan_v2_caps(struct ice_vf *vf) goto out; } - caps = kzalloc(sizeof(*caps), GFP_KERNEL); + caps = kzalloc_obj(*caps, GFP_KERNEL); if (!caps) { v_ret = VIRTCHNL_STATUS_ERR_NO_MEMORY; goto out; @@ -2477,7 +2477,7 @@ static int ice_vc_get_phc_time(struct ice_vf *vf) v_ret = VIRTCHNL_STATUS_SUCCESS; - phc_time = kzalloc(sizeof(*phc_time), GFP_KERNEL); + phc_time = kzalloc_obj(*phc_time, GFP_KERNEL); if (!phc_time) { v_ret = VIRTCHNL_STATUS_ERR_NO_MEMORY; goto err; diff --git a/drivers/net/ethernet/intel/idpf/idpf_controlq.c b/drivers/net/ethernet/intel/idpf/idpf_controlq.c index 67894eda2d29..e3681dedc888 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_controlq.c +++ b/drivers/net/ethernet/intel/idpf/idpf_controlq.c @@ -127,7 +127,7 @@ int idpf_ctlq_add(struct idpf_hw *hw, bool is_rxq = false; int err; - cq = kzalloc(sizeof(*cq), GFP_KERNEL); + cq = kzalloc_obj(*cq, GFP_KERNEL); if (!cq) return -ENOMEM; @@ -159,9 +159,8 @@ int idpf_ctlq_add(struct idpf_hw *hw, idpf_ctlq_init_rxq_bufs(cq); } else { /* Allocate the array of msg pointers for TX queues */ - cq->bi.tx_msg = kcalloc(qinfo->len, - sizeof(struct idpf_ctlq_msg *), - GFP_KERNEL); + cq->bi.tx_msg = kzalloc_objs(struct idpf_ctlq_msg *, qinfo->len, + GFP_KERNEL); if (!cq->bi.tx_msg) { err = -ENOMEM; goto init_dealloc_q_mem; diff --git a/drivers/net/ethernet/intel/idpf/idpf_controlq_setup.c b/drivers/net/ethernet/intel/idpf/idpf_controlq_setup.c index a942a6385d06..dfdbfb89b090 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_controlq_setup.c +++ b/drivers/net/ethernet/intel/idpf/idpf_controlq_setup.c @@ -40,8 +40,8 @@ static int idpf_ctlq_alloc_bufs(struct idpf_hw *hw, /* We'll be allocating the buffer info memory first, then we can * allocate the mapped buffers for the event processing */ - cq->bi.rx_buff = kcalloc(cq->ring_size, sizeof(struct idpf_dma_mem *), - GFP_KERNEL); + cq->bi.rx_buff = kzalloc_objs(struct idpf_dma_mem *, cq->ring_size, + GFP_KERNEL); if (!cq->bi.rx_buff) return -ENOMEM; @@ -50,8 +50,8 @@ static int idpf_ctlq_alloc_bufs(struct idpf_hw *hw, struct idpf_dma_mem *bi; int num = 1; /* number of idpf_dma_mem to be allocated */ - cq->bi.rx_buff[i] = kcalloc(num, sizeof(struct idpf_dma_mem), - GFP_KERNEL); + cq->bi.rx_buff[i] = kzalloc_objs(struct idpf_dma_mem, num, + GFP_KERNEL); if (!cq->bi.rx_buff[i]) goto unwind_alloc_cq_bufs; diff --git a/drivers/net/ethernet/intel/idpf/idpf_dev.c b/drivers/net/ethernet/intel/idpf/idpf_dev.c index a4625638cf3f..c7c38e22c975 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_dev.c +++ b/drivers/net/ethernet/intel/idpf/idpf_dev.c @@ -83,8 +83,7 @@ static int idpf_intr_reg_init(struct idpf_vport *vport, u16 total_vecs; total_vecs = idpf_get_reserved_vecs(vport->adapter); - reg_vals = kcalloc(total_vecs, sizeof(struct idpf_vec_regs), - GFP_KERNEL); + reg_vals = kzalloc_objs(struct idpf_vec_regs, total_vecs, GFP_KERNEL); if (!reg_vals) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/idpf/idpf_ethtool.c b/drivers/net/ethernet/intel/idpf/idpf_ethtool.c index 1d78a621d65b..8cfb09ff8ebd 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_ethtool.c +++ b/drivers/net/ethernet/intel/idpf/idpf_ethtool.c @@ -200,11 +200,11 @@ static int idpf_add_flow_steer(struct net_device *netdev, if (q_index >= num_rxq) return -EINVAL; - rule = kzalloc(struct_size(rule, rule_info, 1), GFP_KERNEL); + rule = kzalloc_flex(*rule, rule_info, 1, GFP_KERNEL); if (!rule) return -ENOMEM; - fltr = kzalloc(sizeof(*fltr), GFP_KERNEL); + fltr = kzalloc_obj(*fltr, GFP_KERNEL); if (!fltr) { err = -ENOMEM; goto out_free_rule; @@ -310,7 +310,7 @@ static int idpf_del_flow_steer(struct net_device *netdev, if (!idpf_sideband_action_ena(vport, fsp)) return -EOPNOTSUPP; - rule = kzalloc(struct_size(rule, rule_info, 1), GFP_KERNEL); + rule = kzalloc_flex(*rule, rule_info, 1, GFP_KERNEL); if (!rule) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/idpf/idpf_idc.c b/drivers/net/ethernet/intel/idpf/idpf_idc.c index 6dad0593f7f2..42fb8659142a 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_idc.c +++ b/drivers/net/ethernet/intel/idpf/idpf_idc.c @@ -60,7 +60,7 @@ static int idpf_plug_vport_aux_dev(struct iidc_rdma_core_dev_info *cdev_info, struct auxiliary_device *adev; int ret; - iadev = kzalloc(sizeof(*iadev), GFP_KERNEL); + iadev = kzalloc_obj(*iadev, GFP_KERNEL); if (!iadev) return -ENOMEM; @@ -120,7 +120,7 @@ static int idpf_idc_init_aux_vport_dev(struct idpf_vport *vport) if (!(le16_to_cpu(vport_msg->vport_flags) & VIRTCHNL2_VPORT_ENABLE_RDMA)) return 0; - vport->vdev_info = kzalloc(sizeof(*vdev_info), GFP_KERNEL); + vport->vdev_info = kzalloc_obj(*vdev_info, GFP_KERNEL); if (!vport->vdev_info) return -ENOMEM; @@ -198,7 +198,7 @@ static int idpf_plug_core_aux_dev(struct iidc_rdma_core_dev_info *cdev_info) struct auxiliary_device *adev; int ret; - iadev = kzalloc(sizeof(*iadev), GFP_KERNEL); + iadev = kzalloc_obj(*iadev, GFP_KERNEL); if (!iadev) return -ENOMEM; @@ -414,12 +414,12 @@ int idpf_idc_init_aux_core_dev(struct idpf_adapter *adapter, struct iidc_rdma_priv_dev_info *privd; int err, i; - adapter->cdev_info = kzalloc(sizeof(*cdev_info), GFP_KERNEL); + adapter->cdev_info = kzalloc_obj(*cdev_info, GFP_KERNEL); if (!adapter->cdev_info) return -ENOMEM; cdev_info = adapter->cdev_info; - privd = kzalloc(sizeof(*privd), GFP_KERNEL); + privd = kzalloc_obj(*privd, GFP_KERNEL); if (!privd) { err = -ENOMEM; goto err_privd_alloc; @@ -431,9 +431,8 @@ int idpf_idc_init_aux_core_dev(struct idpf_adapter *adapter, privd->ftype = ftype; privd->mapped_mem_regions = - kcalloc(adapter->hw.num_lan_regs, - sizeof(struct iidc_rdma_lan_mapped_mem_region), - GFP_KERNEL); + kzalloc_objs(struct iidc_rdma_lan_mapped_mem_region, + adapter->hw.num_lan_regs, GFP_KERNEL); if (!privd->mapped_mem_regions) { err = -ENOMEM; goto err_plug_aux_dev; diff --git a/drivers/net/ethernet/intel/idpf/idpf_lib.c b/drivers/net/ethernet/intel/idpf/idpf_lib.c index 94da5fbd56f1..a70f8ba7aad2 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_lib.c +++ b/drivers/net/ethernet/intel/idpf/idpf_lib.c @@ -359,9 +359,9 @@ int idpf_intr_req(struct idpf_adapter *adapter) num_rdma_vecs = IDPF_MIN_RDMA_VEC; } - adapter->rdma_msix_entries = kcalloc(num_rdma_vecs, - sizeof(struct msix_entry), - GFP_KERNEL); + adapter->rdma_msix_entries = kzalloc_objs(struct msix_entry, + num_rdma_vecs, + GFP_KERNEL); if (!adapter->rdma_msix_entries) { err = -ENOMEM; goto free_irq; @@ -369,8 +369,8 @@ int idpf_intr_req(struct idpf_adapter *adapter) } num_lan_vecs = actual_vecs - num_rdma_vecs; - adapter->msix_entries = kcalloc(num_lan_vecs, sizeof(struct msix_entry), - GFP_KERNEL); + adapter->msix_entries = kzalloc_objs(struct msix_entry, num_lan_vecs, + GFP_KERNEL); if (!adapter->msix_entries) { err = -ENOMEM; goto free_rdma_msix; @@ -577,7 +577,7 @@ static int __idpf_add_mac_filter(struct idpf_vport_config *vport_config, return 0; } - f = kzalloc(sizeof(*f), GFP_ATOMIC); + f = kzalloc_obj(*f, GFP_ATOMIC); if (!f) { spin_unlock_bh(&vport_config->mac_filter_list_lock); @@ -1239,7 +1239,7 @@ static struct idpf_vport *idpf_vport_alloc(struct idpf_adapter *adapter, if (idx == IDPF_NO_FREE_SLOT) return NULL; - vport = kzalloc(sizeof(*vport), GFP_KERNEL); + vport = kzalloc_obj(*vport, GFP_KERNEL); if (!vport) return vport; @@ -1248,14 +1248,14 @@ static struct idpf_vport *idpf_vport_alloc(struct idpf_adapter *adapter, struct idpf_vport_config *vport_config; struct idpf_q_coalesce *q_coal; - vport_config = kzalloc(sizeof(*vport_config), GFP_KERNEL); + vport_config = kzalloc_obj(*vport_config, GFP_KERNEL); if (!vport_config) { kfree(vport); return NULL; } - q_coal = kcalloc(num_max_q, sizeof(*q_coal), GFP_KERNEL); + q_coal = kzalloc_objs(*q_coal, num_max_q, GFP_KERNEL); if (!q_coal) { kfree(vport_config); kfree(vport); @@ -2027,7 +2027,7 @@ int idpf_initiate_soft_reset(struct idpf_vport *vport, * error occurred, the existing vport will be untouched. * */ - new_vport = kzalloc(sizeof(*vport), GFP_KERNEL); + new_vport = kzalloc_obj(*vport, GFP_KERNEL); if (!new_vport) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/idpf/idpf_main.c b/drivers/net/ethernet/intel/idpf/idpf_main.c index de5d722cc21d..be6760249dc8 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_main.c +++ b/drivers/net/ethernet/intel/idpf/idpf_main.c @@ -238,7 +238,7 @@ static int idpf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) struct idpf_adapter *adapter; int err; - adapter = kzalloc(sizeof(*adapter), GFP_KERNEL); + adapter = kzalloc_obj(*adapter, GFP_KERNEL); if (!adapter) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/idpf/idpf_ptp.c b/drivers/net/ethernet/intel/idpf/idpf_ptp.c index 4a805a9541f0..c098d3f66a34 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_ptp.c +++ b/drivers/net/ethernet/intel/idpf/idpf_ptp.c @@ -936,7 +936,7 @@ int idpf_ptp_init(struct idpf_adapter *adapter) return -EOPNOTSUPP; } - adapter->ptp = kzalloc(sizeof(*adapter->ptp), GFP_KERNEL); + adapter->ptp = kzalloc_obj(*adapter->ptp, GFP_KERNEL); if (!adapter->ptp) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/idpf/idpf_txrx.c b/drivers/net/ethernet/intel/idpf/idpf_txrx.c index 376050308b06..259316af9ec5 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_txrx.c +++ b/drivers/net/ethernet/intel/idpf/idpf_txrx.c @@ -183,8 +183,8 @@ static int idpf_tx_buf_alloc_all(struct idpf_tx_queue *tx_q) tx_q->buf_pool_size = U16_MAX; else tx_q->buf_pool_size = tx_q->desc_count; - tx_q->tx_buf = kcalloc(tx_q->buf_pool_size, sizeof(*tx_q->tx_buf), - GFP_KERNEL); + tx_q->tx_buf = kzalloc_objs(*tx_q->tx_buf, tx_q->buf_pool_size, + GFP_KERNEL); if (!tx_q->tx_buf) return -ENOMEM; @@ -1204,9 +1204,9 @@ static int idpf_qp_enable(const struct idpf_vport *vport, if (!rsrc->xdp_txq_offset) goto config; - q_vector->xsksq = kcalloc(DIV_ROUND_UP(rsrc->num_rxq_grp, - rsrc->num_q_vectors), - sizeof(*q_vector->xsksq), GFP_KERNEL); + q_vector->xsksq = kzalloc_objs(*q_vector->xsksq, + DIV_ROUND_UP(rsrc->num_rxq_grp, rsrc->num_q_vectors), + GFP_KERNEL); if (!q_vector->xsksq) return -ENOMEM; @@ -1439,8 +1439,7 @@ static int idpf_vport_init_fast_path_txqs(struct idpf_vport *vport, struct work_struct *tstamp_task = &vport->tstamp_task; int k = 0; - vport->txqs = kcalloc(rsrc->num_txq, sizeof(*vport->txqs), - GFP_KERNEL); + vport->txqs = kzalloc_objs(*vport->txqs, rsrc->num_txq, GFP_KERNEL); if (!vport->txqs) return -ENOMEM; @@ -1711,8 +1710,8 @@ static int idpf_txq_group_alloc(struct idpf_vport *vport, { bool split, flow_sch_en; - rsrc->txq_grps = kcalloc(rsrc->num_txq_grp, - sizeof(*rsrc->txq_grps), GFP_KERNEL); + rsrc->txq_grps = kzalloc_objs(*rsrc->txq_grps, rsrc->num_txq_grp, + GFP_KERNEL); if (!rsrc->txq_grps) return -ENOMEM; @@ -1728,8 +1727,8 @@ static int idpf_txq_group_alloc(struct idpf_vport *vport, tx_qgrp->num_txq = num_txq; for (unsigned int j = 0; j < tx_qgrp->num_txq; j++) { - tx_qgrp->txqs[j] = kzalloc(sizeof(*tx_qgrp->txqs[j]), - GFP_KERNEL); + tx_qgrp->txqs[j] = kzalloc_obj(*tx_qgrp->txqs[j], + GFP_KERNEL); if (!tx_qgrp->txqs[j]) goto err_alloc; } @@ -1756,7 +1755,7 @@ static int idpf_txq_group_alloc(struct idpf_vport *vport, idpf_queue_set(FLOW_SCH_EN, q); - q->refillq = kzalloc(sizeof(*q->refillq), GFP_KERNEL); + q->refillq = kzalloc_obj(*q->refillq, GFP_KERNEL); if (!q->refillq) goto err_alloc; @@ -1767,9 +1766,9 @@ static int idpf_txq_group_alloc(struct idpf_vport *vport, if (!split) continue; - tx_qgrp->complq = kcalloc(IDPF_COMPLQ_PER_GROUP, - sizeof(*tx_qgrp->complq), - GFP_KERNEL); + tx_qgrp->complq = kzalloc_objs(*tx_qgrp->complq, + IDPF_COMPLQ_PER_GROUP, + GFP_KERNEL); if (!tx_qgrp->complq) goto err_alloc; @@ -1806,8 +1805,8 @@ static int idpf_rxq_group_alloc(struct idpf_vport *vport, bool hs, rsc; int err = 0; - rsrc->rxq_grps = kcalloc(rsrc->num_rxq_grp, - sizeof(struct idpf_rxq_group), GFP_KERNEL); + rsrc->rxq_grps = kzalloc_objs(struct idpf_rxq_group, rsrc->num_rxq_grp, + GFP_KERNEL); if (!rsrc->rxq_grps) return -ENOMEM; @@ -1821,9 +1820,8 @@ static int idpf_rxq_group_alloc(struct idpf_vport *vport, if (!idpf_is_queue_model_split(rsrc->rxq_model)) { rx_qgrp->singleq.num_rxq = num_rxq; for (unsigned int j = 0; j < num_rxq; j++) { - rx_qgrp->singleq.rxqs[j] = - kzalloc(sizeof(*rx_qgrp->singleq.rxqs[j]), - GFP_KERNEL); + rx_qgrp->singleq.rxqs[j] = kzalloc_obj(*rx_qgrp->singleq.rxqs[j], + GFP_KERNEL); if (!rx_qgrp->singleq.rxqs[j]) { err = -ENOMEM; goto err_alloc; @@ -1835,17 +1833,16 @@ static int idpf_rxq_group_alloc(struct idpf_vport *vport, for (unsigned int j = 0; j < num_rxq; j++) { rx_qgrp->splitq.rxq_sets[j] = - kzalloc(sizeof(struct idpf_rxq_set), - GFP_KERNEL); + kzalloc_obj(struct idpf_rxq_set, GFP_KERNEL); if (!rx_qgrp->splitq.rxq_sets[j]) { err = -ENOMEM; goto err_alloc; } } - rx_qgrp->splitq.bufq_sets = kcalloc(rsrc->num_bufqs_per_qgrp, - sizeof(struct idpf_bufq_set), - GFP_KERNEL); + rx_qgrp->splitq.bufq_sets = kzalloc_objs(struct idpf_bufq_set, + rsrc->num_bufqs_per_qgrp, + GFP_KERNEL); if (!rx_qgrp->splitq.bufq_sets) { err = -ENOMEM; goto err_alloc; @@ -1880,9 +1877,9 @@ static int idpf_rxq_group_alloc(struct idpf_vport *vport, rsrc->bufq_desc_count[j]; idpf_queue_set(GEN_CHK, refillq); idpf_queue_set(RFL_GEN_CHK, refillq); - refillq->ring = kcalloc(refillq->desc_count, - sizeof(*refillq->ring), - GFP_KERNEL); + refillq->ring = kzalloc_objs(*refillq->ring, + refillq->desc_count, + GFP_KERNEL); if (!refillq->ring) { err = -ENOMEM; goto err_alloc; @@ -4567,8 +4564,8 @@ int idpf_vport_intr_alloc(struct idpf_vport *vport, user_config = &vport->adapter->vport_config[idx]->user_config; - rsrc->q_vectors = kcalloc(rsrc->num_q_vectors, - sizeof(struct idpf_q_vector), GFP_KERNEL); + rsrc->q_vectors = kzalloc_objs(struct idpf_q_vector, + rsrc->num_q_vectors, GFP_KERNEL); if (!rsrc->q_vectors) return -ENOMEM; @@ -4595,37 +4592,34 @@ int idpf_vport_intr_alloc(struct idpf_vport *vport, q_vector->rx_intr_mode = q_coal->rx_intr_mode; q_vector->rx_itr_idx = VIRTCHNL2_ITR_IDX_0; - q_vector->tx = kcalloc(txqs_per_vector, sizeof(*q_vector->tx), - GFP_KERNEL); + q_vector->tx = kzalloc_objs(*q_vector->tx, txqs_per_vector, + GFP_KERNEL); if (!q_vector->tx) goto error; - q_vector->rx = kcalloc(rxqs_per_vector, sizeof(*q_vector->rx), - GFP_KERNEL); + q_vector->rx = kzalloc_objs(*q_vector->rx, rxqs_per_vector, + GFP_KERNEL); if (!q_vector->rx) goto error; if (!idpf_is_queue_model_split(rsrc->rxq_model)) continue; - q_vector->bufq = kcalloc(bufqs_per_vector, - sizeof(*q_vector->bufq), - GFP_KERNEL); + q_vector->bufq = kzalloc_objs(*q_vector->bufq, bufqs_per_vector, + GFP_KERNEL); if (!q_vector->bufq) goto error; - q_vector->complq = kcalloc(complqs_per_vector, - sizeof(*q_vector->complq), - GFP_KERNEL); + q_vector->complq = kzalloc_objs(*q_vector->complq, + complqs_per_vector, GFP_KERNEL); if (!q_vector->complq) goto error; if (!rsrc->xdp_txq_offset) continue; - q_vector->xsksq = kcalloc(rxqs_per_vector, - sizeof(*q_vector->xsksq), - GFP_KERNEL); + q_vector->xsksq = kzalloc_objs(*q_vector->xsksq, + rxqs_per_vector, GFP_KERNEL); if (!q_vector->xsksq) goto error; } diff --git a/drivers/net/ethernet/intel/idpf/idpf_vf_dev.c b/drivers/net/ethernet/intel/idpf/idpf_vf_dev.c index 7527b967e2e7..57559a2bc9dd 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_vf_dev.c +++ b/drivers/net/ethernet/intel/idpf/idpf_vf_dev.c @@ -82,8 +82,7 @@ static int idpf_vf_intr_reg_init(struct idpf_vport *vport, u16 total_vecs; total_vecs = idpf_get_reserved_vecs(vport->adapter); - reg_vals = kcalloc(total_vecs, sizeof(struct idpf_vec_regs), - GFP_KERNEL); + reg_vals = kzalloc_objs(struct idpf_vec_regs, total_vecs, GFP_KERNEL); if (!reg_vals) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c b/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c index d46affaf7185..f1a8ae9d8118 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c +++ b/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c @@ -132,7 +132,7 @@ static int idpf_mb_clean(struct idpf_adapter *adapter, struct idpf_dma_mem *dma_mem; int err; - q_msg = kcalloc(num_q_msg, sizeof(struct idpf_ctlq_msg *), GFP_ATOMIC); + q_msg = kzalloc_objs(struct idpf_ctlq_msg *, num_q_msg, GFP_ATOMIC); if (!q_msg) return -ENOMEM; @@ -238,11 +238,11 @@ int idpf_send_mb_msg(struct idpf_adapter *adapter, struct idpf_ctlq_info *asq, if (err) return err; - ctlq_msg = kzalloc(sizeof(*ctlq_msg), GFP_ATOMIC); + ctlq_msg = kzalloc_obj(*ctlq_msg, GFP_ATOMIC); if (!ctlq_msg) return -ENOMEM; - dma_mem = kzalloc(sizeof(*dma_mem), GFP_ATOMIC); + dma_mem = kzalloc_obj(*dma_mem, GFP_ATOMIC); if (!dma_mem) { err = -ENOMEM; goto dma_mem_error; @@ -740,7 +740,7 @@ struct idpf_queue_set *idpf_alloc_queue_set(struct idpf_adapter *adapter, { struct idpf_queue_set *qp; - qp = kzalloc(struct_size(qp, qs, num), GFP_KERNEL); + qp = kzalloc_flex(*qp, qs, num, GFP_KERNEL); if (!qp) return NULL; @@ -1059,7 +1059,7 @@ static int idpf_send_get_lan_memory_regions(struct idpf_adapter *adapter) return -EINVAL; hw = &adapter->hw; - hw->lan_regs = kcalloc(num_regions, sizeof(*hw->lan_regs), GFP_KERNEL); + hw->lan_regs = kzalloc_objs(*hw->lan_regs, num_regions, GFP_KERNEL); if (!hw->lan_regs) return -ENOMEM; @@ -1091,8 +1091,7 @@ static int idpf_calc_remaining_mmio_regs(struct idpf_adapter *adapter) struct idpf_hw *hw = &adapter->hw; hw->num_lan_regs = IDPF_MMIO_MAP_FALLBACK_MAX_REMAINING; - hw->lan_regs = kcalloc(hw->num_lan_regs, sizeof(*hw->lan_regs), - GFP_KERNEL); + hw->lan_regs = kzalloc_objs(*hw->lan_regs, hw->num_lan_regs, GFP_KERNEL); if (!hw->lan_regs) return -ENOMEM; @@ -1291,8 +1290,8 @@ idpf_vport_init_queue_reg_chunks(struct idpf_vport_config *vport_config, kfree(q_info->queue_chunks); - q_info->queue_chunks = kcalloc(num_chunks, sizeof(*q_info->queue_chunks), - GFP_KERNEL); + q_info->queue_chunks = kzalloc_objs(*q_info->queue_chunks, num_chunks, + GFP_KERNEL); if (!q_info->queue_chunks) { q_info->num_chunks = 0; return -ENOMEM; @@ -1845,7 +1844,7 @@ static int idpf_send_config_tx_queue_set_msg(const struct idpf_queue_set *qs) .chunk_sz = sizeof(*qi), }; - qi = kcalloc(qs->num, sizeof(*qi), GFP_KERNEL); + qi = kzalloc_objs(*qi, qs->num, GFP_KERNEL); if (!qi) return -ENOMEM; @@ -2034,7 +2033,7 @@ static int idpf_send_config_rx_queue_set_msg(const struct idpf_queue_set *qs) .chunk_sz = sizeof(*qi), }; - qi = kcalloc(qs->num, sizeof(*qi), GFP_KERNEL); + qi = kzalloc_objs(*qi, qs->num, GFP_KERNEL); if (!qi) return -ENOMEM; @@ -2161,7 +2160,7 @@ static int idpf_send_ena_dis_queue_set_msg(const struct idpf_queue_set *qs, .num_chunks = qs->num, }; - qc = kcalloc(qs->num, sizeof(*qc), GFP_KERNEL); + qc = kzalloc_objs(*qc, qs->num, GFP_KERNEL); if (!qc) return -ENOMEM; @@ -2328,7 +2327,7 @@ idpf_send_map_unmap_queue_set_vector_msg(const struct idpf_queue_set *qs, }; bool split; - vqv = kcalloc(qs->num, sizeof(*vqv), GFP_KERNEL); + vqv = kzalloc_objs(*vqv, qs->num, GFP_KERNEL); if (!vqv) return -ENOMEM; @@ -3198,16 +3197,16 @@ static int idpf_send_get_rx_ptype_msg(struct idpf_adapter *adapter) u16 next_ptype_id = 0; ssize_t reply_sz; - singleq_pt_lkup = kcalloc(IDPF_RX_MAX_BASE_PTYPE, - sizeof(*singleq_pt_lkup), GFP_KERNEL); + singleq_pt_lkup = kzalloc_objs(*singleq_pt_lkup, IDPF_RX_MAX_BASE_PTYPE, + GFP_KERNEL); if (!singleq_pt_lkup) return -ENOMEM; - splitq_pt_lkup = kcalloc(max_ptype, sizeof(*splitq_pt_lkup), GFP_KERNEL); + splitq_pt_lkup = kzalloc_objs(*splitq_pt_lkup, max_ptype, GFP_KERNEL); if (!splitq_pt_lkup) return -ENOMEM; - get_ptype_info = kzalloc(sizeof(*get_ptype_info), GFP_KERNEL); + get_ptype_info = kzalloc_obj(*get_ptype_info, GFP_KERNEL); if (!get_ptype_info) return -ENOMEM; @@ -3435,15 +3434,13 @@ static int idpf_vport_params_buf_alloc(struct idpf_adapter *adapter) { u16 num_max_vports = idpf_get_max_vports(adapter); - adapter->vport_params_reqd = kcalloc(num_max_vports, - sizeof(*adapter->vport_params_reqd), - GFP_KERNEL); + adapter->vport_params_reqd = kzalloc_objs(*adapter->vport_params_reqd, + num_max_vports, GFP_KERNEL); if (!adapter->vport_params_reqd) return -ENOMEM; - adapter->vport_params_recvd = kcalloc(num_max_vports, - sizeof(*adapter->vport_params_recvd), - GFP_KERNEL); + adapter->vport_params_recvd = kzalloc_objs(*adapter->vport_params_recvd, + num_max_vports, GFP_KERNEL); if (!adapter->vport_params_recvd) goto err_mem; @@ -3454,9 +3451,8 @@ static int idpf_vport_params_buf_alloc(struct idpf_adapter *adapter) if (adapter->vport_config) return 0; - adapter->vport_config = kcalloc(num_max_vports, - sizeof(*adapter->vport_config), - GFP_KERNEL); + adapter->vport_config = kzalloc_objs(*adapter->vport_config, + num_max_vports, GFP_KERNEL); if (!adapter->vport_config) goto err_mem; @@ -3488,7 +3484,8 @@ int idpf_vc_core_init(struct idpf_adapter *adapter) int err = 0; if (!adapter->vcxn_mngr) { - adapter->vcxn_mngr = kzalloc(sizeof(*adapter->vcxn_mngr), GFP_KERNEL); + adapter->vcxn_mngr = kzalloc_obj(*adapter->vcxn_mngr, + GFP_KERNEL); if (!adapter->vcxn_mngr) { err = -ENOMEM; goto init_failed; @@ -3560,15 +3557,14 @@ restart: pci_sriov_set_totalvfs(adapter->pdev, idpf_get_max_vfs(adapter)); num_max_vports = idpf_get_max_vports(adapter); adapter->max_vports = num_max_vports; - adapter->vports = kcalloc(num_max_vports, sizeof(*adapter->vports), - GFP_KERNEL); + adapter->vports = kzalloc_objs(*adapter->vports, num_max_vports, + GFP_KERNEL); if (!adapter->vports) return -ENOMEM; if (!adapter->netdevs) { - adapter->netdevs = kcalloc(num_max_vports, - sizeof(struct net_device *), - GFP_KERNEL); + adapter->netdevs = kzalloc_objs(struct net_device *, + num_max_vports, GFP_KERNEL); if (!adapter->netdevs) { err = -ENOMEM; goto err_netdev_alloc; @@ -4335,8 +4331,8 @@ int idpf_add_del_mac_filters(struct idpf_adapter *adapter, } /* Fill all the new filters into virtchannel message */ - mac_addr = kcalloc(total_filters, sizeof(struct virtchnl2_mac_addr), - GFP_ATOMIC); + mac_addr = kzalloc_objs(struct virtchnl2_mac_addr, total_filters, + GFP_ATOMIC); if (!mac_addr) { spin_unlock_bh(&vport_config->mac_filter_list_lock); diff --git a/drivers/net/ethernet/intel/idpf/idpf_virtchnl_ptp.c b/drivers/net/ethernet/intel/idpf/idpf_virtchnl_ptp.c index 61cedb6f2854..2980164ba9fb 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_virtchnl_ptp.c +++ b/drivers/net/ethernet/intel/idpf/idpf_virtchnl_ptp.c @@ -39,8 +39,8 @@ int idpf_ptp_get_caps(struct idpf_adapter *adapter) u32 temp_offset; int reply_sz; - recv_ptp_caps_msg = kzalloc(sizeof(struct virtchnl2_ptp_get_caps), - GFP_KERNEL); + recv_ptp_caps_msg = kzalloc_obj(struct virtchnl2_ptp_get_caps, + GFP_KERNEL); if (!recv_ptp_caps_msg) return -ENOMEM; @@ -395,7 +395,7 @@ int idpf_ptp_get_vport_tstamps_caps(struct idpf_vport *vport) for (u16 i = 0; i < tstamp_caps->num_entries; i++) { __le32 offset_l, offset_h; - ptp_tx_tstamp = kzalloc(sizeof(*ptp_tx_tstamp), GFP_KERNEL); + ptp_tx_tstamp = kzalloc_obj(*ptp_tx_tstamp, GFP_KERNEL); if (!ptp_tx_tstamp) { err = -ENOMEM; goto err_free_ptp_tx_stamp_list; diff --git a/drivers/net/ethernet/intel/idpf/xdp.c b/drivers/net/ethernet/intel/idpf/xdp.c index 2b60f2a78684..a94bde86f84f 100644 --- a/drivers/net/ethernet/intel/idpf/xdp.c +++ b/drivers/net/ethernet/intel/idpf/xdp.c @@ -154,7 +154,7 @@ int idpf_xdpsqs_get(const struct idpf_vport *vport) if (!idpf_xdp_enabled(vport)) return 0; - timers = kvcalloc(vport->num_xdp_txq, sizeof(*timers), GFP_KERNEL); + timers = kvzalloc_objs(*timers, vport->num_xdp_txq, GFP_KERNEL); if (!timers) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c index b507576b28b2..117d2a0ca620 100644 --- a/drivers/net/ethernet/intel/igb/igb_ethtool.c +++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c @@ -2919,7 +2919,7 @@ static int igb_add_ethtool_nfc_entry(struct igb_adapter *adapter, if ((fsp->flow_type & ~FLOW_EXT) != ETHER_FLOW) return -EINVAL; - input = kzalloc(sizeof(*input), GFP_KERNEL); + input = kzalloc_obj(*input, GFP_KERNEL); if (!input) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index dbea37269d2c..5dc97daf6ac1 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -2711,7 +2711,7 @@ static int igb_configure_clsflower(struct igb_adapter *adapter, return -EINVAL; } - filter = kzalloc(sizeof(*filter), GFP_KERNEL); + filter = kzalloc_obj(*filter, GFP_KERNEL); if (!filter) return -ENOMEM; @@ -3775,8 +3775,9 @@ static int igb_enable_sriov(struct pci_dev *pdev, int num_vfs, bool reinit) } else adapter->vfs_allocated_count = num_vfs; - adapter->vf_data = kcalloc(adapter->vfs_allocated_count, - sizeof(struct vf_data_storage), GFP_KERNEL); + adapter->vf_data = kzalloc_objs(struct vf_data_storage, + adapter->vfs_allocated_count, + GFP_KERNEL); /* if allocation failed then we do not support SR-IOV */ if (!adapter->vf_data) { @@ -3794,9 +3795,8 @@ static int igb_enable_sriov(struct pci_dev *pdev, int num_vfs, bool reinit) (1 + IGB_PF_MAC_FILTERS_RESERVED + adapter->vfs_allocated_count); - adapter->vf_mac_list = kcalloc(num_vf_mac_filters, - sizeof(struct vf_mac_filter), - GFP_KERNEL); + adapter->vf_mac_list = kzalloc_objs(struct vf_mac_filter, + num_vf_mac_filters, GFP_KERNEL); mac_list = adapter->vf_mac_list; INIT_LIST_HEAD(&adapter->vf_macs.l); @@ -4091,9 +4091,8 @@ static int igb_sw_init(struct igb_adapter *adapter) /* Assume MSI-X interrupts, will be checked during IRQ allocation */ adapter->flags |= IGB_FLAG_HAS_MSIX; - adapter->mac_table = kcalloc(hw->mac.rar_entry_count, - sizeof(struct igb_mac_addr), - GFP_KERNEL); + adapter->mac_table = kzalloc_objs(struct igb_mac_addr, + hw->mac.rar_entry_count, GFP_KERNEL); if (!adapter->mac_table) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/igbvf/netdev.c b/drivers/net/ethernet/intel/igbvf/netdev.c index ac57212ab02b..72ea2e6ce15b 100644 --- a/drivers/net/ethernet/intel/igbvf/netdev.c +++ b/drivers/net/ethernet/intel/igbvf/netdev.c @@ -1017,8 +1017,7 @@ static void igbvf_set_interrupt_capability(struct igbvf_adapter *adapter) int i; /* we allocate 3 vectors, 1 for Tx, 1 for Rx, one for PF messages */ - adapter->msix_entries = kcalloc(3, sizeof(struct msix_entry), - GFP_KERNEL); + adapter->msix_entries = kzalloc_objs(struct msix_entry, 3, GFP_KERNEL); if (adapter->msix_entries) { for (i = 0; i < 3; i++) adapter->msix_entries[i].entry = i; @@ -1098,11 +1097,11 @@ static int igbvf_alloc_queues(struct igbvf_adapter *adapter) { struct net_device *netdev = adapter->netdev; - adapter->tx_ring = kzalloc(sizeof(struct igbvf_ring), GFP_KERNEL); + adapter->tx_ring = kzalloc_obj(struct igbvf_ring, GFP_KERNEL); if (!adapter->tx_ring) return -ENOMEM; - adapter->rx_ring = kzalloc(sizeof(struct igbvf_ring), GFP_KERNEL); + adapter->rx_ring = kzalloc_obj(struct igbvf_ring, GFP_KERNEL); if (!adapter->rx_ring) { kfree(adapter->tx_ring); return -ENOMEM; diff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c index 3172cdbca9cc..35b74213ca8b 100644 --- a/drivers/net/ethernet/intel/igc/igc_ethtool.c +++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c @@ -1395,7 +1395,7 @@ static int igc_ethtool_add_nfc_rule(struct igc_adapter *adapter, return -EINVAL; } - rule = kzalloc(sizeof(*rule), GFP_KERNEL); + rule = kzalloc_obj(*rule, GFP_KERNEL); if (!rule) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/igc/igc_leds.c b/drivers/net/ethernet/intel/igc/igc_leds.c index 3929b25b6ae6..d6e011695adc 100644 --- a/drivers/net/ethernet/intel/igc/igc_leds.c +++ b/drivers/net/ethernet/intel/igc/igc_leds.c @@ -268,7 +268,7 @@ int igc_led_setup(struct igc_adapter *adapter) mutex_init(&adapter->led_mutex); - leds = kcalloc(IGC_NUM_LEDS, sizeof(*leds), GFP_KERNEL); + leds = kzalloc_objs(*leds, IGC_NUM_LEDS, GFP_KERNEL); if (!leds) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c index 89a321a344d2..73d841e63d2d 100644 --- a/drivers/net/ethernet/intel/igc/igc_main.c +++ b/drivers/net/ethernet/intel/igc/igc_main.c @@ -4633,8 +4633,8 @@ static void igc_set_interrupt_capability(struct igc_adapter *adapter, /* add 1 vector for link status interrupts */ numvecs++; - adapter->msix_entries = kcalloc(numvecs, sizeof(struct msix_entry), - GFP_KERNEL); + adapter->msix_entries = kzalloc_objs(struct msix_entry, numvecs, + GFP_KERNEL); if (!adapter->msix_entries) return; @@ -4863,8 +4863,7 @@ static int igc_alloc_q_vector(struct igc_adapter *adapter, /* allocate q_vector and rings */ q_vector = adapter->q_vector[v_idx]; if (!q_vector) - q_vector = kzalloc(struct_size(q_vector, ring, ring_count), - GFP_KERNEL); + q_vector = kzalloc_flex(*q_vector, ring, ring_count, GFP_KERNEL); else memset(q_vector, 0, struct_size(q_vector, ring, ring_count)); if (!q_vector) diff --git a/drivers/net/ethernet/intel/ixgbe/devlink/devlink.c b/drivers/net/ethernet/intel/ixgbe/devlink/devlink.c index d227f4d2a2d1..165a8f12745f 100644 --- a/drivers/net/ethernet/intel/ixgbe/devlink/devlink.c +++ b/drivers/net/ethernet/intel/ixgbe/devlink/devlink.c @@ -318,7 +318,7 @@ static int ixgbe_devlink_info_get(struct devlink *devlink, struct ixgbe_info_ctx *ctx; int err; - ctx = kmalloc(sizeof(*ctx), GFP_KERNEL); + ctx = kmalloc_obj(*ctx, GFP_KERNEL); if (!ctx) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c index 3dd5a16a14df..0ecc4f7d0288 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c @@ -516,8 +516,8 @@ static int ixgbe_dcbnl_ieee_setets(struct net_device *dev, return -EINVAL; if (!adapter->ixgbe_ieee_ets) { - adapter->ixgbe_ieee_ets = kmalloc(sizeof(struct ieee_ets), - GFP_KERNEL); + adapter->ixgbe_ieee_ets = kmalloc_obj(struct ieee_ets, + GFP_KERNEL); if (!adapter->ixgbe_ieee_ets) return -ENOMEM; @@ -593,8 +593,8 @@ static int ixgbe_dcbnl_ieee_setpfc(struct net_device *dev, return -EINVAL; if (!adapter->ixgbe_ieee_pfc) { - adapter->ixgbe_ieee_pfc = kmalloc(sizeof(struct ieee_pfc), - GFP_KERNEL); + adapter->ixgbe_ieee_pfc = kmalloc_obj(struct ieee_pfc, + GFP_KERNEL); if (!adapter->ixgbe_ieee_pfc) return -ENOMEM; } diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c index c2f8189a0738..f8a4331e8fe3 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c @@ -1285,7 +1285,7 @@ int ixgbe_update_link_info(struct ixgbe_hw *hw) if (!(li->link_info & IXGBE_ACI_MEDIA_AVAILABLE)) return 0; - pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL); + pcaps = kzalloc_obj(*pcaps, GFP_KERNEL); if (!pcaps) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c index bb4b53fee234..56aabaa5caec 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c @@ -2981,7 +2981,7 @@ static int ixgbe_add_ethtool_fdir_entry(struct ixgbe_adapter *adapter, return -EINVAL; } - input = kzalloc(sizeof(*input), GFP_ATOMIC); + input = kzalloc_obj(*input, GFP_ATOMIC); if (!input) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_fw_update.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_fw_update.c index e5479fc07a07..c44c9bf53cc4 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_fw_update.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_fw_update.c @@ -516,7 +516,7 @@ int ixgbe_get_pending_updates(struct ixgbe_adapter *adapter, u8 *pending, struct ixgbe_hw *hw = &adapter->hw; int err; - dev_caps = kzalloc(sizeof(*dev_caps), GFP_KERNEL); + dev_caps = kzalloc_obj(*dev_caps, GFP_KERNEL); if (!dev_caps) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c index d1f4073b36f9..6da3e52cea7a 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c @@ -904,7 +904,7 @@ int ixgbe_ipsec_vf_add_sa(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf) goto err_out; } - xs = kzalloc(sizeof(*xs), GFP_ATOMIC); + xs = kzalloc_obj(*xs, GFP_ATOMIC); if (unlikely(!xs)) { err = -ENOMEM; goto err_out; @@ -1233,7 +1233,7 @@ void ixgbe_init_ipsec_offload(struct ixgbe_adapter *adapter) if (t_dis || r_dis) return; - ipsec = kzalloc(sizeof(*ipsec), GFP_KERNEL); + ipsec = kzalloc_obj(*ipsec, GFP_KERNEL); if (!ipsec) goto err1; hash_init(ipsec->rx_sa_list); diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c index a1d04914fbbc..f5c00cf57d43 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c @@ -768,9 +768,8 @@ static int ixgbe_acquire_msix_vectors(struct ixgbe_adapter *adapter) */ vector_threshold = MIN_MSIX_COUNT; - adapter->msix_entries = kcalloc(vectors, - sizeof(struct msix_entry), - GFP_KERNEL); + adapter->msix_entries = kzalloc_objs(struct msix_entry, vectors, + GFP_KERNEL); if (!adapter->msix_entries) return -ENOMEM; @@ -859,8 +858,7 @@ static int ixgbe_alloc_q_vector(struct ixgbe_adapter *adapter, q_vector = kzalloc_node(struct_size(q_vector, ring, ring_count), GFP_KERNEL, node); if (!q_vector) - q_vector = kzalloc(struct_size(q_vector, ring, ring_count), - GFP_KERNEL); + q_vector = kzalloc_flex(*q_vector, ring, ring_count, GFP_KERNEL); if (!q_vector) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index c58051e4350b..59b3acb62134 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -6895,8 +6895,8 @@ static int ixgbe_sw_init(struct ixgbe_adapter *adapter, #endif /* IXGBE_FCOE */ /* initialize static ixgbe jump table entries */ - adapter->jump_tables[0] = kzalloc(sizeof(*adapter->jump_tables[0]), - GFP_KERNEL); + adapter->jump_tables[0] = kzalloc_obj(*adapter->jump_tables[0], + GFP_KERNEL); if (!adapter->jump_tables[0]) return -ENOMEM; adapter->jump_tables[0]->mat = ixgbe_ipv4_fields; @@ -6904,9 +6904,8 @@ static int ixgbe_sw_init(struct ixgbe_adapter *adapter, for (i = 1; i < IXGBE_MAX_LINK_HANDLE; i++) adapter->jump_tables[i] = NULL; - adapter->mac_table = kcalloc(hw->mac.num_rar_entries, - sizeof(struct ixgbe_mac_addr), - GFP_KERNEL); + adapter->mac_table = kzalloc_objs(struct ixgbe_mac_addr, + hw->mac.num_rar_entries, GFP_KERNEL); if (!adapter->mac_table) return -ENOMEM; @@ -10273,15 +10272,15 @@ static int ixgbe_configure_clsu32(struct ixgbe_adapter *adapter, (__force u32)cls->knode.sel->offmask) return err; - jump = kzalloc(sizeof(*jump), GFP_KERNEL); + jump = kzalloc_obj(*jump, GFP_KERNEL); if (!jump) return -ENOMEM; - input = kzalloc(sizeof(*input), GFP_KERNEL); + input = kzalloc_obj(*input, GFP_KERNEL); if (!input) { err = -ENOMEM; goto free_jump; } - mask = kzalloc(sizeof(*mask), GFP_KERNEL); + mask = kzalloc_obj(*mask, GFP_KERNEL); if (!mask) { err = -ENOMEM; goto free_input; @@ -10305,10 +10304,10 @@ static int ixgbe_configure_clsu32(struct ixgbe_adapter *adapter, return 0; } - input = kzalloc(sizeof(*input), GFP_KERNEL); + input = kzalloc_obj(*input, GFP_KERNEL); if (!input) return -ENOMEM; - mask = kzalloc(sizeof(*mask), GFP_KERNEL); + mask = kzalloc_obj(*mask, GFP_KERNEL); if (!mask) { err = -ENOMEM; goto free_input; @@ -10786,7 +10785,7 @@ static void *ixgbe_fwd_add(struct net_device *pdev, struct net_device *vdev) return ERR_PTR(-ENOMEM); } - accel = kzalloc(sizeof(*accel), GFP_KERNEL); + accel = kzalloc_obj(*accel, GFP_KERNEL); if (!accel) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c index ee133d6749b3..40dfdf62ab33 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c @@ -37,8 +37,7 @@ static inline void ixgbe_alloc_vf_macvlans(struct ixgbe_adapter *adapter, if (!num_vf_macvlans) return; - mv_list = kcalloc(num_vf_macvlans, sizeof(struct vf_macvlans), - GFP_KERNEL); + mv_list = kzalloc_objs(struct vf_macvlans, num_vf_macvlans, GFP_KERNEL); if (mv_list) { for (i = 0; i < num_vf_macvlans; i++) { mv_list[i].vf = -1; @@ -65,8 +64,8 @@ static int __ixgbe_enable_sriov(struct ixgbe_adapter *adapter, IXGBE_FLAG_VMDQ_ENABLED; /* Allocate memory for per VF control structures */ - adapter->vfinfo = kcalloc(num_vfs, sizeof(struct vf_data_storage), - GFP_KERNEL); + adapter->vfinfo = kzalloc_objs(struct vf_data_storage, num_vfs, + GFP_KERNEL); if (!adapter->vfinfo) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/ixgbevf/ipsec.c b/drivers/net/ethernet/intel/ixgbevf/ipsec.c index fce35924ff8b..780ebcdbd4a7 100644 --- a/drivers/net/ethernet/intel/ixgbevf/ipsec.c +++ b/drivers/net/ethernet/intel/ixgbevf/ipsec.c @@ -628,7 +628,7 @@ void ixgbevf_init_ipsec_offload(struct ixgbevf_adapter *adapter) return; } - ipsec = kzalloc(sizeof(*ipsec), GFP_KERNEL); + ipsec = kzalloc_obj(*ipsec, GFP_KERNEL); if (!ipsec) goto err1; hash_init(ipsec->rx_sa_list); diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c index d5ce20f47def..38af1f35b339 100644 --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c @@ -2716,8 +2716,8 @@ static int ixgbevf_set_interrupt_capability(struct ixgbevf_adapter *adapter) v_budget = min_t(int, v_budget, num_online_cpus()); v_budget += NON_Q_VECTORS; - adapter->msix_entries = kcalloc(v_budget, - sizeof(struct msix_entry), GFP_KERNEL); + adapter->msix_entries = kzalloc_objs(struct msix_entry, v_budget, + GFP_KERNEL); if (!adapter->msix_entries) return -ENOMEM; diff --git a/drivers/net/ethernet/intel/libie/fwlog.c b/drivers/net/ethernet/intel/libie/fwlog.c index f39cc11cb7c5..5b69a26ef2bd 100644 --- a/drivers/net/ethernet/intel/libie/fwlog.c +++ b/drivers/net/ethernet/intel/libie/fwlog.c @@ -153,7 +153,7 @@ static void libie_fwlog_realloc_rings(struct libie_fwlog *fwlog, int index) * old rings and buffers. that way if we don't have enough * memory then we at least have what we had before */ - ring.rings = kcalloc(ring_size, sizeof(*ring.rings), GFP_KERNEL); + ring.rings = kzalloc_objs(*ring.rings, ring_size, GFP_KERNEL); if (!ring.rings) return; @@ -208,7 +208,7 @@ libie_aq_fwlog_set(struct libie_fwlog *fwlog, int status; int i; - fw_modules = kcalloc(num_entries, sizeof(*fw_modules), GFP_KERNEL); + fw_modules = kzalloc_objs(*fw_modules, num_entries, GFP_KERNEL); if (!fw_modules) return -ENOMEM; @@ -838,8 +838,8 @@ static void libie_debugfs_fwlog_init(struct libie_fwlog *fwlog, /* allocate space for this first because if it fails then we don't * need to unwind */ - fw_modules = kcalloc(LIBIE_NR_FW_LOG_MODULES, sizeof(*fw_modules), - GFP_KERNEL); + fw_modules = kzalloc_objs(*fw_modules, LIBIE_NR_FW_LOG_MODULES, + GFP_KERNEL); if (!fw_modules) return; @@ -978,7 +978,7 @@ static void libie_fwlog_set_supported(struct libie_fwlog *fwlog) fwlog->supported = false; - cfg = kzalloc(sizeof(*cfg), GFP_KERNEL); + cfg = kzalloc_obj(*cfg, GFP_KERNEL); if (!cfg) return; @@ -1013,9 +1013,9 @@ int libie_fwlog_init(struct libie_fwlog *fwlog, struct libie_fwlog_api *api) if (status) return status; - fwlog->ring.rings = kcalloc(LIBIE_FWLOG_RING_SIZE_DFLT, - sizeof(*fwlog->ring.rings), - GFP_KERNEL); + fwlog->ring.rings = kzalloc_objs(*fwlog->ring.rings, + LIBIE_FWLOG_RING_SIZE_DFLT, + GFP_KERNEL); if (!fwlog->ring.rings) { dev_warn(&fwlog->pdev->dev, "Unable to allocate memory for FW log rings\n"); return -ENOMEM; diff --git a/drivers/net/ethernet/jme.c b/drivers/net/ethernet/jme.c index d8be0e4dcb07..25ec5f757c68 100644 --- a/drivers/net/ethernet/jme.c +++ b/drivers/net/ethernet/jme.c @@ -576,9 +576,9 @@ jme_setup_tx_resources(struct jme_adapter *jme) atomic_set(&txring->next_to_clean, 0); atomic_set(&txring->nr_free, jme->tx_ring_size); - txring->bufinf = kcalloc(jme->tx_ring_size, - sizeof(struct jme_buffer_info), - GFP_ATOMIC); + txring->bufinf = kzalloc_objs(struct jme_buffer_info, + jme->tx_ring_size, + GFP_ATOMIC); if (unlikely(!(txring->bufinf))) goto err_free_txring; @@ -819,9 +819,9 @@ jme_setup_rx_resources(struct jme_adapter *jme) rxring->next_to_use = 0; atomic_set(&rxring->next_to_clean, 0); - rxring->bufinf = kcalloc(jme->rx_ring_size, - sizeof(struct jme_buffer_info), - GFP_ATOMIC); + rxring->bufinf = kzalloc_objs(struct jme_buffer_info, + jme->rx_ring_size, + GFP_ATOMIC); if (unlikely(!(rxring->bufinf))) goto err_free_rxring; diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c index 0ab52c57c648..1bc31e0b443d 100644 --- a/drivers/net/ethernet/marvell/mv643xx_eth.c +++ b/drivers/net/ethernet/marvell/mv643xx_eth.c @@ -1967,8 +1967,7 @@ static int rxq_init(struct mv643xx_eth_private *mp, int index) memset(rxq->rx_desc_area, 0, size); rxq->rx_desc_area_size = size; - rxq->rx_skb = kcalloc(rxq->rx_ring_size, sizeof(*rxq->rx_skb), - GFP_KERNEL); + rxq->rx_skb = kzalloc_objs(*rxq->rx_skb, rxq->rx_ring_size, GFP_KERNEL); if (rxq->rx_skb == NULL) goto out_free; diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c index 7af44f858fa3..c058df3bb85f 100644 --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c @@ -3554,7 +3554,7 @@ static int mvneta_txq_sw_init(struct mvneta_port *pp, txq->last_desc = txq->size - 1; - txq->buf = kmalloc_array(txq->size, sizeof(*txq->buf), GFP_KERNEL); + txq->buf = kmalloc_objs(*txq->buf, txq->size, GFP_KERNEL); if (!txq->buf) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c index c116da7d7f18..83ba45f54180 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c @@ -1367,7 +1367,7 @@ int mvpp2_ethtool_cls_rule_ins(struct mvpp2_port *port, if (info->fs.location >= MVPP2_N_RFS_ENTRIES_PER_FLOW) return -EINVAL; - efs = kzalloc(sizeof(*efs), GFP_KERNEL); + efs = kzalloc_obj(*efs, GFP_KERNEL); if (!efs) return -ENOMEM; @@ -1503,8 +1503,7 @@ static int mvpp22_rss_context_create(struct mvpp2_port *port, u32 *rss_ctx) if (ctx == MVPP22_N_RSS_TABLES) return -EINVAL; - priv->rss_tables[ctx] = kzalloc(sizeof(*priv->rss_tables[ctx]), - GFP_KERNEL); + priv->rss_tables[ctx] = kzalloc_obj(*priv->rss_tables[ctx], GFP_KERNEL); if (!priv->rss_tables[ctx]) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c index 0f9bc4f8ec3b..2aef0c77f4d6 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c @@ -706,7 +706,7 @@ void mvpp2_dbgfs_init(struct mvpp2 *priv, const char *name) mvpp2_dir = debugfs_create_dir(name, mvpp2_root); priv->dbgfs_dir = mvpp2_dir; - priv->dbgfs_entries = kzalloc(sizeof(*priv->dbgfs_entries), GFP_KERNEL); + priv->dbgfs_entries = kzalloc_obj(*priv->dbgfs_entries, GFP_KERNEL); if (!priv->dbgfs_entries) goto err; diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c index 33426fded919..58f77972c86a 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c @@ -3151,9 +3151,8 @@ static int mvpp2_txq_init(struct mvpp2_port *port, for (thread = 0; thread < port->priv->nthreads; thread++) { txq_pcpu = per_cpu_ptr(txq->pcpu, thread); txq_pcpu->size = txq->size; - txq_pcpu->buffs = kmalloc_array(txq_pcpu->size, - sizeof(*txq_pcpu->buffs), - GFP_KERNEL); + txq_pcpu->buffs = kmalloc_objs(*txq_pcpu->buffs, txq_pcpu->size, + GFP_KERNEL); if (!txq_pcpu->buffs) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/octeon_ep/octep_main.c b/drivers/net/ethernet/marvell/octeon_ep/octep_main.c index 57db7ea2f5be..fd9abcfeb4e0 100644 --- a/drivers/net/ethernet/marvell/octeon_ep/octep_main.c +++ b/drivers/net/ethernet/marvell/octeon_ep/octep_main.c @@ -115,8 +115,8 @@ static int octep_enable_msix_range(struct octep_device *oct) /* Generic interrupts apart from input/output queues */ num_msix = oct->num_oqs + CFG_GET_NON_IOQ_MSIX(oct->conf); - oct->msix_entries = kcalloc(num_msix, - sizeof(struct msix_entry), GFP_KERNEL); + oct->msix_entries = kzalloc_objs(struct msix_entry, num_msix, + GFP_KERNEL); if (!oct->msix_entries) goto msix_alloc_err; @@ -1293,7 +1293,7 @@ int octep_device_setup(struct octep_device *oct) int i, ret; /* allocate memory for oct->conf */ - oct->conf = kzalloc(sizeof(*oct->conf), GFP_KERNEL); + oct->conf = kzalloc_obj(*oct->conf, GFP_KERNEL); if (!oct->conf) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_main.c b/drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_main.c index 1d9760b4b8f4..b794b517c304 100644 --- a/drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_main.c +++ b/drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_main.c @@ -113,7 +113,8 @@ static int octep_vf_enable_msix_range(struct octep_vf_device *oct) /* Generic interrupts apart from input/output queues */ //num_msix = oct->num_oqs + CFG_GET_NON_IOQ_MSIX(oct->conf); num_msix = oct->num_oqs; - oct->msix_entries = kcalloc(num_msix, sizeof(struct msix_entry), GFP_KERNEL); + oct->msix_entries = kzalloc_objs(struct msix_entry, num_msix, + GFP_KERNEL); if (!oct->msix_entries) goto msix_alloc_err; @@ -951,7 +952,7 @@ int octep_vf_device_setup(struct octep_vf_device *oct) struct pci_dev *pdev = oct->pdev; /* allocate memory for oct->conf */ - oct->conf = kzalloc(sizeof(*oct->conf), GFP_KERNEL); + oct->conf = kzalloc_obj(*oct->conf, GFP_KERNEL); if (!oct->conf) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/octeontx2/af/cgx.c b/drivers/net/ethernet/marvell/octeontx2/af/cgx.c index fd4792e432bf..dc4537623578 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/cgx.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/cgx.c @@ -1725,7 +1725,7 @@ static int cgx_lmac_init(struct cgx *cgx) cgx->lmac_count = cgx->max_lmac_per_mac; for (i = 0; i < cgx->lmac_count; i++) { - lmac = kzalloc(sizeof(struct lmac), GFP_KERNEL); + lmac = kzalloc_obj(struct lmac, GFP_KERNEL); if (!lmac) return -ENOMEM; lmac->name = kcalloc(1, sizeof("cgx_fwi_xxx_yyy"), GFP_KERNEL); diff --git a/drivers/net/ethernet/marvell/octeontx2/af/mbox.c b/drivers/net/ethernet/marvell/octeontx2/af/mbox.c index 75872d257eca..ad62be730bbc 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/mbox.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/mbox.c @@ -133,7 +133,7 @@ int cn20k_mbox_setup(struct otx2_mbox *mbox, struct pci_dev *pdev, mbox->reg_base = reg_base; mbox->pdev = pdev; - mbox->dev = kcalloc(ndevs, sizeof(struct otx2_mbox_dev), GFP_KERNEL); + mbox->dev = kzalloc_objs(struct otx2_mbox_dev, ndevs, GFP_KERNEL); if (!mbox->dev) { otx2_mbox_destroy(mbox); return -ENOMEM; @@ -211,7 +211,7 @@ static int otx2_mbox_setup(struct otx2_mbox *mbox, struct pci_dev *pdev, mbox->reg_base = reg_base; mbox->pdev = pdev; - mbox->dev = kcalloc(ndevs, sizeof(struct otx2_mbox_dev), GFP_KERNEL); + mbox->dev = kzalloc_objs(struct otx2_mbox_dev, ndevs, GFP_KERNEL); if (!mbox->dev) { otx2_mbox_destroy(mbox); return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c b/drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c index a80c8e7c94f2..d98b49f47970 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c @@ -105,7 +105,7 @@ int mcs_add_intr_wq_entry(struct mcs *mcs, struct mcs_intr_event *event) if (!(pfvf->intr_mask && event->intr_mask)) return 0; - qentry = kmalloc(sizeof(*qentry), GFP_ATOMIC); + qentry = kmalloc_obj(*qentry, GFP_ATOMIC); if (!qentry) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/octeontx2/af/ptp.c b/drivers/net/ethernet/marvell/octeontx2/af/ptp.c index 66749b3649c1..f38b5addd4d8 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/ptp.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/ptp.c @@ -520,7 +520,7 @@ static int ptp_probe(struct pci_dev *pdev, struct ptp *ptp; int err; - ptp = kzalloc(sizeof(*ptp), GFP_KERNEL); + ptp = kzalloc_obj(*ptp, GFP_KERNEL); if (!ptp) { err = -ENOMEM; goto error; diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu.c index 8530df8b3fda..2e3b3345a362 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu.c @@ -2516,7 +2516,7 @@ static int rvu_mbox_init(struct rvu *rvu, struct mbox_wq_info *mw, if (!pf_bmap) return -ENOMEM; - ng_rvu_mbox = kzalloc(sizeof(*ng_rvu_mbox), GFP_KERNEL); + ng_rvu_mbox = kzalloc_obj(*ng_rvu_mbox, GFP_KERNEL); if (!ng_rvu_mbox) { err = -ENOMEM; goto free_bitmap; diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c index 3d91a34f8b57..b9980253dcb0 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c @@ -184,7 +184,7 @@ static int rvu_cgx_send_link_info(int cgx_id, int lmac_id, struct rvu *rvu) unsigned long flags; int err; - qentry = kmalloc(sizeof(*qentry), GFP_KERNEL); + qentry = kmalloc_obj(*qentry, GFP_KERNEL); if (!qentry) return -ENOMEM; @@ -215,7 +215,7 @@ static int cgx_lmac_postevent(struct cgx_link_event *event, void *data) struct rvu *rvu = data; /* post event to the event queue */ - qentry = kmalloc(sizeof(*qentry), GFP_ATOMIC); + qentry = kmalloc_obj(*qentry, GFP_ATOMIC); if (!qentry) return -ENOMEM; qentry->link_event = *event; diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c index 0f9953eaf1b0..71c411d8eb83 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c @@ -494,12 +494,12 @@ static int rvu_nix_register_reporters(struct rvu_devlink *rvu_dl) struct rvu_nix_event_ctx *nix_event_context; struct rvu *rvu = rvu_dl->rvu; - rvu_reporters = kzalloc(sizeof(*rvu_reporters), GFP_KERNEL); + rvu_reporters = kzalloc_obj(*rvu_reporters, GFP_KERNEL); if (!rvu_reporters) return -ENOMEM; rvu_dl->rvu_nix_health_reporter = rvu_reporters; - nix_event_context = kzalloc(sizeof(*nix_event_context), GFP_KERNEL); + nix_event_context = kzalloc_obj(*nix_event_context, GFP_KERNEL); if (!nix_event_context) return -ENOMEM; @@ -1048,12 +1048,12 @@ static int rvu_npa_register_reporters(struct rvu_devlink *rvu_dl) struct rvu_npa_event_ctx *npa_event_context; struct rvu *rvu = rvu_dl->rvu; - rvu_reporters = kzalloc(sizeof(*rvu_reporters), GFP_KERNEL); + rvu_reporters = kzalloc_obj(*rvu_reporters, GFP_KERNEL); if (!rvu_reporters) return -ENOMEM; rvu_dl->rvu_npa_health_reporter = rvu_reporters; - npa_event_context = kzalloc(sizeof(*npa_event_context), GFP_KERNEL); + npa_event_context = kzalloc_obj(*npa_event_context, GFP_KERNEL); if (!npa_event_context) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c index 49f7ff5eddfc..0964a85b536f 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c @@ -2455,7 +2455,7 @@ static int nix_smq_flush(struct rvu *rvu, int blkaddr, } /* XOFF all TL2s whose parent TL1 matches SMQ tree TL1 */ - smq_flush_ctx = kzalloc(sizeof(*smq_flush_ctx), GFP_KERNEL); + smq_flush_ctx = kzalloc_obj(*smq_flush_ctx, GFP_KERNEL); if (!smq_flush_ctx) return -ENOMEM; nix_smq_flush_fill_ctx(rvu, blkaddr, smq, smq_flush_ctx); @@ -3373,7 +3373,7 @@ static int nix_add_mce_list_entry(struct rvu *rvu, mce_list = &elem->mcast_mce_list; for (i = 0; i < num_entry; i++) { - mce = kzalloc(sizeof(*mce), GFP_KERNEL); + mce = kzalloc_obj(*mce, GFP_KERNEL); if (!mce) goto free_mce; @@ -3435,7 +3435,7 @@ static int nix_update_mce_list_entry(struct nix_mce_list *mce_list, return 0; /* Add a new one to the list, at the tail */ - mce = kzalloc(sizeof(*mce), GFP_KERNEL); + mce = kzalloc_obj(*mce, GFP_KERNEL); if (!mce) return -ENOMEM; mce->pcifunc = pcifunc; @@ -6420,7 +6420,7 @@ int rvu_mbox_handler_nix_mcast_grp_create(struct rvu *rvu, return err; mcast_grp = &nix_hw->mcast_grp; - elem = kzalloc(sizeof(*elem), GFP_KERNEL); + elem = kzalloc_obj(*elem, GFP_KERNEL); if (!elem) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c index b56395ac5a74..1b7dd4e771c7 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c @@ -1297,7 +1297,7 @@ static int npc_install_flow(struct rvu *rvu, int blkaddr, u16 target, find_rule: rule = rvu_mcam_find_rule(mcam, entry_index); if (!rule) { - rule = kzalloc(sizeof(*rule), GFP_KERNEL); + rule = kzalloc_obj(*rule, GFP_KERNEL); if (!rule) return -ENOMEM; new = true; @@ -1741,7 +1741,7 @@ int npc_install_mcam_drop_rule(struct rvu *rvu, int mcam_idx, u16 *counter_idx, } /* Add this entry to mcam rules list */ - rule = kzalloc(sizeof(*rule), GFP_KERNEL); + rule = kzalloc_obj(*rule, GFP_KERNEL); if (!rule) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c index 999f6d93c7fe..7ed5750435c1 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c @@ -796,7 +796,7 @@ static int rvu_npc_exact_add_to_list(struct rvu *rvu, enum npc_exact_opc_type op return -EFAULT; } - entry = kmalloc(sizeof(*entry), GFP_KERNEL); + entry = kmalloc_obj(*entry, GFP_KERNEL); if (!entry) { rvu_npc_exact_free_id(rvu, *seq_id); dev_err(rvu->dev, "%s: Memory allocation failed\n", __func__); @@ -1896,7 +1896,7 @@ int rvu_npc_exact_init(struct rvu *rvu) /* Set capability to true */ rvu->hw->cap.npc_exact_match_enabled = true; - table = kzalloc(sizeof(*table), GFP_KERNEL); + table = kzalloc_obj(*table, GFP_KERNEL); if (!table) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_rep.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_rep.c index 4415d0ce9aef..901f6fd40fd4 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_rep.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_rep.c @@ -97,7 +97,7 @@ int rvu_mbox_handler_rep_event_notify(struct rvu *rvu, struct rep_event *req, { struct rep_evtq_ent *qentry; - qentry = kmalloc(sizeof(*qentry), GFP_ATOMIC); + qentry = kmalloc_obj(*qentry, GFP_ATOMIC); if (!qentry) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/cn10k_macsec.c b/drivers/net/ethernet/marvell/octeontx2/nic/cn10k_macsec.c index 060c715ebad0..5f90f38071da 100644 --- a/drivers/net/ethernet/marvell/octeontx2/nic/cn10k_macsec.c +++ b/drivers/net/ethernet/marvell/octeontx2/nic/cn10k_macsec.c @@ -914,7 +914,7 @@ static struct cn10k_mcs_txsc *cn10k_mcs_create_txsc(struct otx2_nic *pfvf) struct cn10k_mcs_txsc *txsc; int ret; - txsc = kzalloc(sizeof(*txsc), GFP_KERNEL); + txsc = kzalloc_obj(*txsc, GFP_KERNEL); if (!txsc) return ERR_PTR(-ENOMEM); @@ -987,7 +987,7 @@ static struct cn10k_mcs_rxsc *cn10k_mcs_create_rxsc(struct otx2_nic *pfvf) struct cn10k_mcs_rxsc *rxsc; int ret; - rxsc = kzalloc(sizeof(*rxsc), GFP_KERNEL); + rxsc = kzalloc_obj(*rxsc, GFP_KERNEL); if (!rxsc) return ERR_PTR(-ENOMEM); @@ -1772,7 +1772,7 @@ int cn10k_mcs_init(struct otx2_nic *pfvf) if (!test_bit(CN10K_HW_MACSEC, &pfvf->hw.cap_flag)) return 0; - cfg = kzalloc(sizeof(*cfg), GFP_KERNEL); + cfg = kzalloc_obj(*cfg, GFP_KERNEL); if (!cfg) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c index 75ebb17419c4..768503b255fb 100644 --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c @@ -1005,7 +1005,7 @@ int otx2_sq_init(struct otx2_nic *pfvf, u16 qidx, u16 sqb_aura) } sq->sqe_base = sq->sqe->base; - sq->sg = kcalloc(qset->sqe_cnt, sizeof(struct sg_list), GFP_KERNEL); + sq->sg = kzalloc_objs(struct sg_list, qset->sqe_cnt, GFP_KERNEL); if (!sq->sg) return -ENOMEM; @@ -1585,7 +1585,7 @@ int otx2_sq_aura_pool_init(struct otx2_nic *pfvf) sq = &qset->sq[qidx]; sq->sqb_count = 0; - sq->sqb_ptrs = kcalloc(num_sqbs, sizeof(*sq->sqb_ptrs), GFP_KERNEL); + sq->sqb_ptrs = kzalloc_objs(*sq->sqb_ptrs, num_sqbs, GFP_KERNEL); if (!sq->sqb_ptrs) { err = -ENOMEM; goto err_mem; diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c index 64c6d9162ef6..f61730e8d73a 100644 --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c @@ -1063,7 +1063,7 @@ static int otx2_add_flow_with_pfmac(struct otx2_nic *pfvf, struct otx2_flow *pf_mac; struct ethhdr *eth_hdr; - pf_mac = kzalloc(sizeof(*pf_mac), GFP_KERNEL); + pf_mac = kzalloc_obj(*pf_mac, GFP_KERNEL); if (!pf_mac) return -ENOMEM; @@ -1131,7 +1131,7 @@ int otx2_add_flow(struct otx2_nic *pfvf, struct ethtool_rxnfc *nfc) flow = otx2_find_flow(pfvf, fsp->location); if (!flow) { - flow = kzalloc(sizeof(*flow), GFP_KERNEL); + flow = kzalloc_obj(*flow, GFP_KERNEL); if (!flow) return -ENOMEM; flow->location = fsp->location; diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c index 444bb67494ab..333071ac7598 100644 --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c @@ -1936,7 +1936,7 @@ int otx2_alloc_queue_mem(struct otx2_nic *pf) pf->qset.cq_cnt = pf->hw.rx_queues + otx2_get_total_tx_queues(pf); - qset->napi = kcalloc(pf->hw.cint_cnt, sizeof(*cq_poll), GFP_KERNEL); + qset->napi = kzalloc_objs(*cq_poll, pf->hw.cint_cnt, GFP_KERNEL); if (!qset->napi) return -ENOMEM; @@ -1945,18 +1945,18 @@ int otx2_alloc_queue_mem(struct otx2_nic *pf) /* CQ size of SQ */ qset->sqe_cnt = qset->sqe_cnt ? qset->sqe_cnt : Q_COUNT(Q_SIZE_4K); - qset->cq = kcalloc(pf->qset.cq_cnt, - sizeof(struct otx2_cq_queue), GFP_KERNEL); + qset->cq = kzalloc_objs(struct otx2_cq_queue, pf->qset.cq_cnt, + GFP_KERNEL); if (!qset->cq) goto err_free_mem; - qset->sq = kcalloc(otx2_get_total_tx_queues(pf), - sizeof(struct otx2_snd_queue), GFP_KERNEL); + qset->sq = kzalloc_objs(struct otx2_snd_queue, + otx2_get_total_tx_queues(pf), GFP_KERNEL); if (!qset->sq) goto err_free_mem; - qset->rq = kcalloc(pf->hw.rx_queues, - sizeof(struct otx2_rcv_queue), GFP_KERNEL); + qset->rq = kzalloc_objs(struct otx2_rcv_queue, pf->hw.rx_queues, + GFP_KERNEL); if (!qset->rq) goto err_free_mem; diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c index dedd586ed310..de9b90e498cc 100644 --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c @@ -408,7 +408,7 @@ int otx2_ptp_init(struct otx2_nic *pfvf) } mutex_unlock(&pfvf->mbox.lock); - ptp_ptr = kzalloc(sizeof(*ptp_ptr), GFP_KERNEL); + ptp_ptr = kzalloc_obj(*ptp_ptr, GFP_KERNEL); if (!ptp_ptr) { err = -ENOMEM; goto error; diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c index 26a08d2cfbb1..9b569e0d6222 100644 --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c @@ -1271,7 +1271,7 @@ static int otx2_tc_add_flow(struct otx2_nic *nic, } /* allocate memory for the new flow and it's node */ - new_node = kzalloc(sizeof(*new_node), GFP_KERNEL); + new_node = kzalloc_obj(*new_node, GFP_KERNEL); if (!new_node) return -ENOMEM; spin_lock_init(&new_node->lock); diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/qos.c b/drivers/net/ethernet/marvell/octeontx2/nic/qos.c index 5765bac119f0..435c176c2643 100644 --- a/drivers/net/ethernet/marvell/octeontx2/nic/qos.c +++ b/drivers/net/ethernet/marvell/octeontx2/nic/qos.c @@ -407,7 +407,7 @@ otx2_qos_alloc_root(struct otx2_nic *pfvf) { struct otx2_qos_node *node; - node = kzalloc(sizeof(*node), GFP_KERNEL); + node = kzalloc_obj(*node, GFP_KERNEL); if (!node) return ERR_PTR(-ENOMEM); @@ -463,7 +463,7 @@ static int otx2_qos_alloc_txschq_node(struct otx2_nic *pfvf, parent = node; for (lvl = node->level - 1; lvl >= NIX_TXSCH_LVL_MDQ; lvl--) { - txschq_node = kzalloc(sizeof(*txschq_node), GFP_KERNEL); + txschq_node = kzalloc_obj(*txschq_node, GFP_KERNEL); if (!txschq_node) goto err_out; @@ -508,7 +508,7 @@ otx2_qos_sw_create_leaf_node(struct otx2_nic *pfvf, struct otx2_qos_node *node; int err; - node = kzalloc(sizeof(*node), GFP_KERNEL); + node = kzalloc_obj(*node, GFP_KERNEL); if (!node) return ERR_PTR(-ENOMEM); @@ -1045,7 +1045,7 @@ static int otx2_qos_root_add(struct otx2_nic *pfvf, u16 htb_maj_id, u16 htb_defc } /* allocate txschq queue */ - new_cfg = kzalloc(sizeof(*new_cfg), GFP_KERNEL); + new_cfg = kzalloc_obj(*new_cfg, GFP_KERNEL); if (!new_cfg) { NL_SET_ERR_MSG_MOD(extack, "Memory allocation error"); err = -ENOMEM; @@ -1279,7 +1279,7 @@ static int otx2_qos_leaf_alloc_queue(struct otx2_nic *pfvf, u16 classid, set_bit(prio, parent->prio_bmap); /* read current txschq configuration */ - old_cfg = kzalloc(sizeof(*old_cfg), GFP_KERNEL); + old_cfg = kzalloc_obj(*old_cfg, GFP_KERNEL); if (!old_cfg) { NL_SET_ERR_MSG_MOD(extack, "Memory allocation error"); ret = -ENOMEM; @@ -1308,7 +1308,7 @@ static int otx2_qos_leaf_alloc_queue(struct otx2_nic *pfvf, u16 classid, } /* push new txschq config to hw */ - new_cfg = kzalloc(sizeof(*new_cfg), GFP_KERNEL); + new_cfg = kzalloc_obj(*new_cfg, GFP_KERNEL); if (!new_cfg) { NL_SET_ERR_MSG_MOD(extack, "Memory allocation error"); ret = -ENOMEM; @@ -1417,7 +1417,7 @@ static int otx2_qos_leaf_to_inner(struct otx2_nic *pfvf, u16 classid, qid = node->qid; /* read current txschq configuration */ - old_cfg = kzalloc(sizeof(*old_cfg), GFP_KERNEL); + old_cfg = kzalloc_obj(*old_cfg, GFP_KERNEL); if (!old_cfg) { NL_SET_ERR_MSG_MOD(extack, "Memory allocation error"); ret = -ENOMEM; @@ -1445,7 +1445,7 @@ static int otx2_qos_leaf_to_inner(struct otx2_nic *pfvf, u16 classid, } /* push new txschq config to hw */ - new_cfg = kzalloc(sizeof(*new_cfg), GFP_KERNEL); + new_cfg = kzalloc_obj(*new_cfg, GFP_KERNEL); if (!new_cfg) { NL_SET_ERR_MSG_MOD(extack, "Memory allocation error"); ret = -ENOMEM; @@ -1668,7 +1668,7 @@ static int otx2_qos_leaf_del_last(struct otx2_nic *pfvf, u16 classid, bool force __set_bit(qid, pfvf->qos.qos_sq_bmap); /* push new txschq config to hw */ - new_cfg = kzalloc(sizeof(*new_cfg), GFP_KERNEL); + new_cfg = kzalloc_obj(*new_cfg, GFP_KERNEL); if (!new_cfg) { NL_SET_ERR_MSG_MOD(extack, "Memory allocation error"); return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/rep.c b/drivers/net/ethernet/marvell/octeontx2/nic/rep.c index b476733a0234..7706ec417d2b 100644 --- a/drivers/net/ethernet/marvell/octeontx2/nic/rep.c +++ b/drivers/net/ethernet/marvell/octeontx2/nic/rep.c @@ -40,7 +40,7 @@ static int rvu_rep_mcam_flow_init(struct rep_dev *rep) int ent, allocated = 0; int count; - rep->flow_cfg = kcalloc(1, sizeof(struct otx2_flow_config), GFP_KERNEL); + rep->flow_cfg = kzalloc_objs(struct otx2_flow_config, 1, GFP_KERNEL); if (!rep->flow_cfg) return -ENOMEM; @@ -504,7 +504,7 @@ static int rvu_rep_napi_init(struct otx2_nic *priv, int err = 0, qidx, vec; char *irq_name; - qset->napi = kcalloc(hw->cint_cnt, sizeof(*cq_poll), GFP_KERNEL); + qset->napi = kzalloc_objs(*cq_poll, hw->cint_cnt, GFP_KERNEL); if (!qset->napi) return -ENOMEM; @@ -656,7 +656,7 @@ int rvu_rep_create(struct otx2_nic *priv, struct netlink_ext_ack *extack) if (err) return -ENOMEM; - priv->reps = kcalloc(rep_cnt, sizeof(struct rep_dev *), GFP_KERNEL); + priv->reps = kzalloc_objs(struct rep_dev *, rep_cnt, GFP_KERNEL); if (!priv->reps) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/prestera/prestera_acl.c b/drivers/net/ethernet/marvell/prestera/prestera_acl.c index cba89fda504b..02f113f9af9f 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_acl.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_acl.c @@ -144,7 +144,7 @@ prestera_acl_ruleset_create(struct prestera_acl *acl, if (!prestera_acl_chain_is_supported(chain_index, block->ingress)) return ERR_PTR(-EINVAL); - ruleset = kzalloc(sizeof(*ruleset), GFP_KERNEL); + ruleset = kzalloc_obj(*ruleset, GFP_KERNEL); if (!ruleset) return ERR_PTR(-ENOMEM); @@ -438,7 +438,7 @@ prestera_acl_rule_create(struct prestera_acl_ruleset *ruleset, { struct prestera_acl_rule *rule; - rule = kzalloc(sizeof(*rule), GFP_KERNEL); + rule = kzalloc_obj(*rule, GFP_KERNEL); if (!rule) return ERR_PTR(-ENOMEM); @@ -713,7 +713,7 @@ prestera_acl_rule_entry_create(struct prestera_acl *acl, struct prestera_acl_rule_entry *e; int err; - e = kzalloc(sizeof(*e), GFP_KERNEL); + e = kzalloc_obj(*e, GFP_KERNEL); if (!e) goto err_kzalloc; @@ -816,7 +816,7 @@ int prestera_acl_vtcam_id_get(struct prestera_acl *acl, u8 lookup, u8 dir, } /* vtcam not found, try to create new one */ - vtcam = kzalloc(sizeof(*vtcam), GFP_KERNEL); + vtcam = kzalloc_obj(*vtcam, GFP_KERNEL); if (!vtcam) return -ENOMEM; @@ -880,7 +880,7 @@ int prestera_acl_init(struct prestera_switch *sw) struct prestera_acl *acl; int err; - acl = kzalloc(sizeof(*acl), GFP_KERNEL); + acl = kzalloc_obj(*acl, GFP_KERNEL); if (!acl) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/prestera/prestera_counter.c b/drivers/net/ethernet/marvell/prestera/prestera_counter.c index 634f4543c1d7..c59ed115c700 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_counter.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_counter.c @@ -147,7 +147,7 @@ prestera_counter_block_get(struct prestera_counter *counter, u32 client) if (block) return block; - block = kzalloc(sizeof(*block), GFP_KERNEL); + block = kzalloc_obj(*block, GFP_KERNEL); if (!block) return ERR_PTR(-ENOMEM); @@ -157,8 +157,8 @@ prestera_counter_block_get(struct prestera_counter *counter, u32 client) if (err) goto err_block; - block->stats = kcalloc(block->num_counters, - sizeof(*block->stats), GFP_KERNEL); + block->stats = kzalloc_objs(*block->stats, block->num_counters, + GFP_KERNEL); if (!block->stats) { err = -ENOMEM; goto err_stats; @@ -437,11 +437,11 @@ int prestera_counter_init(struct prestera_switch *sw) { struct prestera_counter *counter; - counter = kzalloc(sizeof(*counter), GFP_KERNEL); + counter = kzalloc_obj(*counter, GFP_KERNEL); if (!counter) return -ENOMEM; - counter->block_list = kzalloc(sizeof(*counter->block_list), GFP_KERNEL); + counter->block_list = kzalloc_obj(*counter->block_list, GFP_KERNEL); if (!counter->block_list) { kfree(counter); return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/prestera/prestera_devlink.c b/drivers/net/ethernet/marvell/prestera/prestera_devlink.c index e63d95c1842f..981b9e835be7 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_devlink.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_devlink.c @@ -451,13 +451,12 @@ int prestera_devlink_traps_register(struct prestera_switch *sw) struct prestera_trap *prestera_trap; int err, i; - trap_data = kzalloc(sizeof(*trap_data), GFP_KERNEL); + trap_data = kzalloc_obj(*trap_data, GFP_KERNEL); if (!trap_data) return -ENOMEM; - trap_data->trap_items_arr = kcalloc(traps_count, - sizeof(struct prestera_trap_item), - GFP_KERNEL); + trap_data->trap_items_arr = kzalloc_objs(struct prestera_trap_item, + traps_count, GFP_KERNEL); if (!trap_data->trap_items_arr) { err = -ENOMEM; goto err_trap_items_alloc; diff --git a/drivers/net/ethernet/marvell/prestera/prestera_flow.c b/drivers/net/ethernet/marvell/prestera/prestera_flow.c index 9f4267f326b0..21c052bfa6e8 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_flow.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_flow.c @@ -82,7 +82,7 @@ prestera_flow_block_create(struct prestera_switch *sw, { struct prestera_flow_block *block; - block = kzalloc(sizeof(*block), GFP_KERNEL); + block = kzalloc_obj(*block, GFP_KERNEL); if (!block) return NULL; @@ -130,7 +130,7 @@ static int prestera_flow_block_bind(struct prestera_flow_block *block, struct prestera_flow_block_binding *binding; int err; - binding = kzalloc(sizeof(*binding), GFP_KERNEL); + binding = kzalloc_obj(*binding, GFP_KERNEL); if (!binding) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/prestera/prestera_flower.c b/drivers/net/ethernet/marvell/prestera/prestera_flower.c index 418101a93149..28077005efaa 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_flower.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_flower.c @@ -495,7 +495,7 @@ int prestera_flower_tmplt_create(struct prestera_flow_block *block, if (err) return err; - template = kmalloc(sizeof(*template), GFP_KERNEL); + template = kmalloc_obj(*template, GFP_KERNEL); if (!template) { err = -ENOMEM; goto err_malloc; diff --git a/drivers/net/ethernet/marvell/prestera/prestera_hw.c b/drivers/net/ethernet/marvell/prestera/prestera_hw.c index 197198ba61b1..e20bd0eca18d 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_hw.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_hw.c @@ -2256,7 +2256,7 @@ int prestera_hw_event_handler_register(struct prestera_switch *sw, if (eh) return -EEXIST; - eh = kmalloc(sizeof(*eh), GFP_KERNEL); + eh = kmalloc_obj(*eh, GFP_KERNEL); if (!eh) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/prestera/prestera_main.c b/drivers/net/ethernet/marvell/prestera/prestera_main.c index 65e7ef033bde..0d12ed32586b 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_main.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_main.c @@ -1014,7 +1014,7 @@ static int prestera_lag_init(struct prestera_switch *sw) { u16 id; - sw->lags = kcalloc(sw->lag_max, sizeof(*sw->lags), GFP_KERNEL); + sw->lags = kzalloc_objs(*sw->lags, sw->lag_max, GFP_KERNEL); if (!sw->lags) return -ENOMEM; @@ -1209,7 +1209,7 @@ prestera_mdb_entry_create(struct prestera_switch *sw, struct prestera_flood_domain *flood_domain; struct prestera_mdb_entry *mdb_entry; - mdb_entry = kzalloc(sizeof(*mdb_entry), GFP_KERNEL); + mdb_entry = kzalloc_obj(*mdb_entry, GFP_KERNEL); if (!mdb_entry) goto err_mdb_alloc; @@ -1247,7 +1247,7 @@ prestera_flood_domain_create(struct prestera_switch *sw) { struct prestera_flood_domain *domain; - domain = kzalloc(sizeof(*domain), GFP_KERNEL); + domain = kzalloc_obj(*domain, GFP_KERNEL); if (!domain) return NULL; @@ -1279,7 +1279,7 @@ prestera_flood_domain_port_create(struct prestera_flood_domain *flood_domain, bool is_first_port_in_list = false; int err; - flood_domain_port = kzalloc(sizeof(*flood_domain_port), GFP_KERNEL); + flood_domain_port = kzalloc_obj(*flood_domain_port, GFP_KERNEL); if (!flood_domain_port) { err = -ENOMEM; goto err_port_alloc; diff --git a/drivers/net/ethernet/marvell/prestera/prestera_router.c b/drivers/net/ethernet/marvell/prestera/prestera_router.c index de317179a7dc..a75764610eef 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_router.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_router.c @@ -485,7 +485,7 @@ __prestera_kern_neigh_cache_create(struct prestera_switch *sw, struct prestera_kern_neigh_cache *n_cache; int err; - n_cache = kzalloc(sizeof(*n_cache), GFP_KERNEL); + n_cache = kzalloc_obj(*n_cache, GFP_KERNEL); if (!n_cache) goto err_kzalloc; @@ -623,7 +623,7 @@ prestera_kern_fib_cache_create(struct prestera_switch *sw, struct prestera_kern_fib_cache *fib_cache; int err; - fib_cache = kzalloc(sizeof(*fib_cache), GFP_KERNEL); + fib_cache = kzalloc_obj(*fib_cache, GFP_KERNEL); if (!fib_cache) goto err_kzalloc; @@ -1448,7 +1448,7 @@ static int __prestera_router_fib_event(struct notifier_block *nb, if (!fen_info->fi) return NOTIFY_DONE; - fib_work = kzalloc(sizeof(*fib_work), GFP_ATOMIC); + fib_work = kzalloc_obj(*fib_work, GFP_ATOMIC); if (WARN_ON(!fib_work)) return NOTIFY_BAD; @@ -1503,7 +1503,7 @@ static int prestera_router_netevent_event(struct notifier_block *nb, if (n->tbl->family != AF_INET) return NOTIFY_DONE; - net_work = kzalloc(sizeof(*net_work), GFP_ATOMIC); + net_work = kzalloc_obj(*net_work, GFP_ATOMIC); if (WARN_ON(!net_work)) return NOTIFY_BAD; @@ -1550,7 +1550,7 @@ int prestera_router_init(struct prestera_switch *sw) struct prestera_router *router; int err, nhgrp_cache_bytes; - router = kzalloc(sizeof(*sw->router), GFP_KERNEL); + router = kzalloc_obj(*sw->router, GFP_KERNEL); if (!router) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/prestera/prestera_router_hw.c b/drivers/net/ethernet/marvell/prestera/prestera_router_hw.c index 02faaea2aefa..b94e28d403e7 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_router_hw.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_router_hw.c @@ -127,7 +127,7 @@ static struct prestera_vr *__prestera_vr_create(struct prestera_switch *sw, struct prestera_vr *vr; int err; - vr = kzalloc(sizeof(*vr), GFP_KERNEL); + vr = kzalloc_obj(*vr, GFP_KERNEL); if (!vr) { err = -ENOMEM; goto err_alloc_vr; @@ -252,7 +252,7 @@ prestera_rif_entry_create(struct prestera_switch *sw, struct prestera_rif_entry *e; struct prestera_iface iface; - e = kzalloc(sizeof(*e), GFP_KERNEL); + e = kzalloc_obj(*e, GFP_KERNEL); if (!e) goto err_kzalloc; @@ -301,7 +301,7 @@ __prestera_nh_neigh_create(struct prestera_switch *sw, struct prestera_nh_neigh *neigh; int err; - neigh = kzalloc(sizeof(*neigh), GFP_KERNEL); + neigh = kzalloc_obj(*neigh, GFP_KERNEL); if (!neigh) goto err_kzalloc; @@ -397,7 +397,7 @@ __prestera_nexthop_group_create(struct prestera_switch *sw, struct prestera_nh_neigh *nh_neigh; int nh_cnt, err, gid; - nh_grp = kzalloc(sizeof(*nh_grp), GFP_KERNEL); + nh_grp = kzalloc_obj(*nh_grp, GFP_KERNEL); if (!nh_grp) goto err_kzalloc; @@ -628,7 +628,7 @@ prestera_fib_node_create(struct prestera_switch *sw, struct prestera_vr *vr; int err; - fib_node = kzalloc(sizeof(*fib_node), GFP_KERNEL); + fib_node = kzalloc_obj(*fib_node, GFP_KERNEL); if (!fib_node) goto err_kzalloc; diff --git a/drivers/net/ethernet/marvell/prestera/prestera_rxtx.c b/drivers/net/ethernet/marvell/prestera/prestera_rxtx.c index 39d9bf82c115..696625d6dcbc 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_rxtx.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_rxtx.c @@ -379,7 +379,7 @@ static int prestera_sdma_rx_init(struct prestera_sdma *sdma) struct prestera_sdma_buf *head, *tail, *next, *prev; struct prestera_rx_ring *ring = &sdma->rx_ring[q]; - ring->bufs = kmalloc_array(bnum, sizeof(*head), GFP_KERNEL); + ring->bufs = kmalloc_objs(*head, bnum, GFP_KERNEL); if (!ring->bufs) return -ENOMEM; @@ -529,7 +529,7 @@ static int prestera_sdma_tx_init(struct prestera_sdma *sdma) INIT_WORK(&sdma->tx_work, prestera_sdma_tx_recycle_work_fn); spin_lock_init(&sdma->tx_lock); - tx_ring->bufs = kmalloc_array(bnum, sizeof(*head), GFP_KERNEL); + tx_ring->bufs = kmalloc_objs(*head, bnum, GFP_KERNEL); if (!tx_ring->bufs) return -ENOMEM; @@ -784,7 +784,7 @@ int prestera_rxtx_switch_init(struct prestera_switch *sw) struct prestera_rxtx *rxtx; int err; - rxtx = kzalloc(sizeof(*rxtx), GFP_KERNEL); + rxtx = kzalloc_obj(*rxtx, GFP_KERNEL); if (!rxtx) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/prestera/prestera_span.c b/drivers/net/ethernet/marvell/prestera/prestera_span.c index 1005182ce3bc..dd86164e6a19 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_span.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_span.c @@ -27,7 +27,7 @@ prestera_span_entry_create(struct prestera_port *port, u8 span_id) { struct prestera_span_entry *entry; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) return ERR_PTR(-ENOMEM); @@ -170,7 +170,7 @@ int prestera_span_init(struct prestera_switch *sw) { struct prestera_span *span; - span = kzalloc(sizeof(*span), GFP_KERNEL); + span = kzalloc_obj(*span, GFP_KERNEL); if (!span) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/prestera/prestera_switchdev.c b/drivers/net/ethernet/marvell/prestera/prestera_switchdev.c index e548cd32582e..1ca197fb08a6 100644 --- a/drivers/net/ethernet/marvell/prestera/prestera_switchdev.c +++ b/drivers/net/ethernet/marvell/prestera/prestera_switchdev.c @@ -180,7 +180,7 @@ prestera_bridge_vlan_create(struct prestera_bridge_port *br_port, u16 vid) { struct prestera_bridge_vlan *br_vlan; - br_vlan = kzalloc(sizeof(*br_vlan), GFP_KERNEL); + br_vlan = kzalloc_obj(*br_vlan, GFP_KERNEL); if (!br_vlan) return NULL; @@ -263,7 +263,7 @@ prestera_port_vlan_create(struct prestera_port *port, u16 vid, bool untagged) if (err) return ERR_PTR(err); - port_vlan = kzalloc(sizeof(*port_vlan), GFP_KERNEL); + port_vlan = kzalloc_obj(*port_vlan, GFP_KERNEL); if (!port_vlan) { err = -ENOMEM; goto err_port_vlan_alloc; @@ -443,7 +443,7 @@ prestera_bridge_create(struct prestera_switchdev *swdev, struct net_device *dev) return ERR_PTR(-EINVAL); } - bridge = kzalloc(sizeof(*bridge), GFP_KERNEL); + bridge = kzalloc_obj(*bridge, GFP_KERNEL); if (!bridge) return ERR_PTR(-ENOMEM); @@ -562,7 +562,7 @@ prestera_bridge_port_create(struct prestera_bridge *bridge, { struct prestera_bridge_port *br_port; - br_port = kzalloc(sizeof(*br_port), GFP_KERNEL); + br_port = kzalloc_obj(*br_port, GFP_KERNEL); if (!br_port) return NULL; @@ -1313,7 +1313,7 @@ static int prestera_switchdev_event(struct notifier_block *unused, if (!netif_is_bridge_master(upper)) return NOTIFY_DONE; - swdev_work = kzalloc(sizeof(*swdev_work), GFP_ATOMIC); + swdev_work = kzalloc_obj(*swdev_work, GFP_ATOMIC); if (!swdev_work) return NOTIFY_BAD; @@ -1498,7 +1498,7 @@ prestera_br_mdb_entry_create(struct prestera_switch *sw, struct prestera_br_mdb_entry *br_mdb_entry; struct prestera_mdb_entry *mdb_entry; - br_mdb_entry = kzalloc(sizeof(*br_mdb_entry), GFP_KERNEL); + br_mdb_entry = kzalloc_obj(*br_mdb_entry, GFP_KERNEL); if (!br_mdb_entry) return NULL; @@ -1530,7 +1530,7 @@ static int prestera_br_mdb_port_add(struct prestera_br_mdb_entry *br_mdb, if (br_mdb_port->br_port == br_port) return 0; - br_mdb_port = kzalloc(sizeof(*br_mdb_port), GFP_KERNEL); + br_mdb_port = kzalloc_obj(*br_mdb_port, GFP_KERNEL); if (!br_mdb_port) return -ENOMEM; @@ -1873,7 +1873,7 @@ int prestera_switchdev_init(struct prestera_switch *sw) struct prestera_switchdev *swdev; int err; - swdev = kzalloc(sizeof(*swdev), GFP_KERNEL); + swdev = kzalloc_obj(*swdev, GFP_KERNEL); if (!swdev) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/pxa168_eth.c b/drivers/net/ethernet/marvell/pxa168_eth.c index 68f8a1e36aa6..a2f6622e6ff5 100644 --- a/drivers/net/ethernet/marvell/pxa168_eth.c +++ b/drivers/net/ethernet/marvell/pxa168_eth.c @@ -1024,7 +1024,7 @@ static int rxq_init(struct net_device *dev) int rx_desc_num = pep->rx_ring_size; /* Allocate RX skb rings */ - pep->rx_skb = kcalloc(rx_desc_num, sizeof(*pep->rx_skb), GFP_KERNEL); + pep->rx_skb = kzalloc_objs(*pep->rx_skb, rx_desc_num, GFP_KERNEL); if (!pep->rx_skb) return -ENOMEM; @@ -1083,7 +1083,7 @@ static int txq_init(struct net_device *dev) int size = 0, i = 0; int tx_desc_num = pep->tx_ring_size; - pep->tx_skb = kcalloc(tx_desc_num, sizeof(*pep->tx_skb), GFP_KERNEL); + pep->tx_skb = kzalloc_objs(*pep->tx_skb, tx_desc_num, GFP_KERNEL); if (!pep->tx_skb) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/skge.c b/drivers/net/ethernet/marvell/skge.c index cf4e26d337bb..49942779418c 100644 --- a/drivers/net/ethernet/marvell/skge.c +++ b/drivers/net/ethernet/marvell/skge.c @@ -918,7 +918,7 @@ static int skge_ring_alloc(struct skge_ring *ring, void *vaddr, u32 base) struct skge_element *e; int i; - ring->start = kcalloc(ring->count, sizeof(*e), GFP_KERNEL); + ring->start = kzalloc_objs(*e, ring->count, GFP_KERNEL); if (!ring->start) return -ENOMEM; diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c index 3831f533b9db..27af9627394a 100644 --- a/drivers/net/ethernet/marvell/sky2.c +++ b/drivers/net/ethernet/marvell/sky2.c @@ -1601,8 +1601,8 @@ static int sky2_alloc_buffers(struct sky2_port *sky2) if (!sky2->tx_le) goto nomem; - sky2->tx_ring = kcalloc(sky2->tx_ring_size, sizeof(struct tx_ring_info), - GFP_KERNEL); + sky2->tx_ring = kzalloc_objs(struct tx_ring_info, sky2->tx_ring_size, + GFP_KERNEL); if (!sky2->tx_ring) goto nomem; @@ -1611,8 +1611,8 @@ static int sky2_alloc_buffers(struct sky2_port *sky2) if (!sky2->rx_le) goto nomem; - sky2->rx_ring = kcalloc(sky2->rx_pending, sizeof(struct rx_ring_info), - GFP_KERNEL); + sky2->rx_ring = kzalloc_objs(struct rx_ring_info, sky2->rx_pending, + GFP_KERNEL); if (!sky2->rx_ring) goto nomem; diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c index 35fef28ee2f9..61065fb30acb 100644 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c @@ -2647,8 +2647,7 @@ static int mtk_tx_alloc(struct mtk_eth *eth) else ring_size = soc->tx.dma_size; - ring->buf = kcalloc(ring_size, sizeof(*ring->buf), - GFP_KERNEL); + ring->buf = kzalloc_objs(*ring->buf, ring_size, GFP_KERNEL); if (!ring->buf) goto no_tx_mem; diff --git a/drivers/net/ethernet/mediatek/mtk_ppe.c b/drivers/net/ethernet/mediatek/mtk_ppe.c index ada852adc5f7..75f7728fc796 100644 --- a/drivers/net/ethernet/mediatek/mtk_ppe.c +++ b/drivers/net/ethernet/mediatek/mtk_ppe.c @@ -705,7 +705,7 @@ mtk_foe_entry_commit_subflow(struct mtk_ppe *ppe, struct mtk_flow_entry *entry, u32 ib1_mask = mtk_get_ib1_pkt_type_mask(ppe->eth) | MTK_FOE_IB1_UDP; int type; - flow_info = kzalloc(sizeof(*flow_info), GFP_ATOMIC); + flow_info = kzalloc_obj(*flow_info, GFP_ATOMIC); if (!flow_info) return; diff --git a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c index e9bd32741983..bc53b08ff205 100644 --- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c +++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c @@ -469,7 +469,7 @@ mtk_flow_offload_replace(struct mtk_eth *eth, struct flow_cls_offload *f, if (wed_index >= 0 && (err = mtk_wed_flow_add(wed_index)) < 0) return err; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) return -ENOMEM; diff --git a/drivers/net/ethernet/mediatek/mtk_wed.c b/drivers/net/ethernet/mediatek/mtk_wed.c index 1ed1f88dd7f8..303e3945b72c 100644 --- a/drivers/net/ethernet/mediatek/mtk_wed.c +++ b/drivers/net/ethernet/mediatek/mtk_wed.c @@ -656,7 +656,7 @@ mtk_wed_tx_buffer_alloc(struct mtk_wed_device *dev) } n_pages = dev->tx_buf_ring.size / MTK_WED_BUF_PER_PAGE; - page_list = kcalloc(n_pages, sizeof(*page_list), GFP_KERNEL); + page_list = kzalloc_objs(*page_list, n_pages, GFP_KERNEL); if (!page_list) return -ENOMEM; @@ -780,7 +780,7 @@ mtk_wed_hwrro_buffer_alloc(struct mtk_wed_device *dev) if (!dev->wlan.hw_rro) return 0; - page_list = kcalloc(n_pages, sizeof(*page_list), GFP_KERNEL); + page_list = kzalloc_objs(*page_list, n_pages, GFP_KERNEL); if (!page_list) return -ENOMEM; @@ -2718,7 +2718,7 @@ mtk_wed_setup_tc_block(struct mtk_wed_hw *hw, struct net_device *dev, return 0; } - priv = kzalloc(sizeof(*priv), GFP_KERNEL); + priv = kzalloc_obj(*priv, GFP_KERNEL); if (!priv) return -ENOMEM; @@ -2822,7 +2822,7 @@ void mtk_wed_add_hw(struct device_node *np, struct mtk_eth *eth, if (WARN_ON(hw_list[index])) goto unlock; - hw = kzalloc(sizeof(*hw), GFP_KERNEL); + hw = kzalloc_obj(*hw, GFP_KERNEL); if (!hw) goto unlock; diff --git a/drivers/net/ethernet/mellanox/mlx4/alloc.c b/drivers/net/ethernet/mellanox/mlx4/alloc.c index 07b061a97a6e..7e4d1998fd0d 100644 --- a/drivers/net/ethernet/mellanox/mlx4/alloc.c +++ b/drivers/net/ethernet/mellanox/mlx4/alloc.c @@ -223,7 +223,7 @@ struct mlx4_zone_entry { struct mlx4_zone_allocator *mlx4_zone_allocator_create(enum mlx4_zone_alloc_flags flags) { - struct mlx4_zone_allocator *zones = kmalloc(sizeof(*zones), GFP_KERNEL); + struct mlx4_zone_allocator *zones = kmalloc_obj(*zones, GFP_KERNEL); if (NULL == zones) return NULL; @@ -247,7 +247,7 @@ int mlx4_zone_add_one(struct mlx4_zone_allocator *zone_alloc, { u32 mask = mlx4_bitmap_masked_value(bitmap, (u32)-1); struct mlx4_zone_entry *it; - struct mlx4_zone_entry *zone = kmalloc(sizeof(*zone), GFP_KERNEL); + struct mlx4_zone_entry *zone = kmalloc_obj(*zone, GFP_KERNEL); if (NULL == zone) return -ENOMEM; @@ -594,8 +594,8 @@ int mlx4_buf_alloc(struct mlx4_dev *dev, int size, int max_direct, buf->nbufs = DIV_ROUND_UP(size, PAGE_SIZE); buf->npages = buf->nbufs; buf->page_shift = PAGE_SHIFT; - buf->page_list = kcalloc(buf->nbufs, sizeof(*buf->page_list), - GFP_KERNEL); + buf->page_list = kzalloc_objs(*buf->page_list, buf->nbufs, + GFP_KERNEL); if (!buf->page_list) return -ENOMEM; @@ -642,7 +642,7 @@ static struct mlx4_db_pgdir *mlx4_alloc_db_pgdir(struct device *dma_device) { struct mlx4_db_pgdir *pgdir; - pgdir = kzalloc(sizeof(*pgdir), GFP_KERNEL); + pgdir = kzalloc_obj(*pgdir, GFP_KERNEL); if (!pgdir) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx4/cmd.c b/drivers/net/ethernet/mellanox/mlx4/cmd.c index 7f20813456e2..150ede6eb18f 100644 --- a/drivers/net/ethernet/mellanox/mlx4/cmd.c +++ b/drivers/net/ethernet/mellanox/mlx4/cmd.c @@ -1674,7 +1674,7 @@ static int mlx4_master_process_vhcr(struct mlx4_dev *dev, int slave, int err = 0; /* Create sw representation of Virtual HCR */ - vhcr = kzalloc(sizeof(struct mlx4_vhcr), GFP_KERNEL); + vhcr = kzalloc_obj(struct mlx4_vhcr, GFP_KERNEL); if (!vhcr) return -ENOMEM; @@ -1873,7 +1873,7 @@ static int mlx4_master_immediate_activate_vlan_qos(struct mlx4_priv *priv, vp_admin->default_vlan, vp_admin->default_qos, vp_admin->link_state); - work = kzalloc(sizeof(*work), GFP_KERNEL); + work = kzalloc_obj(*work, GFP_KERNEL); if (!work) return -ENOMEM; @@ -2368,23 +2368,20 @@ int mlx4_multi_func_init(struct mlx4_dev *dev) struct mlx4_vf_admin_state *vf_admin; priv->mfunc.master.slave_state = - kcalloc(dev->num_slaves, - sizeof(struct mlx4_slave_state), - GFP_KERNEL); + kzalloc_objs(struct mlx4_slave_state, dev->num_slaves, + GFP_KERNEL); if (!priv->mfunc.master.slave_state) goto err_comm; priv->mfunc.master.vf_admin = - kcalloc(dev->num_slaves, - sizeof(struct mlx4_vf_admin_state), - GFP_KERNEL); + kzalloc_objs(struct mlx4_vf_admin_state, + dev->num_slaves, GFP_KERNEL); if (!priv->mfunc.master.vf_admin) goto err_comm_admin; priv->mfunc.master.vf_oper = - kcalloc(dev->num_slaves, - sizeof(struct mlx4_vf_oper_state), - GFP_KERNEL); + kzalloc_objs(struct mlx4_vf_oper_state, dev->num_slaves, + GFP_KERNEL); if (!priv->mfunc.master.vf_oper) goto err_comm_oper; @@ -2408,8 +2405,8 @@ int mlx4_multi_func_init(struct mlx4_dev *dev) struct mlx4_vport_state *oper_vport; s_state->vlan_filter[port] = - kzalloc(sizeof(struct mlx4_vlan_fltr), - GFP_KERNEL); + kzalloc_obj(struct mlx4_vlan_fltr, + GFP_KERNEL); if (!s_state->vlan_filter[port]) { if (--port) kfree(s_state->vlan_filter[port]); @@ -2625,9 +2622,8 @@ int mlx4_cmd_use_events(struct mlx4_dev *dev) int i; int err = 0; - priv->cmd.context = kmalloc_array(priv->cmd.max_cmds, - sizeof(struct mlx4_cmd_context), - GFP_KERNEL); + priv->cmd.context = kmalloc_objs(struct mlx4_cmd_context, + priv->cmd.max_cmds, GFP_KERNEL); if (!priv->cmd.context) return -ENOMEM; @@ -2693,7 +2689,7 @@ struct mlx4_cmd_mailbox *mlx4_alloc_cmd_mailbox(struct mlx4_dev *dev) { struct mlx4_cmd_mailbox *mailbox; - mailbox = kmalloc(sizeof(*mailbox), GFP_KERNEL); + mailbox = kmalloc_obj(*mailbox, GFP_KERNEL); if (!mailbox) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c index ad6298456639..2e914a254a16 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c @@ -1158,7 +1158,7 @@ static int mlx4_en_set_ringparam(struct net_device *dev, tx_size == priv->tx_ring[TX][0]->size) return 0; - tmp = kzalloc(sizeof(*tmp), GFP_KERNEL); + tmp = kzalloc_obj(*tmp, GFP_KERNEL); if (!tmp) return -ENOMEM; @@ -1452,8 +1452,8 @@ static int add_ip_rule(struct mlx4_en_priv *priv, struct mlx4_spec_list *spec_l3; struct ethtool_usrip4_spec *l3_mask = &cmd->fs.m_u.usr_ip4_spec; - spec_l3 = kzalloc(sizeof(*spec_l3), GFP_KERNEL); - spec_l2 = kzalloc(sizeof(*spec_l2), GFP_KERNEL); + spec_l3 = kzalloc_obj(*spec_l3, GFP_KERNEL); + spec_l2 = kzalloc_obj(*spec_l2, GFP_KERNEL); if (!spec_l2 || !spec_l3) { err = -ENOMEM; goto free_spec; @@ -1491,9 +1491,9 @@ static int add_tcp_udp_rule(struct mlx4_en_priv *priv, struct mlx4_spec_list *spec_l4; struct ethtool_tcpip4_spec *l4_mask = &cmd->fs.m_u.tcp_ip4_spec; - spec_l2 = kzalloc(sizeof(*spec_l2), GFP_KERNEL); - spec_l3 = kzalloc(sizeof(*spec_l3), GFP_KERNEL); - spec_l4 = kzalloc(sizeof(*spec_l4), GFP_KERNEL); + spec_l2 = kzalloc_obj(*spec_l2, GFP_KERNEL); + spec_l3 = kzalloc_obj(*spec_l3, GFP_KERNEL); + spec_l4 = kzalloc_obj(*spec_l4, GFP_KERNEL); if (!spec_l2 || !spec_l3 || !spec_l4) { err = -ENOMEM; goto free_spec; @@ -1564,7 +1564,7 @@ static int mlx4_en_ethtool_to_net_trans_rule(struct net_device *dev, switch (cmd->fs.flow_type & ~(FLOW_EXT | FLOW_MAC_EXT)) { case ETHER_FLOW: - spec_l2 = kzalloc(sizeof(*spec_l2), GFP_KERNEL); + spec_l2 = kzalloc_obj(*spec_l2, GFP_KERNEL); if (!spec_l2) return -ENOMEM; @@ -1833,7 +1833,7 @@ static int mlx4_en_set_channels(struct net_device *dev, if (!channel->tx_count || !channel->rx_count) return -EINVAL; - tmp = kzalloc(sizeof(*tmp), GFP_KERNEL); + tmp = kzalloc_obj(*tmp, GFP_KERNEL); if (!tmp) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx4/en_main.c b/drivers/net/ethernet/mellanox/mlx4/en_main.c index d8f4d00ad26b..1374a81945b2 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_main.c @@ -271,7 +271,7 @@ static int mlx4_en_probe(struct auxiliary_device *adev, printk_once(KERN_INFO "%s", mlx4_en_version); - mdev = kzalloc(sizeof(*mdev), GFP_KERNEL); + mdev = kzalloc_obj(*mdev, GFP_KERNEL); if (!mdev) { err = -ENOMEM; goto err_free_res; diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c index 81bf8908b897..ee1ea70cdd34 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c @@ -99,7 +99,7 @@ int mlx4_en_alloc_tx_queue_per_tc(struct net_device *dev, u8 tc) int port_up = 0; int err = 0; - tmp = kzalloc(sizeof(*tmp), GFP_KERNEL); + tmp = kzalloc_obj(*tmp, GFP_KERNEL); if (!tmp) return -ENOMEM; @@ -295,7 +295,7 @@ mlx4_en_filter_alloc(struct mlx4_en_priv *priv, int rxq_index, __be32 src_ip, { struct mlx4_en_filter *filter; - filter = kzalloc(sizeof(struct mlx4_en_filter), GFP_ATOMIC); + filter = kzalloc_obj(struct mlx4_en_filter, GFP_ATOMIC); if (!filter) return NULL; @@ -827,7 +827,7 @@ static void mlx4_en_cache_mclist(struct net_device *dev) mlx4_en_clear_list(dev); netdev_for_each_mc_addr(ha, dev) { - tmp = kzalloc(sizeof(struct mlx4_en_mc_list), GFP_ATOMIC); + tmp = kzalloc_obj(struct mlx4_en_mc_list, GFP_ATOMIC); if (!tmp) { mlx4_en_clear_list(dev); return; @@ -1209,7 +1209,7 @@ static void mlx4_en_do_uc_filter(struct mlx4_en_priv *priv, } if (!found) { - entry = kmalloc(sizeof(*entry), GFP_KERNEL); + entry = kmalloc_obj(*entry, GFP_KERNEL); if (!entry) { en_err(priv, "Failed adding MAC %pM on port:%d (out of memory)\n", ha->addr, priv->port); @@ -1317,7 +1317,7 @@ static int mlx4_en_set_rss_steer_rules(struct mlx4_en_priv *priv) if (err) goto tunnel_err; - entry = kmalloc(sizeof(*entry), GFP_KERNEL); + entry = kmalloc_obj(*entry, GFP_KERNEL); if (!entry) { err = -ENOMEM; goto alloc_err; @@ -2240,15 +2240,13 @@ static int mlx4_en_copy_priv(struct mlx4_en_priv *dst, if (!dst->tx_ring_num[t]) continue; - dst->tx_ring[t] = kcalloc(MAX_TX_RINGS, - sizeof(struct mlx4_en_tx_ring *), - GFP_KERNEL); + dst->tx_ring[t] = kzalloc_objs(struct mlx4_en_tx_ring *, + MAX_TX_RINGS, GFP_KERNEL); if (!dst->tx_ring[t]) goto err_free_tx; - dst->tx_cq[t] = kcalloc(MAX_TX_RINGS, - sizeof(struct mlx4_en_cq *), - GFP_KERNEL); + dst->tx_cq[t] = kzalloc_objs(struct mlx4_en_cq *, MAX_TX_RINGS, + GFP_KERNEL); if (!dst->tx_cq[t]) { kfree(dst->tx_ring[t]); goto err_free_tx; @@ -2754,7 +2752,7 @@ static int mlx4_xdp_set(struct net_device *dev, struct bpf_prog *prog) if (!mlx4_en_check_xdp_mtu(dev, dev->mtu)) return -EOPNOTSUPP; - tmp = kzalloc(sizeof(*tmp), GFP_KERNEL); + tmp = kzalloc_obj(*tmp, GFP_KERNEL); if (!tmp) return -ENOMEM; @@ -3217,16 +3215,14 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port, if (!priv->tx_ring_num[t]) continue; - priv->tx_ring[t] = kcalloc(MAX_TX_RINGS, - sizeof(struct mlx4_en_tx_ring *), - GFP_KERNEL); + priv->tx_ring[t] = kzalloc_objs(struct mlx4_en_tx_ring *, + MAX_TX_RINGS, GFP_KERNEL); if (!priv->tx_ring[t]) { err = -ENOMEM; goto out; } - priv->tx_cq[t] = kcalloc(MAX_TX_RINGS, - sizeof(struct mlx4_en_cq *), - GFP_KERNEL); + priv->tx_cq[t] = kzalloc_objs(struct mlx4_en_cq *, MAX_TX_RINGS, + GFP_KERNEL); if (!priv->tx_cq[t]) { err = -ENOMEM; goto out; @@ -3525,7 +3521,7 @@ int mlx4_en_reset_config(struct net_device *dev, return -EINVAL; } - tmp = kzalloc(sizeof(*tmp), GFP_KERNEL); + tmp = kzalloc_obj(*tmp, GFP_KERNEL); if (!tmp) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx4/en_rx.c b/drivers/net/ethernet/mellanox/mlx4/en_rx.c index 13666d50b90f..de45de8fa41b 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_rx.c @@ -1094,7 +1094,7 @@ static int mlx4_en_config_rss_qp(struct mlx4_en_priv *priv, int qpn, struct mlx4_qp_context *context; int err = 0; - context = kzalloc(sizeof(*context), GFP_KERNEL); + context = kzalloc_obj(*context, GFP_KERNEL); if (!context) return -ENOMEM; @@ -1208,7 +1208,7 @@ int mlx4_en_config_rss_steer(struct mlx4_en_priv *priv) return 0; } - rss_map->indir_qp = kzalloc(sizeof(*rss_map->indir_qp), GFP_KERNEL); + rss_map->indir_qp = kzalloc_obj(*rss_map->indir_qp, GFP_KERNEL); if (!rss_map->indir_qp) { err = -ENOMEM; goto rss_err; diff --git a/drivers/net/ethernet/mellanox/mlx4/eq.c b/drivers/net/ethernet/mellanox/mlx4/eq.c index 9572a45f6143..9891d33c7ecb 100644 --- a/drivers/net/ethernet/mellanox/mlx4/eq.c +++ b/drivers/net/ethernet/mellanox/mlx4/eq.c @@ -987,8 +987,7 @@ static int mlx4_create_eq(struct mlx4_dev *dev, int nent, */ npages = PAGE_ALIGN(eq->nent * dev->caps.eqe_size) / PAGE_SIZE; - eq->page_list = kmalloc_array(npages, sizeof(*eq->page_list), - GFP_KERNEL); + eq->page_list = kmalloc_objs(*eq->page_list, npages, GFP_KERNEL); if (!eq->page_list) goto err_out; @@ -1158,8 +1157,9 @@ int mlx4_alloc_eq_table(struct mlx4_dev *dev) { struct mlx4_priv *priv = mlx4_priv(dev); - priv->eq_table.eq = kcalloc(dev->caps.num_eqs - dev->caps.reserved_eqs, - sizeof(*priv->eq_table.eq), GFP_KERNEL); + priv->eq_table.eq = kzalloc_objs(*priv->eq_table.eq, + dev->caps.num_eqs - dev->caps.reserved_eqs, + GFP_KERNEL); if (!priv->eq_table.eq) return -ENOMEM; @@ -1177,9 +1177,8 @@ int mlx4_init_eq_table(struct mlx4_dev *dev) int err; int i; - priv->eq_table.uar_map = kcalloc(mlx4_num_eq_uar(dev), - sizeof(*priv->eq_table.uar_map), - GFP_KERNEL); + priv->eq_table.uar_map = kzalloc_objs(*priv->eq_table.uar_map, + mlx4_num_eq_uar(dev), GFP_KERNEL); if (!priv->eq_table.uar_map) { err = -ENOMEM; goto err_out_free; diff --git a/drivers/net/ethernet/mellanox/mlx4/icm.c b/drivers/net/ethernet/mellanox/mlx4/icm.c index 59b8b3c73582..c076d26a0b12 100644 --- a/drivers/net/ethernet/mellanox/mlx4/icm.c +++ b/drivers/net/ethernet/mellanox/mlx4/icm.c @@ -145,8 +145,8 @@ struct mlx4_icm *mlx4_alloc_icm(struct mlx4_dev *dev, int npages, gfp_mask & ~(__GFP_HIGHMEM | __GFP_NOWARN), dev->numa_node); if (!icm) { - icm = kmalloc(sizeof(*icm), - gfp_mask & ~(__GFP_HIGHMEM | __GFP_NOWARN)); + icm = kmalloc_obj(*icm, + gfp_mask & ~(__GFP_HIGHMEM | __GFP_NOWARN)); if (!icm) return NULL; } @@ -163,9 +163,8 @@ struct mlx4_icm *mlx4_alloc_icm(struct mlx4_dev *dev, int npages, __GFP_NOWARN), dev->numa_node); if (!chunk) { - chunk = kzalloc(sizeof(*chunk), - gfp_mask & ~(__GFP_HIGHMEM | - __GFP_NOWARN)); + chunk = kzalloc_obj(*chunk, + gfp_mask & ~(__GFP_HIGHMEM | __GFP_NOWARN)); if (!chunk) goto fail; } @@ -427,7 +426,7 @@ int mlx4_init_icm_table(struct mlx4_dev *dev, struct mlx4_icm_table *table, return -EINVAL; num_icm = DIV_ROUND_UP(nobj, obj_per_chunk); - table->icm = kvcalloc(num_icm, sizeof(*table->icm), GFP_KERNEL); + table->icm = kvzalloc_objs(*table->icm, num_icm, GFP_KERNEL); if (!table->icm) return -ENOMEM; table->virt = virt; diff --git a/drivers/net/ethernet/mellanox/mlx4/intf.c b/drivers/net/ethernet/mellanox/mlx4/intf.c index a371b970ac1e..e1db44df72f6 100644 --- a/drivers/net/ethernet/mellanox/mlx4/intf.c +++ b/drivers/net/ethernet/mellanox/mlx4/intf.c @@ -78,8 +78,8 @@ int mlx4_adev_init(struct mlx4_dev *dev) if (priv->adev_idx < 0) return priv->adev_idx; - priv->adev = kcalloc(ARRAY_SIZE(mlx4_adev_devices), - sizeof(struct mlx4_adev *), GFP_KERNEL); + priv->adev = kzalloc_objs(struct mlx4_adev *, + ARRAY_SIZE(mlx4_adev_devices), GFP_KERNEL); if (!priv->adev) { ida_free(&mlx4_adev_ida, priv->adev_idx); return -ENOMEM; @@ -115,7 +115,7 @@ static struct mlx4_adev *add_adev(struct mlx4_dev *dev, int idx) struct mlx4_adev *madev; int ret; - madev = kzalloc(sizeof(*madev), GFP_KERNEL); + madev = kzalloc_obj(*madev, GFP_KERNEL); if (!madev) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c index 4293f8e33f44..2e5032658fcd 100644 --- a/drivers/net/ethernet/mellanox/mlx4/main.c +++ b/drivers/net/ethernet/mellanox/mlx4/main.c @@ -867,8 +867,9 @@ static int mlx4_slave_special_qp_cap(struct mlx4_dev *dev) struct mlx4_caps *caps = &dev->caps; int i, err = 0; - func_cap = kzalloc(sizeof(*func_cap), GFP_KERNEL); - caps->spec_qps = kcalloc(caps->num_ports, sizeof(*caps->spec_qps), GFP_KERNEL); + func_cap = kzalloc_obj(*func_cap, GFP_KERNEL); + caps->spec_qps = kzalloc_objs(*caps->spec_qps, caps->num_ports, + GFP_KERNEL); if (!func_cap || !caps->spec_qps) { mlx4_err(dev, "Failed to allocate memory for special qps cap\n"); @@ -911,9 +912,9 @@ static int mlx4_slave_cap(struct mlx4_dev *dev) struct mlx4_func_cap *func_cap; struct mlx4_init_hca_param *hca_param; - hca_param = kzalloc(sizeof(*hca_param), GFP_KERNEL); - func_cap = kzalloc(sizeof(*func_cap), GFP_KERNEL); - dev_cap = kzalloc(sizeof(*dev_cap), GFP_KERNEL); + hca_param = kzalloc_obj(*hca_param, GFP_KERNEL); + func_cap = kzalloc_obj(*func_cap, GFP_KERNEL); + dev_cap = kzalloc_obj(*dev_cap, GFP_KERNEL); if (!hca_param || !func_cap || !dev_cap) { mlx4_err(dev, "Failed to allocate memory for slave_cap\n"); err = -ENOMEM; @@ -1548,7 +1549,7 @@ int mlx4_queue_bond_work(struct mlx4_dev *dev, int is_bonded, u8 v2p_p1, { struct mlx4_bond *bond; - bond = kzalloc(sizeof(*bond), GFP_ATOMIC); + bond = kzalloc_obj(*bond, GFP_ATOMIC); if (!bond) return -ENOMEM; @@ -2323,8 +2324,8 @@ static int mlx4_init_hca(struct mlx4_dev *dev) int err; if (!mlx4_is_slave(dev)) { - dev_cap = kzalloc(sizeof(*dev_cap), GFP_KERNEL); - init_hca = kzalloc(sizeof(*init_hca), GFP_KERNEL); + dev_cap = kzalloc_obj(*dev_cap, GFP_KERNEL); + init_hca = kzalloc_obj(*init_hca, GFP_KERNEL); if (!dev_cap || !init_hca) { err = -ENOMEM; @@ -2965,7 +2966,7 @@ static void mlx4_enable_msi_x(struct mlx4_dev *dev) if (msi_x > 1) nreq = min_t(int, nreq, msi_x); - entries = kcalloc(nreq, sizeof(*entries), GFP_KERNEL); + entries = kzalloc_objs(*entries, nreq, GFP_KERNEL); if (!entries) goto no_msi; @@ -3173,8 +3174,7 @@ static int mlx4_init_steering(struct mlx4_dev *dev) int num_entries = dev->caps.num_ports; int i, j; - priv->steer = kcalloc(num_entries, sizeof(struct mlx4_steer), - GFP_KERNEL); + priv->steer = kzalloc_objs(struct mlx4_steer, num_entries, GFP_KERNEL); if (!priv->steer) return -ENOMEM; @@ -3279,8 +3279,8 @@ static u64 mlx4_enable_sriov(struct mlx4_dev *dev, struct pci_dev *pdev, MLX4_MAX_NUM_VF); if (reset_flow) { - dev->dev_vfs = kcalloc(total_vfs, sizeof(*dev->dev_vfs), - GFP_KERNEL); + dev->dev_vfs = kzalloc_objs(*dev->dev_vfs, total_vfs, + GFP_KERNEL); if (!dev->dev_vfs) goto free_mem; return dev_flags; @@ -3295,7 +3295,7 @@ static u64 mlx4_enable_sriov(struct mlx4_dev *dev, struct pci_dev *pdev, } } - dev->dev_vfs = kcalloc(total_vfs, sizeof(*dev->dev_vfs), GFP_KERNEL); + dev->dev_vfs = kzalloc_objs(*dev->dev_vfs, total_vfs, GFP_KERNEL); if (NULL == dev->dev_vfs) { mlx4_err(dev, "Failed to allocate memory for VFs\n"); goto disable_sriov; @@ -3494,7 +3494,7 @@ slave_start: if (mlx4_is_master(dev)) { /* when we hit the goto slave_start below, dev_cap already initialized */ if (!dev_cap) { - dev_cap = kzalloc(sizeof(*dev_cap), GFP_KERNEL); + dev_cap = kzalloc_obj(*dev_cap, GFP_KERNEL); if (!dev_cap) { err = -ENOMEM; @@ -4034,7 +4034,7 @@ static int mlx4_init_one(struct pci_dev *pdev, const struct pci_device_id *id) priv = devlink_priv(devlink); dev = &priv->dev; - dev->persist = kzalloc(sizeof(*dev->persist), GFP_KERNEL); + dev->persist = kzalloc_obj(*dev->persist, GFP_KERNEL); if (!dev->persist) { ret = -ENOMEM; goto err_devlink_free; diff --git a/drivers/net/ethernet/mellanox/mlx4/mcg.c b/drivers/net/ethernet/mellanox/mlx4/mcg.c index 24d0c7c46878..7ab766a81452 100644 --- a/drivers/net/ethernet/mellanox/mlx4/mcg.c +++ b/drivers/net/ethernet/mellanox/mlx4/mcg.c @@ -162,7 +162,7 @@ static int new_steering_entry(struct mlx4_dev *dev, u8 port, return -EINVAL; s_steer = &mlx4_priv(dev)->steer[port - 1]; - new_entry = kzalloc(sizeof(*new_entry), GFP_KERNEL); + new_entry = kzalloc_obj(*new_entry, GFP_KERNEL); if (!new_entry) return -ENOMEM; @@ -175,7 +175,7 @@ static int new_steering_entry(struct mlx4_dev *dev, u8 port, */ pqp = get_promisc_qp(dev, port, steer, qpn); if (pqp) { - dqp = kmalloc(sizeof(*dqp), GFP_KERNEL); + dqp = kmalloc_obj(*dqp, GFP_KERNEL); if (!dqp) { err = -ENOMEM; goto out_alloc; @@ -274,7 +274,7 @@ static int existing_steering_entry(struct mlx4_dev *dev, u8 port, } /* add the qp as a duplicate on this index */ - dqp = kmalloc(sizeof(*dqp), GFP_KERNEL); + dqp = kmalloc_obj(*dqp, GFP_KERNEL); if (!dqp) return -ENOMEM; dqp->qpn = qpn; @@ -443,7 +443,7 @@ static int add_promisc_qp(struct mlx4_dev *dev, u8 port, goto out_mutex; } - pqp = kmalloc(sizeof(*pqp), GFP_KERNEL); + pqp = kmalloc_obj(*pqp, GFP_KERNEL); if (!pqp) { err = -ENOMEM; goto out_mutex; @@ -479,7 +479,7 @@ static int add_promisc_qp(struct mlx4_dev *dev, u8 port, /* Entry already exists. * Add to duplicates. */ - dqp = kmalloc(sizeof(*dqp), GFP_KERNEL); + dqp = kmalloc_obj(*dqp, GFP_KERNEL); if (!dqp) { err = -ENOMEM; goto out_mailbox; diff --git a/drivers/net/ethernet/mellanox/mlx4/pd.c b/drivers/net/ethernet/mellanox/mlx4/pd.c index 6fc156a3918d..b29e067da2e2 100644 --- a/drivers/net/ethernet/mellanox/mlx4/pd.c +++ b/drivers/net/ethernet/mellanox/mlx4/pd.c @@ -189,7 +189,7 @@ int mlx4_bf_alloc(struct mlx4_dev *dev, struct mlx4_bf *bf, int node) } uar = kmalloc_node(sizeof(*uar), GFP_KERNEL, node); if (!uar) { - uar = kmalloc(sizeof(*uar), GFP_KERNEL); + uar = kmalloc_obj(*uar, GFP_KERNEL); if (!uar) { err = -ENOMEM; goto out; diff --git a/drivers/net/ethernet/mellanox/mlx4/profile.c b/drivers/net/ethernet/mellanox/mlx4/profile.c index ba361c5fbda3..828c14074f81 100644 --- a/drivers/net/ethernet/mellanox/mlx4/profile.c +++ b/drivers/net/ethernet/mellanox/mlx4/profile.c @@ -85,7 +85,7 @@ u64 mlx4_make_profile(struct mlx4_dev *dev, struct sysinfo si; int i, j; - profile = kcalloc(MLX4_RES_NUM, sizeof(*profile), GFP_KERNEL); + profile = kzalloc_objs(*profile, MLX4_RES_NUM, GFP_KERNEL); if (!profile) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx4/qp.c b/drivers/net/ethernet/mellanox/mlx4/qp.c index 913ed255990f..50002356697f 100644 --- a/drivers/net/ethernet/mellanox/mlx4/qp.c +++ b/drivers/net/ethernet/mellanox/mlx4/qp.c @@ -564,7 +564,7 @@ static int mlx4_create_zones(struct mlx4_dev *dev, if (NULL == qp_table->zones) return -ENOMEM; - bitmap = kmalloc(sizeof(*bitmap), GFP_KERNEL); + bitmap = kmalloc_obj(*bitmap, GFP_KERNEL); if (NULL == bitmap) { err = -ENOMEM; @@ -853,9 +853,9 @@ int mlx4_init_qp_table(struct mlx4_dev *dev) /* In mfunc, calculate proxy and tunnel qp offsets for the PF here, * since the PF does not call mlx4_slave_caps */ - dev->caps.spec_qps = kcalloc(dev->caps.num_ports, - sizeof(*dev->caps.spec_qps), - GFP_KERNEL); + dev->caps.spec_qps = kzalloc_objs(*dev->caps.spec_qps, + dev->caps.num_ports, + GFP_KERNEL); if (!dev->caps.spec_qps) { err = -ENOMEM; goto err_mem; diff --git a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c index 771b92019af1..dba5709ff96f 100644 --- a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c +++ b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c @@ -505,8 +505,7 @@ int mlx4_init_resource_tracker(struct mlx4_dev *dev) int t; priv->mfunc.master.res_tracker.slave_list = - kcalloc(dev->num_slaves, sizeof(struct slave_list), - GFP_KERNEL); + kzalloc_objs(struct slave_list, dev->num_slaves, GFP_KERNEL); if (!priv->mfunc.master.res_tracker.slave_list) return -ENOMEM; @@ -525,21 +524,20 @@ int mlx4_init_resource_tracker(struct mlx4_dev *dev) for (i = 0; i < MLX4_NUM_OF_RESOURCE_TYPE; i++) { struct resource_allocator *res_alloc = &priv->mfunc.master.res_tracker.res_alloc[i]; - res_alloc->quota = kmalloc_array(dev->persist->num_vfs + 1, - sizeof(int), - GFP_KERNEL); - res_alloc->guaranteed = kmalloc_array(dev->persist->num_vfs + 1, - sizeof(int), - GFP_KERNEL); + res_alloc->quota = kmalloc_objs(int, dev->persist->num_vfs + 1, + GFP_KERNEL); + res_alloc->guaranteed = kmalloc_objs(int, + dev->persist->num_vfs + 1, + GFP_KERNEL); if (i == RES_MAC || i == RES_VLAN) res_alloc->allocated = - kcalloc(MLX4_MAX_PORTS * - (dev->persist->num_vfs + 1), - sizeof(int), GFP_KERNEL); + kzalloc_objs(int, + MLX4_MAX_PORTS * (dev->persist->num_vfs + 1), + GFP_KERNEL); else res_alloc->allocated = - kcalloc(dev->persist->num_vfs + 1, - sizeof(int), GFP_KERNEL); + kzalloc_objs(int, dev->persist->num_vfs + 1, + GFP_KERNEL); /* Reduce the sink counter */ if (i == RES_COUNTER) res_alloc->res_free = dev->caps.max_counters - 1; @@ -1051,7 +1049,7 @@ static struct res_common *alloc_qp_tr(int id) { struct res_qp *ret; - ret = kzalloc(sizeof(*ret), GFP_KERNEL); + ret = kzalloc_obj(*ret, GFP_KERNEL); if (!ret) return NULL; @@ -1069,7 +1067,7 @@ static struct res_common *alloc_mtt_tr(int id, int order) { struct res_mtt *ret; - ret = kzalloc(sizeof(*ret), GFP_KERNEL); + ret = kzalloc_obj(*ret, GFP_KERNEL); if (!ret) return NULL; @@ -1085,7 +1083,7 @@ static struct res_common *alloc_mpt_tr(int id, int key) { struct res_mpt *ret; - ret = kzalloc(sizeof(*ret), GFP_KERNEL); + ret = kzalloc_obj(*ret, GFP_KERNEL); if (!ret) return NULL; @@ -1100,7 +1098,7 @@ static struct res_common *alloc_eq_tr(int id) { struct res_eq *ret; - ret = kzalloc(sizeof(*ret), GFP_KERNEL); + ret = kzalloc_obj(*ret, GFP_KERNEL); if (!ret) return NULL; @@ -1114,7 +1112,7 @@ static struct res_common *alloc_cq_tr(int id) { struct res_cq *ret; - ret = kzalloc(sizeof(*ret), GFP_KERNEL); + ret = kzalloc_obj(*ret, GFP_KERNEL); if (!ret) return NULL; @@ -1129,7 +1127,7 @@ static struct res_common *alloc_srq_tr(int id) { struct res_srq *ret; - ret = kzalloc(sizeof(*ret), GFP_KERNEL); + ret = kzalloc_obj(*ret, GFP_KERNEL); if (!ret) return NULL; @@ -1144,7 +1142,7 @@ static struct res_common *alloc_counter_tr(int id, int port) { struct res_counter *ret; - ret = kzalloc(sizeof(*ret), GFP_KERNEL); + ret = kzalloc_obj(*ret, GFP_KERNEL); if (!ret) return NULL; @@ -1159,7 +1157,7 @@ static struct res_common *alloc_xrcdn_tr(int id) { struct res_xrcdn *ret; - ret = kzalloc(sizeof(*ret), GFP_KERNEL); + ret = kzalloc_obj(*ret, GFP_KERNEL); if (!ret) return NULL; @@ -1173,7 +1171,7 @@ static struct res_common *alloc_fs_rule_tr(u64 id, int qpn) { struct res_fs_rule *ret; - ret = kzalloc(sizeof(*ret), GFP_KERNEL); + ret = kzalloc_obj(*ret, GFP_KERNEL); if (!ret) return NULL; @@ -1240,8 +1238,8 @@ int mlx4_calc_vf_counters(struct mlx4_dev *dev, int slave, int port, memset(data, 0, sizeof(*data)); - counters_arr = kmalloc_array(dev->caps.max_counters, - sizeof(*counters_arr), GFP_KERNEL); + counters_arr = kmalloc_objs(*counters_arr, dev->caps.max_counters, + GFP_KERNEL); if (!counters_arr) return -ENOMEM; @@ -1285,7 +1283,7 @@ static int add_res_range(struct mlx4_dev *dev, int slave, u64 base, int count, struct mlx4_resource_tracker *tracker = &priv->mfunc.master.res_tracker; struct rb_root *root = &tracker->res_tree[type]; - res_arr = kcalloc(count, sizeof(*res_arr), GFP_KERNEL); + res_arr = kzalloc_objs(*res_arr, count, GFP_KERNEL); if (!res_arr) return -ENOMEM; @@ -2038,7 +2036,7 @@ static int mac_add_to_slave(struct mlx4_dev *dev, int slave, u64 mac, int port, if (mlx4_grant_resource(dev, slave, RES_MAC, 1, port)) return -EINVAL; - res = kzalloc(sizeof(*res), GFP_KERNEL); + res = kzalloc_obj(*res, GFP_KERNEL); if (!res) { mlx4_release_resource(dev, slave, RES_MAC, 1, port); return -ENOMEM; @@ -2145,7 +2143,7 @@ static int vlan_add_to_slave(struct mlx4_dev *dev, int slave, u16 vlan, if (mlx4_grant_resource(dev, slave, RES_VLAN, 1, port)) return -EINVAL; - res = kzalloc(sizeof(*res), GFP_KERNEL); + res = kzalloc_obj(*res, GFP_KERNEL); if (!res) { mlx4_release_resource(dev, slave, RES_VLAN, 1, port); return -ENOMEM; @@ -4032,7 +4030,7 @@ static int add_mcg_res(struct mlx4_dev *dev, int slave, struct res_qp *rqp, struct res_gid *res; int err; - res = kzalloc(sizeof(*res), GFP_KERNEL); + res = kzalloc_obj(*res, GFP_KERNEL); if (!res) return -ENOMEM; @@ -5187,8 +5185,8 @@ static void rem_slave_counters(struct mlx4_dev *dev, int slave) mlx4_warn(dev, "rem_slave_counters: Could not move all counters - too busy for slave %d\n", slave); - counters_arr = kmalloc_array(dev->caps.max_counters, - sizeof(*counters_arr), GFP_KERNEL); + counters_arr = kmalloc_objs(*counters_arr, dev->caps.max_counters, + GFP_KERNEL); if (!counters_arr) return; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/alloc.c b/drivers/net/ethernet/mellanox/mlx5/core/alloc.c index 6aca004e88cd..058b7b2497ac 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/alloc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/alloc.c @@ -79,8 +79,7 @@ int mlx5_frag_buf_alloc_node(struct mlx5_core_dev *dev, int size, buf->size = size; buf->npages = DIV_ROUND_UP(size, PAGE_SIZE); buf->page_shift = PAGE_SHIFT; - buf->frags = kcalloc(buf->npages, sizeof(struct mlx5_buf_list), - GFP_KERNEL); + buf->frags = kzalloc_objs(struct mlx5_buf_list, buf->npages, GFP_KERNEL); if (!buf->frags) goto err_out; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c index 5b08e5ffe0e2..6c99c7f36163 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c @@ -123,7 +123,7 @@ cmd_alloc_ent(struct mlx5_cmd *cmd, struct mlx5_cmd_msg *in, gfp_t alloc_flags = cbk ? GFP_ATOMIC : GFP_KERNEL; struct mlx5_cmd_work_ent *ent; - ent = kzalloc(sizeof(*ent), alloc_flags); + ent = kzalloc_obj(*ent, alloc_flags); if (!ent) return ERR_PTR(-ENOMEM); @@ -1436,7 +1436,7 @@ static struct mlx5_cmd_mailbox *alloc_cmd_box(struct mlx5_core_dev *dev, { struct mlx5_cmd_mailbox *mailbox; - mailbox = kmalloc(sizeof(*mailbox), flags); + mailbox = kmalloc_obj(*mailbox, flags); if (!mailbox) return ERR_PTR(-ENOMEM); @@ -1470,7 +1470,7 @@ static struct mlx5_cmd_msg *mlx5_alloc_cmd_msg(struct mlx5_core_dev *dev, int n; int i; - msg = kzalloc(sizeof(*msg), flags); + msg = kzalloc_obj(*msg, flags); if (!msg) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/debugfs.c b/drivers/net/ethernet/mellanox/mlx5/core/debugfs.c index 1301c56e20d6..f2aa14e07e92 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/debugfs.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/debugfs.c @@ -201,7 +201,7 @@ static const struct file_operations slots_fops = { static struct mlx5_cmd_stats * mlx5_cmdif_alloc_stats(struct xarray *stats_xa, int opcode) { - struct mlx5_cmd_stats *stats = kzalloc(sizeof(*stats), GFP_KERNEL); + struct mlx5_cmd_stats *stats = kzalloc_obj(*stats, GFP_KERNEL); int err; if (!stats) @@ -509,7 +509,7 @@ static int add_res_tree(struct mlx5_core_dev *dev, enum dbg_rsc_type type, char resn[32]; int i; - d = kzalloc(struct_size(d, fields, nfile), GFP_KERNEL); + d = kzalloc_flex(*d, fields, nfile, GFP_KERNEL); if (!d) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/dev.c b/drivers/net/ethernet/mellanox/mlx5/core/dev.c index 781e39b5aa1d..bed0b6bfba7e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/dev.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/dev.c @@ -277,8 +277,8 @@ int mlx5_adev_init(struct mlx5_core_dev *dev) { struct mlx5_priv *priv = &dev->priv; - priv->adev = kcalloc(ARRAY_SIZE(mlx5_adev_devices), - sizeof(struct mlx5_adev *), GFP_KERNEL); + priv->adev = kzalloc_objs(struct mlx5_adev *, + ARRAY_SIZE(mlx5_adev_devices), GFP_KERNEL); if (!priv->adev) return -ENOMEM; @@ -310,7 +310,7 @@ static struct mlx5_adev *add_adev(struct mlx5_core_dev *dev, int idx) struct mlx5_adev *madev; int ret; - madev = kzalloc(sizeof(*madev), GFP_KERNEL); + madev = kzalloc_obj(*madev, GFP_KERNEL); if (!madev) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c b/drivers/net/ethernet/mellanox/mlx5/core/devlink.c index ea77fbd98396..18cfb7655805 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/devlink.c @@ -294,7 +294,7 @@ static int mlx5_devlink_trap_init(struct devlink *devlink, const struct devlink_ struct mlx5_core_dev *dev = devlink_priv(devlink); struct mlx5_devlink_trap *dl_trap; - dl_trap = kzalloc(sizeof(*dl_trap), GFP_KERNEL); + dl_trap = kzalloc_obj(*dl_trap, GFP_KERNEL); if (!dl_trap) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c b/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c index 6b4ec457ce22..d2e2c9f0f340 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c @@ -412,7 +412,7 @@ static struct tracer_string_format *mlx5_tracer_message_insert(struct mlx5_fw_tr &tracer->hash[mlx5_tracer_message_hash(tracer_event->string_event.tmsn)]; struct tracer_string_format *cur_string; - cur_string = kzalloc(sizeof(*cur_string), GFP_KERNEL); + cur_string = kzalloc_obj(*cur_string, GFP_KERNEL); if (!cur_string) return NULL; @@ -1023,7 +1023,7 @@ struct mlx5_fw_tracer *mlx5_fw_tracer_create(struct mlx5_core_dev *dev) return NULL; } - tracer = kvzalloc(sizeof(*tracer), GFP_KERNEL); + tracer = kvzalloc_obj(*tracer, GFP_KERNEL); if (!tracer) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/diag/rsc_dump.c b/drivers/net/ethernet/mellanox/mlx5/core/diag/rsc_dump.c index c5b560a8b026..9bcc2d8edc76 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/diag/rsc_dump.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/diag/rsc_dump.c @@ -137,7 +137,7 @@ struct mlx5_rsc_dump_cmd *mlx5_rsc_dump_cmd_create(struct mlx5_core_dev *dev, if (!sgmt_type && key->rsc != MLX5_SGMT_TYPE_MENU) return ERR_PTR(-EOPNOTSUPP); - cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); + cmd = kzalloc_obj(*cmd, GFP_KERNEL); if (!cmd) { mlx5_core_err(dev, "Resource dump: Failed to allocate command\n"); return ERR_PTR(-ENOMEM); @@ -255,7 +255,7 @@ struct mlx5_rsc_dump *mlx5_rsc_dump_create(struct mlx5_core_dev *dev) mlx5_core_dbg(dev, "Resource dump: capability not present\n"); return NULL; } - rsc_dump = kzalloc(sizeof(*rsc_dump), GFP_KERNEL); + rsc_dump = kzalloc_obj(*rsc_dump, GFP_KERNEL); if (!rsc_dump) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/dpll.c b/drivers/net/ethernet/mellanox/mlx5/core/dpll.c index 3981dd81d4c1..abb678fe3021 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/dpll.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/dpll.c @@ -433,7 +433,7 @@ static int mlx5_dpll_probe(struct auxiliary_device *adev, if (err) return err; - mdpll = kzalloc(sizeof(*mdpll), GFP_KERNEL); + mdpll = kzalloc_obj(*mdpll, GFP_KERNEL); if (!mdpll) return -ENOMEM; mdpll->mdev = mdev; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c b/drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c index 671adbad0a40..8b418e8538ca 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c @@ -90,7 +90,7 @@ mlx5e_fs_tt_redirect_udp_add_rule(struct mlx5e_flow_steering *fs, if (type == FS_UDP_NUM_TYPES) return ERR_PTR(-EINVAL); - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return ERR_PTR(-ENOMEM); @@ -150,7 +150,7 @@ static int fs_udp_create_groups(struct mlx5e_flow_table *ft, enum fs_udp_type ty int err; u8 *mc; - ft->g = kcalloc(MLX5E_FS_UDP_NUM_GROUPS, sizeof(*ft->g), GFP_KERNEL); + ft->g = kzalloc_objs(*ft->g, MLX5E_FS_UDP_NUM_GROUPS, GFP_KERNEL); in = kvzalloc(inlen, GFP_KERNEL); if (!in || !ft->g) { kfree(ft->g); @@ -325,7 +325,7 @@ int mlx5e_fs_tt_redirect_udp_create(struct mlx5e_flow_steering *fs) return 0; } - udp = kzalloc(sizeof(*udp), GFP_KERNEL); + udp = kzalloc_obj(*udp, GFP_KERNEL); if (!udp) return -ENOMEM; mlx5e_fs_set_udp(fs, udp); @@ -372,7 +372,7 @@ mlx5e_fs_tt_redirect_any_add_rule(struct mlx5e_flow_steering *fs, struct mlx5_flow_spec *spec; int err; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return ERR_PTR(-ENOMEM); @@ -432,7 +432,7 @@ static int fs_any_create_groups(struct mlx5e_flow_table *ft) int err; u8 *mc; - ft->g = kcalloc(MLX5E_FS_UDP_NUM_GROUPS, sizeof(*ft->g), GFP_KERNEL); + ft->g = kzalloc_objs(*ft->g, MLX5E_FS_UDP_NUM_GROUPS, GFP_KERNEL); in = kvzalloc(inlen, GFP_KERNEL); if (!in || !ft->g) { kfree(ft->g); @@ -589,7 +589,7 @@ int mlx5e_fs_tt_redirect_any_create(struct mlx5e_flow_steering *fs) return 0; } - fs_any = kzalloc(sizeof(*fs_any), GFP_KERNEL); + fs_any = kzalloc_obj(*fs_any, GFP_KERNEL); if (!fs_any) return -ENOMEM; mlx5e_fs_set_any(fs, fs_any); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/htb.c b/drivers/net/ethernet/mellanox/mlx5/core/en/htb.c index 09d441ecb9f6..c63b8022fae6 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/htb.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/htb.c @@ -72,7 +72,7 @@ mlx5e_htb_node_create_leaf(struct mlx5e_htb *htb, u16 classid, u16 qid, { struct mlx5e_qos_node *node; - node = kzalloc(sizeof(*node), GFP_KERNEL); + node = kzalloc_obj(*node, GFP_KERNEL); if (!node) return ERR_PTR(-ENOMEM); @@ -93,7 +93,7 @@ static struct mlx5e_qos_node *mlx5e_htb_node_create_root(struct mlx5e_htb *htb) { struct mlx5e_qos_node *node; - node = kzalloc(sizeof(*node), GFP_KERNEL); + node = kzalloc_obj(*node, GFP_KERNEL); if (!node) return ERR_PTR(-ENOMEM); @@ -694,7 +694,7 @@ mlx5e_htb_node_modify(struct mlx5e_htb *htb, u16 classid, u64 rate, u64 ceil, struct mlx5e_htb *mlx5e_htb_alloc(void) { - return kvzalloc(sizeof(struct mlx5e_htb), GFP_KERNEL); + return kvzalloc_obj(struct mlx5e_htb, GFP_KERNEL); } void mlx5e_htb_free(struct mlx5e_htb *htb) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/mapping.c b/drivers/net/ethernet/mellanox/mlx5/core/en/mapping.c index 1de18c7e96ec..b1a84a01a81c 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/mapping.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/mapping.c @@ -198,7 +198,7 @@ mapping_create(size_t data_size, u32 max_id, bool delayed_removal) { struct mapping_ctx *ctx; - ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); + ctx = kzalloc_obj(*ctx, GFP_KERNEL); if (!ctx) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c b/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c index 74660e7fe674..5f4a7ca15518 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c @@ -883,7 +883,7 @@ int mlx5e_ptp_open(struct mlx5e_priv *priv, struct mlx5e_params *params, c = kvzalloc_node(sizeof(*c), GFP_KERNEL, dev_to_node(mlx5_core_dma_dev(mdev))); - cparams = kvzalloc(sizeof(*cparams), GFP_KERNEL); + cparams = kvzalloc_obj(*cparams, GFP_KERNEL); if (!c || !cparams) { err = -ENOMEM; goto err_free; @@ -988,7 +988,7 @@ int mlx5e_ptp_alloc_rx_fs(struct mlx5e_flow_steering *fs, if (!mlx5e_profile_feature_cap(profile, PTP_RX)) return 0; - ptp_fs = kzalloc(sizeof(*ptp_fs), GFP_KERNEL); + ptp_fs = kzalloc_obj(*ptp_fs, GFP_KERNEL); if (!ptp_fs) return -ENOMEM; mlx5e_fs_set_ptp(fs, ptp_fs); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/qos.c b/drivers/net/ethernet/mellanox/mlx5/core/en/qos.c index 4e461cb03b83..cebcff010eac 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/qos.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/qos.c @@ -87,8 +87,9 @@ int mlx5e_open_qos_sq(struct mlx5e_priv *priv, struct mlx5e_channels *chs, if (!priv->htb_qos_sq_stats) { struct mlx5e_sq_stats **stats_list; - stats_list = kvcalloc(mlx5e_qos_max_leaf_nodes(priv->mdev), - sizeof(*stats_list), GFP_KERNEL); + stats_list = kvzalloc_objs(*stats_list, + mlx5e_qos_max_leaf_nodes(priv->mdev), + GFP_KERNEL); if (!stats_list) return -ENOMEM; @@ -98,7 +99,7 @@ int mlx5e_open_qos_sq(struct mlx5e_priv *priv, struct mlx5e_channels *chs, if (!priv->htb_qos_sq_stats[node_qid]) { struct mlx5e_sq_stats *stats; - stats = kzalloc(sizeof(*stats), GFP_KERNEL); + stats = kzalloc_obj(*stats, GFP_KERNEL); if (!stats) return -ENOMEM; @@ -114,7 +115,7 @@ int mlx5e_open_qos_sq(struct mlx5e_priv *priv, struct mlx5e_channels *chs, c = chs->c[ix]; qos_sqs = mlx5e_state_dereference(priv, c->qos_sqs); - sq = kzalloc(sizeof(*sq), GFP_KERNEL); + sq = kzalloc_obj(*sq, GFP_KERNEL); if (!sq) return -ENOMEM; @@ -276,7 +277,8 @@ int mlx5e_qos_alloc_queues(struct mlx5e_priv *priv, struct mlx5e_channels *chs) for (i = 0; i < chs->num; i++) { struct mlx5e_txqsq **sqs; - sqs = kvcalloc(qos_sqs_size, sizeof(struct mlx5e_txqsq *), GFP_KERNEL); + sqs = kvzalloc_objs(struct mlx5e_txqsq *, qos_sqs_size, + GFP_KERNEL); if (!sqs) goto err_free; @@ -460,7 +462,7 @@ struct mlx5e_mqprio_rl { struct mlx5e_mqprio_rl *mlx5e_mqprio_rl_alloc(void) { - return kvzalloc(sizeof(struct mlx5e_mqprio_rl), GFP_KERNEL); + return kvzalloc_obj(struct mlx5e_mqprio_rl, GFP_KERNEL); } void mlx5e_mqprio_rl_free(struct mlx5e_mqprio_rl *rl) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bond.c b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bond.c index 016a61c52c45..8038deae35a7 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bond.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bond.c @@ -92,7 +92,7 @@ int mlx5e_rep_bond_enslave(struct mlx5_eswitch *esw, struct net_device *netdev, mdata = mlx5e_lookup_rep_bond_metadata(&rpriv->uplink_priv, lag_dev); if (!mdata) { /* First netdev becomes slave, no metadata presents the lag_dev. Create one */ - mdata = kzalloc(sizeof(*mdata), GFP_KERNEL); + mdata = kzalloc_obj(*mdata, GFP_KERNEL); if (!mdata) return -ENOMEM; @@ -110,7 +110,7 @@ int mlx5e_rep_bond_enslave(struct mlx5_eswitch *esw, struct net_device *netdev, mdata->metadata_reg_c_0); } - s_entry = kzalloc(sizeof(*s_entry), GFP_KERNEL); + s_entry = kzalloc_obj(*s_entry, GFP_KERNEL); if (!s_entry) { err = -ENOMEM; goto entry_alloc_err; @@ -315,7 +315,7 @@ int mlx5e_rep_bond_init(struct mlx5e_rep_priv *rpriv) if (!mlx5_esw_acl_egress_fwd2vport_supported(priv->mdev->priv.eswitch)) goto out; - uplink_priv->bond = kvzalloc(sizeof(*uplink_priv->bond), GFP_KERNEL); + uplink_priv->bond = kvzalloc_obj(*uplink_priv->bond, GFP_KERNEL); if (!uplink_priv->bond) { ret = -ENOMEM; goto out; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c index 87a2ad69526d..baac38bece14 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c @@ -394,7 +394,7 @@ mlx5_esw_bridge_init_switchdev_fdb_work(struct net_device *dev, bool add, struct mlx5_bridge_switchdev_fdb_work *work; u8 *addr; - work = kzalloc(sizeof(*work), GFP_ATOMIC); + work = kzalloc_obj(*work, GFP_ATOMIC); if (!work) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/neigh.c b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/neigh.c index 2e9bee4e5209..cbfb0cc32a3b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/neigh.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/neigh.c @@ -173,7 +173,7 @@ static struct neigh_update_work *mlx5e_alloc_neigh_update_work(struct mlx5e_priv struct mlx5e_neigh_hash_entry *nhe; struct mlx5e_neigh m_neigh = {}; - update_work = kzalloc(sizeof(*update_work), GFP_ATOMIC); + update_work = kzalloc_obj(*update_work, GFP_ATOMIC); if (WARN_ON(!update_work)) return NULL; @@ -376,7 +376,7 @@ int mlx5e_rep_neigh_entry_create(struct mlx5e_priv *priv, { int err; - *nhe = kzalloc(sizeof(**nhe), GFP_KERNEL); + *nhe = kzalloc_obj(**nhe, GFP_KERNEL); if (!*nhe) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c index a55452c69f06..2dc5e139c99c 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c @@ -503,7 +503,7 @@ mlx5e_rep_indr_setup_block(struct net_device *netdev, struct Qdisc *sch, if (indr_priv) return -EEXIST; - indr_priv = kmalloc(sizeof(*indr_priv), GFP_KERNEL); + indr_priv = kmalloc_obj(*indr_priv, GFP_KERNEL); if (!indr_priv) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/rss.c b/drivers/net/ethernet/mellanox/mlx5/core/en/rss.c index 88b0e1050d1a..c9d141b8650b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/rss.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rss.c @@ -93,7 +93,7 @@ void mlx5e_rss_params_indir_modify_actual_size(struct mlx5e_rss *rss, u32 num_ch int mlx5e_rss_params_indir_init(struct mlx5e_rss_params_indir *indir, u32 actual_table_size, u32 max_table_size) { - indir->table = kvmalloc_array(max_table_size, sizeof(*indir->table), GFP_KERNEL); + indir->table = kvmalloc_objs(*indir->table, max_table_size, GFP_KERNEL); if (!indir->table) return -ENOMEM; @@ -134,7 +134,7 @@ static struct mlx5e_rss *mlx5e_rss_init_copy(const struct mlx5e_rss *from) struct mlx5e_rss *rss; int err; - rss = kvzalloc(sizeof(*rss), GFP_KERNEL); + rss = kvzalloc_obj(*rss, GFP_KERNEL); if (!rss) return ERR_PTR(-ENOMEM); @@ -216,7 +216,7 @@ mlx5e_rss_create_tir(struct mlx5e_rss *rss, enum mlx5_traffic_types tt, if (*tir_p) return -EINVAL; - tir = kvzalloc(sizeof(*tir), GFP_KERNEL); + tir = kvzalloc_obj(*tir, GFP_KERNEL); if (!tir) return -ENOMEM; @@ -372,7 +372,7 @@ mlx5e_rss_init(struct mlx5_core_dev *mdev, struct mlx5e_rss *rss; int err; - rss = kvzalloc(sizeof(*rss), GFP_KERNEL); + rss = kvzalloc_obj(*rss, GFP_KERNEL); if (!rss) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.c b/drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.c index 55c117b7d8c4..a9f55ffb894e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.c @@ -325,7 +325,7 @@ static struct mlx5e_rx_res *mlx5e_rx_res_alloc(struct mlx5_core_dev *mdev, unsig { struct mlx5e_rx_res *rx_res; - rx_res = kvzalloc(sizeof(*rx_res), GFP_KERNEL); + rx_res = kvzalloc_obj(*rx_res, GFP_KERNEL); if (!rx_res) return NULL; @@ -359,7 +359,7 @@ static int mlx5e_rx_res_channels_init(struct mlx5e_rx_res *res) if (!builder) return -ENOMEM; - res->channels = kvcalloc(res->max_nch, sizeof(*res->channels), GFP_KERNEL); + res->channels = kvzalloc_objs(*res->channels, res->max_nch, GFP_KERNEL); if (!res->channels) { err = -ENOMEM; goto out; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/selq.c b/drivers/net/ethernet/mellanox/mlx5/core/en/selq.c index f66bbc846464..4598d922385a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/selq.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/selq.c @@ -30,11 +30,11 @@ int mlx5e_selq_init(struct mlx5e_selq *selq, struct mutex *state_lock) selq->state_lock = state_lock; - selq->standby = kvzalloc(sizeof(*selq->standby), GFP_KERNEL); + selq->standby = kvzalloc_obj(*selq->standby, GFP_KERNEL); if (!selq->standby) return -ENOMEM; - init_params = kvzalloc(sizeof(*selq->active), GFP_KERNEL); + init_params = kvzalloc_obj(*selq->active, GFP_KERNEL); if (!init_params) { kvfree(selq->standby); selq->standby = NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/act_stats.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/act_stats.c index 7aa926e542d3..45ff384b66d4 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/act_stats.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/act_stats.c @@ -36,7 +36,7 @@ mlx5e_tc_act_stats_create(void) struct mlx5e_tc_act_stats_handle *handle; int err; - handle = kvzalloc(sizeof(*handle), GFP_KERNEL); + handle = kvzalloc_obj(*handle, GFP_KERNEL); if (!handle) return ERR_PTR(-ENOMEM); @@ -67,7 +67,7 @@ mlx5e_tc_act_stats_add(struct mlx5e_tc_act_stats_handle *handle, u64 lastused; int err = 0; - act_stats = kvzalloc(sizeof(*act_stats), GFP_KERNEL); + act_stats = kvzalloc_obj(*act_stats, GFP_KERNEL); if (!act_stats) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_dmfs.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_dmfs.c index 64a82aafaaca..e983da2574ec 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_dmfs.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_dmfs.c @@ -34,7 +34,7 @@ mlx5_ct_fs_dmfs_ct_rule_add(struct mlx5_ct_fs *fs, struct mlx5_flow_spec *spec, struct mlx5_ct_fs_dmfs_rule *dmfs_rule; int err; - dmfs_rule = kzalloc(sizeof(*dmfs_rule), GFP_KERNEL); + dmfs_rule = kzalloc_obj(*dmfs_rule, GFP_KERNEL); if (!dmfs_rule) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_hmfs.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_hmfs.c index d3db6146fcad..59aa6ee5be05 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_hmfs.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_hmfs.c @@ -203,7 +203,7 @@ mlx5_ct_fs_hmfs_ct_rule_add(struct mlx5_ct_fs *fs, struct mlx5_flow_spec *spec, if (!mlx5e_tc_ct_is_valid_flow_rule(fs->netdev, flow_rule)) return ERR_PTR(-EOPNOTSUPP); - hmfs_rule = kzalloc(sizeof(*hmfs_rule), GFP_KERNEL); + hmfs_rule = kzalloc_obj(*hmfs_rule, GFP_KERNEL); if (!hmfs_rule) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_smfs.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_smfs.c index 4d6924b644c9..897d8f7ed7f2 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_smfs.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_smfs.c @@ -92,7 +92,7 @@ mlx5_ct_fs_smfs_matcher_create(struct mlx5_ct_fs *fs, struct mlx5dr_table *tbl, struct mlx5dr_matcher *dr_matcher; struct mlx5_flow_spec *spec; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return ERR_PTR(-ENOMEM); @@ -234,7 +234,7 @@ mlx5_ct_fs_smfs_ct_rule_add(struct mlx5_ct_fs *fs, struct mlx5_flow_spec *spec, if (!mlx5e_tc_ct_is_valid_flow_rule(fs->netdev, flow_rule)) return ERR_PTR(-EOPNOTSUPP); - smfs_rule = kzalloc(sizeof(*smfs_rule), GFP_KERNEL); + smfs_rule = kzalloc_obj(*smfs_rule, GFP_KERNEL); if (!smfs_rule) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/int_port.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/int_port.c index 991f47050643..11754c8ae986 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/int_port.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/int_port.c @@ -69,7 +69,7 @@ mlx5e_int_port_create_rx_rule(struct mlx5_eswitch *esw, struct mlx5_flow_spec *spec; void *misc; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return ERR_PTR(-ENOMEM); @@ -167,7 +167,7 @@ mlx5e_int_port_add(struct mlx5e_tc_int_port_priv *priv, return ERR_PTR(-ENOSPC); } - int_port = kzalloc(sizeof(*int_port), GFP_KERNEL); + int_port = kzalloc_obj(*int_port, GFP_KERNEL); if (!int_port) return ERR_PTR(-ENOMEM); @@ -313,7 +313,7 @@ mlx5e_tc_int_port_init(struct mlx5e_priv *priv) if (!mlx5e_tc_int_port_supported(esw)) return NULL; - int_port_priv = kzalloc(sizeof(*int_port_priv), GFP_KERNEL); + int_port_priv = kzalloc_obj(*int_port_priv, GFP_KERNEL); if (!int_port_priv) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c index d5d9146efca6..80ddbe373f97 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c @@ -247,7 +247,7 @@ __mlx5e_flow_meter_alloc(struct mlx5e_flow_meters *flow_meters, bool alloc_aso) int err, pos, total; u32 id; - meter = kzalloc(sizeof(*meter), GFP_KERNEL); + meter = kzalloc_obj(*meter, GFP_KERNEL); if (!meter) return ERR_PTR(-ENOMEM); @@ -526,7 +526,7 @@ mlx5e_flow_meters_init(struct mlx5e_priv *priv, return ERR_PTR(-EOPNOTSUPP); } - flow_meters = kzalloc(sizeof(*flow_meters), GFP_KERNEL); + flow_meters = kzalloc_obj(*flow_meters, GFP_KERNEL); if (!flow_meters) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_act.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_act.c index b500cc2c9689..62184531b3e6 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_act.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_act.c @@ -42,7 +42,7 @@ mlx5e_tc_post_act_init(struct mlx5e_priv *priv, struct mlx5_fs_chains *chains, goto err_check; } - post_act = kzalloc(sizeof(*post_act), GFP_KERNEL); + post_act = kzalloc_obj(*post_act, GFP_KERNEL); if (!post_act) { err = -ENOMEM; goto err_check; @@ -86,7 +86,7 @@ mlx5e_tc_post_act_offload(struct mlx5e_post_act *post_act, if (IS_ERR(post_act)) return PTR_ERR(post_act); - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -117,7 +117,7 @@ mlx5e_tc_post_act_add(struct mlx5e_post_act *post_act, struct mlx5_flow_attr *po if (IS_ERR(post_act)) return ERR_CAST(post_act); - handle = kzalloc(sizeof(*handle), GFP_KERNEL); + handle = kzalloc_obj(*handle, GFP_KERNEL); if (!handle) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_meter.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_meter.c index 50b60fd00946..e5467a94e9dc 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_meter.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_meter.c @@ -156,7 +156,7 @@ mlx5e_post_meter_rate_rules_create(struct mlx5e_priv *priv, struct mlx5_flow_spec *spec; int err; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -402,7 +402,7 @@ mlx5e_post_meter_init(struct mlx5e_priv *priv, struct mlx5e_post_meter_priv *post_meter; int err; - post_meter = kzalloc(sizeof(*post_meter), GFP_KERNEL); + post_meter = kzalloc_obj(*post_meter, GFP_KERNEL); if (!post_meter) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/sample.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/sample.c index 5db239cae814..938961520f6c 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/sample.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/sample.c @@ -183,7 +183,7 @@ sampler_get(struct mlx5e_tc_psample *tc_psample, u32 sample_ratio, u32 default_t sample_ratio, default_table_id)) goto add_ref; - sampler = kzalloc(sizeof(*sampler), GFP_KERNEL); + sampler = kzalloc_obj(*sampler, GFP_KERNEL); if (!sampler) { err = -ENOMEM; goto err_alloc; @@ -273,7 +273,7 @@ sample_restore_get(struct mlx5e_tc_psample *tc_psample, u32 obj_id, if (restore->obj_id == obj_id) goto add_ref; - restore = kzalloc(sizeof(*restore), GFP_KERNEL); + restore = kzalloc_obj(*restore, GFP_KERNEL); if (!restore) { err = -ENOMEM; goto err_alloc; @@ -485,7 +485,7 @@ mlx5e_tc_sample_offload(struct mlx5e_tc_psample *tc_psample, if (IS_ERR_OR_NULL(tc_psample)) return ERR_PTR(-EOPNOTSUPP); - sample_flow = kzalloc(sizeof(*sample_flow), GFP_KERNEL); + sample_flow = kzalloc_obj(*sample_flow, GFP_KERNEL); if (!sample_flow) return ERR_PTR(-ENOMEM); sample_attr = &attr->sample_attr; @@ -619,7 +619,7 @@ mlx5e_tc_sample_init(struct mlx5_eswitch *esw, struct mlx5e_post_act *post_act) struct mlx5e_tc_psample *tc_psample; int err; - tc_psample = kzalloc(sizeof(*tc_psample), GFP_KERNEL); + tc_psample = kzalloc_obj(*tc_psample, GFP_KERNEL); if (!tc_psample) return ERR_PTR(-ENOMEM); if (IS_ERR_OR_NULL(post_act)) { diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c index fc0e57403d25..2d3654faabfa 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c @@ -812,7 +812,7 @@ mlx5_tc_ct_entry_add_rule(struct mlx5_tc_ct_priv *ct_priv, zone_rule->nat = nat; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -887,7 +887,7 @@ mlx5_tc_ct_entry_update_rule(struct mlx5_tc_ct_priv *ct_priv, struct mlx5_flow_spec *spec; int err; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -1021,7 +1021,7 @@ mlx5_tc_ct_counter_create(struct mlx5_tc_ct_priv *ct_priv) struct mlx5_ct_counter *counter; int ret; - counter = kzalloc(sizeof(*counter), GFP_KERNEL); + counter = kzalloc_obj(*counter, GFP_KERNEL); if (!counter) return ERR_PTR(-ENOMEM); @@ -1219,7 +1219,7 @@ mlx5_tc_ct_block_flow_offload_add(struct mlx5_ct_ft *ft, } spin_unlock_bh(&ct_priv->ht_lock); - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) return -ENOMEM; @@ -1620,7 +1620,7 @@ static int tc_ct_pre_ct_add_rules(struct mlx5_ct_ft *ct_ft, u16 zone; int err; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -1856,7 +1856,7 @@ mlx5_tc_ct_add_ft_cb(struct mlx5_tc_ct_priv *ct_priv, u16 zone, return ft; } - ft = kzalloc(sizeof(*ft), GFP_KERNEL); + ft = kzalloc_obj(*ft, GFP_KERNEL); if (!ft) return ERR_PTR(-ENOMEM); @@ -2298,7 +2298,7 @@ mlx5_tc_ct_init(struct mlx5e_priv *priv, struct mlx5_fs_chains *chains, if (err) goto err_support; - ct_priv = kzalloc(sizeof(*ct_priv), GFP_KERNEL); + ct_priv = kzalloc_obj(*ct_priv, GFP_KERNEL); if (!ct_priv) goto err_alloc; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c index 0735d10f2bac..9a7c6df78640 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c @@ -87,7 +87,7 @@ int mlx5e_tc_set_attr_rx_tun(struct mlx5e_tc_flow *flow, void *daddr, *saddr; u8 ip_version; - tun_attr = kvzalloc(sizeof(*tun_attr), GFP_KERNEL); + tun_attr = kvzalloc_obj(*tun_attr, GFP_KERNEL); if (!tun_attr) return -ENOMEM; @@ -864,7 +864,7 @@ int mlx5e_attach_encap(struct mlx5e_priv *priv, goto attach_flow; } - e = kzalloc(sizeof(*e), GFP_KERNEL); + e = kzalloc_obj(*e, GFP_KERNEL); if (!e) { err = -ENOMEM; goto out_err; @@ -976,7 +976,7 @@ int mlx5e_attach_decap(struct mlx5e_priv *priv, goto found; } - d = kzalloc(sizeof(*d), GFP_KERNEL); + d = kzalloc_obj(*d, GFP_KERNEL); if (!d) { err = -ENOMEM; goto out_err; @@ -1205,7 +1205,7 @@ mlx5e_route_get_create(struct mlx5e_priv *priv, return r; } - r = kzalloc(sizeof(*r), GFP_KERNEL); + r = kzalloc_obj(*r, GFP_KERNEL); if (!r) return ERR_PTR(-ENOMEM); @@ -1251,7 +1251,7 @@ mlx5e_tc_init_fib_work(unsigned long event, struct net_device *ul_dev, gfp_t fla { struct mlx5e_tc_fib_event_data *fib_work; - fib_work = kzalloc(sizeof(*fib_work), flags); + fib_work = kzalloc_obj(*fib_work, flags); if (WARN_ON(!fib_work)) return NULL; @@ -1862,7 +1862,7 @@ struct mlx5e_tc_tun_encap *mlx5e_tc_tun_init(struct mlx5e_priv *priv) struct mlx5e_tc_tun_encap *encap; int err; - encap = kvzalloc(sizeof(*encap), GFP_KERNEL); + encap = kvzalloc_obj(*encap, GFP_KERNEL); if (!encap) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tir.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tir.c index 0b55e77f19c8..e02f04a7b211 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/tir.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tir.c @@ -22,7 +22,7 @@ struct mlx5e_tir_builder *mlx5e_tir_builder_alloc(bool modify) { struct mlx5e_tir_builder *builder; - builder = kvzalloc(sizeof(*builder), GFP_KERNEL); + builder = kvzalloc_obj(*builder, GFP_KERNEL); if (!builder) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c index 5c5360a25c64..52de57d7c7dc 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c @@ -23,8 +23,8 @@ static void mlx5e_xsk_unmap_pool(struct mlx5e_priv *priv, static int mlx5e_xsk_get_pools(struct mlx5e_xsk *xsk) { if (!xsk->pools) { - xsk->pools = kcalloc(MLX5E_MAX_NUM_CHANNELS, - sizeof(*xsk->pools), GFP_KERNEL); + xsk->pools = kzalloc_objs(*xsk->pools, MLX5E_MAX_NUM_CHANNELS, + GFP_KERNEL); if (unlikely(!xsk->pools)) return -ENOMEM; } diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c index 5981c71cae2d..bd0cf822cea9 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c @@ -123,7 +123,7 @@ int mlx5e_open_xsk(struct mlx5e_priv *priv, struct mlx5e_params *params, if (!mlx5e_validate_xsk_param(params, xsk, priv->mdev)) return -EINVAL; - cparam = kvzalloc(sizeof(*cparam), GFP_KERNEL); + cparam = kvzalloc_obj(*cparam, GFP_KERNEL); if (!cparam) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c index 1febdc5b81f9..64fe7921f380 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c @@ -82,7 +82,7 @@ struct mlx5_flow_handle *mlx5e_accel_fs_add_sk(struct mlx5e_flow_steering *fs, struct mlx5_flow_handle *flow; struct mlx5_flow_spec *spec; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return ERR_PTR(-ENOMEM); @@ -186,7 +186,7 @@ static int accel_fs_tcp_create_groups(struct mlx5e_flow_table *ft, int err; u8 *mc; - ft->g = kcalloc(MLX5E_ACCEL_FS_TCP_NUM_GROUPS, sizeof(*ft->g), GFP_KERNEL); + ft->g = kzalloc_objs(*ft->g, MLX5E_ACCEL_FS_TCP_NUM_GROUPS, GFP_KERNEL); in = kvzalloc(inlen, GFP_KERNEL); if (!in || !ft->g) { kfree(ft->g); @@ -378,7 +378,7 @@ int mlx5e_accel_fs_tcp_create(struct mlx5e_flow_steering *fs) if (!MLX5_CAP_FLOWTABLE_NIC_RX(mlx5e_fs_get_mdev(fs), ft_field_support.outer_ip_version)) return -EOPNOTSUPP; - accel_tcp = kzalloc(sizeof(*accel_tcp), GFP_KERNEL); + accel_tcp = kzalloc_obj(*accel_tcp, GFP_KERNEL); if (!accel_tcp) return -ENOMEM; mlx5e_fs_set_accel_tcp(fs, accel_tcp); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c index 9c7064187ed0..6ae17d24e64d 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c @@ -712,21 +712,20 @@ static int mlx5_ipsec_create_work(struct mlx5e_ipsec_sa_entry *sa_entry) break; } - work = kzalloc(sizeof(*work), GFP_KERNEL); + work = kzalloc_obj(*work, GFP_KERNEL); if (!work) return -ENOMEM; switch (x->xso.type) { case XFRM_DEV_OFFLOAD_CRYPTO: - data = kzalloc(sizeof(*sa_entry), GFP_KERNEL); + data = kzalloc_obj(*sa_entry, GFP_KERNEL); if (!data) goto free_work; INIT_WORK(&work->work, mlx5e_ipsec_modify_state); break; case XFRM_DEV_OFFLOAD_PACKET: - data = kzalloc(sizeof(struct mlx5e_ipsec_netevent_data), - GFP_KERNEL); + data = kzalloc_obj(struct mlx5e_ipsec_netevent_data, GFP_KERNEL); if (!data) goto free_work; @@ -760,7 +759,7 @@ static int mlx5e_ipsec_create_dwork(struct mlx5e_ipsec_sa_entry *sa_entry) x->lft.hard_byte_limit == XFRM_INF) return 0; - dwork = kzalloc(sizeof(*dwork), GFP_KERNEL); + dwork = kzalloc_obj(*dwork, GFP_KERNEL); if (!dwork) return -ENOMEM; @@ -787,7 +786,7 @@ static int mlx5e_xfrm_add_state(struct net_device *dev, ipsec = priv->ipsec; gfp = (x->xso.flags & XFRM_DEV_OFFLOAD_FLAG_ACQ) ? GFP_ATOMIC : GFP_KERNEL; - sa_entry = kzalloc(sizeof(*sa_entry), gfp); + sa_entry = kzalloc_obj(*sa_entry, gfp); if (!sa_entry) return -ENOMEM; @@ -989,7 +988,7 @@ void mlx5e_ipsec_init(struct mlx5e_priv *priv) return; } - ipsec = kzalloc(sizeof(*ipsec), GFP_KERNEL); + ipsec = kzalloc_obj(*ipsec, GFP_KERNEL); if (!ipsec) return; @@ -1277,7 +1276,7 @@ static int mlx5e_xfrm_add_policy(struct xfrm_policy *x, if (err) return err; - pol_entry = kzalloc(sizeof(*pol_entry), GFP_KERNEL); + pol_entry = kzalloc_obj(*pol_entry, GFP_KERNEL); if (!pol_entry) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c index feef86fff4bf..8139772387f1 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c @@ -208,7 +208,7 @@ static int rx_add_rule_drop_auth_trailer(struct mlx5e_ipsec_sa_entry *sa_entry, struct mlx5_flow_spec *spec; int err; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -287,7 +287,7 @@ static int rx_add_rule_drop_replay(struct mlx5e_ipsec_sa_entry *sa_entry, struct struct mlx5_flow_spec *spec; int err; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -347,7 +347,7 @@ static int ipsec_rx_status_drop_all_create(struct mlx5e_ipsec *ipsec, int err = 0; flow_group_in = kvzalloc(inlen, GFP_KERNEL); - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!flow_group_in || !spec) { err = -ENOMEM; goto err_out; @@ -454,7 +454,7 @@ ipsec_rx_status_pass_create(struct mlx5e_ipsec *ipsec, struct mlx5_flow_spec *spec; int err; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return ERR_PTR(-ENOMEM); @@ -554,7 +554,7 @@ static int ipsec_miss_create(struct mlx5_core_dev *mdev, int err = 0; flow_group_in = kvzalloc(inlen, GFP_KERNEL); - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!flow_group_in || !spec) { err = -ENOMEM; goto out; @@ -1226,7 +1226,7 @@ static int ipsec_counter_rule_tx(struct mlx5_core_dev *mdev, struct mlx5e_ipsec_ struct mlx5_flow_spec *spec; int err; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -1962,7 +1962,7 @@ static int rx_add_rule_sa_selector(struct mlx5e_ipsec_sa_entry *sa_entry, struct mlx5_flow_spec *spec; int err = 0; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -2046,7 +2046,7 @@ static int rx_add_rule(struct mlx5e_ipsec_sa_entry *sa_entry) if (IS_ERR(rx)) return PTR_ERR(rx); - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) { err = -ENOMEM; goto err_alloc; @@ -2176,7 +2176,7 @@ static int tx_add_rule(struct mlx5e_ipsec_sa_entry *sa_entry) if (IS_ERR(tx)) return PTR_ERR(tx); - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) { err = -ENOMEM; goto err_alloc; @@ -2267,7 +2267,7 @@ static int tx_add_policy(struct mlx5e_ipsec_pol_entry *pol_entry) if (IS_ERR(ft)) return PTR_ERR(ft); - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) { err = -ENOMEM; goto err_alloc; @@ -2354,7 +2354,7 @@ static int rx_add_policy(struct mlx5e_ipsec_pol_entry *pol_entry) rx = ipsec_rx(pol_entry->ipsec, attrs->addrs.family, attrs->type); - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) { err = -ENOMEM; goto err_alloc; @@ -2434,7 +2434,7 @@ static struct mlx5e_ipsec_fc *ipsec_fs_init_single_counter(struct mlx5_core_dev struct mlx5_fc *counter; int err; - fc = kzalloc(sizeof(*fc), GFP_KERNEL); + fc = kzalloc_obj(*fc, GFP_KERNEL); if (!fc) return ERR_PTR(-ENOMEM); @@ -2778,24 +2778,24 @@ int mlx5e_accel_ipsec_fs_init(struct mlx5e_ipsec *ipsec, if (!ns_esw) return -EOPNOTSUPP; - ipsec->tx_esw = kzalloc(sizeof(*ipsec->tx_esw), GFP_KERNEL); + ipsec->tx_esw = kzalloc_obj(*ipsec->tx_esw, GFP_KERNEL); if (!ipsec->tx_esw) return -ENOMEM; - ipsec->rx_esw = kzalloc(sizeof(*ipsec->rx_esw), GFP_KERNEL); + ipsec->rx_esw = kzalloc_obj(*ipsec->rx_esw, GFP_KERNEL); if (!ipsec->rx_esw) goto err_rx_esw; } - ipsec->tx = kzalloc(sizeof(*ipsec->tx), GFP_KERNEL); + ipsec->tx = kzalloc_obj(*ipsec->tx, GFP_KERNEL); if (!ipsec->tx) goto err_tx; - ipsec->rx_ipv4 = kzalloc(sizeof(*ipsec->rx_ipv4), GFP_KERNEL); + ipsec->rx_ipv4 = kzalloc_obj(*ipsec->rx_ipv4, GFP_KERNEL); if (!ipsec->rx_ipv4) goto err_rx_ipv4; - ipsec->rx_ipv6 = kzalloc(sizeof(*ipsec->rx_ipv6), GFP_KERNEL); + ipsec->rx_ipv6 = kzalloc_obj(*ipsec->rx_ipv6, GFP_KERNEL); if (!ipsec->rx_ipv6) goto err_rx_ipv6; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_offload.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_offload.c index ef7322d381af..14d7a63f752e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_offload.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_offload.c @@ -503,7 +503,7 @@ static int mlx5e_ipsec_event(struct notifier_block *nb, unsigned long event, if (!sa_entry) return NOTIFY_DONE; - work = kmalloc(sizeof(*work), GFP_ATOMIC); + work = kmalloc_obj(*work, GFP_ATOMIC); if (!work) return NOTIFY_DONE; @@ -522,7 +522,7 @@ int mlx5e_ipsec_aso_init(struct mlx5e_ipsec *ipsec) struct device *pdev; int err; - aso = kzalloc(sizeof(*ipsec->aso), GFP_KERNEL); + aso = kzalloc_obj(*ipsec->aso, GFP_KERNEL); if (!aso) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c index 1c2cc2aad2b0..ac348aacdb0d 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c @@ -199,7 +199,7 @@ int mlx5e_ktls_init(struct mlx5e_priv *priv) if (!mlx5e_is_ktls_device(priv->mdev)) return 0; - tls = kzalloc(sizeof(*tls), GFP_KERNEL); + tls = kzalloc_obj(*tls, GFP_KERNEL); if (!tls) return -ENOMEM; tls->mdev = priv->mdev; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c index 5d8fe252799e..47de07467e0c 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c @@ -90,7 +90,7 @@ mlx5e_ktls_rx_resync_create_resp_list(void) { struct mlx5e_ktls_resync_resp *resp_list; - resp_list = kvzalloc(sizeof(*resp_list), GFP_KERNEL); + resp_list = kvzalloc_obj(*resp_list, GFP_KERNEL); if (!resp_list) return ERR_PTR(-ENOMEM); @@ -261,7 +261,7 @@ resync_post_get_progress_params(struct mlx5e_icosq *sq, int err; u16 pi; - buf = kzalloc(sizeof(*buf), GFP_KERNEL); + buf = kzalloc_obj(*buf, GFP_KERNEL); if (unlikely(!buf)) { err = -ENOMEM; goto err_out; @@ -643,7 +643,7 @@ int mlx5e_ktls_add_rx(struct net_device *netdev, struct sock *sk, tls_ctx = tls_get_ctx(sk); priv = netdev_priv(netdev); - priv_rx = kzalloc(sizeof(*priv_rx), GFP_KERNEL); + priv_rx = kzalloc_obj(*priv_rx, GFP_KERNEL); if (unlikely(!priv_rx)) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c index 08f06984407b..b93f7d41a692 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c @@ -196,7 +196,7 @@ mlx5e_tls_priv_tx_init(struct mlx5_core_dev *mdev, struct mlx5e_tls_sw_stats *sw struct mlx5e_ktls_offload_context_tx *priv_tx; int err; - priv_tx = kzalloc(sizeof(*priv_tx), GFP_KERNEL); + priv_tx = kzalloc_obj(*priv_tx, GFP_KERNEL); if (!priv_tx) return ERR_PTR(-ENOMEM); @@ -360,7 +360,7 @@ static struct mlx5e_tls_tx_pool *mlx5e_tls_tx_pool_init(struct mlx5_core_dev *md BUILD_BUG_ON(MLX5E_TLS_TX_POOL_LOW + MLX5E_TLS_TX_POOL_BULK >= MLX5E_TLS_TX_POOL_HIGH); - pool = kvzalloc(sizeof(*pool), GFP_KERNEL); + pool = kvzalloc_obj(*pool, GFP_KERNEL); if (!pool) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c index 90b3bc5f9166..14db0a2af406 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c @@ -165,7 +165,7 @@ static int mlx5e_macsec_aso_reg_mr(struct mlx5_core_dev *mdev, struct mlx5e_macs dma_addr_t dma_addr; int err; - umr = kzalloc(sizeof(*umr), GFP_KERNEL); + umr = kzalloc_obj(*umr, GFP_KERNEL); if (!umr) { err = -ENOMEM; return err; @@ -530,7 +530,7 @@ static int mlx5e_macsec_add_txsa(struct macsec_context *ctx) goto out; } - tx_sa = kzalloc(sizeof(*tx_sa), GFP_KERNEL); + tx_sa = kzalloc_obj(*tx_sa, GFP_KERNEL); if (!tx_sa) { err = -ENOMEM; goto out; @@ -701,13 +701,13 @@ static int mlx5e_macsec_add_rxsc(struct macsec_context *ctx) goto out; } - rx_sc = kzalloc(sizeof(*rx_sc), GFP_KERNEL); + rx_sc = kzalloc_obj(*rx_sc, GFP_KERNEL); if (!rx_sc) { err = -ENOMEM; goto out; } - sc_xarray_element = kzalloc(sizeof(*sc_xarray_element), GFP_KERNEL); + sc_xarray_element = kzalloc_obj(*sc_xarray_element, GFP_KERNEL); if (!sc_xarray_element) { err = -ENOMEM; goto destroy_rx_sc; @@ -912,7 +912,7 @@ static int mlx5e_macsec_add_rxsa(struct macsec_context *ctx) goto out; } - rx_sa = kzalloc(sizeof(*rx_sa), GFP_KERNEL); + rx_sa = kzalloc_obj(*rx_sa, GFP_KERNEL); if (!rx_sa) { err = -ENOMEM; goto out; @@ -1093,7 +1093,7 @@ static int mlx5e_macsec_add_secy(struct macsec_context *ctx) goto out; } - macsec_device = kzalloc(sizeof(*macsec_device), GFP_KERNEL); + macsec_device = kzalloc_obj(*macsec_device, GFP_KERNEL); if (!macsec_device) { err = -ENOMEM; goto out; @@ -1565,7 +1565,7 @@ static int macsec_obj_change_event(struct notifier_block *nb, unsigned long even if (obj_type != MLX5_GENERAL_OBJECT_TYPES_MACSEC) return NOTIFY_DONE; - async_work = kzalloc(sizeof(*async_work), GFP_ATOMIC); + async_work = kzalloc_obj(*async_work, GFP_ATOMIC); if (!async_work) return NOTIFY_DONE; @@ -1730,7 +1730,7 @@ int mlx5e_macsec_init(struct mlx5e_priv *priv) return 0; } - macsec = kzalloc(sizeof(*macsec), GFP_KERNEL); + macsec = kzalloc_obj(*macsec, GFP_KERNEL); if (!macsec) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/psp.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/psp.c index 9a74438ce10a..ea250eecbed1 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/psp.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/psp.c @@ -142,7 +142,7 @@ static int accel_psp_fs_rx_err_add_rule(struct mlx5e_psp_fs *fs, struct mlx5_flow_spec *spec; int err = 0; - spec = kzalloc(sizeof(*spec), GFP_KERNEL); + spec = kzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -344,7 +344,7 @@ static int accel_psp_fs_rx_create_ft(struct mlx5e_psp_fs *fs, int err = 0; flow_group_in = kvzalloc(inlen, GFP_KERNEL); - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!flow_group_in || !spec) { err = -ENOMEM; goto out; @@ -560,7 +560,7 @@ static int accel_psp_fs_init_rx(struct mlx5e_psp_fs *fs) enum accel_fs_psp_type i; int err; - accel_psp = kzalloc(sizeof(*accel_psp), GFP_KERNEL); + accel_psp = kzalloc_obj(*accel_psp, GFP_KERNEL); if (!accel_psp) return -ENOMEM; @@ -686,7 +686,7 @@ static int accel_psp_fs_tx_create_ft_table(struct mlx5e_psp_fs *fs) struct mlx5_flow_group *fg; int err = 0; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); in = kvzalloc(inlen, GFP_KERNEL); if (!spec || !in) { err = -ENOMEM; @@ -815,7 +815,7 @@ static int accel_psp_fs_init_tx(struct mlx5e_psp_fs *fs) if (!ns) return -EOPNOTSUPP; - tx_fs = kzalloc(sizeof(*tx_fs), GFP_KERNEL); + tx_fs = kzalloc_obj(*tx_fs, GFP_KERNEL); if (!tx_fs) return -ENOMEM; @@ -896,7 +896,7 @@ static struct mlx5e_psp_fs *mlx5e_accel_psp_fs_init(struct mlx5e_priv *priv) struct mlx5e_psp_fs *fs; int err = 0; - fs = kzalloc(sizeof(*fs), GFP_KERNEL); + fs = kzalloc_obj(*fs, GFP_KERNEL); if (!fs) return ERR_PTR(-ENOMEM); @@ -1127,7 +1127,7 @@ int mlx5e_psp_init(struct mlx5e_priv *priv) return 0; } - psp = kzalloc(sizeof(*psp), GFP_KERNEL); + psp = kzalloc_obj(*psp, GFP_KERNEL); if (!psp) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c b/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c index 93cf23278d93..dbe824a62f22 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c @@ -260,8 +260,7 @@ static int arfs_create_groups(struct mlx5e_flow_table *ft, int err; u8 *mc; - ft->g = kcalloc(MLX5E_ARFS_NUM_GROUPS, - sizeof(*ft->g), GFP_KERNEL); + ft->g = kzalloc_objs(*ft->g, MLX5E_ARFS_NUM_GROUPS, GFP_KERNEL); if (!ft->g) return -ENOMEM; @@ -392,7 +391,7 @@ int mlx5e_arfs_create_tables(struct mlx5e_flow_steering *fs, if (!ntuple) return 0; - arfs = kvzalloc(sizeof(*arfs), GFP_KERNEL); + arfs = kvzalloc_obj(*arfs, GFP_KERNEL); if (!arfs) return -ENOMEM; @@ -523,7 +522,7 @@ static struct mlx5_flow_handle *arfs_add_rule(struct mlx5e_priv *priv, struct mlx5_flow_table *ft; int err = 0; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) { priv->channel_stats[arfs_rule->rxq]->rq.arfs_err++; err = -ENOMEM; @@ -662,7 +661,7 @@ static struct arfs_rule *arfs_alloc_rule(struct mlx5e_priv *priv, struct arfs_rule *rule; struct arfs_tuple *tuple; - rule = kzalloc(sizeof(*rule), GFP_ATOMIC); + rule = kzalloc_obj(*rule, GFP_ATOMIC); if (!rule) { priv->channel_stats[rxq]->rq.arfs_err++; return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_common.c b/drivers/net/ethernet/mellanox/mlx5/core/en_common.c index 5a2ac7b6f260..5da0a13d92f1 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_common.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_common.c @@ -179,7 +179,7 @@ int mlx5e_create_mdev_resources(struct mlx5_core_dev *mdev, bool create_tises) num_doorbells = min(mlx5e_get_devlink_param_num_doorbells(mdev), mlx5e_get_max_num_channels(mdev)); - res->bfregs = kcalloc(num_doorbells, sizeof(*res->bfregs), GFP_KERNEL); + res->bfregs = kzalloc_objs(*res->bfregs, num_doorbells, GFP_KERNEL); if (!res->bfregs) { err = -ENOMEM; goto err_destroy_mkey; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c index 8928d2dcd43f..1dd5f916597b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c @@ -128,7 +128,7 @@ static void mlx5e_add_l2_to_hash(struct hlist_head *hash, const u8 *addr) return; } - hn = kzalloc(sizeof(*hn), GFP_ATOMIC); + hn = kzalloc_obj(*hn, GFP_ATOMIC); if (!hn) return; @@ -295,7 +295,7 @@ static int mlx5e_add_vlan_rule(struct mlx5e_flow_steering *fs, struct mlx5_flow_spec *spec; int err = 0; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -372,7 +372,7 @@ mlx5e_add_trap_rule(struct mlx5_flow_table *ft, int trap_id, int tir_num) struct mlx5_flow_handle *rule; struct mlx5_flow_spec *spec; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return ERR_PTR(-ENOMEM); spec->flow_context.flags |= FLOW_CONTEXT_HAS_TAG; @@ -754,7 +754,7 @@ static int mlx5e_add_promisc_rule(struct mlx5e_flow_steering *fs) struct mlx5_flow_spec *spec; int err = 0; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; dest.type = MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE; @@ -984,7 +984,7 @@ static int mlx5e_add_l2_flow_rule(struct mlx5e_flow_steering *fs, u8 *mc_dmac; u8 *mv_dmac; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -1039,7 +1039,7 @@ static int mlx5e_create_l2_table_groups(struct mlx5e_l2_table *l2_table) int err; u8 *mc; - ft->g = kcalloc(MLX5E_NUM_L2_GROUPS, sizeof(*ft->g), GFP_KERNEL); + ft->g = kzalloc_objs(*ft->g, MLX5E_NUM_L2_GROUPS, GFP_KERNEL); if (!ft->g) return -ENOMEM; in = kvzalloc(inlen, GFP_KERNEL); @@ -1251,7 +1251,7 @@ static int mlx5e_fs_create_vlan_table(struct mlx5e_flow_steering *fs) if (IS_ERR(ft->t)) return PTR_ERR(ft->t); - ft->g = kcalloc(MLX5E_NUM_VLAN_GROUPS, sizeof(*ft->g), GFP_KERNEL); + ft->g = kzalloc_objs(*ft->g, MLX5E_NUM_VLAN_GROUPS, GFP_KERNEL); if (!ft->g) { err = -ENOMEM; goto err_destroy_vlan_table; @@ -1394,7 +1394,7 @@ void mlx5e_destroy_flow_steering(struct mlx5e_flow_steering *fs, bool ntuple, static int mlx5e_fs_vlan_alloc(struct mlx5e_flow_steering *fs) { - fs->vlan = kvzalloc(sizeof(*fs->vlan), GFP_KERNEL); + fs->vlan = kvzalloc_obj(*fs->vlan, GFP_KERNEL); if (!fs->vlan) return -ENOMEM; return 0; @@ -1466,7 +1466,7 @@ struct mlx5e_flow_steering *mlx5e_fs_init(const struct mlx5e_profile *profile, struct mlx5e_flow_steering *fs; int err; - fs = kvzalloc(sizeof(*fs), GFP_KERNEL); + fs = kvzalloc_obj(*fs, GFP_KERNEL); if (!fs) goto err; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c index 63bdef5b4ba5..d01636af3d02 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c @@ -465,7 +465,7 @@ add_ethtool_flow_rule(struct mlx5e_priv *priv, struct mlx5_flow_spec *spec; int err = 0; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return ERR_PTR(-ENOMEM); err = set_flow_attrs(spec->match_criteria, spec->match_value, @@ -476,7 +476,7 @@ add_ethtool_flow_rule(struct mlx5e_priv *priv, if (fs->ring_cookie == RX_CLS_FLOW_DISC) { flow_act.action = MLX5_FLOW_CONTEXT_ACTION_DROP; } else { - dst = kzalloc(sizeof(*dst), GFP_KERNEL); + dst = kzalloc_obj(*dst, GFP_KERNEL); if (!dst) { err = -ENOMEM; goto free; @@ -541,7 +541,7 @@ static struct mlx5e_ethtool_rule *get_ethtool_rule(struct mlx5e_priv *priv, if (eth_rule) del_ethtool_rule(priv->fs, eth_rule); - eth_rule = kzalloc(sizeof(*eth_rule), GFP_KERNEL); + eth_rule = kzalloc_obj(*eth_rule, GFP_KERNEL); if (!eth_rule) return ERR_PTR(-ENOMEM); @@ -836,7 +836,7 @@ mlx5e_ethtool_get_all_flows(struct mlx5e_priv *priv, int mlx5e_ethtool_alloc(struct mlx5e_ethtool_steering **ethtool) { - *ethtool = kvzalloc(sizeof(**ethtool), GFP_KERNEL); + *ethtool = kvzalloc_obj(**ethtool, GFP_KERNEL); if (!*ethtool) return -ENOMEM; return 0; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index 7eb691c2a1bd..41edda3d0c70 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -2791,7 +2791,7 @@ static int mlx5e_open_channel(struct mlx5e_priv *priv, int ix, return err; c = kvzalloc_node(sizeof(*c), GFP_KERNEL, cpu_to_node(cpu)); - cparam = kvzalloc(sizeof(*cparam), GFP_KERNEL); + cparam = kvzalloc_obj(*cparam, GFP_KERNEL); if (!c || !cparam) { err = -ENOMEM; goto err_free; @@ -2911,7 +2911,7 @@ int mlx5e_open_channels(struct mlx5e_priv *priv, chs->num = chs->params.num_channels; - chs->c = kcalloc(chs->num, sizeof(struct mlx5e_channel *), GFP_KERNEL); + chs->c = kzalloc_objs(struct mlx5e_channel *, chs->num, GFP_KERNEL); if (!chs->c) goto err_out; @@ -3415,8 +3415,8 @@ int mlx5e_safe_switch_params(struct mlx5e_priv *priv, if (!reset) return mlx5e_switch_priv_params(priv, params, preactivate, context); - old_chs = kzalloc(sizeof(*old_chs), GFP_KERNEL); - new_chs = kzalloc(sizeof(*new_chs), GFP_KERNEL); + old_chs = kzalloc_obj(*old_chs, GFP_KERNEL); + new_chs = kzalloc_obj(*new_chs, GFP_KERNEL); if (!old_chs || !new_chs) { err = -ENOMEM; goto err_free_chs; @@ -6258,8 +6258,8 @@ int mlx5e_priv_init(struct mlx5e_priv *priv, if (!priv->channel_stats) goto err_free_tx_rates; - priv->fec_ranges = kcalloc(ETHTOOL_FEC_HIST_MAX, - sizeof(*priv->fec_ranges), GFP_KERNEL); + priv->fec_ranges = kzalloc_objs(*priv->fec_ranges, ETHTOOL_FEC_HIST_MAX, + GFP_KERNEL); if (!priv->fec_ranges) goto err_free_channel_stats; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c index 6eec88fa6d10..b0bc37669305 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c @@ -476,7 +476,7 @@ static int mlx5e_sqs2vport_add_peers_rules(struct mlx5_eswitch *esw, struct mlx5 struct mlx5e_rep_sq_peer *sq_peer; int err; - sq_peer = kzalloc(sizeof(*sq_peer), GFP_KERNEL); + sq_peer = kzalloc_obj(*sq_peer, GFP_KERNEL); if (!sq_peer) return -ENOMEM; @@ -521,7 +521,7 @@ static int mlx5e_sqs2vport_start(struct mlx5_eswitch *esw, devcom_locked = true; for (i = 0; i < sqns_num; i++) { - rep_sq = kzalloc(sizeof(*rep_sq), GFP_KERNEL); + rep_sq = kzalloc_obj(*rep_sq, GFP_KERNEL); if (!rep_sq) { err = -ENOMEM; goto out_err; @@ -1621,7 +1621,7 @@ mlx5e_vport_rep_load(struct mlx5_core_dev *dev, struct mlx5_eswitch_rep *rep) struct mlx5e_rep_priv *rpriv; int err; - rpriv = kvzalloc(sizeof(*rpriv), GFP_KERNEL); + rpriv = kvzalloc_obj(*rpriv, GFP_KERNEL); if (!rpriv) return -ENOMEM; @@ -1731,7 +1731,7 @@ static int mlx5e_vport_rep_event_pair(struct mlx5_eswitch *esw, sq_peer->peer = peer_esw; continue; } - sq_peer = kzalloc(sizeof(*sq_peer), GFP_KERNEL); + sq_peer = kzalloc_obj(*sq_peer, GFP_KERNEL); if (!sq_peer) { err = -ENOMEM; goto err_sq_alloc; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c b/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c index fcad464bc4d5..4066778f702d 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c @@ -270,7 +270,7 @@ static int mlx5e_test_loopback(struct mlx5e_priv *priv) return -ENODEV; } - lbtp = kzalloc(sizeof(*lbtp), GFP_KERNEL); + lbtp = kzalloc_obj(*lbtp, GFP_KERNEL); if (!lbtp) return -ENOMEM; lbtp->loopback_ok = false; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c index 424786f489ec..761cfd2d95f1 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c @@ -153,7 +153,7 @@ struct mlx5e_tc_table *mlx5e_tc_table_alloc(void) { struct mlx5e_tc_table *tc; - tc = kvzalloc(sizeof(*tc), GFP_KERNEL); + tc = kvzalloc_obj(*tc, GFP_KERNEL); return tc ? tc : ERR_PTR(-ENOMEM); } @@ -905,7 +905,7 @@ mlx5e_hairpin_create(struct mlx5e_priv *priv, struct mlx5_hairpin_params *params struct mlx5_hairpin *pair; int err; - hp = kzalloc(sizeof(*hp), GFP_KERNEL); + hp = kzalloc_obj(*hp, GFP_KERNEL); if (!hp) return ERR_PTR(-ENOMEM); @@ -1139,7 +1139,7 @@ static int mlx5e_hairpin_flow_add(struct mlx5e_priv *priv, goto attach_flow; } - hpe = kzalloc(sizeof(*hpe), GFP_KERNEL); + hpe = kzalloc_obj(*hpe, GFP_KERNEL); if (!hpe) { mutex_unlock(&tc->hairpin_tbl_lock); return -ENOMEM; @@ -1794,7 +1794,7 @@ extra_split_attr_dests(struct mlx5e_tc_flow *flow, return PTR_ERR(post_act); attr2 = mlx5_alloc_flow_attr(mlx5e_get_flow_namespace(flow)); - parse_attr2 = kvzalloc(sizeof(*parse_attr), GFP_KERNEL); + parse_attr2 = kvzalloc_obj(*parse_attr, GFP_KERNEL); if (!attr2 || !parse_attr2) { err = -ENOMEM; goto err_free; @@ -2570,7 +2570,7 @@ static int parse_tunnel_attr(struct mlx5e_priv *priv, } else if (tunnel) { struct mlx5_flow_spec *tmp_spec; - tmp_spec = kvzalloc(sizeof(*tmp_spec), GFP_KERNEL); + tmp_spec = kvzalloc_obj(*tmp_spec, GFP_KERNEL); if (!tmp_spec) { NL_SET_ERR_MSG_MOD(extack, "Failed to allocate memory for tunnel tmp spec"); netdev_warn(priv->netdev, "Failed to allocate memory for tunnel tmp spec"); @@ -3671,7 +3671,7 @@ mlx5e_clone_flow_attr_for_post_act(struct mlx5_flow_attr *attr, struct mlx5_flow_attr *attr2; attr2 = mlx5_alloc_flow_attr(ns_type); - parse_attr = kvzalloc(sizeof(*parse_attr), GFP_KERNEL); + parse_attr = kvzalloc_obj(*parse_attr, GFP_KERNEL); if (!attr2 || !parse_attr) { kvfree(parse_attr); kfree(attr2); @@ -4448,8 +4448,8 @@ mlx5e_alloc_flow(struct mlx5e_priv *priv, int attr_size, int err = -ENOMEM; int out_index; - flow = kzalloc(sizeof(*flow), GFP_KERNEL); - parse_attr = kvzalloc(sizeof(*parse_attr), GFP_KERNEL); + flow = kzalloc_obj(*flow, GFP_KERNEL); + parse_attr = kvzalloc_obj(*parse_attr, GFP_KERNEL); if (!parse_attr || !flow) goto err_free; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eq.c b/drivers/net/ethernet/mellanox/mlx5/core/eq.c index 25499da177bc..cc679500b3dc 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eq.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eq.c @@ -881,7 +881,7 @@ static int comp_irq_request_sf(struct mlx5_core_dev *dev, u16 vecidx) if (!mlx5_irq_pool_is_sf_pool(pool)) return comp_irq_request_pci(dev, vecidx); - af_desc = kvzalloc(sizeof(*af_desc), GFP_KERNEL); + af_desc = kvzalloc_obj(*af_desc, GFP_KERNEL); if (!af_desc) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.c index 3ce455c2535c..a95d12860fed 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.c @@ -58,7 +58,7 @@ int esw_egress_acl_vlan_create(struct mlx5_eswitch *esw, if (vport->egress.allowed_vlan) return -EEXIST; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_lgcy.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_lgcy.c index 49a637829c59..f8ca68ea685e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_lgcy.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_lgcy.c @@ -200,7 +200,7 @@ int esw_acl_ingress_lgcy_setup(struct mlx5_eswitch *esw, "vport[%d] configure ingress rules, vlan(%d) qos(%d)\n", vport->vport, vport->info.vlan, vport->info.qos); - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) { err = -ENOMEM; goto out; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_ofld.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_ofld.c index a436ce895e45..4ffaa7b4b5b1 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_ofld.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_ofld.c @@ -29,7 +29,7 @@ static int esw_acl_ingress_prio_tag_create(struct mlx5_eswitch *esw, * required, allow * Unmatched traffic is allowed by default */ - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.c index 60e10047770f..b9e9505ff76e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.c @@ -586,7 +586,7 @@ mlx5_esw_bridge_ingress_flow_with_esw_create(u16 vport_num, const unsigned char struct mlx5_flow_handle *handle; u8 *smac_v, *smac_c; - rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL); + rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL); if (!rule_spec) return ERR_PTR(-ENOMEM); @@ -700,7 +700,7 @@ mlx5_esw_bridge_ingress_filter_flow_create(u16 vport_num, const unsigned char *a struct mlx5_flow_handle *handle; u8 *smac_v, *smac_c; - rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL); + rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL); if (!rule_spec) return ERR_PTR(-ENOMEM); @@ -753,7 +753,7 @@ mlx5_esw_bridge_egress_flow_create(u16 vport_num, u16 esw_owner_vhca_id, const u struct mlx5_flow_handle *handle; u8 *dmac_v, *dmac_c; - rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL); + rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL); if (!rule_spec) return ERR_PTR(-ENOMEM); @@ -821,7 +821,7 @@ mlx5_esw_bridge_egress_miss_flow_create(struct mlx5_flow_table *egress_ft, struct mlx5_flow_spec *rule_spec; struct mlx5_flow_handle *handle; - rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL); + rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL); if (!rule_spec) return ERR_PTR(-ENOMEM); @@ -844,7 +844,7 @@ static struct mlx5_esw_bridge *mlx5_esw_bridge_create(struct net_device *br_netd struct mlx5_esw_bridge *bridge; int err; - bridge = kvzalloc(sizeof(*bridge), GFP_KERNEL); + bridge = kvzalloc_obj(*bridge, GFP_KERNEL); if (!bridge) return ERR_PTR(-ENOMEM); @@ -1179,7 +1179,7 @@ mlx5_esw_bridge_vlan_create(u16 vlan_proto, u16 vid, u16 flags, struct mlx5_esw_ struct mlx5_esw_bridge_vlan *vlan; int err; - vlan = kvzalloc(sizeof(*vlan), GFP_KERNEL); + vlan = kvzalloc_obj(*vlan, GFP_KERNEL); if (!vlan) return ERR_PTR(-ENOMEM); @@ -1365,7 +1365,7 @@ mlx5_esw_bridge_fdb_entry_init(struct net_device *dev, u16 vport_num, u16 esw_ow if (entry) mlx5_esw_bridge_fdb_entry_notify_and_cleanup(entry, bridge); - entry = kvzalloc(sizeof(*entry), GFP_KERNEL); + entry = kvzalloc_obj(*entry, GFP_KERNEL); if (!entry) return ERR_PTR(-ENOMEM); @@ -1550,7 +1550,7 @@ static int mlx5_esw_bridge_vport_init(u16 vport_num, u16 esw_owner_vhca_id, u16 struct mlx5_esw_bridge_port *port; int err; - port = kvzalloc(sizeof(*port), GFP_KERNEL); + port = kvzalloc_obj(*port, GFP_KERNEL); if (!port) return -ENOMEM; @@ -1924,7 +1924,7 @@ struct mlx5_esw_bridge_offloads *mlx5_esw_bridge_init(struct mlx5_eswitch *esw) ASSERT_RTNL(); - br_offloads = kvzalloc(sizeof(*br_offloads), GFP_KERNEL); + br_offloads = kvzalloc_obj(*br_offloads, GFP_KERNEL); if (!br_offloads) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge_mcast.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge_mcast.c index 22dd30cf8033..15e5a05f5dd8 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge_mcast.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge_mcast.c @@ -65,11 +65,11 @@ mlx5_esw_bridge_mdb_flow_create(u16 esw_owner_vhca_id, struct mlx5_esw_bridge_md u8 *dmac_v, *dmac_c; unsigned long idx; - rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL); + rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL); if (!rule_spec) return ERR_PTR(-ENOMEM); - dests = kvcalloc(num_dests, sizeof(*dests), GFP_KERNEL); + dests = kvzalloc_objs(*dests, num_dests, GFP_KERNEL); if (!dests) { kvfree(rule_spec); return ERR_PTR(-ENOMEM); @@ -152,7 +152,7 @@ mlx5_esw_bridge_port_mdb_entry_init(struct mlx5_esw_bridge_port *port, struct mlx5_esw_bridge_mdb_entry *entry; int err; - entry = kvzalloc(sizeof(*entry), GFP_KERNEL); + entry = kvzalloc_obj(*entry, GFP_KERNEL); if (!entry) return ERR_PTR(-ENOMEM); @@ -516,7 +516,7 @@ mlx5_esw_bridge_mcast_flow_with_esw_create(struct mlx5_esw_bridge_port *port, struct mlx5_flow_spec *rule_spec; struct mlx5_flow_handle *handle; - rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL); + rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL); if (!rule_spec) return ERR_PTR(-ENOMEM); @@ -584,7 +584,7 @@ mlx5_esw_bridge_mcast_vlan_flow_create(u16 vlan_proto, struct mlx5_esw_bridge_po struct mlx5_flow_spec *rule_spec; struct mlx5_flow_handle *handle; - rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL); + rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL); if (!rule_spec) return ERR_PTR(-ENOMEM); @@ -656,7 +656,7 @@ mlx5_esw_bridge_mcast_fwd_flow_create(struct mlx5_esw_bridge_port *port) struct mlx5_flow_spec *rule_spec; struct mlx5_flow_handle *handle; - rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL); + rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL); if (!rule_spec) return ERR_PTR(-ENOMEM); @@ -890,7 +890,7 @@ mlx5_esw_bridge_ingress_igmp_fh_create(struct mlx5_flow_table *ingress_ft, struct mlx5_flow_spec *rule_spec; struct mlx5_flow_handle *handle; - rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL); + rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL); if (!rule_spec) return ERR_PTR(-ENOMEM); @@ -922,7 +922,7 @@ mlx5_esw_bridge_ingress_mld_fh_create(u8 type, struct mlx5_flow_table *ingress_f struct mlx5_flow_spec *rule_spec; struct mlx5_flow_handle *handle; - rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL); + rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL); if (!rule_spec) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/devlink_port.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/devlink_port.c index cd60bc500ec5..0b8bb42af33f 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/devlink_port.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/devlink_port.c @@ -70,7 +70,7 @@ int mlx5_esw_offloads_pf_vf_devlink_port_init(struct mlx5_eswitch *esw, if (!mlx5_esw_devlink_port_supported(esw, vport_num)) return 0; - dl_port = kzalloc(sizeof(*dl_port), GFP_KERNEL); + dl_port = kzalloc_obj(*dl_port, GFP_KERNEL); if (!dl_port) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/indir_table.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/indir_table.c index 9959e9fd15a1..1a135c3e48df 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/indir_table.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/indir_table.c @@ -46,7 +46,7 @@ struct mlx5_esw_indir_table { struct mlx5_esw_indir_table * mlx5_esw_indir_table_init(void) { - struct mlx5_esw_indir_table *indir = kvzalloc(sizeof(*indir), GFP_KERNEL); + struct mlx5_esw_indir_table *indir = kvzalloc_obj(*indir, GFP_KERNEL); if (!indir) return ERR_PTR(-ENOMEM); @@ -111,7 +111,7 @@ static int mlx5_esw_indir_table_rule_get(struct mlx5_eswitch *esw, return 0; } - rule = kzalloc(sizeof(*rule), GFP_KERNEL); + rule = kzalloc_obj(*rule, GFP_KERNEL); if (!rule) return -ENOMEM; @@ -258,7 +258,7 @@ mlx5_esw_indir_table_entry_create(struct mlx5_eswitch *esw, struct mlx5_flow_att if (!root_ns) return ERR_PTR(-ENOENT); - e = kzalloc(sizeof(*e), GFP_KERNEL); + e = kzalloc_obj(*e, GFP_KERNEL); if (!e) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c index 929adeb50a98..0ee931bca98b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c @@ -259,7 +259,7 @@ static int _mlx5_eswitch_set_vepa_locked(struct mlx5_eswitch *esw, if (err) return err; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) { err = -ENOMEM; goto out; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c index 4278bcb04c72..2f9e59790584 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c @@ -38,7 +38,7 @@ static struct mlx5_qos_domain *esw_qos_domain_alloc(void) { struct mlx5_qos_domain *qos_domain; - qos_domain = kzalloc(sizeof(*qos_domain), GFP_KERNEL); + qos_domain = kzalloc_obj(*qos_domain, GFP_KERNEL); if (!qos_domain) return NULL; @@ -518,7 +518,7 @@ __esw_qos_alloc_node(struct mlx5_eswitch *esw, u32 tsar_ix, enum sched_node_type { struct mlx5_esw_sched_node *node; - node = kzalloc(sizeof(*node), GFP_KERNEL); + node = kzalloc_obj(*node, GFP_KERNEL); if (!node) return NULL; @@ -916,9 +916,8 @@ esw_qos_create_vport_tc_sched_elements(struct mlx5_vport *vport, int err, num_tcs = esw_qos_num_tcs(vport_node->esw->dev); u32 rate_limit_elem_ix; - vport->qos.sched_nodes = kcalloc(num_tcs, - sizeof(struct mlx5_esw_sched_node *), - GFP_KERNEL); + vport->qos.sched_nodes = kzalloc_objs(struct mlx5_esw_sched_node *, + num_tcs, GFP_KERNEL); if (!vport->qos.sched_nodes) { NL_SET_ERR_MSG_MOD(extack, "Allocating the vport TC scheduling elements failed."); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/vporttbl.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/vporttbl.c index 407062096a82..5628182faf57 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/vporttbl.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/vporttbl.c @@ -96,7 +96,7 @@ mlx5_esw_vporttbl_get(struct mlx5_eswitch *esw, struct mlx5_vport_tbl_attr *attr goto out; } - e = kzalloc(sizeof(*e), GFP_KERNEL); + e = kzalloc_obj(*e, GFP_KERNEL); if (!e) { fdb = ERR_PTR(-ENOMEM); goto err_alloc; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c index 5fbfabe28bdb..d31a74ae1dd7 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c @@ -221,7 +221,7 @@ __esw_fdb_set_vport_rule(struct mlx5_eswitch *esw, u16 vport, bool rx_rule, if (rx_rule) match_header |= MLX5_MATCH_MISC_PARAMETERS; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return NULL; @@ -1862,7 +1862,7 @@ int mlx5_esw_vport_alloc(struct mlx5_eswitch *esw, int index, u16 vport_num) struct mlx5_vport *vport; int err; - vport = kzalloc(sizeof(*vport), GFP_KERNEL); + vport = kzalloc_obj(*vport, GFP_KERNEL); if (!vport) return -ENOMEM; @@ -2022,7 +2022,7 @@ int mlx5_eswitch_init(struct mlx5_core_dev *dev) if (!MLX5_VPORT_MANAGER(dev) && !MLX5_ESWITCH_MANAGER(dev)) return 0; - esw = kzalloc(sizeof(*esw), GFP_KERNEL); + esw = kzalloc_obj(*esw, GFP_KERNEL); if (!esw) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c index 1b439cef3719..1693f2dd5d6a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c @@ -680,7 +680,7 @@ mlx5_eswitch_add_offloaded_rule(struct mlx5_eswitch *esw, if (!esw_flow_dests_fwd_ipsec_check(esw, esw_attr)) return ERR_PTR(-EOPNOTSUPP); - dest = kcalloc(MLX5_MAX_FLOW_FWD_VPORTS + 1, sizeof(*dest), GFP_KERNEL); + dest = kzalloc_objs(*dest, MLX5_MAX_FLOW_FWD_VPORTS + 1, GFP_KERNEL); if (!dest) return ERR_PTR(-ENOMEM); @@ -808,7 +808,7 @@ mlx5_eswitch_add_fwd_rule(struct mlx5_eswitch *esw, struct mlx5_flow_handle *rule; int i, err = 0; - dest = kcalloc(MLX5_MAX_FLOW_FWD_VPORTS + 1, sizeof(*dest), GFP_KERNEL); + dest = kzalloc_objs(*dest, MLX5_MAX_FLOW_FWD_VPORTS + 1, GFP_KERNEL); if (!dest) return ERR_PTR(-ENOMEM); @@ -947,7 +947,7 @@ mlx5_eswitch_add_send_to_vport_rule(struct mlx5_eswitch *on_esw, void *misc; u16 vport; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) { flow_rule = ERR_PTR(-ENOMEM); goto out; @@ -1044,7 +1044,7 @@ mlx5_eswitch_add_send_to_vport_meta_rule(struct mlx5_eswitch *esw, u16 vport_num struct mlx5_flow_handle *flow_rule; struct mlx5_flow_spec *spec; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return ERR_PTR(-ENOMEM); @@ -1198,13 +1198,13 @@ static int esw_add_fdb_peer_miss_rules(struct mlx5_eswitch *esw, !mlx5_core_is_ecpf_esw_manager(peer_dev)) return 0; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; peer_miss_rules_setup(esw, peer_dev, spec, &dest); - flows = kvcalloc(peer_esw->total_vports, sizeof(*flows), GFP_KERNEL); + flows = kvzalloc_objs(*flows, peer_esw->total_vports, GFP_KERNEL); if (!flows) { err = -ENOMEM; goto alloc_flows_err; @@ -1368,7 +1368,7 @@ static int esw_add_fdb_miss_rule(struct mlx5_eswitch *esw) u8 *dmac_c; u8 *dmac_v; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) { err = -ENOMEM; goto out; @@ -1430,7 +1430,7 @@ esw_add_restore_rule(struct mlx5_eswitch *esw, u32 tag) if (!mlx5_eswitch_reg_c1_loopback_supported(esw)) return ERR_PTR(-EOPNOTSUPP); - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return ERR_PTR(-ENOMEM); @@ -2148,7 +2148,7 @@ mlx5_eswitch_create_vport_rx_rule(struct mlx5_eswitch *esw, u16 vport, struct mlx5_flow_handle *flow_rule; struct mlx5_flow_spec *spec; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) { flow_rule = ERR_PTR(-ENOMEM); goto out; @@ -2525,7 +2525,7 @@ int mlx5_esw_offloads_rep_add(struct mlx5_eswitch *esw, int rep_type; int err; - rep = kzalloc(sizeof(*rep), GFP_KERNEL); + rep = kzalloc_obj(*rep, GFP_KERNEL); if (!rep) return -ENOMEM; @@ -2861,7 +2861,7 @@ static int __esw_set_master_egress_rule(struct mlx5_core_dev *master, int err = 0; void *misc; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -3640,7 +3640,7 @@ int mlx5_esw_funcs_changed_handler(struct notifier_block *nb, unsigned long type struct mlx5_host_work *host_work; struct mlx5_eswitch *esw; - host_work = kzalloc(sizeof(*host_work), GFP_ATOMIC); + host_work = kzalloc_obj(*host_work, GFP_ATOMIC); if (!host_work) return NOTIFY_DONE; @@ -4470,7 +4470,7 @@ int mlx5_esw_vport_vhca_id_map(struct mlx5_eswitch *esw, } vhca_id = vport->vhca_id; - vhca_map_entry = kmalloc(sizeof(*vhca_map_entry), GFP_KERNEL); + vhca_map_entry = kmalloc_obj(*vhca_map_entry, GFP_KERNEL); if (!vhca_map_entry) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c index 40bdc677f051..af82232d53ef 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c @@ -132,7 +132,7 @@ mlx5_eswitch_termtbl_get_create(struct mlx5_eswitch *esw, if (found) goto tt_add_ref; - tt = kzalloc(sizeof(*tt), GFP_KERNEL); + tt = kzalloc_obj(*tt, GFP_KERNEL); if (!tt) { err = -ENOMEM; goto tt_create_err; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/events.c b/drivers/net/ethernet/mellanox/mlx5/core/events.c index 01c5f5990f9a..23ecc8e8a219 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/events.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/events.c @@ -374,7 +374,7 @@ static int forward_event(struct notifier_block *nb, unsigned long event, void *d int mlx5_events_init(struct mlx5_core_dev *dev) { - struct mlx5_events *events = kzalloc(sizeof(*events), GFP_KERNEL); + struct mlx5_events *events = kzalloc_obj(*events, GFP_KERNEL); if (!events) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c b/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c index ccef64fb40b6..2b029dc3f0c8 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c @@ -531,17 +531,15 @@ static int mlx5_fpga_conn_create_qp(struct mlx5_fpga_conn *conn, if (err) goto out; - conn->qp.rq.bufs = kvcalloc(conn->qp.rq.size, - sizeof(conn->qp.rq.bufs[0]), - GFP_KERNEL); + conn->qp.rq.bufs = kvzalloc_objs(conn->qp.rq.bufs[0], conn->qp.rq.size, + GFP_KERNEL); if (!conn->qp.rq.bufs) { err = -ENOMEM; goto err_wq; } - conn->qp.sq.bufs = kvcalloc(conn->qp.sq.size, - sizeof(conn->qp.sq.bufs[0]), - GFP_KERNEL); + conn->qp.sq.bufs = kvzalloc_objs(conn->qp.sq.bufs[0], conn->qp.sq.size, + GFP_KERNEL); if (!conn->qp.sq.bufs) { err = -ENOMEM; goto err_rq_bufs; @@ -816,7 +814,7 @@ struct mlx5_fpga_conn *mlx5_fpga_conn_create(struct mlx5_fpga_device *fdev, if (!attr->recv_cb) return ERR_PTR(-EINVAL); - conn = kzalloc(sizeof(*conn), GFP_KERNEL); + conn = kzalloc_obj(*conn, GFP_KERNEL); if (!conn) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fpga/core.c b/drivers/net/ethernet/mellanox/mlx5/core/fpga/core.c index 1ec61164e6b5..ae87ca14cae4 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fpga/core.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fpga/core.c @@ -59,7 +59,7 @@ static struct mlx5_fpga_device *mlx5_fpga_device_alloc(void) { struct mlx5_fpga_device *fdev; - fdev = kzalloc(sizeof(*fdev), GFP_KERNEL); + fdev = kzalloc_obj(*fdev, GFP_KERNEL); if (!fdev) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c index 0a6031a64c6f..80950d84d07a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c @@ -947,7 +947,7 @@ alloc_flow_table(struct mlx5_flow_table_attr *ft_attr, u16 vport, struct mlx5_flow_table *ft; int ret; - ft = kzalloc(sizeof(*ft), GFP_KERNEL); + ft = kzalloc_obj(*ft, GFP_KERNEL); if (!ft) return ERR_PTR(-ENOMEM); @@ -1530,7 +1530,7 @@ static struct mlx5_flow_rule *alloc_rule(struct mlx5_flow_destination *dest) { struct mlx5_flow_rule *rule; - rule = kzalloc(sizeof(*rule), GFP_KERNEL); + rule = kzalloc_obj(*rule, GFP_KERNEL); if (!rule) return NULL; @@ -1548,7 +1548,7 @@ static struct mlx5_flow_handle *alloc_handle(int num_rules) { struct mlx5_flow_handle *handle; - handle = kzalloc(struct_size(handle, rule, num_rules), GFP_KERNEL); + handle = kzalloc_flex(*handle, rule, num_rules, GFP_KERNEL); if (!handle) return NULL; @@ -2096,7 +2096,7 @@ static int build_match_list(struct match_list *match_head, if (unlikely(!tree_get_node(&g->node))) continue; - curr_match = kmalloc(sizeof(*curr_match), GFP_ATOMIC); + curr_match = kmalloc_obj(*curr_match, GFP_ATOMIC); if (!curr_match) { rcu_read_unlock(); free_match_list(match_head, ft_locked); @@ -2178,7 +2178,7 @@ add_rule_dup_match_fte(struct fs_fte *fte, int i = 0; if (!fte->dup) { - dup = kvzalloc(sizeof(*dup), GFP_KERNEL); + dup = kvzalloc_obj(*dup, GFP_KERNEL); if (!dup) return ERR_PTR(-ENOMEM); /* dup will be freed when the fte is freed @@ -2471,8 +2471,7 @@ mlx5_add_flow_rules(struct mlx5_flow_table *ft, goto unlock; } - gen_dest = kcalloc(num_dest + 1, sizeof(*dest), - GFP_KERNEL); + gen_dest = kzalloc_objs(*dest, num_dest + 1, GFP_KERNEL); if (!gen_dest) { handle = ERR_PTR(-ENOMEM); goto unlock; @@ -2849,7 +2848,7 @@ static struct fs_prio *_fs_create_prio(struct mlx5_flow_namespace *ns, { struct fs_prio *fs_prio; - fs_prio = kzalloc(sizeof(*fs_prio), GFP_KERNEL); + fs_prio = kzalloc_obj(*fs_prio, GFP_KERNEL); if (!fs_prio) return ERR_PTR(-ENOMEM); @@ -2889,7 +2888,7 @@ static struct mlx5_flow_namespace *fs_create_namespace(struct fs_prio *prio, { struct mlx5_flow_namespace *ns; - ns = kzalloc(sizeof(*ns), GFP_KERNEL); + ns = kzalloc_obj(*ns, GFP_KERNEL); if (!ns) return ERR_PTR(-ENOMEM); @@ -3020,7 +3019,7 @@ static struct mlx5_flow_root_namespace struct mlx5_flow_namespace *ns; /* Create the root namespace */ - root_ns = kzalloc(sizeof(*root_ns), GFP_KERNEL); + root_ns = kzalloc_obj(*root_ns, GFP_KERNEL); if (!root_ns) return NULL; @@ -3375,9 +3374,8 @@ static int init_rdma_transport_rx_root_ns(struct mlx5_flow_steering *steering) total_vports = mlx5_eswitch_get_total_vports(dev) ?: 1; steering->rdma_transport_rx_root_ns = - kcalloc(total_vports, - sizeof(*steering->rdma_transport_rx_root_ns), - GFP_KERNEL); + kzalloc_objs(*steering->rdma_transport_rx_root_ns, + total_vports, GFP_KERNEL); if (!steering->rdma_transport_rx_root_ns) return -ENOMEM; @@ -3408,9 +3406,8 @@ static int init_rdma_transport_tx_root_ns(struct mlx5_flow_steering *steering) total_vports = mlx5_eswitch_get_total_vports(dev) ?: 1; steering->rdma_transport_tx_root_ns = - kcalloc(total_vports, - sizeof(*steering->rdma_transport_tx_root_ns), - GFP_KERNEL); + kzalloc_objs(*steering->rdma_transport_tx_root_ns, + total_vports, GFP_KERNEL); if (!steering->rdma_transport_tx_root_ns) return -ENOMEM; @@ -3518,9 +3515,8 @@ static int create_fdb_fast_path(struct mlx5_flow_steering *steering) { int err; - steering->fdb_sub_ns = kcalloc(FDB_NUM_CHAINS, - sizeof(*steering->fdb_sub_ns), - GFP_KERNEL); + steering->fdb_sub_ns = kzalloc_objs(*steering->fdb_sub_ns, + FDB_NUM_CHAINS, GFP_KERNEL); if (!steering->fdb_sub_ns) return -ENOMEM; @@ -3674,7 +3670,7 @@ mlx5_fs_add_vport_acl_root_ns(struct mlx5_flow_steering *steering, if (xa_load(esw_acl_root_ns, vport_idx)) return -EEXIST; - vport_ns = kzalloc(sizeof(*vport_ns), GFP_KERNEL); + vport_ns = kzalloc_obj(*vport_ns, GFP_KERNEL); if (!vport_ns) return -ENOMEM; @@ -3993,7 +3989,7 @@ int mlx5_fs_core_alloc(struct mlx5_core_dev *dev) if (err) goto err; - steering = kzalloc(sizeof(*steering), GFP_KERNEL); + steering = kzalloc_obj(*steering, GFP_KERNEL); if (!steering) { err = -ENOMEM; goto err; @@ -4034,7 +4030,7 @@ int mlx5_fs_add_rx_underlay_qpn(struct mlx5_core_dev *dev, u32 underlay_qpn) struct mlx5_ft_underlay_qp *new_uqp; int err = 0; - new_uqp = kzalloc(sizeof(*new_uqp), GFP_KERNEL); + new_uqp = kzalloc_obj(*new_uqp, GFP_KERNEL); if (!new_uqp) return -ENOMEM; @@ -4137,7 +4133,7 @@ struct mlx5_modify_hdr *mlx5_modify_header_alloc(struct mlx5_core_dev *dev, if (!root) return ERR_PTR(-EOPNOTSUPP); - modify_hdr = kzalloc(sizeof(*modify_hdr), GFP_KERNEL); + modify_hdr = kzalloc_obj(*modify_hdr, GFP_KERNEL); if (!modify_hdr) return ERR_PTR(-ENOMEM); @@ -4178,7 +4174,7 @@ struct mlx5_pkt_reformat *mlx5_packet_reformat_alloc(struct mlx5_core_dev *dev, if (!root) return ERR_PTR(-EOPNOTSUPP); - pkt_reformat = kzalloc(sizeof(*pkt_reformat), GFP_KERNEL); + pkt_reformat = kzalloc_obj(*pkt_reformat, GFP_KERNEL); if (!pkt_reformat) return ERR_PTR(-ENOMEM); @@ -4226,7 +4222,7 @@ mlx5_create_match_definer(struct mlx5_core_dev *dev, if (!root) return ERR_PTR(-EOPNOTSUPP); - definer = kzalloc(sizeof(*definer), GFP_KERNEL); + definer = kzalloc_obj(*definer, GFP_KERNEL); if (!definer) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c b/drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c index fe7caa910219..b2b3a12493f4 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c @@ -234,11 +234,11 @@ static struct mlx5_fc *mlx5_fc_single_alloc(struct mlx5_core_dev *dev) struct mlx5_fc *counter; int err; - counter = kzalloc(sizeof(*counter), GFP_KERNEL); + counter = kzalloc_obj(*counter, GFP_KERNEL); if (!counter) return ERR_PTR(-ENOMEM); - fc_bulk = kzalloc(sizeof(*fc_bulk), GFP_KERNEL); + fc_bulk = kzalloc_obj(*fc_bulk, GFP_KERNEL); if (!fc_bulk) { err = -ENOMEM; goto free_counter; @@ -328,7 +328,7 @@ int mlx5_init_fc_stats(struct mlx5_core_dev *dev) { struct mlx5_fc_stats *fc_stats; - fc_stats = kzalloc(sizeof(*fc_stats), GFP_KERNEL); + fc_stats = kzalloc_obj(*fc_stats, GFP_KERNEL); if (!fc_stats) return -ENOMEM; dev->priv.fc_stats = fc_stats; @@ -460,7 +460,7 @@ static struct mlx5_fs_bulk *mlx5_fc_bulk_create(struct mlx5_core_dev *dev, alloc_bitmask = MLX5_CAP_GEN(dev, flow_counter_bulk_alloc); bulk_len = alloc_bitmask > 0 ? MLX5_FC_BULK_NUM_FCS(alloc_bitmask) : 1; - fc_bulk = kvzalloc(struct_size(fc_bulk, fcs, bulk_len), GFP_KERNEL); + fc_bulk = kvzalloc_flex(*fc_bulk, fcs, bulk_len, GFP_KERNEL); if (!fc_bulk) return NULL; @@ -572,10 +572,10 @@ mlx5_fc_local_create(u32 counter_id, u32 offset, u32 bulk_size) struct mlx5_fc_bulk *fc_bulk; struct mlx5_fc *counter; - counter = kzalloc(sizeof(*counter), GFP_KERNEL); + counter = kzalloc_obj(*counter, GFP_KERNEL); if (!counter) return ERR_PTR(-ENOMEM); - fc_bulk = kzalloc(sizeof(*fc_bulk), GFP_KERNEL); + fc_bulk = kzalloc_obj(*fc_bulk, GFP_KERNEL); if (!fc_bulk) { kfree(counter); return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.c b/drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.c index f6abfd00d7e6..847e940d4d70 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.c @@ -26,7 +26,7 @@ int mlx5_ft_pool_init(struct mlx5_core_dev *dev) struct mlx5_ft_pool *ft_pool; int i; - ft_pool = kzalloc(sizeof(*ft_pool), GFP_KERNEL); + ft_pool = kzalloc_obj(*ft_pool, GFP_KERNEL); if (!ft_pool) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c b/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c index ae10665c53f3..c0e23bc2d96a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c @@ -899,7 +899,7 @@ int mlx5_fw_reset_init(struct mlx5_core_dev *dev) if (!MLX5_CAP_MCAM_REG(dev, mfrl)) return 0; - fw_reset = kzalloc(sizeof(*fw_reset), GFP_KERNEL); + fw_reset = kzalloc_obj(*fw_reset, GFP_KERNEL); if (!fw_reset) return -ENOMEM; fw_reset->wq = create_singlethread_workqueue("mlx5_fw_reset_events"); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/hwmon.c b/drivers/net/ethernet/mellanox/mlx5/core/hwmon.c index 4ba2636d7fb6..ab005d7d184b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/hwmon.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/hwmon.c @@ -298,7 +298,7 @@ static struct mlx5_hwmon *mlx5_hwmon_alloc(struct mlx5_core_dev *mdev) u32 sensors_count; int err; - hwmon = kzalloc(sizeof(*mdev->hwmon), GFP_KERNEL); + hwmon = kzalloc_obj(*mdev->hwmon, GFP_KERNEL); if (!hwmon) return ERR_PTR(-ENOMEM); @@ -313,8 +313,8 @@ static struct mlx5_hwmon *mlx5_hwmon_alloc(struct mlx5_core_dev *mdev) hwmon->module_scount = mon_cap ? 1 : 0; sensors_count = hwmon->asic_platform_scount + hwmon->module_scount; - hwmon->temp_channel_desc = kcalloc(sensors_count, sizeof(*hwmon->temp_channel_desc), - GFP_KERNEL); + hwmon->temp_channel_desc = kzalloc_objs(*hwmon->temp_channel_desc, + sensors_count, GFP_KERNEL); if (!hwmon->temp_channel_desc) { err = -ENOMEM; goto err_free_hwmon; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c b/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c index 04444dad3a0d..96a75b8ef779 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c @@ -51,7 +51,7 @@ int mlx5i_pkey_qpn_ht_init(struct net_device *netdev) struct mlx5i_priv *ipriv = netdev_priv(netdev); struct mlx5i_pkey_qpn_ht *qpn_htbl; - qpn_htbl = kzalloc(sizeof(*qpn_htbl), GFP_KERNEL); + qpn_htbl = kzalloc_obj(*qpn_htbl, GFP_KERNEL); if (!qpn_htbl) return -ENOMEM; @@ -89,7 +89,7 @@ int mlx5i_pkey_add_qpn(struct net_device *netdev, u32 qpn) u8 key = hash_32(qpn, MLX5I_MAX_LOG_PKEY_SUP); struct qpn_to_netdev *new_node; - new_node = kzalloc(sizeof(*new_node), GFP_KERNEL); + new_node = kzalloc_obj(*new_node, GFP_KERNEL); if (!new_node) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c b/drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c index 14d339eceb92..0be0b614938c 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c @@ -52,7 +52,7 @@ irq_pool_request_irq(struct mlx5_irq_pool *pool, struct irq_affinity_desc *af_de u32 irq_index; int err; - auto_desc = kvzalloc(sizeof(*auto_desc), GFP_KERNEL); + auto_desc = kvzalloc_obj(*auto_desc, GFP_KERNEL); if (!auto_desc) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c index 9fe47c836ebd..0eed75f5ccc2 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c @@ -272,7 +272,7 @@ static struct mlx5_lag *mlx5_lag_dev_alloc(struct mlx5_core_dev *dev) struct mlx5_lag *ldev; int err; - ldev = kzalloc(sizeof(*ldev), GFP_KERNEL); + ldev = kzalloc_obj(*ldev, GFP_KERNEL); if (!ldev) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c index cdc99fe5c956..c4c2bf33ef35 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c @@ -291,7 +291,7 @@ mlx5_lag_init_fib_work(struct mlx5_lag *ldev, unsigned long event) { struct mlx5_fib_event_work *fib_work; - fib_work = kzalloc(sizeof(*fib_work), GFP_ATOMIC); + fib_work = kzalloc_obj(*fib_work, GFP_ATOMIC); if (WARN_ON(!fib_work)) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c index 04762562d7d9..d3458adcc1e5 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c @@ -171,7 +171,7 @@ static int mlx5_lag_mpesw_queue_work(struct mlx5_core_dev *dev, if (!ldev) return 0; - work = kzalloc(sizeof(*work), GFP_KERNEL); + work = kzalloc_obj(*work, GFP_KERNEL); if (!work) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/port_sel.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/port_sel.c index d832a12ffec0..63071fcb3a51 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lag/port_sel.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/port_sel.c @@ -308,7 +308,7 @@ mlx5_lag_create_definer(struct mlx5_lag *ldev, enum netdev_lag_hash hash, return ERR_PTR(-EINVAL); dev = ldev->pf[first_idx].dev; - lag_definer = kzalloc(sizeof(*lag_definer), GFP_KERNEL); + lag_definer = kzalloc_obj(*lag_definer, GFP_KERNEL); if (!lag_definer) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c index 129725159a93..004077710a34 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c @@ -311,7 +311,7 @@ struct mlx5_aso *mlx5_aso_create(struct mlx5_core_dev *mdev, u32 pdn) struct mlx5_aso *aso; int err; - aso = kzalloc(sizeof(*aso), GFP_KERNEL); + aso = kzalloc_obj(*aso, GFP_KERNEL); if (!aso) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c index 0ba0ef8bae42..6067d3ac3cb8 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c @@ -1082,9 +1082,8 @@ static void mlx5_init_pin_config(struct mlx5_core_dev *mdev) return; clock->ptp_info.pin_config = - kcalloc(clock->ptp_info.n_pins, - sizeof(*clock->ptp_info.pin_config), - GFP_KERNEL); + kzalloc_objs(*clock->ptp_info.pin_config, + clock->ptp_info.n_pins, GFP_KERNEL); if (!clock->ptp_info.pin_config) return; clock->ptp_info.enable = mlx5_ptp_enable; @@ -1407,7 +1406,7 @@ static int mlx5_clock_alloc(struct mlx5_core_dev *mdev, bool shared) struct mlx5_clock_priv *cpriv; struct mlx5_clock *clock; - cpriv = kzalloc(sizeof(*cpriv), GFP_KERNEL); + cpriv = kzalloc_obj(*cpriv, GFP_KERNEL); if (!cpriv) return -ENOMEM; @@ -1604,7 +1603,7 @@ int mlx5_init_clock(struct mlx5_core_dev *mdev) return 0; } - clock_state = kzalloc(sizeof(*clock_state), GFP_KERNEL); + clock_state = kzalloc_obj(*clock_state, GFP_KERNEL); if (!clock_state) return -ENOMEM; clock_state->mdev = mdev; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/crypto.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/crypto.c index 3a94b8f8031e..b47e828406f9 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/crypto.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/crypto.c @@ -293,7 +293,7 @@ mlx5_crypto_dek_bulk_create(struct mlx5_crypto_dek_pool *pool) int num_deks, base_obj_id; int err; - bulk = kzalloc(sizeof(*bulk), GFP_KERNEL); + bulk = kzalloc_obj(*bulk, GFP_KERNEL); if (!bulk) return ERR_PTR(-ENOMEM); @@ -611,7 +611,7 @@ struct mlx5_crypto_dek *mlx5_crypto_dek_create(struct mlx5_crypto_dek_pool *dek_ int obj_offset; int err; - dek = kzalloc(sizeof(*dek), GFP_KERNEL); + dek = kzalloc_obj(*dek, GFP_KERNEL); if (!dek) return ERR_PTR(-ENOMEM); @@ -683,7 +683,7 @@ mlx5_crypto_dek_pool_create(struct mlx5_core_dev *mdev, int key_purpose) { struct mlx5_crypto_dek_pool *pool; - pool = kzalloc(sizeof(*pool), GFP_KERNEL); + pool = kzalloc_obj(*pool, GFP_KERNEL); if (!pool) return ERR_PTR(-ENOMEM); @@ -748,7 +748,7 @@ struct mlx5_crypto_dek_priv *mlx5_crypto_dek_init(struct mlx5_core_dev *mdev) if (!MLX5_CAP_CRYPTO(mdev, log_dek_max_alloc)) return NULL; - dek_priv = kzalloc(sizeof(*dek_priv), GFP_KERNEL); + dek_priv = kzalloc_obj(*dek_priv, GFP_KERNEL); if (!dek_priv) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c index e749618229bc..d681c063be4e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c @@ -64,7 +64,7 @@ mlx5_devcom_dev_alloc(struct mlx5_core_dev *dev) { struct mlx5_devcom_dev *devc; - devc = kzalloc(sizeof(*devc), GFP_KERNEL); + devc = kzalloc_obj(*devc, GFP_KERNEL); if (!devc) return NULL; @@ -120,7 +120,7 @@ mlx5_devcom_comp_alloc(u64 id, const struct mlx5_devcom_match_attr *attr, { struct mlx5_devcom_comp *comp; - comp = kzalloc(sizeof(*comp), GFP_KERNEL); + comp = kzalloc_obj(*comp, GFP_KERNEL); if (!comp) return NULL; @@ -158,7 +158,7 @@ devcom_alloc_comp_dev(struct mlx5_devcom_dev *devc, { struct mlx5_devcom_comp_dev *devcom; - devcom = kzalloc(sizeof(*devcom), GFP_KERNEL); + devcom = kzalloc_obj(*devcom, GFP_KERNEL); if (!devcom) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/dm.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/dm.c index 8115071c34a4..b6fc7ca4bcc0 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/dm.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/dm.c @@ -28,7 +28,7 @@ struct mlx5_dm *mlx5_dm_create(struct mlx5_core_dev *dev) if (!(MLX5_CAP_GEN_64(dev, general_obj_types) & MLX5_GENERAL_OBJ_TYPES_CAP_SW_ICM)) return NULL; - dm = kzalloc(sizeof(*dm), GFP_KERNEL); + dm = kzalloc_obj(*dm, GFP_KERNEL); if (!dm) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c index 0a3c260af377..d8242edec30f 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c @@ -314,7 +314,7 @@ mlx5_chains_create_chain(struct mlx5_fs_chains *chains, u32 chain) struct fs_chain *chain_s = NULL; int err; - chain_s = kvzalloc(sizeof(*chain_s), GFP_KERNEL); + chain_s = kvzalloc_obj(*chain_s, GFP_KERNEL); if (!chain_s) return ERR_PTR(-ENOMEM); @@ -481,7 +481,7 @@ mlx5_chains_create_prio(struct mlx5_fs_chains *chains, if (IS_ERR(chain_s)) return ERR_CAST(chain_s); - prio_s = kvzalloc(sizeof(*prio_s), GFP_KERNEL); + prio_s = kvzalloc_obj(*prio_s, GFP_KERNEL); flow_group_in = kvzalloc(inlen, GFP_KERNEL); if (!prio_s || !flow_group_in) { err = -ENOMEM; @@ -728,7 +728,7 @@ mlx5_chains_init(struct mlx5_core_dev *dev, struct mlx5_chains_attr *attr) struct mlx5_fs_chains *chains; int err; - chains = kzalloc(sizeof(*chains), GFP_KERNEL); + chains = kzalloc_obj(*chains, GFP_KERNEL); if (!chains) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_ttc.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_ttc.c index 7adad784ad46..feed745cddab 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_ttc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_ttc.c @@ -359,7 +359,7 @@ mlx5_generate_ttc_rule(struct mlx5_core_dev *dev, struct mlx5_flow_table *ft, struct mlx5_flow_spec *spec; int err = 0; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return ERR_PTR(-ENOMEM); @@ -536,7 +536,7 @@ static int mlx5_create_ttc_table_groups(struct mlx5_ttc_table *ttc, int err; u8 *mc; - ttc->g = kcalloc(groups->num_groups, sizeof(*ttc->g), GFP_KERNEL); + ttc->g = kzalloc_objs(*ttc->g, groups->num_groups, GFP_KERNEL); if (!ttc->g) return -ENOMEM; in = kvzalloc(inlen, GFP_KERNEL); @@ -630,7 +630,7 @@ mlx5_generate_inner_ttc_rule(struct mlx5_core_dev *dev, int err = 0; u8 ipv; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return ERR_PTR(-ENOMEM); @@ -713,7 +713,7 @@ static int mlx5_create_inner_ttc_table_groups(struct mlx5_ttc_table *ttc, int err; u8 *mc; - ttc->g = kcalloc(groups->num_groups, sizeof(*ttc->g), GFP_KERNEL); + ttc->g = kzalloc_objs(*ttc->g, groups->num_groups, GFP_KERNEL); if (!ttc->g) return -ENOMEM; in = kvzalloc(inlen, GFP_KERNEL); @@ -804,7 +804,7 @@ struct mlx5_ttc_table *mlx5_create_inner_ttc_table(struct mlx5_core_dev *dev, return ERR_PTR(-EINVAL); } - ttc = kvzalloc(sizeof(*ttc), GFP_KERNEL); + ttc = kvzalloc_obj(*ttc, GFP_KERNEL); if (!ttc) return ERR_PTR(-ENOMEM); @@ -882,7 +882,7 @@ struct mlx5_ttc_table *mlx5_create_ttc_table(struct mlx5_core_dev *dev, return ERR_PTR(-EINVAL); } - ttc = kvzalloc(sizeof(*ttc), GFP_KERNEL); + ttc = kvzalloc_obj(*ttc, GFP_KERNEL); if (!ttc) return ERR_PTR(-ENOMEM); @@ -1029,7 +1029,7 @@ mlx5_ttc_create_ipsec_outer_rule(struct mlx5_ttc_table *ttc, if (err) return ERR_PTR(err); - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return ERR_PTR(-ENOMEM); @@ -1070,7 +1070,7 @@ mlx5_ttc_create_ipsec_inner_rule(struct mlx5_ttc_table *ttc, if (err) return ERR_PTR(err); - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/geneve.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/geneve.c index 6dc83e871cd7..7664a74cbf18 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/geneve.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/geneve.c @@ -134,8 +134,7 @@ void mlx5_geneve_tlv_option_del(struct mlx5_geneve *geneve) struct mlx5_geneve *mlx5_geneve_create(struct mlx5_core_dev *mdev) { - struct mlx5_geneve *geneve = - kzalloc(sizeof(*geneve), GFP_KERNEL); + struct mlx5_geneve *geneve = kzalloc_obj(*geneve, GFP_KERNEL); if (!geneve) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c index 30564d9b00e9..6b3f906653bd 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c @@ -42,7 +42,7 @@ struct mlx5_hv_vhca *mlx5_hv_vhca_create(struct mlx5_core_dev *dev) { struct mlx5_hv_vhca *hv_vhca; - hv_vhca = kzalloc(sizeof(*hv_vhca), GFP_KERNEL); + hv_vhca = kzalloc_obj(*hv_vhca, GFP_KERNEL); if (!hv_vhca) return ERR_PTR(-ENOMEM); @@ -98,7 +98,7 @@ void mlx5_hv_vhca_invalidate(void *context, u64 block_mask) struct mlx5_hv_vhca *hv_vhca = (struct mlx5_hv_vhca *)context; struct mlx5_hv_vhca_work *work; - work = kzalloc(sizeof(*work), GFP_ATOMIC); + work = kzalloc_obj(*work, GFP_ATOMIC); if (!work) return; @@ -152,7 +152,7 @@ mlx5_hv_vhca_control_agent_invalidate(struct mlx5_hv_vhca_agent *agent, u32 capabilities = 0; int err; - block = kzalloc(sizeof(*block), GFP_KERNEL); + block = kzalloc_obj(*block, GFP_KERNEL); if (!block) return; @@ -273,7 +273,7 @@ mlx5_hv_vhca_agent_create(struct mlx5_hv_vhca *hv_vhca, } mutex_unlock(&hv_vhca->agents_lock); - agent = kzalloc(sizeof(*agent), GFP_KERNEL); + agent = kzalloc_obj(*agent, GFP_KERNEL); if (!agent) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.c index d524f0220513..ddde75bd3012 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.c @@ -139,7 +139,7 @@ ipsec_fs_roce_rx_rule_setup(struct mlx5_core_dev *mdev, struct mlx5_flow_spec *spec; int err = 0; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -242,7 +242,7 @@ static int ipsec_fs_roce_tx_mpv_rule_setup(struct mlx5_core_dev *mdev, struct mlx5_flow_spec *spec; int err = 0; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -850,7 +850,7 @@ struct mlx5_ipsec_fs *mlx5_ipsec_fs_roce_init(struct mlx5_core_dev *mdev, return NULL; } - roce_ipsec = kzalloc(sizeof(*roce_ipsec), GFP_KERNEL); + roce_ipsec = kzalloc_obj(*roce_ipsec, GFP_KERNEL); if (!roce_ipsec) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.c index e6be2f01daf4..eafd6bcf1675 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.c @@ -267,7 +267,7 @@ static int macsec_fs_tx_create_crypto_table_groups(struct mlx5_macsec_flow_table int err; u8 *mc; - ft->g = kcalloc(TX_CRYPTO_TABLE_NUM_GROUPS, sizeof(*ft->g), GFP_KERNEL); + ft->g = kzalloc_objs(*ft->g, TX_CRYPTO_TABLE_NUM_GROUPS, GFP_KERNEL); if (!ft->g) return -ENOMEM; in = kvzalloc(inlen, GFP_KERNEL); @@ -404,7 +404,7 @@ static int macsec_fs_tx_create(struct mlx5_macsec_fs *macsec_fs) if (!ns) return -ENOMEM; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -713,7 +713,7 @@ static int macsec_fs_id_add(struct list_head *macsec_devices_list, u32 fs_id, rcu_read_unlock(); } - fs_id_iter = kzalloc(sizeof(*fs_id_iter), GFP_KERNEL); + fs_id_iter = kzalloc_obj(*fs_id_iter, GFP_KERNEL); if (!fs_id_iter) return -ENOMEM; @@ -725,7 +725,7 @@ static int macsec_fs_id_add(struct list_head *macsec_devices_list, u32 fs_id, } if (!macsec_device) { /* first time adding a SA to that device */ - macsec_device = kzalloc(sizeof(*macsec_device), GFP_KERNEL); + macsec_device = kzalloc_obj(*macsec_device, GFP_KERNEL); if (!macsec_device) { err = -ENOMEM; goto err_alloc_dev; @@ -813,7 +813,7 @@ macsec_fs_tx_add_rule(struct mlx5_macsec_fs *macsec_fs, tx_tables = &tx_fs->tables; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return NULL; @@ -821,7 +821,7 @@ macsec_fs_tx_add_rule(struct mlx5_macsec_fs *macsec_fs, if (err) goto out_spec; - macsec_rule = kzalloc(sizeof(*macsec_rule), GFP_KERNEL); + macsec_rule = kzalloc_obj(*macsec_rule, GFP_KERNEL); if (!macsec_rule) { macsec_fs_tx_ft_put(macsec_fs); goto out_spec; @@ -931,7 +931,7 @@ static int macsec_fs_tx_init(struct mlx5_macsec_fs *macsec_fs) struct mlx5_fc *flow_counter; int err; - tx_fs = kzalloc(sizeof(*tx_fs), GFP_KERNEL); + tx_fs = kzalloc_obj(*tx_fs, GFP_KERNEL); if (!tx_fs) return -ENOMEM; @@ -1055,7 +1055,7 @@ static int macsec_fs_rx_create_crypto_table_groups(struct mlx5_macsec_flow_table int err; u8 *mc; - ft->g = kcalloc(RX_CRYPTO_TABLE_NUM_GROUPS, sizeof(*ft->g), GFP_KERNEL); + ft->g = kzalloc_objs(*ft->g, RX_CRYPTO_TABLE_NUM_GROUPS, GFP_KERNEL); if (!ft->g) return -ENOMEM; @@ -1327,7 +1327,7 @@ static int macsec_fs_rx_roce_jump_to_rdma_rules_create(struct mlx5_macsec_fs *ma struct mlx5_flow_spec *spec; int err; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -1510,7 +1510,7 @@ static int macsec_fs_rx_create(struct mlx5_macsec_fs *macsec_fs) if (!ns) return -ENOMEM; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; @@ -1739,7 +1739,7 @@ macsec_fs_rx_add_rule(struct mlx5_macsec_fs *macsec_fs, struct mlx5_flow_spec *spec; int err = 0; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return NULL; @@ -1747,7 +1747,7 @@ macsec_fs_rx_add_rule(struct mlx5_macsec_fs *macsec_fs, if (err) goto out_spec; - macsec_rule = kzalloc(sizeof(*macsec_rule), GFP_KERNEL); + macsec_rule = kzalloc_obj(*macsec_rule, GFP_KERNEL); if (!macsec_rule) { macsec_fs_rx_ft_put(macsec_fs); goto out_spec; @@ -1847,7 +1847,7 @@ static int macsec_fs_rx_init(struct mlx5_macsec_fs *macsec_fs) struct mlx5_fc *flow_counter; int err; - rx_fs = kzalloc(sizeof(*rx_fs), GFP_KERNEL); + rx_fs = kzalloc_obj(*rx_fs, GFP_KERNEL); if (!rx_fs) return -ENOMEM; @@ -2132,11 +2132,11 @@ static int mlx5_macsec_fs_add_roce_rule_rx(struct mlx5_macsec_fs *macsec_fs, u32 struct mlx5_flow_spec *spec; int err = 0; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; - rx_rule = kzalloc(sizeof(*rx_rule), GFP_KERNEL); + rx_rule = kzalloc_obj(*rx_rule, GFP_KERNEL); if (!rx_rule) { err = -ENOMEM; goto out; @@ -2201,11 +2201,11 @@ static int mlx5_macsec_fs_add_roce_rule_tx(struct mlx5_macsec_fs *macsec_fs, u32 struct mlx5_flow_spec *spec; int err = 0; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) return -ENOMEM; - tx_rule = kzalloc(sizeof(*tx_rule), GFP_KERNEL); + tx_rule = kzalloc_obj(*tx_rule, GFP_KERNEL); if (!tx_rule) { err = -ENOMEM; goto out; @@ -2361,7 +2361,7 @@ mlx5_macsec_fs_init(struct mlx5_core_dev *mdev) struct mlx5_macsec_fs *macsec_fs; int err; - macsec_fs = kzalloc(sizeof(*macsec_fs), GFP_KERNEL); + macsec_fs = kzalloc_obj(*macsec_fs, GFP_KERNEL); if (!macsec_fs) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c index 4a88a42ae4f7..5352f9b61415 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c @@ -103,7 +103,7 @@ int mlx5_mpfs_init(struct mlx5_core_dev *dev) if (!MLX5_ESWITCH_MANAGER(dev) || l2table_size == 1) return 0; - mpfs = kzalloc(sizeof(*mpfs), GFP_KERNEL); + mpfs = kzalloc_obj(*mpfs, GFP_KERNEL); if (!mpfs) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.h b/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.h index 9c63838ce1f3..e864e5c430e0 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.h @@ -72,7 +72,7 @@ struct l2addr_node { int ix = MLX5_L2_ADDR_HASH(mac); \ type *ptr = NULL; \ \ - ptr = kzalloc(sizeof(type), gfp); \ + ptr = kzalloc_obj(type, gfp); \ if (ptr) { \ ether_addr_copy(ptr->node.addr, mac); \ hlist_add_head(&ptr->node.hlist, &(hash)[ix]);\ diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/sd.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/sd.c index 8e17daae48af..ca99b4375b66 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/sd.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/sd.c @@ -187,7 +187,7 @@ static int sd_init(struct mlx5_core_dev *dev) return 0; } - sd = kzalloc(sizeof(*sd), GFP_KERNEL); + sd = kzalloc_obj(*sd, GFP_KERNEL); if (!sd) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/st.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/st.c index ef06fe6cbb51..2de8a80415f1 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/st.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/st.c @@ -59,7 +59,7 @@ struct mlx5_st *mlx5_st_create(struct mlx5_core_dev *dev) if (ret) return NULL; - st = kzalloc(sizeof(*st), GFP_KERNEL); + st = kzalloc_obj(*st, GFP_KERNEL); if (!st) goto end; @@ -124,7 +124,7 @@ int mlx5_st_alloc_index(struct mlx5_core_dev *dev, enum tph_mem_type mem_type, } } - idx_data = kzalloc(sizeof(*idx_data), GFP_KERNEL); + idx_data = kzalloc_obj(*idx_data, GFP_KERNEL); if (!idx_data) { ret = -ENOMEM; goto end; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c index e223e0e46433..5c2ebf74b6a5 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c @@ -37,7 +37,7 @@ int mlx5_tout_init(struct mlx5_core_dev *dev) { int i; - dev->timeouts = kmalloc(sizeof(*dev->timeouts), GFP_KERNEL); + dev->timeouts = kmalloc_obj(*dev->timeouts, GFP_KERNEL); if (!dev->timeouts) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/vxlan.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/vxlan.c index 304912637c35..906d1ce3879f 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/vxlan.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/vxlan.c @@ -103,7 +103,7 @@ int mlx5_vxlan_add_port(struct mlx5_vxlan *vxlan, u16 port) struct mlx5_vxlan_port *vxlanp; int ret; - vxlanp = kzalloc(sizeof(*vxlanp), GFP_KERNEL); + vxlanp = kzalloc_obj(*vxlanp, GFP_KERNEL); if (!vxlanp) return -ENOMEM; vxlanp->udp_port = port; @@ -151,7 +151,7 @@ struct mlx5_vxlan *mlx5_vxlan_create(struct mlx5_core_dev *mdev) if (!MLX5_CAP_ETH(mdev, tunnel_stateless_vxlan) || !mlx5_core_is_pf(mdev)) return ERR_PTR(-EOPNOTSUPP); - vxlan = kzalloc(sizeof(*vxlan), GFP_KERNEL); + vxlan = kzalloc_obj(*vxlan, GFP_KERNEL); if (!vxlan) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c index 55b4e0cceae2..a6c838cce13c 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c @@ -1792,7 +1792,7 @@ static int mlx5_hca_caps_alloc(struct mlx5_core_dev *dev) int i; for (i = 0; i < ARRAY_SIZE(types); i++) { - cap = kzalloc(sizeof(*cap), GFP_KERNEL); + cap = kzalloc_obj(*cap, GFP_KERNEL); if (!cap) goto err; type = types[i]; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c b/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c index cd68c4b2c0bf..91aa78052462 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c @@ -107,7 +107,7 @@ static struct rb_root *page_root_per_function(struct mlx5_core_dev *dev, u32 fun if (root) return root; - root = kzalloc(sizeof(*root), GFP_KERNEL); + root = kzalloc_obj(*root, GFP_KERNEL); if (!root) return ERR_PTR(-ENOMEM); @@ -148,7 +148,7 @@ static int insert_page(struct mlx5_core_dev *dev, u64 addr, struct page *page, u return -EEXIST; } - nfp = kzalloc(sizeof(*nfp), GFP_KERNEL); + nfp = kzalloc_obj(*nfp, GFP_KERNEL); if (!nfp) return -ENOMEM; @@ -639,7 +639,7 @@ static int req_pages_handler(struct notifier_block *nb, RELEASE_ALL_PAGES_MASK; mlx5_core_dbg(dev, "page request for func 0x%x, npages %d, release_all %d\n", func_id, npages, release_all); - req = kzalloc(sizeof(*req), GFP_ATOMIC); + req = kzalloc_obj(*req, GFP_ATOMIC); if (!req) { mlx5_core_warn(dev, "failed to allocate pages request\n"); return NOTIFY_DONE; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c b/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c index aa3b5878e3da..c23d2c710256 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c @@ -261,7 +261,7 @@ struct mlx5_irq *mlx5_irq_alloc(struct mlx5_irq_pool *pool, int i, struct mlx5_irq *irq; int err; - irq = kzalloc(sizeof(*irq), GFP_KERNEL); + irq = kzalloc_obj(*irq, GFP_KERNEL); if (!irq || !zalloc_cpumask_var(&irq->mask, GFP_KERNEL)) { kfree(irq); return ERR_PTR(-ENOMEM); @@ -471,7 +471,7 @@ struct mlx5_irq *mlx5_ctrl_irq_request(struct mlx5_core_dev *dev) struct irq_affinity_desc *af_desc; struct mlx5_irq *irq; - af_desc = kvzalloc(sizeof(*af_desc), GFP_KERNEL); + af_desc = kvzalloc_obj(*af_desc, GFP_KERNEL); if (!af_desc) return ERR_PTR(-ENOMEM); @@ -556,7 +556,7 @@ struct mlx5_irq *mlx5_irq_request_vector(struct mlx5_core_dev *dev, u16 cpu, struct irq_affinity_desc *af_desc; struct mlx5_irq *irq; - af_desc = kvzalloc(sizeof(*af_desc), GFP_KERNEL); + af_desc = kvzalloc_obj(*af_desc, GFP_KERNEL); if (!af_desc) return ERR_PTR(-ENOMEM); @@ -578,7 +578,7 @@ static struct mlx5_irq_pool * irq_pool_alloc(struct mlx5_core_dev *dev, int start, int size, char *name, u32 min_threshold, u32 max_threshold) { - struct mlx5_irq_pool *pool = kvzalloc(sizeof(*pool), GFP_KERNEL); + struct mlx5_irq_pool *pool = kvzalloc_obj(*pool, GFP_KERNEL); if (!pool) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/rdma.c b/drivers/net/ethernet/mellanox/mlx5/core/rdma.c index 5c552b71e371..aebb67a7964d 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/rdma.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/rdma.c @@ -41,7 +41,7 @@ static int mlx5_rdma_enable_roce_steering(struct mlx5_core_dev *dev) flow_group_in = kvzalloc(inlen, GFP_KERNEL); if (!flow_group_in) return -ENOMEM; - spec = kvzalloc(sizeof(*spec), GFP_KERNEL); + spec = kvzalloc_obj(*spec, GFP_KERNEL); if (!spec) { kvfree(flow_group_in); return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/rl.c b/drivers/net/ethernet/mellanox/mlx5/core/rl.c index 39a209b9b684..477526f04cd9 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/rl.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/rl.c @@ -247,8 +247,8 @@ static int mlx5_rl_table_get(struct mlx5_rl_table *table) return 0; } - table->rl_entry = kcalloc(table->max_size, sizeof(struct mlx5_rl_entry), - GFP_KERNEL); + table->rl_entry = kzalloc_objs(struct mlx5_rl_entry, table->max_size, + GFP_KERNEL); if (!table->rl_entry) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c b/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c index f310bde3d11f..e41da4da4c4f 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c @@ -99,7 +99,7 @@ static void mlx5_sf_dev_add(struct mlx5_core_dev *dev, u16 sf_index, u16 fn_id, goto add_err; } - sf_dev = kzalloc(sizeof(*sf_dev), GFP_KERNEL); + sf_dev = kzalloc_obj(*sf_dev, GFP_KERNEL); if (!sf_dev) { mlx5_adev_idx_free(id); err = -ENOMEM; @@ -280,7 +280,7 @@ static void mlx5_sf_dev_queue_active_works(struct work_struct *_work) continue; sw_func_id = MLX5_GET(query_vhca_state_out, out, vhca_state_context.sw_function_id); - work_ctx = kzalloc(sizeof(*work_ctx), GFP_KERNEL); + work_ctx = kzalloc_obj(*work_ctx, GFP_KERNEL); if (!work_ctx) return; @@ -336,7 +336,7 @@ void mlx5_sf_dev_table_create(struct mlx5_core_dev *dev) if (!mlx5_sf_dev_supported(dev)) return; - table = kzalloc(sizeof(*table), GFP_KERNEL); + table = kzalloc_obj(*table, GFP_KERNEL); if (!table) { err = -ENOMEM; goto table_err; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/sf/devlink.c b/drivers/net/ethernet/mellanox/mlx5/core/sf/devlink.c index b82323b8449e..894567e905b4 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/sf/devlink.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/sf/devlink.c @@ -70,7 +70,7 @@ mlx5_sf_alloc(struct mlx5_sf_table *table, struct mlx5_eswitch *esw, goto id_err; } - sf = kzalloc(sizeof(*sf), GFP_KERNEL); + sf = kzalloc_obj(*sf, GFP_KERNEL); if (!sf) { err = -ENOMEM; goto alloc_err; @@ -509,7 +509,7 @@ int mlx5_sf_table_init(struct mlx5_core_dev *dev) if (!mlx5_sf_table_supported(dev) || !mlx5_vhca_event_supported(dev)) return 0; - table = kzalloc(sizeof(*table), GFP_KERNEL); + table = kzalloc_obj(*table, GFP_KERNEL); if (!table) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/sf/hw_table.c b/drivers/net/ethernet/mellanox/mlx5/core/sf/hw_table.c index bd968f3b3855..b50a50f7d909 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/sf/hw_table.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/sf/hw_table.c @@ -233,7 +233,7 @@ static int mlx5_sf_hw_table_hwc_init(struct mlx5_sf_hwc_table *hwc, u16 max_fn, if (!max_fn) return 0; - sfs = kcalloc(max_fn, sizeof(*sfs), GFP_KERNEL); + sfs = kzalloc_objs(*sfs, max_fn, GFP_KERNEL); if (!sfs) return -ENOMEM; @@ -298,7 +298,7 @@ int mlx5_sf_hw_table_init(struct mlx5_core_dev *dev) if (!max_fn && !max_ext_fn) return 0; - table = kzalloc(sizeof(*table), GFP_KERNEL); + table = kzalloc_obj(*table, GFP_KERNEL); if (!table) { err = -ENOMEM; goto alloc_err; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/sf/vhca_event.c b/drivers/net/ethernet/mellanox/mlx5/core/sf/vhca_event.c index b04cf6cf8956..809643870526 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/sf/vhca_event.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/sf/vhca_event.c @@ -114,7 +114,7 @@ mlx5_vhca_state_change_notifier(struct notifier_block *nb, unsigned long type, v struct mlx5_eqe *eqe = data; int wq_idx; - work = kzalloc(sizeof(*work), GFP_ATOMIC); + work = kzalloc_obj(*work, GFP_ATOMIC); if (!work) return NOTIFY_DONE; INIT_WORK(&work->work, &mlx5_vhca_state_work_handler); @@ -153,7 +153,7 @@ int mlx5_vhca_event_init(struct mlx5_core_dev *dev) if (!mlx5_vhca_event_supported(dev)) return 0; - events = kzalloc(sizeof(*events), GFP_KERNEL); + events = kzalloc_obj(*events, GFP_KERNEL); if (!events) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/sriov.c b/drivers/net/ethernet/mellanox/mlx5/core/sriov.c index a2fc937d5461..143278b70a64 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/sriov.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/sriov.c @@ -47,7 +47,7 @@ static int sriov_restore_guids(struct mlx5_core_dev *dev, int vf, u16 func_id) if (sriov->vfs_ctx[vf].node_guid || sriov->vfs_ctx[vf].port_guid || sriov->vfs_ctx[vf].policy != MLX5_POLICY_INVALID) { - in = kzalloc(sizeof(*in), GFP_KERNEL); + in = kzalloc_obj(*in, GFP_KERNEL); if (!in) return -ENOMEM; @@ -305,7 +305,7 @@ int mlx5_sriov_init(struct mlx5_core_dev *dev) sriov->max_vfs = mlx5_get_max_vfs(dev); sriov->num_vfs = pci_num_vf(pdev); sriov->max_ec_vfs = mlx5_core_ec_sriov_enabled(dev) ? pci_sriov_get_totalvfs(dev->pdev) : 0; - sriov->vfs_ctx = kcalloc(total_vfs, sizeof(*sriov->vfs_ctx), GFP_KERNEL); + sriov->vfs_ctx = kzalloc_objs(*sriov->vfs_ctx, total_vfs, GFP_KERNEL); if (!sriov->vfs_ctx) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/action.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/action.c index fe56b59e24c5..d8a003119be5 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/action.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/action.c @@ -92,7 +92,7 @@ static int hws_action_get_shared_stc_nic(struct mlx5hws_context *ctx, return 0; } - shared_stc = kzalloc(sizeof(*shared_stc), GFP_KERNEL); + shared_stc = kzalloc_obj(*shared_stc, GFP_KERNEL); if (!shared_stc) { ret = -ENOMEM; goto unlock_and_out; @@ -632,7 +632,7 @@ hws_action_create_generic_bulk(struct mlx5hws_context *ctx, if (!hws_action_validate_hws_action(ctx, flags)) return NULL; - action = kcalloc(bulk_sz, sizeof(*action), GFP_KERNEL); + action = kzalloc_objs(*action, bulk_sz, GFP_KERNEL); if (!action) return NULL; @@ -1383,7 +1383,7 @@ mlx5hws_action_create_dest_array(struct mlx5hws_context *ctx, size_t num_dest, return NULL; } - dest_list = kcalloc(num_dest, sizeof(*dest_list), GFP_KERNEL); + dest_list = kzalloc_objs(*dest_list, num_dest, GFP_KERNEL); if (!dest_list) return NULL; @@ -1477,7 +1477,7 @@ mlx5hws_action_create_insert_header(struct mlx5hws_context *ctx, if (!action) return NULL; - reformat_hdrs = kcalloc(num_of_hdrs, sizeof(*reformat_hdrs), GFP_KERNEL); + reformat_hdrs = kzalloc_objs(*reformat_hdrs, num_of_hdrs, GFP_KERNEL); if (!reformat_hdrs) goto free_action; @@ -1557,7 +1557,7 @@ hws_action_create_dest_match_range_definer(struct mlx5hws_context *ctx) __be32 *tag; int ret; - definer = kzalloc(sizeof(*definer), GFP_KERNEL); + definer = kzalloc_obj(*definer, GFP_KERNEL); if (!definer) return NULL; @@ -1600,7 +1600,7 @@ hws_action_create_dest_match_range_table(struct mlx5hws_context *ctx, return NULL; } - table_ste = kzalloc(sizeof(*table_ste), GFP_KERNEL); + table_ste = kzalloc_obj(*table_ste, GFP_KERNEL); if (!table_ste) return NULL; @@ -2019,7 +2019,7 @@ __must_hold(&ctx->ctrl_lock) return 0; } - default_stc = kzalloc(sizeof(*default_stc), GFP_KERNEL); + default_stc = kzalloc_obj(*default_stc, GFP_KERNEL); if (!default_stc) return -ENOMEM; @@ -2621,7 +2621,7 @@ mlx5hws_action_template_create(enum mlx5hws_action_type action_type[]) u8 num_actions = 0; int i; - at = kzalloc(sizeof(*at), GFP_KERNEL); + at = kzalloc_obj(*at, GFP_KERNEL); if (!at) return NULL; @@ -2629,7 +2629,8 @@ mlx5hws_action_template_create(enum mlx5hws_action_type action_type[]) ; at->num_actions = num_actions - 1; - at->action_type_arr = kcalloc(num_actions, sizeof(*action_type), GFP_KERNEL); + at->action_type_arr = kzalloc_objs(*action_type, num_actions, + GFP_KERNEL); if (!at->action_type_arr) goto free_at; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/action_ste_pool.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/action_ste_pool.c index 5766a9c82f96..f5ab9f3c694b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/action_ste_pool.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/action_ste_pool.c @@ -141,7 +141,7 @@ hws_action_ste_table_alloc(struct mlx5hws_action_ste_pool_element *parent_elem) MLX5HWS_ACTION_STE_TABLE_INIT_LOG_SZ, MLX5HWS_ACTION_STE_TABLE_MAX_LOG_SZ); - action_tbl = kzalloc(sizeof(*action_tbl), GFP_KERNEL); + action_tbl = kzalloc_obj(*action_tbl, GFP_KERNEL); if (!action_tbl) return ERR_PTR(-ENOMEM); @@ -329,7 +329,7 @@ int mlx5hws_action_ste_pool_init(struct mlx5hws_context *ctx) size_t queues = ctx->queues; int i, err; - pool = kcalloc(queues, sizeof(*pool), GFP_KERNEL); + pool = kzalloc_objs(*pool, queues, GFP_KERNEL); if (!pool) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c index b9aef80ba094..147e176b6f9a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c @@ -54,7 +54,7 @@ struct mlx5hws_buddy_mem *mlx5hws_buddy_create(u32 max_order) { struct mlx5hws_buddy_mem *buddy; - buddy = kzalloc(sizeof(*buddy), GFP_KERNEL); + buddy = kzalloc_obj(*buddy, GFP_KERNEL); if (!buddy) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/bwc.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/bwc.c index 6ef0c4be27e1..6f69b97a8c2b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/bwc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/bwc.c @@ -236,7 +236,8 @@ int mlx5hws_bwc_matcher_create_simple(struct mlx5hws_bwc_matcher *bwc_matcher, struct mlx5hws_matcher_attr attr = {0}; int i; - bwc_matcher->rules = kcalloc(bwc_queues, sizeof(*bwc_matcher->rules), GFP_KERNEL); + bwc_matcher->rules = kzalloc_objs(*bwc_matcher->rules, bwc_queues, + GFP_KERNEL); if (!bwc_matcher->rules) goto err; @@ -253,8 +254,9 @@ int mlx5hws_bwc_matcher_create_simple(struct mlx5hws_bwc_matcher *bwc_matcher, bwc_matcher->priority = priority; bwc_matcher->size_of_at_array = MLX5HWS_BWC_MATCHER_ATTACH_AT_NUM; - bwc_matcher->at = kcalloc(bwc_matcher->size_of_at_array, - sizeof(*bwc_matcher->at), GFP_KERNEL); + bwc_matcher->at = kzalloc_objs(*bwc_matcher->at, + bwc_matcher->size_of_at_array, + GFP_KERNEL); if (!bwc_matcher->at) goto free_bwc_matcher_rules; @@ -332,7 +334,7 @@ mlx5hws_bwc_matcher_create(struct mlx5hws_table *table, return NULL; } - bwc_matcher = kzalloc(sizeof(*bwc_matcher), GFP_KERNEL); + bwc_matcher = kzalloc_obj(*bwc_matcher, GFP_KERNEL); if (!bwc_matcher) return NULL; @@ -481,11 +483,11 @@ mlx5hws_bwc_rule_alloc(struct mlx5hws_bwc_matcher *bwc_matcher) { struct mlx5hws_bwc_rule *bwc_rule; - bwc_rule = kzalloc(sizeof(*bwc_rule), GFP_KERNEL); + bwc_rule = kzalloc_obj(*bwc_rule, GFP_KERNEL); if (unlikely(!bwc_rule)) goto out_err; - bwc_rule->rule = kzalloc(sizeof(*bwc_rule->rule), GFP_KERNEL); + bwc_rule->rule = kzalloc_obj(*bwc_rule->rule, GFP_KERNEL); if (unlikely(!bwc_rule->rule)) goto free_rule; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/cmd.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/cmd.c index f22eaf506d28..25b8ad504acc 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/cmd.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/cmd.c @@ -299,7 +299,7 @@ mlx5hws_cmd_forward_tbl_create(struct mlx5_core_dev *mdev, struct mlx5hws_cmd_forward_tbl *tbl; int ret; - tbl = kzalloc(sizeof(*tbl), GFP_KERNEL); + tbl = kzalloc_obj(*tbl, GFP_KERNEL); if (!tbl) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/context.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/context.c index 428dae869706..6e5b2c1a8b0b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/context.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/context.c @@ -192,7 +192,7 @@ struct mlx5hws_context *mlx5hws_context_open(struct mlx5_core_dev *mdev, struct mlx5hws_context *ctx; int ret; - ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); + ctx = kzalloc_obj(*ctx, GFP_KERNEL); if (!ctx) return NULL; @@ -201,7 +201,7 @@ struct mlx5hws_context *mlx5hws_context_open(struct mlx5_core_dev *mdev, mutex_init(&ctx->ctrl_lock); xa_init(&ctx->peer_ctx_xa); - ctx->caps = kzalloc(sizeof(*ctx->caps), GFP_KERNEL); + ctx->caps = kzalloc_obj(*ctx->caps, GFP_KERNEL); if (!ctx->caps) goto free_ctx; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.c index 82fd122d4284..d5902cfa8146 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.c @@ -1688,7 +1688,7 @@ hws_definer_alloc_compressed_fc(struct mlx5hws_definer_fc *fc) u32 fc_sz = 0; int i; - compressed_fc = kcalloc(definer_size, sizeof(*compressed_fc), GFP_KERNEL); + compressed_fc = kzalloc_objs(*compressed_fc, definer_size, GFP_KERNEL); if (!compressed_fc) return NULL; @@ -1731,7 +1731,7 @@ hws_definer_alloc_fc(struct mlx5hws_context *ctx, struct mlx5hws_definer_fc *fc; int i; - fc = kcalloc(len, sizeof(*fc), GFP_KERNEL); + fc = kzalloc_objs(*fc, len, GFP_KERNEL); if (!fc) return NULL; @@ -2139,7 +2139,7 @@ int mlx5hws_definer_init_cache(struct mlx5hws_definer_cache **cache) { struct mlx5hws_definer_cache *new_cache; - new_cache = kzalloc(sizeof(*new_cache), GFP_KERNEL); + new_cache = kzalloc_obj(*new_cache, GFP_KERNEL); if (!new_cache) return -ENOMEM; @@ -2183,7 +2183,7 @@ int mlx5hws_definer_get_obj(struct mlx5hws_context *ctx, if (ret) return -1; - cached_definer = kzalloc(sizeof(*cached_definer), GFP_KERNEL); + cached_definer = kzalloc_obj(*cached_definer, GFP_KERNEL); if (!cached_definer) goto free_definer_obj; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws.c index 6a4c4cccd643..d684a49900a5 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws.c @@ -478,7 +478,7 @@ mlx5_fs_get_cached_hws_data(struct xarray *cache_xa, unsigned long index) xa_lock(cache_xa); fs_hws_data = xa_load(cache_xa, index); if (!fs_hws_data) { - fs_hws_data = kzalloc(sizeof(*fs_hws_data), GFP_ATOMIC); + fs_hws_data = kzalloc_obj(*fs_hws_data, GFP_ATOMIC); if (!fs_hws_data) { xa_unlock(cache_xa); return NULL; @@ -759,22 +759,22 @@ static int mlx5_fs_fte_get_hws_actions(struct mlx5_flow_root_namespace *ns, int num_actions = 0; int err; - *ractions = kcalloc(MLX5_FLOW_CONTEXT_ACTION_MAX, sizeof(**ractions), - GFP_KERNEL); + *ractions = kzalloc_objs(**ractions, MLX5_FLOW_CONTEXT_ACTION_MAX, + GFP_KERNEL); if (!*ractions) { err = -ENOMEM; goto out_err; } - fs_actions = kcalloc(MLX5_FLOW_CONTEXT_ACTION_MAX, - sizeof(*fs_actions), GFP_KERNEL); + fs_actions = kzalloc_objs(*fs_actions, MLX5_FLOW_CONTEXT_ACTION_MAX, + GFP_KERNEL); if (!fs_actions) { err = -ENOMEM; goto free_actions_alloc; } - dest_actions = kcalloc(MLX5_FLOW_CONTEXT_ACTION_MAX, - sizeof(*dest_actions), GFP_KERNEL); + dest_actions = kzalloc_objs(*dest_actions, MLX5_FLOW_CONTEXT_ACTION_MAX, + GFP_KERNEL); if (!dest_actions) { err = -ENOMEM; goto free_fs_actions_alloc; @@ -1239,7 +1239,7 @@ mlx5_fs_get_pr_encap_pool(struct mlx5_core_dev *dev, struct xarray *pr_pools, if (pr_pool) return pr_pool; - pr_pool = kzalloc(sizeof(*pr_pool), GFP_KERNEL); + pr_pool = kzalloc_obj(*pr_pool, GFP_KERNEL); if (!pr_pool) return ERR_PTR(-ENOMEM); err = mlx5_fs_hws_pr_pool_init(pr_pool, dev, size, reformat_type); @@ -1430,7 +1430,7 @@ mlx5_fs_create_mh_pool(struct mlx5_core_dev *dev, struct mlx5_fs_pool *pool; int err; - pool = kzalloc(sizeof(*pool), GFP_KERNEL); + pool = kzalloc_obj(*pool, GFP_KERNEL); if (!pool) return ERR_PTR(-ENOMEM); err = mlx5_fs_hws_mh_pool_init(pool, dev, pattern); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws_pools.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws_pools.c index 5bc8e97ecf1c..d24eb6723b85 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws_pools.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws_pools.c @@ -117,7 +117,7 @@ mlx5_fs_hws_pr_bulk_create(struct mlx5_core_dev *dev, void *pool_ctx) return NULL; pr_pool_ctx = pool_ctx; bulk_len = MLX5_FS_HWS_DEFAULT_BULK_LEN; - pr_bulk = kvzalloc(struct_size(pr_bulk, prs_data, bulk_len), GFP_KERNEL); + pr_bulk = kvzalloc_flex(*pr_bulk, prs_data, bulk_len, GFP_KERNEL); if (!pr_bulk) return NULL; @@ -186,7 +186,7 @@ int mlx5_fs_hws_pr_pool_init(struct mlx5_fs_pool *pr_pool, reformat_type != MLX5HWS_ACTION_TYP_REFORMAT_L2_TO_TNL_L2) return -EOPNOTSUPP; - pr_pool_ctx = kzalloc(sizeof(*pr_pool_ctx), GFP_KERNEL); + pr_pool_ctx = kzalloc_obj(*pr_pool_ctx, GFP_KERNEL); if (!pr_pool_ctx) return -ENOMEM; pr_pool_ctx->reformat_type = reformat_type; @@ -273,7 +273,7 @@ mlx5_fs_hws_mh_bulk_create(struct mlx5_core_dev *dev, void *pool_ctx) pattern = pool_ctx; bulk_len = MLX5_FS_HWS_DEFAULT_BULK_LEN; - mh_bulk = kvzalloc(struct_size(mh_bulk, mhs_data, bulk_len), GFP_KERNEL); + mh_bulk = kvzalloc_flex(*mh_bulk, mhs_data, bulk_len, GFP_KERNEL); if (!mh_bulk) return NULL; @@ -331,7 +331,7 @@ int mlx5_fs_hws_mh_pool_init(struct mlx5_fs_pool *fs_hws_mh_pool, { struct mlx5hws_action_mh_pattern *pool_pattern; - pool_pattern = kzalloc(sizeof(*pool_pattern), GFP_KERNEL); + pool_pattern = kzalloc_obj(*pool_pattern, GFP_KERNEL); if (!pool_pattern) return -ENOMEM; pool_pattern->data = kmemdup(pattern->data, pattern->sz, GFP_KERNEL); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/matcher.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/matcher.c index 32f87fdf3213..c78ae73e5411 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/matcher.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/matcher.c @@ -912,7 +912,7 @@ hws_matcher_create_col_matcher(struct mlx5hws_matcher *matcher) !hws_matcher_requires_col_tbl(size_tx->rule.num_log)) return 0; - col_matcher = kzalloc(sizeof(*matcher), GFP_KERNEL); + col_matcher = kzalloc_obj(*matcher, GFP_KERNEL); if (!col_matcher) return -ENOMEM; @@ -1084,14 +1084,14 @@ hws_matcher_set_templates(struct mlx5hws_matcher *matcher, return -EOPNOTSUPP; } - matcher->mt = kcalloc(num_of_mt, sizeof(*matcher->mt), GFP_KERNEL); + matcher->mt = kzalloc_objs(*matcher->mt, num_of_mt, GFP_KERNEL); if (!matcher->mt) return -ENOMEM; matcher->size_of_at_array = num_of_at + matcher->attr.max_num_of_at_attach; - matcher->at = kvcalloc(matcher->size_of_at_array, sizeof(*matcher->at), - GFP_KERNEL); + matcher->at = kvzalloc_objs(*matcher->at, matcher->size_of_at_array, + GFP_KERNEL); if (!matcher->at) { mlx5hws_err(ctx, "Failed to allocate action template array\n"); ret = -ENOMEM; @@ -1133,7 +1133,7 @@ mlx5hws_matcher_create(struct mlx5hws_table *tbl, struct mlx5hws_matcher *matcher; int ret; - matcher = kzalloc(sizeof(*matcher), GFP_KERNEL); + matcher = kzalloc_obj(*matcher, GFP_KERNEL); if (!matcher) return NULL; @@ -1179,7 +1179,7 @@ mlx5hws_match_template_create(struct mlx5hws_context *ctx, { struct mlx5hws_match_template *mt; - mt = kzalloc(sizeof(*mt), GFP_KERNEL); + mt = kzalloc_obj(*mt, GFP_KERNEL); if (!mt) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c index d56271a9e4f0..49c8f3c872d9 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c @@ -78,7 +78,7 @@ int mlx5hws_pat_init_pattern_cache(struct mlx5hws_pattern_cache **cache) { struct mlx5hws_pattern_cache *new_cache; - new_cache = kzalloc(sizeof(*new_cache), GFP_KERNEL); + new_cache = kzalloc_obj(*new_cache, GFP_KERNEL); if (!new_cache) return -ENOMEM; @@ -168,7 +168,7 @@ mlx5hws_pat_add_pattern_to_cache(struct mlx5hws_pattern_cache *cache, { struct mlx5hws_pattern_cache_item *cached_pattern; - cached_pattern = kzalloc(sizeof(*cached_pattern), GFP_KERNEL); + cached_pattern = kzalloc_obj(*cached_pattern, GFP_KERNEL); if (!cached_pattern) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c index 7b5071c3df36..4b6642642346 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c @@ -41,7 +41,7 @@ hws_pool_create_one_resource(struct mlx5hws_pool *pool, u32 log_range, u32 obj_id = 0; int ret; - resource = kzalloc(sizeof(*resource), GFP_KERNEL); + resource = kzalloc_obj(*resource, GFP_KERNEL); if (!resource) return NULL; @@ -347,7 +347,7 @@ mlx5hws_pool_create(struct mlx5hws_context *ctx, struct mlx5hws_pool_attr *pool_ enum mlx5hws_db_type res_db_type; struct mlx5hws_pool *pool; - pool = kzalloc(sizeof(*pool), GFP_KERNEL); + pool = kzalloc_obj(*pool, GFP_KERNEL); if (!pool) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.c index a94f094e72ba..3c966476479d 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.c @@ -136,7 +136,7 @@ hws_rule_save_resize_info(struct mlx5hws_rule *rule, /* resize_info might already exist (if we're in update flow) */ if (likely(!rule->resize_info)) { - rule->resize_info = kzalloc(sizeof(*rule->resize_info), GFP_KERNEL); + rule->resize_info = kzalloc_obj(*rule->resize_info, GFP_KERNEL); if (unlikely(!rule->resize_info)) { pr_warn("HWS: resize info isn't allocated for rule\n"); return; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/send.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/send.c index 7510c46e58a5..4fef376d63a2 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/send.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/send.c @@ -701,7 +701,7 @@ static int hws_send_ring_alloc_sq(struct mlx5_core_dev *mdev, wq->db = &wq->db[MLX5_SND_DBR]; buf_sz = queue->num_entries * MAX_WQES_PER_RULE; - sq->dep_wqe = kcalloc(queue->num_entries, sizeof(*sq->dep_wqe), GFP_KERNEL); + sq->dep_wqe = kzalloc_objs(*sq->dep_wqe, queue->num_entries, GFP_KERNEL); if (!sq->dep_wqe) { err = -ENOMEM; goto destroy_wq_cyc; @@ -1033,9 +1033,8 @@ static int mlx5hws_send_queue_open(struct mlx5hws_context *ctx, queue->num_entries = roundup_pow_of_two(queue_size); queue->used_entries = 0; - queue->completed.entries = kcalloc(queue->num_entries, - sizeof(queue->completed.entries[0]), - GFP_KERNEL); + queue->completed.entries = kzalloc_objs(queue->completed.entries[0], + queue->num_entries, GFP_KERNEL); if (!queue->completed.entries) return -ENOMEM; @@ -1094,16 +1093,14 @@ static int hws_bwc_send_queues_init(struct mlx5hws_context *ctx) ctx->queues += bwc_queues; - ctx->bwc_send_queue_locks = kcalloc(bwc_queues, - sizeof(*ctx->bwc_send_queue_locks), - GFP_KERNEL); + ctx->bwc_send_queue_locks = kzalloc_objs(*ctx->bwc_send_queue_locks, + bwc_queues, GFP_KERNEL); if (!ctx->bwc_send_queue_locks) return -ENOMEM; - ctx->bwc_lock_class_keys = kcalloc(bwc_queues, - sizeof(*ctx->bwc_lock_class_keys), - GFP_KERNEL); + ctx->bwc_lock_class_keys = kzalloc_objs(*ctx->bwc_lock_class_keys, + bwc_queues, GFP_KERNEL); if (!ctx->bwc_lock_class_keys) goto err_lock_class_keys; @@ -1135,7 +1132,8 @@ int mlx5hws_send_queues_open(struct mlx5hws_context *ctx, if (err) return err; - ctx->send_queue = kcalloc(ctx->queues, sizeof(*ctx->send_queue), GFP_KERNEL); + ctx->send_queue = kzalloc_objs(*ctx->send_queue, ctx->queues, + GFP_KERNEL); if (!ctx->send_queue) { err = -ENOMEM; goto free_bwc_locks; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/table.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/table.c index 6113383ae47b..2bf42f5df285 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/table.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/table.c @@ -238,7 +238,7 @@ struct mlx5hws_table *mlx5hws_table_create(struct mlx5hws_context *ctx, return NULL; } - tbl = kzalloc(sizeof(*tbl), GFP_KERNEL); + tbl = kzalloc_obj(*tbl, GFP_KERNEL); if (!tbl) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_action.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_action.c index 2ebb61ef3ea9..9889149569fe 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_action.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_action.c @@ -1194,14 +1194,14 @@ mlx5dr_action_create_mult_dest_tbl(struct mlx5dr_domain *dmn, return NULL; } - hw_dests = kcalloc(num_of_dests, sizeof(*hw_dests), GFP_KERNEL); + hw_dests = kzalloc_objs(*hw_dests, num_of_dests, GFP_KERNEL); if (!hw_dests) return NULL; if (unlikely(check_mul_overflow(num_of_dests, 2u, &ref_act_cnt))) goto free_hw_dests; - ref_actions = kcalloc(ref_act_cnt, sizeof(*ref_actions), GFP_KERNEL); + ref_actions = kzalloc_objs(*ref_actions, ref_act_cnt, GFP_KERNEL); if (!ref_actions) goto free_hw_dests; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_arg.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_arg.c index 01ed6442095d..b276f9e966bc 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_arg.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_arg.c @@ -68,7 +68,7 @@ static int dr_arg_pool_alloc_objs(struct dr_arg_pool *pool) } for (i = 0; i < num_of_objects; i++) { - arg_obj = kzalloc(sizeof(*arg_obj), GFP_KERNEL); + arg_obj = kzalloc_obj(*arg_obj, GFP_KERNEL); if (!arg_obj) { ret = -ENOMEM; goto clean_arg_obj; @@ -132,7 +132,7 @@ static struct dr_arg_pool *dr_arg_pool_create(struct mlx5dr_domain *dmn, { struct dr_arg_pool *pool; - pool = kzalloc(sizeof(*pool), GFP_KERNEL); + pool = kzalloc_obj(*pool, GFP_KERNEL); if (!pool) return NULL; @@ -235,7 +235,7 @@ mlx5dr_arg_mgr_create(struct mlx5dr_domain *dmn) if (!mlx5dr_domain_is_support_ptrn_arg(dmn)) return NULL; - pool_mgr = kzalloc(sizeof(*pool_mgr), GFP_KERNEL); + pool_mgr = kzalloc_obj(*pool_mgr, GFP_KERNEL); if (!pool_mgr) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c index fe228d948b47..3af4218381a1 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c @@ -16,12 +16,10 @@ int mlx5dr_buddy_init(struct mlx5dr_icm_buddy_mem *buddy, INIT_LIST_HEAD(&buddy->list_node); - buddy->bitmap = kcalloc(buddy->max_order + 1, - sizeof(*buddy->bitmap), - GFP_KERNEL); - buddy->num_free = kcalloc(buddy->max_order + 1, - sizeof(*buddy->num_free), - GFP_KERNEL); + buddy->bitmap = kzalloc_objs(*buddy->bitmap, buddy->max_order + 1, + GFP_KERNEL); + buddy->num_free = kzalloc_objs(*buddy->num_free, buddy->max_order + 1, + GFP_KERNEL); if (!buddy->bitmap || !buddy->num_free) goto err_free_all; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_dbg.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_dbg.c index 8803fa071c50..c8904955ec54 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_dbg.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_dbg.c @@ -60,7 +60,7 @@ mlx5dr_dbg_dump_data_init_new_buff(struct mlx5dr_dbg_dump_data *dump_data) { struct mlx5dr_dbg_dump_buff *new_buff; - new_buff = kzalloc(sizeof(*new_buff), GFP_KERNEL); + new_buff = kzalloc_obj(*new_buff, GFP_KERNEL); if (!new_buff) return NULL; @@ -81,7 +81,7 @@ mlx5dr_dbg_create_dump_data(void) { struct mlx5dr_dbg_dump_data *dump_data; - dump_data = kzalloc(sizeof(*dump_data), GFP_KERNEL); + dump_data = kzalloc_obj(*dump_data, GFP_KERNEL); if (!dump_data) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_definer.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_definer.c index d5ea97751945..282088205d4c 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_definer.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_definer.c @@ -60,7 +60,7 @@ dr_definer_create_obj(struct mlx5dr_domain *dmn, u16 format_id, struct dr_definer_object *definer_obj; int ret = 0; - definer_obj = kzalloc(sizeof(*definer_obj), GFP_KERNEL); + definer_obj = kzalloc_obj(*definer_obj, GFP_KERNEL); if (!definer_obj) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_domain.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_domain.c index e8c67ed9f748..5c0a8dc6cff0 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_domain.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_domain.c @@ -282,7 +282,7 @@ dr_domain_add_vport_cap(struct mlx5dr_domain *dmn, u16 vport) struct mlx5dr_cmd_vport_cap *vport_caps; int ret; - vport_caps = kvzalloc(sizeof(*vport_caps), GFP_KERNEL); + vport_caps = kvzalloc_obj(*vport_caps, GFP_KERNEL); if (!vport_caps) return NULL; @@ -467,7 +467,7 @@ mlx5dr_domain_create(struct mlx5_core_dev *mdev, enum mlx5dr_domain_type type) if (type > MLX5DR_DOMAIN_TYPE_FDB) return NULL; - dmn = kzalloc(sizeof(*dmn), GFP_KERNEL); + dmn = kzalloc_obj(*dmn, GFP_KERNEL); if (!dmn) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_fw.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_fw.c index f05ef0cd54ba..df34beefda11 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_fw.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_fw.c @@ -13,7 +13,7 @@ mlx5dr_fw_create_recalc_cs_ft(struct mlx5dr_domain *dmn, u16 vport_num) u64 rx_icm_addr, modify_ttl_action; int ret; - recalc_cs_ft = kzalloc(sizeof(*recalc_cs_ft), GFP_KERNEL); + recalc_cs_ft = kzalloc_obj(*recalc_cs_ft, GFP_KERNEL); if (!recalc_cs_ft) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c index 0b5af9f3f605..79f0adecc2aa 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c @@ -116,7 +116,7 @@ dr_icm_pool_mr_create(struct mlx5dr_icm_pool *pool) size_t log_align_base = 0; int err; - icm_mr = kvzalloc(sizeof(*icm_mr), GFP_KERNEL); + icm_mr = kvzalloc_obj(*icm_mr, GFP_KERNEL); if (!icm_mr) return NULL; @@ -227,8 +227,8 @@ static int dr_icm_buddy_init_ste_cache(struct mlx5dr_icm_buddy_mem *buddy) int num_of_entries = mlx5dr_icm_pool_chunk_size_to_entries(buddy->pool->max_log_chunk_sz); - buddy->ste_arr = kvcalloc(num_of_entries, - sizeof(struct mlx5dr_ste), GFP_KERNEL); + buddy->ste_arr = kvzalloc_objs(struct mlx5dr_ste, num_of_entries, + GFP_KERNEL); if (!buddy->ste_arr) return -ENOMEM; @@ -269,7 +269,7 @@ static int dr_icm_buddy_create(struct mlx5dr_icm_pool *pool) if (!icm_mr) return -ENOMEM; - buddy = kvzalloc(sizeof(*buddy), GFP_KERNEL); + buddy = kvzalloc_obj(*buddy, GFP_KERNEL); if (!buddy) goto free_mr; @@ -509,7 +509,7 @@ struct mlx5dr_icm_pool *mlx5dr_icm_pool_create(struct mlx5dr_domain *dmn, struct mlx5dr_icm_pool *pool; u32 max_hot_size = 0; - pool = kvzalloc(sizeof(*pool), GFP_KERNEL); + pool = kvzalloc_obj(*pool, GFP_KERNEL); if (!pool) return NULL; @@ -548,9 +548,8 @@ struct mlx5dr_icm_pool *mlx5dr_icm_pool_create(struct mlx5dr_domain *dmn, num_of_chunks = DIV_ROUND_UP(max_hot_size, entry_size) + 1; pool->th = max_hot_size; - pool->hot_chunks_arr = kvcalloc(num_of_chunks, - sizeof(struct mlx5dr_icm_hot_chunk), - GFP_KERNEL); + pool->hot_chunks_arr = kvzalloc_objs(struct mlx5dr_icm_hot_chunk, + num_of_chunks, GFP_KERNEL); if (!pool->hot_chunks_arr) goto free_pool; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_matcher.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_matcher.c index 0726848eb3ff..b171fdb5a622 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_matcher.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_matcher.c @@ -996,7 +996,7 @@ mlx5dr_matcher_create(struct mlx5dr_table *tbl, refcount_inc(&tbl->refcount); - matcher = kzalloc(sizeof(*matcher), GFP_KERNEL); + matcher = kzalloc_obj(*matcher, GFP_KERNEL); if (!matcher) goto dec_ref; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ptrn.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ptrn.c index 8ca534ef5d03..094a6bea9a8a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ptrn.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ptrn.c @@ -94,7 +94,7 @@ dr_ptrn_alloc_pattern(struct mlx5dr_ptrn_mgr *mgr, mgr->dmn->info.caps.hdr_modify_pattern_icm_addr) / DR_ACTION_CACHE_LINE_SIZE; - pattern = kzalloc(sizeof(*pattern), GFP_KERNEL); + pattern = kzalloc_obj(*pattern, GFP_KERNEL); if (!pattern) goto free_chunk; @@ -201,7 +201,7 @@ struct mlx5dr_ptrn_mgr *mlx5dr_ptrn_mgr_create(struct mlx5dr_domain *dmn) if (!mlx5dr_domain_is_support_ptrn_arg(dmn)) return NULL; - mgr = kzalloc(sizeof(*mgr), GFP_KERNEL); + mgr = kzalloc_obj(*mgr, GFP_KERNEL); if (!mgr) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_rule.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_rule.c index d1db04baa1fa..8d925c3e2b11 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_rule.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_rule.c @@ -593,7 +593,7 @@ static int dr_rule_add_action_members(struct mlx5dr_rule *rule, int i; for (i = 0; i < num_actions; i++) { - action_mem = kvzalloc(sizeof(*action_mem), GFP_KERNEL); + action_mem = kvzalloc_obj(*action_mem, GFP_KERNEL); if (!action_mem) goto free_action_members; @@ -1298,7 +1298,7 @@ dr_rule_create_rule(struct mlx5dr_matcher *matcher, if (!dr_rule_verify(matcher, value, ¶m)) return NULL; - rule = kzalloc(sizeof(*rule), GFP_KERNEL); + rule = kzalloc_obj(*rule, GFP_KERNEL); if (!rule) return NULL; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_send.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_send.c index d034372fa047..78d7c83a98b0 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_send.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_send.c @@ -72,7 +72,7 @@ static int dr_send_info_pool_fill(struct mlx5dr_send_info_pool *pool) int i; for (i = 0; i < DR_SEND_INFO_POOL_SIZE; i++) { - pool_obj = kzalloc(sizeof(*pool_obj), GFP_KERNEL); + pool_obj = kzalloc_obj(*pool_obj, GFP_KERNEL); if (!pool_obj) goto clean_pool; @@ -114,7 +114,7 @@ static struct mlx5dr_send_info_pool *dr_send_info_pool_create(void) struct mlx5dr_send_info_pool *pool; int ret; - pool = kzalloc(sizeof(*pool), GFP_KERNEL); + pool = kzalloc_obj(*pool, GFP_KERNEL); if (!pool) return NULL; @@ -258,7 +258,7 @@ static struct mlx5dr_qp *dr_create_rc_qp(struct mlx5_core_dev *mdev, void *in; int err; - dr_qp = kzalloc(sizeof(*dr_qp), GFP_KERNEL); + dr_qp = kzalloc_obj(*dr_qp, GFP_KERNEL); if (!dr_qp) return NULL; @@ -1063,7 +1063,7 @@ static struct mlx5dr_cq *dr_create_cq(struct mlx5_core_dev *mdev, __be64 *pas; u32 i; - cq = kzalloc(sizeof(*cq), GFP_KERNEL); + cq = kzalloc_obj(*cq, GFP_KERNEL); if (!cq) return NULL; @@ -1158,7 +1158,7 @@ static int dr_create_mkey(struct mlx5_core_dev *mdev, u32 pdn, u32 *mkey) static struct mlx5dr_mr *dr_reg_mr(struct mlx5_core_dev *mdev, u32 pdn, void *buf, size_t size) { - struct mlx5dr_mr *mr = kzalloc(sizeof(*mr), GFP_KERNEL); + struct mlx5dr_mr *mr = kzalloc_obj(*mr, GFP_KERNEL); struct device *dma_device; dma_addr_t dma_addr; int err; @@ -1207,7 +1207,7 @@ int mlx5dr_send_ring_alloc(struct mlx5dr_domain *dmn) int size; int ret; - dmn->send_ring = kzalloc(sizeof(*dmn->send_ring), GFP_KERNEL); + dmn->send_ring = kzalloc_obj(*dmn->send_ring, GFP_KERNEL); if (!dmn->send_ring) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_table.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_table.c index 69294a66fd7f..ab4c360c64e0 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_table.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_table.c @@ -255,7 +255,7 @@ struct mlx5dr_table *mlx5dr_table_create(struct mlx5dr_domain *dmn, u32 level, refcount_inc(&dmn->refcount); - tbl = kzalloc(sizeof(*tbl), GFP_KERNEL); + tbl = kzalloc_obj(*tbl, GFP_KERNEL); if (!tbl) goto dec_ref; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/fs_dr.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/fs_dr.c index f367997ab61e..4d29c6347902 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/fs_dr.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/fs_dr.c @@ -275,22 +275,22 @@ static int mlx5_cmd_dr_create_fte(struct mlx5_flow_root_namespace *ns, if (mlx5_fs_cmd_is_fw_term_table(ft)) return mlx5_fs_cmd_get_fw_cmds()->create_fte(ns, ft, group, fte); - actions = kcalloc(MLX5_FLOW_CONTEXT_ACTION_MAX, sizeof(*actions), - GFP_KERNEL); + actions = kzalloc_objs(*actions, MLX5_FLOW_CONTEXT_ACTION_MAX, + GFP_KERNEL); if (!actions) { err = -ENOMEM; goto out_err; } - fs_dr_actions = kcalloc(MLX5_FLOW_CONTEXT_ACTION_MAX, - sizeof(*fs_dr_actions), GFP_KERNEL); + fs_dr_actions = kzalloc_objs(*fs_dr_actions, + MLX5_FLOW_CONTEXT_ACTION_MAX, GFP_KERNEL); if (!fs_dr_actions) { err = -ENOMEM; goto free_actions_alloc; } - term_actions = kcalloc(MLX5_FLOW_CONTEXT_ACTION_MAX, - sizeof(*term_actions), GFP_KERNEL); + term_actions = kzalloc_objs(*term_actions, MLX5_FLOW_CONTEXT_ACTION_MAX, + GFP_KERNEL); if (!term_actions) { err = -ENOMEM; goto free_fs_dr_actions_alloc; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/vport.c b/drivers/net/ethernet/mellanox/mlx5/core/vport.c index cb098d3eb2fa..3b41a507ea05 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/vport.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/vport.c @@ -832,7 +832,7 @@ int mlx5_query_hca_vport_system_image_guid(struct mlx5_core_dev *dev, struct mlx5_hca_vport_context *rep; int err; - rep = kvzalloc(sizeof(*rep), GFP_KERNEL); + rep = kvzalloc_obj(*rep, GFP_KERNEL); if (!rep) return -ENOMEM; @@ -851,7 +851,7 @@ int mlx5_query_hca_vport_node_guid(struct mlx5_core_dev *dev, struct mlx5_hca_vport_context *rep; int err; - rep = kvzalloc(sizeof(*rep), GFP_KERNEL); + rep = kvzalloc_obj(*rep, GFP_KERNEL); if (!rep) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/wc.c b/drivers/net/ethernet/mellanox/mlx5/core/wc.c index 04d03be1bb77..aa989841f375 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/wc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/wc.c @@ -366,7 +366,7 @@ static void mlx5_core_test_wc(struct mlx5_core_dev *mdev) if (mdev->wc_state != MLX5_WC_STATE_UNINITIALIZED) return; - sq = kzalloc(sizeof(*sq), GFP_KERNEL); + sq = kzalloc_obj(*sq, GFP_KERNEL); if (!sq) return; diff --git a/drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2.c b/drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2.c index e6f677e42007..b2335f56b481 100644 --- a/drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2.c +++ b/drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2.c @@ -267,7 +267,7 @@ struct mlxfw_mfa2_file *mlxfw_mfa2_file_init(const struct firmware *fw) const void *first_tlv_ptr; const void *cb_top_ptr; - mfa2_file = kzalloc(sizeof(*mfa2_file), GFP_KERNEL); + mfa2_file = kzalloc_obj(*mfa2_file, GFP_KERNEL); if (!mfa2_file) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlxsw/core.c b/drivers/net/ethernet/mellanox/mlxsw/core.c index 83c7cf3bbea3..6d2353324eda 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/core.c +++ b/drivers/net/ethernet/mellanox/mlxsw/core.c @@ -150,8 +150,8 @@ static int mlxsw_ports_init(struct mlxsw_core *mlxsw_core, bool reload) else mlxsw_core->max_ports = MLXSW_PORT_MAX_PORTS_DEFAULT + 1; - mlxsw_core->ports = kcalloc(mlxsw_core->max_ports, - sizeof(struct mlxsw_core_port), GFP_KERNEL); + mlxsw_core->ports = kzalloc_objs(struct mlxsw_core_port, + mlxsw_core->max_ports, GFP_KERNEL); if (!mlxsw_core->ports) return -ENOMEM; @@ -1793,7 +1793,7 @@ static void mlxsw_core_health_listener_func(const struct mlxsw_reg_info *reg, struct mlxsw_core_health_event *event; struct mlxsw_core *mlxsw_core = priv; - event = kmalloc(sizeof(*event), GFP_ATOMIC); + event = kmalloc_obj(*event, GFP_ATOMIC); if (!event) return; event->mlxsw_core = mlxsw_core; @@ -2376,7 +2376,7 @@ int mlxsw_core_rx_listener_register(struct mlxsw_core *mlxsw_core, rxl_item = __find_rx_listener_item(mlxsw_core, rxl); if (rxl_item) return -EEXIST; - rxl_item = kmalloc(sizeof(*rxl_item), GFP_KERNEL); + rxl_item = kmalloc_obj(*rxl_item, GFP_KERNEL); if (!rxl_item) return -ENOMEM; rxl_item->rxl = *rxl; @@ -2475,7 +2475,7 @@ int mlxsw_core_event_listener_register(struct mlxsw_core *mlxsw_core, el_item = __find_event_listener_item(mlxsw_core, el); if (el_item) return -EEXIST; - el_item = kmalloc(sizeof(*el_item), GFP_KERNEL); + el_item = kmalloc_obj(*el_item, GFP_KERNEL); if (!el_item) return -ENOMEM; el_item->mlxsw_core = mlxsw_core; @@ -2684,7 +2684,7 @@ static int mlxsw_core_reg_access_emad(struct mlxsw_core *mlxsw_core, struct mlxsw_reg_trans *trans; int err; - trans = kzalloc(sizeof(*trans), GFP_KERNEL); + trans = kzalloc_obj(*trans, GFP_KERNEL); if (!trans) return -ENOMEM; @@ -2785,7 +2785,7 @@ int mlxsw_core_irq_event_handler_register(struct mlxsw_core *mlxsw_core, { struct mlxsw_core_irq_event_handler_item *item; - item = kzalloc(sizeof(*item), GFP_KERNEL); + item = kzalloc_obj(*item, GFP_KERNEL); if (!item) return -ENOMEM; item->cb = cb; diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c index 1915fa41c622..08168f95987a 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c +++ b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c @@ -201,7 +201,7 @@ struct mlxsw_afa *mlxsw_afa_create(unsigned int max_acts_per_set, struct mlxsw_afa *mlxsw_afa; int err; - mlxsw_afa = kzalloc(sizeof(*mlxsw_afa), GFP_KERNEL); + mlxsw_afa = kzalloc_obj(*mlxsw_afa, GFP_KERNEL); if (!mlxsw_afa) return ERR_PTR(-ENOMEM); err = rhashtable_init(&mlxsw_afa->set_ht, &mlxsw_afa_set_ht_params); @@ -276,7 +276,7 @@ static struct mlxsw_afa_set *mlxsw_afa_set_create(bool is_first) { struct mlxsw_afa_set *set; - set = kzalloc(sizeof(*set), GFP_KERNEL); + set = kzalloc_obj(*set, GFP_KERNEL); if (!set) return NULL; /* Need to initialize the set to pass by default */ @@ -406,7 +406,7 @@ struct mlxsw_afa_block *mlxsw_afa_block_create(struct mlxsw_afa *mlxsw_afa) { struct mlxsw_afa_block *block; - block = kzalloc(sizeof(*block), GFP_KERNEL); + block = kzalloc_obj(*block, GFP_KERNEL); if (!block) return ERR_PTR(-ENOMEM); INIT_LIST_HEAD(&block->resource_list); @@ -560,7 +560,7 @@ mlxsw_afa_fwd_entry_create(struct mlxsw_afa *mlxsw_afa, u16 local_port) struct mlxsw_afa_fwd_entry *fwd_entry; int err; - fwd_entry = kzalloc(sizeof(*fwd_entry), GFP_KERNEL); + fwd_entry = kzalloc_obj(*fwd_entry, GFP_KERNEL); if (!fwd_entry) return ERR_PTR(-ENOMEM); fwd_entry->ht_key.local_port = local_port; @@ -653,7 +653,7 @@ mlxsw_afa_fwd_entry_ref_create(struct mlxsw_afa_block *block, u16 local_port) struct mlxsw_afa_fwd_entry *fwd_entry; int err; - fwd_entry_ref = kzalloc(sizeof(*fwd_entry_ref), GFP_KERNEL); + fwd_entry_ref = kzalloc_obj(*fwd_entry_ref, GFP_KERNEL); if (!fwd_entry_ref) return ERR_PTR(-ENOMEM); fwd_entry = mlxsw_afa_fwd_entry_get(block->afa, local_port); @@ -702,7 +702,7 @@ mlxsw_afa_counter_create(struct mlxsw_afa_block *block) struct mlxsw_afa_counter *counter; int err; - counter = kzalloc(sizeof(*counter), GFP_KERNEL); + counter = kzalloc_obj(*counter, GFP_KERNEL); if (!counter) return ERR_PTR(-ENOMEM); @@ -847,7 +847,7 @@ mlxsw_afa_cookie_ref_create(struct mlxsw_afa_block *block, struct mlxsw_afa_cookie *cookie; int err; - cookie_ref = kzalloc(sizeof(*cookie_ref), GFP_KERNEL); + cookie_ref = kzalloc_obj(*cookie_ref, GFP_KERNEL); if (!cookie_ref) return ERR_PTR(-ENOMEM); cookie = mlxsw_afa_cookie_get(block->afa, fa_cookie); @@ -873,7 +873,7 @@ mlxsw_afa_policer_create(struct mlxsw_afa *mlxsw_afa, u32 fa_index, struct mlxsw_afa_policer *policer; int err; - policer = kzalloc(sizeof(*policer), GFP_KERNEL); + policer = kzalloc_obj(*policer, GFP_KERNEL); if (!policer) return ERR_PTR(-ENOMEM); @@ -974,7 +974,7 @@ mlxsw_afa_policer_ref_create(struct mlxsw_afa_block *block, u32 fa_index, struct mlxsw_afa_policer *policer; int err; - policer_ref = kzalloc(sizeof(*policer_ref), GFP_KERNEL); + policer_ref = kzalloc_obj(*policer_ref, GFP_KERNEL); if (!policer_ref) return ERR_PTR(-ENOMEM); @@ -1386,7 +1386,7 @@ mlxsw_afa_mirror_create(struct mlxsw_afa_block *block, u16 local_in_port, struct mlxsw_afa_mirror *mirror; int err; - mirror = kzalloc(sizeof(*mirror), GFP_KERNEL); + mirror = kzalloc_obj(*mirror, GFP_KERNEL); if (!mirror) return ERR_PTR(-ENOMEM); @@ -2187,7 +2187,7 @@ mlxsw_afa_sampler_create(struct mlxsw_afa_block *block, u16 local_port, struct mlxsw_afa_sampler *sampler; int err; - sampler = kzalloc(sizeof(*sampler), GFP_KERNEL); + sampler = kzalloc_obj(*sampler, GFP_KERNEL); if (!sampler) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.c b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.c index 7aa1a462a103..030eefcd3eda 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.c +++ b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.c @@ -86,7 +86,7 @@ struct mlxsw_afk *mlxsw_afk_create(unsigned int max_blocks, { struct mlxsw_afk *mlxsw_afk; - mlxsw_afk = kzalloc(sizeof(*mlxsw_afk), GFP_KERNEL); + mlxsw_afk = kzalloc_obj(*mlxsw_afk, GFP_KERNEL); if (!mlxsw_afk) return NULL; INIT_LIST_HEAD(&mlxsw_afk->key_info_list); @@ -262,7 +262,7 @@ static int mlxsw_afk_picker(struct mlxsw_afk *mlxsw_afk, enum mlxsw_afk_element element; int err; - picker = kcalloc(mlxsw_afk->blocks_count, sizeof(*picker), GFP_KERNEL); + picker = kzalloc_objs(*picker, mlxsw_afk->blocks_count, GFP_KERNEL); if (!picker) return -ENOMEM; @@ -327,8 +327,8 @@ mlxsw_afk_key_info_create(struct mlxsw_afk *mlxsw_afk, struct mlxsw_afk_key_info *key_info; int err; - key_info = kzalloc(struct_size(key_info, blocks, mlxsw_afk->max_blocks), - GFP_KERNEL); + key_info = kzalloc_flex(*key_info, blocks, mlxsw_afk->max_blocks, + GFP_KERNEL); if (!key_info) return ERR_PTR(-ENOMEM); err = mlxsw_afk_picker(mlxsw_afk, key_info, elusage); diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_env.c b/drivers/net/ethernet/mellanox/mlxsw/core_env.c index 294e758f1067..3b6b17c48a18 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/core_env.c +++ b/drivers/net/ethernet/mellanox/mlxsw/core_env.c @@ -986,7 +986,7 @@ mlxsw_env_mtwe_listener_func(const struct mlxsw_reg_info *reg, char *mtwe_pl, struct mlxsw_env_module_temp_warn_event *event; struct mlxsw_env *mlxsw_env = priv; - event = kmalloc(sizeof(*event), GFP_ATOMIC); + event = kmalloc_obj(*event, GFP_ATOMIC); if (!event) return; @@ -1080,7 +1080,7 @@ mlxsw_env_pmpe_listener_func(const struct mlxsw_reg_info *reg, char *pmpe_pl, if (module_status != MLXSW_REG_PMPE_MODULE_STATUS_PLUGGED_ENABLED) return; - event = kmalloc(sizeof(*event), GFP_ATOMIC); + event = kmalloc_obj(*event, GFP_ATOMIC); if (!event) return; @@ -1243,10 +1243,10 @@ static int mlxsw_env_line_cards_alloc(struct mlxsw_env *env) int i, j; for (i = 0; i < env->num_of_slots; i++) { - env->line_cards[i] = kzalloc(struct_size(env->line_cards[i], - module_info, - env->max_module_count), - GFP_KERNEL); + env->line_cards[i] = kzalloc_flex(*env->line_cards[i], + module_info, + env->max_module_count, + GFP_KERNEL); if (!env->line_cards[i]) goto kzalloc_err; @@ -1453,8 +1453,7 @@ int mlxsw_env_init(struct mlxsw_core *mlxsw_core, mlxsw_reg_mgpir_max_modules_per_slot_get(mgpir_pl) : module_count; - env = kzalloc(struct_size(env, line_cards, num_of_slots + 1), - GFP_KERNEL); + env = kzalloc_flex(*env, line_cards, num_of_slots + 1, GFP_KERNEL); if (!env) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c b/drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c index 9c12e1feb643..e7081614f597 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c +++ b/drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c @@ -871,8 +871,8 @@ int mlxsw_hwmon_init(struct mlxsw_core *mlxsw_core, mlxsw_reg_mgpir_unpack(mgpir_pl, NULL, NULL, NULL, NULL, &num_of_slots); - mlxsw_hwmon = kzalloc(struct_size(mlxsw_hwmon, line_cards, - num_of_slots + 1), GFP_KERNEL); + mlxsw_hwmon = kzalloc_flex(*mlxsw_hwmon, line_cards, num_of_slots + 1, + GFP_KERNEL); if (!mlxsw_hwmon) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_linecard_dev.c b/drivers/net/ethernet/mellanox/mlxsw/core_linecard_dev.c index e8d6fe35bf36..a689c79122cf 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/core_linecard_dev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/core_linecard_dev.c @@ -57,7 +57,7 @@ int mlxsw_linecard_bdev_add(struct mlxsw_linecard *linecard) if (id < 0) return id; - linecard_bdev = kzalloc(sizeof(*linecard_bdev), GFP_KERNEL); + linecard_bdev = kzalloc_obj(*linecard_bdev, GFP_KERNEL); if (!linecard_bdev) { mlxsw_linecard_bdev_id_free(id); return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_linecards.c b/drivers/net/ethernet/mellanox/mlxsw/core_linecards.c index 10f5bc4892fc..ef13fee48b1a 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/core_linecards.c +++ b/drivers/net/ethernet/mellanox/mlxsw/core_linecards.c @@ -531,7 +531,7 @@ int mlxsw_linecards_event_ops_register(struct mlxsw_core *mlxsw_core, if (!linecards) return 0; - item = kzalloc(sizeof(*item), GFP_KERNEL); + item = kzalloc_obj(*item, GFP_KERNEL); if (!item) return -ENOMEM; item->event_ops = ops; @@ -1192,7 +1192,7 @@ mlxsw_linecard_status_listener_func(const struct mlxsw_reg_info *reg, struct mlxsw_linecard_status_event *event; struct mlxsw_core *mlxsw_core = priv; - event = kmalloc(sizeof(*event), GFP_ATOMIC); + event = kmalloc_obj(*event, GFP_ATOMIC); if (!event) return; event->mlxsw_core = mlxsw_core; @@ -1225,7 +1225,7 @@ mlxsw_linecard_bct_listener_func(const struct mlxsw_reg_info *reg, struct mlxsw_linecard_bct_event *event; struct mlxsw_core *mlxsw_core = priv; - event = kmalloc(sizeof(*event), GFP_ATOMIC); + event = kmalloc_obj(*event, GFP_ATOMIC); if (!event) return; event->mlxsw_core = mlxsw_core; @@ -1446,7 +1446,7 @@ static int mlxsw_linecard_types_init(struct mlxsw_core *mlxsw_core, return 0; } - types_info = kzalloc(sizeof(*types_info), GFP_KERNEL); + types_info = kzalloc_obj(*types_info, GFP_KERNEL); if (!types_info) { release_firmware(firmware); return -ENOMEM; @@ -1469,9 +1469,8 @@ static int mlxsw_linecard_types_init(struct mlxsw_core *mlxsw_core, goto err_type_file_file_validate; } - types_info->ini_files = kmalloc_array(types_info->count, - sizeof(struct mlxsw_linecard_ini_file *), - GFP_KERNEL); + types_info->ini_files = kmalloc_objs(struct mlxsw_linecard_ini_file *, + types_info->count, GFP_KERNEL); if (!types_info->ini_files) { err = -ENOMEM; goto err_ini_files_alloc; diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c b/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c index eac9a14a6058..4c9b04ca5154 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c +++ b/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c @@ -431,9 +431,8 @@ mlxsw_thermal_modules_init(struct device *dev, struct mlxsw_core *core, if (!area->tz_module_num) return 0; - area->tz_module_arr = kcalloc(area->tz_module_num, - sizeof(*area->tz_module_arr), - GFP_KERNEL); + area->tz_module_arr = kzalloc_objs(*area->tz_module_arr, + area->tz_module_num, GFP_KERNEL); if (!area->tz_module_arr) return -ENOMEM; @@ -522,9 +521,8 @@ mlxsw_thermal_gearboxes_init(struct device *dev, struct mlxsw_core *core, return 0; area->tz_gearbox_num = gbox_num; - area->tz_gearbox_arr = kcalloc(area->tz_gearbox_num, - sizeof(*area->tz_gearbox_arr), - GFP_KERNEL); + area->tz_gearbox_arr = kzalloc_objs(*area->tz_gearbox_arr, + area->tz_gearbox_num, GFP_KERNEL); if (!area->tz_gearbox_arr) return -ENOMEM; @@ -644,8 +642,8 @@ int mlxsw_thermal_init(struct mlxsw_core *core, mlxsw_reg_mgpir_unpack(mgpir_pl, NULL, NULL, NULL, NULL, &num_of_slots); - thermal = kzalloc(struct_size(thermal, line_cards, num_of_slots + 1), - GFP_KERNEL); + thermal = kzalloc_flex(*thermal, line_cards, num_of_slots + 1, + GFP_KERNEL); if (!thermal) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlxsw/minimal.c b/drivers/net/ethernet/mellanox/mlxsw/minimal.c index 828c65036a4c..9871b9e1d094 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/minimal.c +++ b/drivers/net/ethernet/mellanox/mlxsw/minimal.c @@ -398,14 +398,12 @@ static int mlxsw_m_linecards_init(struct mlxsw_m *mlxsw_m) /* Add slot for main board. */ mlxsw_m->num_of_slots += 1; - mlxsw_m->ports = kcalloc(max_ports, sizeof(*mlxsw_m->ports), - GFP_KERNEL); + mlxsw_m->ports = kzalloc_objs(*mlxsw_m->ports, max_ports, GFP_KERNEL); if (!mlxsw_m->ports) return -ENOMEM; - mlxsw_m->line_cards = kcalloc(mlxsw_m->num_of_slots, - sizeof(*mlxsw_m->line_cards), - GFP_KERNEL); + mlxsw_m->line_cards = kzalloc_objs(*mlxsw_m->line_cards, + mlxsw_m->num_of_slots, GFP_KERNEL); if (!mlxsw_m->line_cards) { err = -ENOMEM; goto err_kcalloc; @@ -413,10 +411,8 @@ static int mlxsw_m_linecards_init(struct mlxsw_m *mlxsw_m) for (i = 0; i < mlxsw_m->num_of_slots; i++) { mlxsw_m->line_cards[i] = - kzalloc(struct_size(mlxsw_m->line_cards[i], - module_to_port, - mlxsw_m->max_modules_per_slot), - GFP_KERNEL); + kzalloc_flex(*mlxsw_m->line_cards[i], module_to_port, + mlxsw_m->max_modules_per_slot, GFP_KERNEL); if (!mlxsw_m->line_cards[i]) { err = -ENOMEM; goto err_kmalloc_array; diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c index 7da9ef254b72..9b378e9d084d 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -1264,7 +1264,7 @@ static int mlxsw_pci_queue_init(struct mlxsw_pci *mlxsw_pci, char *mbox, if (!mem_item->buf) return -ENOMEM; - q->elem_info = kcalloc(q->count, sizeof(*q->elem_info), GFP_KERNEL); + q->elem_info = kzalloc_objs(*q->elem_info, q->count, GFP_KERNEL); if (!q->elem_info) { err = -ENOMEM; goto err_elem_info_alloc; @@ -1316,7 +1316,7 @@ static int mlxsw_pci_queue_group_init(struct mlxsw_pci *mlxsw_pci, char *mbox, int err; queue_group = mlxsw_pci_queue_type_group_get(mlxsw_pci, q_ops->type); - queue_group->q = kcalloc(num_qs, sizeof(*queue_group->q), GFP_KERNEL); + queue_group->q = kzalloc_objs(*queue_group->q, num_qs, GFP_KERNEL); if (!queue_group->q) return -ENOMEM; @@ -1667,8 +1667,8 @@ static int mlxsw_pci_fw_area_init(struct mlxsw_pci *mlxsw_pci, char *mbox, int i; int err; - mlxsw_pci->fw_area.items = kcalloc(num_pages, sizeof(*mem_item), - GFP_KERNEL); + mlxsw_pci->fw_area.items = kzalloc_objs(*mem_item, num_pages, + GFP_KERNEL); if (!mlxsw_pci->fw_area.items) return -ENOMEM; mlxsw_pci->fw_area.count = num_pages; @@ -2414,7 +2414,7 @@ static int mlxsw_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) struct mlxsw_pci *mlxsw_pci; int err; - mlxsw_pci = kzalloc(sizeof(*mlxsw_pci), GFP_KERNEL); + mlxsw_pci = kzalloc_obj(*mlxsw_pci, GFP_KERNEL); if (!mlxsw_pci) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c index 9a2d64a0a858..dbc032ff4963 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c @@ -972,7 +972,7 @@ mlxsw_sp_port_vlan_create(struct mlxsw_sp_port *mlxsw_sp_port, u16 vid) if (err) return ERR_PTR(err); - mlxsw_sp_port_vlan = kzalloc(sizeof(*mlxsw_sp_port_vlan), GFP_KERNEL); + mlxsw_sp_port_vlan = kzalloc_obj(*mlxsw_sp_port_vlan, GFP_KERNEL); if (!mlxsw_sp_port_vlan) { err = -ENOMEM; goto err_port_vlan_alloc; @@ -1776,7 +1776,7 @@ static int mlxsw_sp_cpu_port_create(struct mlxsw_sp *mlxsw_sp) struct mlxsw_sp_port *mlxsw_sp_port; int err; - mlxsw_sp_port = kzalloc(sizeof(*mlxsw_sp_port), GFP_KERNEL); + mlxsw_sp_port = kzalloc_obj(*mlxsw_sp_port, GFP_KERNEL); if (!mlxsw_sp_port) return -ENOMEM; @@ -1898,7 +1898,7 @@ mlxsw_sp_port_mapping_listener_func(const struct mlxsw_reg_info *reg, return; events = &mlxsw_sp->port_mapping_events; - event = kmalloc(sizeof(*event), GFP_ATOMIC); + event = kmalloc_obj(*event, GFP_ATOMIC); if (!event) return; memcpy(event->pmlp_pl, pmlp_pl, sizeof(event->pmlp_pl)); @@ -2019,9 +2019,8 @@ static int mlxsw_sp_port_module_info_init(struct mlxsw_sp *mlxsw_sp) int i; int err; - mlxsw_sp->port_mapping = kcalloc(max_ports, - sizeof(struct mlxsw_sp_port_mapping), - GFP_KERNEL); + mlxsw_sp->port_mapping = kzalloc_objs(struct mlxsw_sp_port_mapping, + max_ports, GFP_KERNEL); if (!mlxsw_sp->port_mapping) return -ENOMEM; @@ -2490,8 +2489,8 @@ static int mlxsw_sp_traps_init(struct mlxsw_sp *mlxsw_sp) if (!MLXSW_CORE_RES_VALID(mlxsw_sp->core, MAX_CPU_POLICERS)) return -EIO; max_policers = MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_CPU_POLICERS); - trap = kzalloc(struct_size(trap, policers_usage, - BITS_TO_LONGS(max_policers)), GFP_KERNEL); + trap = kzalloc_flex(*trap, policers_usage, BITS_TO_LONGS(max_policers), + GFP_KERNEL); if (!trap) return -ENOMEM; trap->max_policers = max_policers; @@ -2624,8 +2623,8 @@ static int mlxsw_sp_lag_init(struct mlxsw_sp *mlxsw_sp) if (err) return err; - mlxsw_sp->lags = kcalloc(mlxsw_sp->max_lag, sizeof(struct mlxsw_sp_lag), - GFP_KERNEL); + mlxsw_sp->lags = kzalloc_objs(struct mlxsw_sp_lag, mlxsw_sp->max_lag, + GFP_KERNEL); if (!mlxsw_sp->lags) { err = -ENOMEM; goto err_kcalloc; @@ -2748,7 +2747,7 @@ mlxsw_sp_sample_trigger_node_init(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_sample_trigger_node *trigger_node; int err; - trigger_node = kzalloc(sizeof(*trigger_node), GFP_KERNEL); + trigger_node = kzalloc_obj(*trigger_node, GFP_KERNEL); if (!trigger_node) return -ENOMEM; @@ -2894,7 +2893,7 @@ mlxsw_sp_ipv6_addr_init(struct mlxsw_sp *mlxsw_sp, const struct in6_addr *addr6, if (err) goto err_rips_write; - node = kzalloc(sizeof(*node), GFP_KERNEL); + node = kzalloc_obj(*node, GFP_KERNEL); if (!node) { err = -ENOMEM; goto err_node_alloc; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c index 1e3fc989393c..6aa1252cbe49 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c @@ -224,8 +224,7 @@ mlxsw_sp1_kvdl_part_init(struct mlxsw_sp *mlxsw_sp, } nr_entries = div_u64(resource_size, info->alloc_size); - part = kzalloc(struct_size(part, usage, BITS_TO_LONGS(nr_entries)), - GFP_KERNEL); + part = kzalloc_flex(*part, usage, BITS_TO_LONGS(nr_entries), GFP_KERNEL); if (!part) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c index c8c67536917b..814b704de294 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c @@ -259,8 +259,8 @@ mlxsw_sp1_mr_tcam_region_init(struct mlxsw_sp *mlxsw_sp, } mr_tcam_region->parman = parman; - parman_prios = kmalloc_array(MLXSW_SP_MR_ROUTE_PRIO_MAX + 1, - sizeof(*parman_prios), GFP_KERNEL); + parman_prios = kmalloc_objs(*parman_prios, + MLXSW_SP_MR_ROUTE_PRIO_MAX + 1, GFP_KERNEL); if (!parman_prios) { err = -ENOMEM; goto err_parman_prios_alloc; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c index 3e70cee4d2f3..aaaa586e8569 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c @@ -318,7 +318,7 @@ mlxsw_sp_acl_rulei_create(struct mlxsw_sp_acl *acl, struct mlxsw_sp_acl_rule_info *rulei; int err; - rulei = kzalloc(sizeof(*rulei), GFP_KERNEL); + rulei = kzalloc_obj(*rulei, GFP_KERNEL); if (!rulei) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c index 07cb1e26ca3e..b6e1fc77f0c0 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c @@ -74,7 +74,7 @@ mlxsw_sp_acl_atcam_region_generic_init(struct mlxsw_sp_acl_atcam_region *aregion { struct mlxsw_sp_acl_atcam_region_generic *region_generic; - region_generic = kzalloc(sizeof(*region_generic), GFP_KERNEL); + region_generic = kzalloc_obj(*region_generic, GFP_KERNEL); if (!region_generic) return -ENOMEM; @@ -126,7 +126,7 @@ mlxsw_sp_acl_atcam_region_12kb_init(struct mlxsw_sp_acl_atcam_region *aregion) return -EIO; max_lkey_id = MLXSW_CORE_RES_GET(mlxsw_sp->core, ACL_MAX_LARGE_KEY_ID); - region_12kb = kzalloc(sizeof(*region_12kb), GFP_KERNEL); + region_12kb = kzalloc_obj(*region_12kb, GFP_KERNEL); if (!region_12kb) return -ENOMEM; @@ -179,7 +179,7 @@ mlxsw_sp_acl_atcam_lkey_id_create(struct mlxsw_sp_acl_atcam_region *aregion, else return ERR_PTR(-ENOBUFS); - lkey_id = kzalloc(sizeof(*lkey_id), GFP_KERNEL); + lkey_id = kzalloc_obj(*lkey_id, GFP_KERNEL); if (!lkey_id) { err = -ENOMEM; goto err_lkey_id_alloc; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_bloom_filter.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_bloom_filter.c index 067f0055a55a..d6c55a80a7ce 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_bloom_filter.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_bloom_filter.c @@ -513,8 +513,8 @@ mlxsw_sp_acl_bf_init(struct mlxsw_sp *mlxsw_sp, unsigned int num_erp_banks) * is 2^ACL_MAX_BF_LOG */ bf_bank_size = 1 << MLXSW_CORE_RES_GET(mlxsw_sp->core, ACL_MAX_BF_LOG); - bf = kzalloc(struct_size(bf, refcnt, size_mul(bf_bank_size, num_erp_banks)), - GFP_KERNEL); + bf = kzalloc_flex(*bf, refcnt, size_mul(bf_bank_size, num_erp_banks), + GFP_KERNEL); if (!bf) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c index 9eee229303cc..80307d6554a2 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c @@ -254,7 +254,7 @@ mlxsw_sp_acl_erp_generic_create(struct mlxsw_sp_acl_erp_table *erp_table, struct mlxsw_sp_acl_erp *erp; int err; - erp = kzalloc(sizeof(*erp), GFP_KERNEL); + erp = kzalloc_obj(*erp, GFP_KERNEL); if (!erp) return ERR_PTR(-ENOMEM); @@ -798,7 +798,7 @@ mlxsw_sp_acl_erp_ctcam_mask_create(struct mlxsw_sp_acl_erp_table *erp_table, struct mlxsw_sp_acl_erp *erp; int err; - erp = kzalloc(sizeof(*erp), GFP_KERNEL); + erp = kzalloc_obj(*erp, GFP_KERNEL); if (!erp) return ERR_PTR(-ENOMEM); @@ -1236,7 +1236,7 @@ static void *mlxsw_sp_acl_erp_delta_create(void *priv, void *parent_obj, if (err) return ERR_PTR(-EINVAL); - delta = kzalloc(sizeof(*delta), GFP_KERNEL); + delta = kzalloc_obj(*delta, GFP_KERNEL); if (!delta) return ERR_PTR(-ENOMEM); delta->start = delta_start; @@ -1309,7 +1309,7 @@ mlxsw_sp_acl_erp_table_create(struct mlxsw_sp_acl_atcam_region *aregion, struct mlxsw_sp_acl_erp_table *erp_table; int err; - erp_table = kzalloc(sizeof(*erp_table), GFP_KERNEL); + erp_table = kzalloc_obj(*erp_table, GFP_KERNEL); if (!erp_table) return ERR_PTR(-ENOMEM); @@ -1563,7 +1563,7 @@ int mlxsw_sp_acl_erps_init(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_acl_erp_core *erp_core; int err; - erp_core = kzalloc(sizeof(*erp_core), GFP_KERNEL); + erp_core = kzalloc_obj(*erp_core, GFP_KERNEL); if (!erp_core) return -ENOMEM; erp_core->mlxsw_sp = mlxsw_sp; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c index 69f9da9fb305..5a282cb4b52d 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c @@ -778,7 +778,7 @@ mlxsw_sp_acl_tcam_vregion_create(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_acl_tcam_vregion *vregion; int err; - vregion = kzalloc(sizeof(*vregion), GFP_KERNEL); + vregion = kzalloc_obj(*vregion, GFP_KERNEL); if (!vregion) return ERR_PTR(-ENOMEM); INIT_LIST_HEAD(&vregion->vchunk_list); @@ -939,7 +939,7 @@ mlxsw_sp_acl_tcam_vchunk_create(struct mlxsw_sp *mlxsw_sp, if (priority == MLXSW_SP_ACL_TCAM_CATCHALL_PRIO) return ERR_PTR(-EINVAL); - vchunk = kzalloc(sizeof(*vchunk), GFP_KERNEL); + vchunk = kzalloc_obj(*vchunk, GFP_KERNEL); if (!vchunk) return ERR_PTR(-ENOMEM); INIT_LIST_HEAD(&vchunk->ventry_list); diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c index 2c0cfa79d138..fd6b36c3d475 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c @@ -628,8 +628,7 @@ static int mlxsw_sp_sb_port_init(struct mlxsw_sp *mlxsw_sp, { struct mlxsw_sp_sb_pm *pms; - pms = kcalloc(mlxsw_sp->sb_vals->pool_count, sizeof(*pms), - GFP_KERNEL); + pms = kzalloc_objs(*pms, mlxsw_sp->sb_vals->pool_count, GFP_KERNEL); if (!pms) return -ENOMEM; sb_port->pms = pms; @@ -648,14 +647,12 @@ static int mlxsw_sp_sb_ports_init(struct mlxsw_sp *mlxsw_sp) int i; int err; - mlxsw_sp->sb->ports = kcalloc(max_ports, - sizeof(struct mlxsw_sp_sb_port), - GFP_KERNEL); + mlxsw_sp->sb->ports = kzalloc_objs(struct mlxsw_sp_sb_port, max_ports, + GFP_KERNEL); if (!mlxsw_sp->sb->ports) return -ENOMEM; - prs = kcalloc(mlxsw_sp->sb_vals->pool_count, sizeof(*prs), - GFP_KERNEL); + prs = kzalloc_objs(*prs, mlxsw_sp->sb_vals->pool_count, GFP_KERNEL); if (!prs) { err = -ENOMEM; goto err_alloc_prs; @@ -1264,7 +1261,7 @@ int mlxsw_sp_buffers_init(struct mlxsw_sp *mlxsw_sp) if (!MLXSW_CORE_RES_VALID(mlxsw_sp->core, MAX_HEADROOM_SIZE)) return -EIO; - mlxsw_sp->sb = kzalloc(sizeof(*mlxsw_sp->sb), GFP_KERNEL); + mlxsw_sp->sb = kzalloc_obj(*mlxsw_sp->sb, GFP_KERNEL); if (!mlxsw_sp->sb) return -ENOMEM; mlxsw_sp->sb->cell_size = MLXSW_CORE_RES_GET(mlxsw_sp->core, CELL_SIZE); @@ -1327,7 +1324,7 @@ int mlxsw_sp_port_buffers_init(struct mlxsw_sp_port *mlxsw_sp_port) { int err; - mlxsw_sp_port->hdroom = kzalloc(sizeof(*mlxsw_sp_port->hdroom), GFP_KERNEL); + mlxsw_sp_port->hdroom = kzalloc_obj(*mlxsw_sp_port->hdroom, GFP_KERNEL); if (!mlxsw_sp_port->hdroom) return -ENOMEM; mlxsw_sp_port->hdroom->mtu = mlxsw_sp_port->dev->mtu; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c index b1094aaffa5f..33ef49de4e0b 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c @@ -124,8 +124,7 @@ int mlxsw_sp_counter_pool_init(struct mlxsw_sp *mlxsw_sp) struct mlxsw_sp_counter_pool *pool; int err; - pool = kzalloc(struct_size(pool, sub_pools, sub_pools_count), - GFP_KERNEL); + pool = kzalloc_flex(*pool, sub_pools, sub_pools_count, GFP_KERNEL); if (!pool) return -ENOMEM; mlxsw_sp->counter_pool = pool; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dcb.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dcb.c index aff6d4f35cd2..69ab4f8cf05d 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dcb.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dcb.c @@ -654,8 +654,8 @@ static const struct dcbnl_rtnl_ops mlxsw_sp_dcbnl_ops = { static int mlxsw_sp_port_ets_init(struct mlxsw_sp_port *mlxsw_sp_port) { - mlxsw_sp_port->dcb.ets = kzalloc(sizeof(*mlxsw_sp_port->dcb.ets), - GFP_KERNEL); + mlxsw_sp_port->dcb.ets = kzalloc_obj(*mlxsw_sp_port->dcb.ets, + GFP_KERNEL); if (!mlxsw_sp_port->dcb.ets) return -ENOMEM; @@ -673,8 +673,8 @@ static int mlxsw_sp_port_maxrate_init(struct mlxsw_sp_port *mlxsw_sp_port) { int i; - mlxsw_sp_port->dcb.maxrate = kmalloc(sizeof(*mlxsw_sp_port->dcb.maxrate), - GFP_KERNEL); + mlxsw_sp_port->dcb.maxrate = kmalloc_obj(*mlxsw_sp_port->dcb.maxrate, + GFP_KERNEL); if (!mlxsw_sp_port->dcb.maxrate) return -ENOMEM; @@ -691,8 +691,8 @@ static void mlxsw_sp_port_maxrate_fini(struct mlxsw_sp_port *mlxsw_sp_port) static int mlxsw_sp_port_pfc_init(struct mlxsw_sp_port *mlxsw_sp_port) { - mlxsw_sp_port->dcb.pfc = kzalloc(sizeof(*mlxsw_sp_port->dcb.pfc), - GFP_KERNEL); + mlxsw_sp_port->dcb.pfc = kzalloc_obj(*mlxsw_sp_port->dcb.pfc, + GFP_KERNEL); if (!mlxsw_sp_port->dcb.pfc) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c index 65562ab208b3..2e9c35f5f992 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c @@ -1022,7 +1022,7 @@ mlxsw_sp_fid_port_vid_list_add(struct mlxsw_sp_fid *fid, u16 local_port, { struct mlxsw_sp_fid_port_vid *port_vid, *tmp_port_vid; - port_vid = kzalloc(sizeof(*port_vid), GFP_KERNEL); + port_vid = kzalloc_obj(*port_vid, GFP_KERNEL); if (!port_vid) return -ENOMEM; @@ -2295,7 +2295,7 @@ mlxsw_sp_fids_init(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_fid_core *fid_core; int err, i; - fid_core = kzalloc(sizeof(*mlxsw_sp->fid_core), GFP_KERNEL); + fid_core = kzalloc_obj(*mlxsw_sp->fid_core, GFP_KERNEL); if (!fid_core) return -ENOMEM; mlxsw_sp->fid_core = fid_core; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_flow.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_flow.c index 9e50c823a354..6e341b4a9805 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_flow.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_flow.c @@ -14,7 +14,7 @@ mlxsw_sp_flow_block_create(struct mlxsw_sp *mlxsw_sp, struct net *net) { struct mlxsw_sp_flow_block *block; - block = kzalloc(sizeof(*block), GFP_KERNEL); + block = kzalloc_obj(*block, GFP_KERNEL); if (!block) return NULL; INIT_LIST_HEAD(&block->binding_list); @@ -75,7 +75,7 @@ static int mlxsw_sp_flow_block_bind(struct mlxsw_sp *mlxsw_sp, if (err) return err; - binding = kzalloc(sizeof(*binding), GFP_KERNEL); + binding = kzalloc_obj(*binding, GFP_KERNEL); if (!binding) { err = -ENOMEM; goto err_binding_alloc; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_matchall.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_matchall.c index 07b371cd9818..a5fdc1a7555a 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_matchall.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_matchall.c @@ -243,7 +243,7 @@ int mlxsw_sp_mall_replace(struct mlxsw_sp *mlxsw_sp, return -EOPNOTSUPP; } - mall_entry = kzalloc(sizeof(*mall_entry), GFP_KERNEL); + mall_entry = kzalloc_obj(*mall_entry, GFP_KERNEL); if (!mall_entry) return -ENOMEM; mall_entry->cookie = f->cookie; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c index 81935f87bfcd..1ca8a15a9cb2 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c @@ -172,7 +172,7 @@ static int mlxsw_sp_mr_route_evif_link(struct mlxsw_sp_mr_route *mr_route, { struct mlxsw_sp_mr_route_vif_entry *rve; - rve = kzalloc(sizeof(*rve), GFP_KERNEL); + rve = kzalloc_obj(*rve, GFP_KERNEL); if (!rve) return -ENOMEM; rve->mr_route = mr_route; @@ -305,7 +305,7 @@ mlxsw_sp_mr_route_create(struct mlxsw_sp_mr_table *mr_table, int i; /* Allocate and init a new route and fill it with parameters */ - mr_route = kzalloc(sizeof(*mr_route), GFP_KERNEL); + mr_route = kzalloc_obj(*mr_route, GFP_KERNEL); if (!mr_route) return ERR_PTR(-ENOMEM); INIT_LIST_HEAD(&mr_route->evif_list); diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c index 01d81ae3662a..f652630cbac1 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c @@ -52,7 +52,7 @@ mlxsw_sp_mr_erif_sublist_create(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_mr_erif_sublist *erif_sublist; int err; - erif_sublist = kzalloc(sizeof(*erif_sublist), GFP_KERNEL); + erif_sublist = kzalloc_obj(*erif_sublist, GFP_KERNEL); if (!erif_sublist) return ERR_PTR(-ENOMEM); err = mlxsw_sp_kvdl_alloc(mlxsw_sp, MLXSW_SP_KVDL_ENTRY_TYPE_MCRIGR, diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve.c index 5479a1c19d2e..8068502c8c2b 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve.c @@ -216,7 +216,7 @@ mlxsw_sp_nve_mc_list_create(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_nve_mc_list *mc_list; int err; - mc_list = kmalloc(sizeof(*mc_list), GFP_KERNEL); + mc_list = kmalloc_obj(*mc_list, GFP_KERNEL); if (!mc_list) return ERR_PTR(-ENOMEM); @@ -277,8 +277,8 @@ mlxsw_sp_nve_mc_record_create(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_nve_mc_record *mc_record; int err; - mc_record = kzalloc(struct_size(mc_record, entries, num_max_entries), - GFP_KERNEL); + mc_record = kzalloc_flex(*mc_record, entries, num_max_entries, + GFP_KERNEL); if (!mc_record) return ERR_PTR(-ENOMEM); @@ -848,7 +848,7 @@ static int mlxsw_sp_nve_ipv6_ht_insert(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_nve *nve = mlxsw_sp->nve; int err; - ipv6_ht_node = kzalloc(sizeof(*ipv6_ht_node), GFP_KERNEL); + ipv6_ht_node = kzalloc_obj(*ipv6_ht_node, GFP_KERNEL); if (!ipv6_ht_node) return -ENOMEM; @@ -1119,7 +1119,7 @@ int mlxsw_sp_nve_init(struct mlxsw_sp *mlxsw_sp) struct mlxsw_sp_nve *nve; int err; - nve = kzalloc(sizeof(*mlxsw_sp->nve), GFP_KERNEL); + nve = kzalloc_obj(*mlxsw_sp->nve, GFP_KERNEL); if (!nve) return -ENOMEM; mlxsw_sp->nve = nve; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_pgt.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_pgt.c index 4ef81bac17d6..0b6269a40c5a 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_pgt.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_pgt.c @@ -116,7 +116,7 @@ mlxsw_sp_pgt_entry_create(struct mlxsw_sp_pgt *pgt, u16 mid, u16 smpe) void *ret; int err; - pgt_entry = kzalloc(sizeof(*pgt_entry), GFP_KERNEL); + pgt_entry = kzalloc_obj(*pgt_entry, GFP_KERNEL); if (!pgt_entry) return ERR_PTR(-ENOMEM); @@ -211,7 +211,7 @@ mlxsw_sp_pgt_entry_port_create(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_pgt_entry_port *pgt_entry_port; int err; - pgt_entry_port = kzalloc(sizeof(*pgt_entry_port), GFP_KERNEL); + pgt_entry_port = kzalloc_obj(*pgt_entry_port, GFP_KERNEL); if (!pgt_entry_port) return ERR_PTR(-ENOMEM); @@ -315,7 +315,7 @@ int mlxsw_sp_pgt_init(struct mlxsw_sp *mlxsw_sp) if (!MLXSW_CORE_RES_VALID(mlxsw_sp->core, PGT_SIZE)) return -EIO; - pgt = kzalloc(sizeof(*mlxsw_sp->pgt), GFP_KERNEL); + pgt = kzalloc_obj(*mlxsw_sp->pgt, GFP_KERNEL); if (!pgt) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_policer.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_policer.c index 22ebb207ce4d..a6d849c7bb3d 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_policer.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_policer.c @@ -243,7 +243,7 @@ int mlxsw_sp_policer_add(struct mlxsw_sp *mlxsw_sp, if (err) return err; - policer = kmalloc(sizeof(*policer), GFP_KERNEL); + policer = kmalloc_obj(*policer, GFP_KERNEL); if (!policer) return -ENOMEM; policer->params = *params; @@ -357,7 +357,7 @@ int mlxsw_sp_policers_init(struct mlxsw_sp *mlxsw_sp) struct mlxsw_sp_policer_core *policer_core; int i, err; - policer_core = kzalloc(sizeof(*policer_core), GFP_KERNEL); + policer_core = kzalloc_obj(*policer_core, GFP_KERNEL); if (!policer_core) return -ENOMEM; mlxsw_sp->policer_core = policer_core; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_port_range.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_port_range.c index 2d193de12be6..4afcb32e7d14 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_port_range.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_port_range.c @@ -52,7 +52,7 @@ mlxsw_sp_port_range_reg_create(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_port_range_reg *prr; int err; - prr = kzalloc(sizeof(*prr), GFP_KERNEL); + prr = kzalloc_obj(*prr, GFP_KERNEL); if (!prr) return ERR_PTR(-ENOMEM); @@ -172,7 +172,7 @@ int mlxsw_sp_port_range_init(struct mlxsw_sp *mlxsw_sp) */ WARN_ON(max > BITS_PER_BYTE * sizeof(u16)); - pr_core = kzalloc(sizeof(*mlxsw_sp->pr_core), GFP_KERNEL); + pr_core = kzalloc_obj(*mlxsw_sp->pr_core, GFP_KERNEL); if (!pr_core) return -ENOMEM; mlxsw_sp->pr_core = pr_core; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c index 5b9f0844b8f6..4025b556b39c 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c @@ -277,7 +277,7 @@ mlxsw_sp1_ptp_clock_init(struct mlxsw_sp *mlxsw_sp, struct device *dev) struct mlxsw_sp1_ptp_clock *clock; int err; - clock = kzalloc(sizeof(*clock), GFP_KERNEL); + clock = kzalloc_obj(*clock, GFP_KERNEL); if (!clock) return ERR_PTR(-ENOMEM); @@ -446,7 +446,7 @@ mlxsw_sp2_ptp_clock_init(struct mlxsw_sp *mlxsw_sp, struct device *dev) struct mlxsw_sp_ptp_clock *clock; int err; - clock = kzalloc(sizeof(*clock), GFP_KERNEL); + clock = kzalloc_obj(*clock, GFP_KERNEL); if (!clock) return ERR_PTR(-ENOMEM); @@ -524,7 +524,7 @@ mlxsw_sp1_ptp_unmatched_save(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp1_ptp_unmatched *unmatched; int err; - unmatched = kzalloc(sizeof(*unmatched), GFP_ATOMIC); + unmatched = kzalloc_obj(*unmatched, GFP_ATOMIC); if (!unmatched) return -ENOMEM; @@ -1032,7 +1032,7 @@ struct mlxsw_sp_ptp_state *mlxsw_sp1_ptp_init(struct mlxsw_sp *mlxsw_sp) if (err) return ERR_PTR(err); - ptp_state = kzalloc(sizeof(*ptp_state), GFP_KERNEL); + ptp_state = kzalloc_obj(*ptp_state, GFP_KERNEL); if (!ptp_state) return ERR_PTR(-ENOMEM); ptp_state->common.mlxsw_sp = mlxsw_sp; @@ -1358,7 +1358,7 @@ struct mlxsw_sp_ptp_state *mlxsw_sp2_ptp_init(struct mlxsw_sp *mlxsw_sp) if (!MLXSW_CORE_RES_VALID(mlxsw_sp->core, FID)) return ERR_PTR(-EIO); - ptp_state = kzalloc(sizeof(*ptp_state), GFP_KERNEL); + ptp_state = kzalloc_obj(*ptp_state, GFP_KERNEL); if (!ptp_state) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c index 4243d3b883ff..5e159b326100 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c @@ -365,9 +365,9 @@ static int mlxsw_sp_qdisc_create(struct mlxsw_sp_port *mlxsw_sp_port, return err; if (ops->num_classes) { - mlxsw_sp_qdisc->qdiscs = kcalloc(ops->num_classes, - sizeof(*mlxsw_sp_qdisc->qdiscs), - GFP_KERNEL); + mlxsw_sp_qdisc->qdiscs = kzalloc_objs(*mlxsw_sp_qdisc->qdiscs, + ops->num_classes, + GFP_KERNEL); if (!mlxsw_sp_qdisc->qdiscs) return -ENOMEM; @@ -1332,7 +1332,7 @@ __mlxsw_sp_qdisc_ets_replace(struct mlxsw_sp_port *mlxsw_sp_port, int err; if (!ets_data) { - ets_data = kzalloc(sizeof(*ets_data), GFP_KERNEL); + ets_data = kzalloc_obj(*ets_data, GFP_KERNEL); if (!ets_data) return -ENOMEM; mlxsw_sp_qdisc->ets_data = ets_data; @@ -2021,7 +2021,7 @@ static int mlxsw_sp_qevent_mall_replace(struct mlxsw_sp *mlxsw_sp, return -EOPNOTSUPP; } - mall_entry = kzalloc(sizeof(*mall_entry), GFP_KERNEL); + mall_entry = kzalloc_obj(*mall_entry, GFP_KERNEL); if (!mall_entry) return -ENOMEM; mall_entry->cookie = f->cookie; @@ -2100,7 +2100,7 @@ static struct mlxsw_sp_qevent_block *mlxsw_sp_qevent_block_create(struct mlxsw_s { struct mlxsw_sp_qevent_block *qevent_block; - qevent_block = kzalloc(sizeof(*qevent_block), GFP_KERNEL); + qevent_block = kzalloc_obj(*qevent_block, GFP_KERNEL); if (!qevent_block) return NULL; @@ -2132,7 +2132,7 @@ mlxsw_sp_qevent_binding_create(struct mlxsw_sp_port *mlxsw_sp_port, u32 handle, { struct mlxsw_sp_qevent_binding *binding; - binding = kzalloc(sizeof(*binding), GFP_KERNEL); + binding = kzalloc_obj(*binding, GFP_KERNEL); if (!binding) return ERR_PTR(-ENOMEM); @@ -2321,7 +2321,7 @@ int mlxsw_sp_tc_qdisc_init(struct mlxsw_sp_port *mlxsw_sp_port) { struct mlxsw_sp_qdisc_state *qdisc_state; - qdisc_state = kzalloc(sizeof(*qdisc_state), GFP_KERNEL); + qdisc_state = kzalloc_obj(*qdisc_state, GFP_KERNEL); if (!qdisc_state) return -ENOMEM; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c index 2d0e89bd2fb9..417431895268 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c @@ -538,7 +538,7 @@ static struct mlxsw_sp_fib *mlxsw_sp_fib_create(struct mlxsw_sp *mlxsw_sp, int err; lpm_tree = mlxsw_sp->router->lpm.proto_trees[proto]; - fib = kzalloc(sizeof(*fib), GFP_KERNEL); + fib = kzalloc_obj(*fib, GFP_KERNEL); if (!fib) return ERR_PTR(-ENOMEM); err = rhashtable_init(&fib->ht, &mlxsw_sp_fib_ht_params); @@ -717,9 +717,9 @@ static int mlxsw_sp_lpm_init(struct mlxsw_sp *mlxsw_sp) max_trees = MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_LPM_TREES); mlxsw_sp->router->lpm.tree_count = max_trees - MLXSW_SP_LPM_TREE_MIN; - mlxsw_sp->router->lpm.trees = kcalloc(mlxsw_sp->router->lpm.tree_count, - sizeof(struct mlxsw_sp_lpm_tree), - GFP_KERNEL); + mlxsw_sp->router->lpm.trees = kzalloc_objs(struct mlxsw_sp_lpm_tree, + mlxsw_sp->router->lpm.tree_count, + GFP_KERNEL); if (!mlxsw_sp->router->lpm.trees) return -ENOMEM; @@ -1038,8 +1038,8 @@ static int mlxsw_sp_vrs_init(struct mlxsw_sp *mlxsw_sp) return -EIO; max_vrs = MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_VRS); - mlxsw_sp->router->vrs = kcalloc(max_vrs, sizeof(struct mlxsw_sp_vr), - GFP_KERNEL); + mlxsw_sp->router->vrs = kzalloc_objs(struct mlxsw_sp_vr, max_vrs, + GFP_KERNEL); if (!mlxsw_sp->router->vrs) return -ENOMEM; @@ -1095,7 +1095,7 @@ mlxsw_sp_crif_alloc(struct net_device *dev) { struct mlxsw_sp_crif *crif; - crif = kzalloc(sizeof(*crif), GFP_KERNEL); + crif = kzalloc_obj(*crif, GFP_KERNEL); if (!crif) return NULL; @@ -1178,7 +1178,7 @@ mlxsw_sp_ipip_entry_alloc(struct mlxsw_sp *mlxsw_sp, int err; ipip_ops = mlxsw_sp->router->ipip_ops_arr[ipipt]; - ipip_entry = kzalloc(sizeof(*ipip_entry), GFP_KERNEL); + ipip_entry = kzalloc_obj(*ipip_entry, GFP_KERNEL); if (!ipip_entry) return ERR_PTR(-ENOMEM); @@ -2261,7 +2261,7 @@ mlxsw_sp_neigh_entry_alloc(struct mlxsw_sp *mlxsw_sp, struct neighbour *n, { struct mlxsw_sp_neigh_entry *neigh_entry; - neigh_entry = kzalloc(sizeof(*neigh_entry), GFP_KERNEL); + neigh_entry = kzalloc_obj(*neigh_entry, GFP_KERNEL); if (!neigh_entry) return NULL; @@ -2856,7 +2856,7 @@ static int mlxsw_sp_router_schedule_work(struct net *net, if (!net_eq(net, mlxsw_sp_net(router->mlxsw_sp))) return NOTIFY_DONE; - net_work = kzalloc(sizeof(*net_work), GFP_ATOMIC); + net_work = kzalloc_obj(*net_work, GFP_ATOMIC); if (!net_work) return NOTIFY_BAD; @@ -3172,7 +3172,7 @@ mlxsw_sp_nexthop_counter_alloc(struct mlxsw_sp *mlxsw_sp) struct mlxsw_sp_nexthop_counter *nhct; int err; - nhct = kzalloc(sizeof(*nhct), GFP_KERNEL); + nhct = kzalloc_obj(*nhct, GFP_KERNEL); if (!nhct) return ERR_PTR(-ENOMEM); @@ -3404,7 +3404,7 @@ mlxsw_sp_nexthop_group_vr_entry_create(struct mlxsw_sp_nexthop_group *nh_grp, struct mlxsw_sp_nexthop_group_vr_entry *vr_entry; int err; - vr_entry = kzalloc(sizeof(*vr_entry), GFP_KERNEL); + vr_entry = kzalloc_obj(*vr_entry, GFP_KERNEL); if (!vr_entry) return -ENOMEM; @@ -5198,7 +5198,7 @@ mlxsw_sp_nexthop_obj_group_info_init(struct mlxsw_sp *mlxsw_sp, return -EINVAL; } - nhgi = kzalloc(struct_size(nhgi, nexthops, nhs), GFP_KERNEL); + nhgi = kzalloc_flex(*nhgi, nexthops, nhs, GFP_KERNEL); if (!nhgi) return -ENOMEM; nh_grp->nhgi = nhgi; @@ -5304,7 +5304,7 @@ mlxsw_sp_nexthop_obj_group_create(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_nexthop_group *nh_grp; int err; - nh_grp = kzalloc(sizeof(*nh_grp), GFP_KERNEL); + nh_grp = kzalloc_obj(*nh_grp, GFP_KERNEL); if (!nh_grp) return ERR_PTR(-ENOMEM); INIT_LIST_HEAD(&nh_grp->vr_list); @@ -5779,7 +5779,7 @@ mlxsw_sp_nexthop4_group_info_init(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_nexthop *nh; int err, i; - nhgi = kzalloc(struct_size(nhgi, nexthops, nhs), GFP_KERNEL); + nhgi = kzalloc_flex(*nhgi, nexthops, nhs, GFP_KERNEL); if (!nhgi) return -ENOMEM; nh_grp->nhgi = nhgi; @@ -5841,7 +5841,7 @@ mlxsw_sp_nexthop4_group_create(struct mlxsw_sp *mlxsw_sp, struct fib_info *fi) struct mlxsw_sp_nexthop_group *nh_grp; int err; - nh_grp = kzalloc(sizeof(*nh_grp), GFP_KERNEL); + nh_grp = kzalloc_obj(*nh_grp, GFP_KERNEL); if (!nh_grp) return ERR_PTR(-ENOMEM); INIT_LIST_HEAD(&nh_grp->vr_list); @@ -6481,7 +6481,7 @@ mlxsw_sp_fib4_entry_create(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_fib_entry *fib_entry; int err; - fib4_entry = kzalloc(sizeof(*fib4_entry), GFP_KERNEL); + fib4_entry = kzalloc_obj(*fib4_entry, GFP_KERNEL); if (!fib4_entry) return ERR_PTR(-ENOMEM); fib_entry = &fib4_entry->common; @@ -6601,7 +6601,7 @@ mlxsw_sp_fib_node_create(struct mlxsw_sp_fib *fib, const void *addr, { struct mlxsw_sp_fib_node *fib_node; - fib_node = kzalloc(sizeof(*fib_node), GFP_KERNEL); + fib_node = kzalloc_obj(*fib_node, GFP_KERNEL); if (!fib_node) return NULL; @@ -6906,7 +6906,7 @@ static struct mlxsw_sp_rt6 *mlxsw_sp_rt6_create(struct fib6_info *rt) { struct mlxsw_sp_rt6 *mlxsw_sp_rt6; - mlxsw_sp_rt6 = kzalloc(sizeof(*mlxsw_sp_rt6), GFP_KERNEL); + mlxsw_sp_rt6 = kzalloc_obj(*mlxsw_sp_rt6, GFP_KERNEL); if (!mlxsw_sp_rt6) return ERR_PTR(-ENOMEM); @@ -7032,8 +7032,7 @@ mlxsw_sp_nexthop6_group_info_init(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_nexthop *nh; int err, i; - nhgi = kzalloc(struct_size(nhgi, nexthops, fib6_entry->nrt6), - GFP_KERNEL); + nhgi = kzalloc_flex(*nhgi, nexthops, fib6_entry->nrt6, GFP_KERNEL); if (!nhgi) return -ENOMEM; nh_grp->nhgi = nhgi; @@ -7099,7 +7098,7 @@ mlxsw_sp_nexthop6_group_create(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_nexthop_group *nh_grp; int err; - nh_grp = kzalloc(sizeof(*nh_grp), GFP_KERNEL); + nh_grp = kzalloc_obj(*nh_grp, GFP_KERNEL); if (!nh_grp) return ERR_PTR(-ENOMEM); INIT_LIST_HEAD(&nh_grp->vr_list); @@ -7378,7 +7377,7 @@ mlxsw_sp_fib6_entry_create(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_rt6 *mlxsw_sp_rt6; int err, i; - fib6_entry = kzalloc(sizeof(*fib6_entry), GFP_KERNEL); + fib6_entry = kzalloc_obj(*fib6_entry, GFP_KERNEL); if (!fib6_entry) return ERR_PTR(-ENOMEM); fib_entry = &fib6_entry->common; @@ -7827,7 +7826,7 @@ mlxsw_sp_router_fib6_work_init(struct mlxsw_sp_fib6_event_work *fib6_work, nrt6 = fen6_info->nsiblings + 1; - rt_arr = kcalloc(nrt6, sizeof(struct fib6_info *), GFP_ATOMIC); + rt_arr = kzalloc_objs(struct fib6_info *, nrt6, GFP_ATOMIC); if (!rt_arr) return -ENOMEM; @@ -8139,7 +8138,7 @@ static int mlxsw_sp_router_fib_event(struct notifier_block *nb, break; } - fib_work = kzalloc(sizeof(*fib_work), GFP_ATOMIC); + fib_work = kzalloc_obj(*fib_work, GFP_ATOMIC); if (!fib_work) return NOTIFY_BAD; @@ -8542,7 +8541,7 @@ mlxsw_sp_router_hwstats_notify_schedule(struct net_device *dev) * later. */ - hws_work = kzalloc(sizeof(*hws_work), GFP_KERNEL); + hws_work = kzalloc_obj(*hws_work, GFP_KERNEL); if (!hws_work) return; @@ -8947,7 +8946,7 @@ mlxsw_sp_rif_mac_profile_alloc(const char *mac) { struct mlxsw_sp_rif_mac_profile *profile; - profile = kzalloc(sizeof(*profile), GFP_KERNEL); + profile = kzalloc_obj(*profile, GFP_KERNEL); if (!profile) return NULL; @@ -9594,7 +9593,7 @@ static int mlxsw_sp_inet6addr_event(struct notifier_block *nb, if (event == NETDEV_UP) return NOTIFY_DONE; - inet6addr_work = kzalloc(sizeof(*inet6addr_work), GFP_ATOMIC); + inet6addr_work = kzalloc_obj(*inet6addr_work, GFP_ATOMIC); if (!inet6addr_work) return NOTIFY_BAD; @@ -11069,9 +11068,8 @@ static int mlxsw_sp_rifs_init(struct mlxsw_sp *mlxsw_sp) mlxsw_sp->router->max_rif_mac_profile = MLXSW_CORE_RES_GET(core, MAX_RIF_MAC_PROFILES); - mlxsw_sp->router->rifs = kcalloc(max_rifs, - sizeof(struct mlxsw_sp_rif *), - GFP_KERNEL); + mlxsw_sp->router->rifs = kzalloc_objs(struct mlxsw_sp_rif *, max_rifs, + GFP_KERNEL); if (!mlxsw_sp->router->rifs) return -ENOMEM; @@ -11584,7 +11582,7 @@ int mlxsw_sp_router_init(struct mlxsw_sp *mlxsw_sp, struct notifier_block *nb; int err; - router = kzalloc(sizeof(*mlxsw_sp->router), GFP_KERNEL); + router = kzalloc_obj(*mlxsw_sp->router, GFP_KERNEL); if (!router) return -ENOMEM; mutex_init(&router->lock); diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c index 32d2e61f2b82..79b0ed4e4c71 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c @@ -87,7 +87,7 @@ int mlxsw_sp_span_init(struct mlxsw_sp *mlxsw_sp) return -EIO; entries_count = MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_SPAN); - span = kzalloc(struct_size(span, entries, entries_count), GFP_KERNEL); + span = kzalloc_flex(*span, entries, entries_count, GFP_KERNEL); if (!span) return -ENOMEM; refcount_set(&span->policer_id_base_ref_count, 0); @@ -1120,7 +1120,7 @@ mlxsw_sp_span_analyzed_port_create(struct mlxsw_sp_span *span, struct mlxsw_sp_span_analyzed_port *analyzed_port; int err; - analyzed_port = kzalloc(sizeof(*analyzed_port), GFP_KERNEL); + analyzed_port = kzalloc_obj(*analyzed_port, GFP_KERNEL); if (!analyzed_port) return ERR_PTR(-ENOMEM); @@ -1505,7 +1505,7 @@ mlxsw_sp_span_trigger_entry_create(struct mlxsw_sp_span *span, struct mlxsw_sp_span_trigger_entry *trigger_entry; int err; - trigger_entry = kzalloc(sizeof(*trigger_entry), GFP_KERNEL); + trigger_entry = kzalloc_obj(*trigger_entry, GFP_KERNEL); if (!trigger_entry) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index a48bf342084d..7c386ee2ea74 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -262,7 +262,7 @@ mlxsw_sp_bridge_device_create(struct mlxsw_sp_bridge *bridge, return ERR_PTR(-EINVAL); } - bridge_device = kzalloc(sizeof(*bridge_device), GFP_KERNEL); + bridge_device = kzalloc_obj(*bridge_device, GFP_KERNEL); if (!bridge_device) return ERR_PTR(-ENOMEM); @@ -478,7 +478,7 @@ mlxsw_sp_bridge_port_create(struct mlxsw_sp_bridge_device *bridge_device, struct mlxsw_sp_port *mlxsw_sp_port; int err; - bridge_port = kzalloc(sizeof(*bridge_port), GFP_KERNEL); + bridge_port = kzalloc_obj(*bridge_port, GFP_KERNEL); if (!bridge_port) return ERR_PTR(-ENOMEM); @@ -625,7 +625,7 @@ mlxsw_sp_bridge_vlan_create(struct mlxsw_sp_bridge_port *bridge_port, u16 vid) { struct mlxsw_sp_bridge_vlan *bridge_vlan; - bridge_vlan = kzalloc(sizeof(*bridge_vlan), GFP_KERNEL); + bridge_vlan = kzalloc_obj(*bridge_vlan, GFP_KERNEL); if (!bridge_vlan) return NULL; @@ -1131,7 +1131,7 @@ mlxsw_sp_mdb_entry_port_get(struct mlxsw_sp *mlxsw_sp, if (err) return ERR_PTR(err); - mdb_entry_port = kzalloc(sizeof(*mdb_entry_port), GFP_KERNEL); + mdb_entry_port = kzalloc_obj(*mdb_entry_port, GFP_KERNEL); if (!mdb_entry_port) { err = -ENOMEM; goto err_mdb_entry_port_alloc; @@ -1195,7 +1195,7 @@ mlxsw_sp_mdb_entry_mrouter_port_get(struct mlxsw_sp *mlxsw_sp, if (err) return ERR_PTR(err); - mdb_entry_port = kzalloc(sizeof(*mdb_entry_port), GFP_KERNEL); + mdb_entry_port = kzalloc_obj(*mdb_entry_port, GFP_KERNEL); if (!mdb_entry_port) { err = -ENOMEM; goto err_mdb_entry_port_alloc; @@ -2027,7 +2027,7 @@ mlxsw_sp_mc_mdb_entry_init(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_mdb_entry *mdb_entry; int err; - mdb_entry = kzalloc(sizeof(*mdb_entry), GFP_KERNEL); + mdb_entry = kzalloc_obj(*mdb_entry, GFP_KERNEL); if (!mdb_entry) return ERR_PTR(-ENOMEM); @@ -3784,7 +3784,7 @@ static int mlxsw_sp_switchdev_event(struct notifier_block *unused, if (!mlxsw_sp_port_dev_lower_find_rcu(br_dev)) return NOTIFY_DONE; - switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC); + switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC); if (!switchdev_work) return NOTIFY_BAD; @@ -4169,7 +4169,7 @@ int mlxsw_sp_switchdev_init(struct mlxsw_sp *mlxsw_sp) { struct mlxsw_sp_bridge *bridge; - bridge = kzalloc(sizeof(*mlxsw_sp->bridge), GFP_KERNEL); + bridge = kzalloc_obj(*mlxsw_sp->bridge, GFP_KERNEL); if (!bridge) return -ENOMEM; mlxsw_sp->bridge = bridge; diff --git a/drivers/net/ethernet/meta/fbnic/fbnic_txrx.c b/drivers/net/ethernet/meta/fbnic/fbnic_txrx.c index 4aaa928bf8ab..e4e1af365460 100644 --- a/drivers/net/ethernet/meta/fbnic/fbnic_txrx.c +++ b/drivers/net/ethernet/meta/fbnic/fbnic_txrx.c @@ -1640,7 +1640,7 @@ static int fbnic_alloc_napi_vector(struct fbnic_dev *fbd, struct fbnic_net *fbn, return -EIO; /* Allocate NAPI vector and queue triads */ - nv = kzalloc(struct_size(nv, qt, qt_count), GFP_KERNEL); + nv = kzalloc_flex(*nv, qt, qt_count, GFP_KERNEL); if (!nv) return -ENOMEM; diff --git a/drivers/net/ethernet/micrel/ksz884x.c b/drivers/net/ethernet/micrel/ksz884x.c index 491e9ce3d9b0..e594ea78b118 100644 --- a/drivers/net/ethernet/micrel/ksz884x.c +++ b/drivers/net/ethernet/micrel/ksz884x.c @@ -3991,8 +3991,8 @@ static void ksz_update_timer(struct ksz_timer_info *info) */ static int ksz_alloc_soft_desc(struct ksz_desc_info *desc_info, int transmit) { - desc_info->ring = kcalloc(desc_info->alloc, sizeof(struct ksz_desc), - GFP_KERNEL); + desc_info->ring = kzalloc_objs(struct ksz_desc, desc_info->alloc, + GFP_KERNEL); if (!desc_info->ring) return 1; hw_init_desc(desc_info, transmit); @@ -6577,7 +6577,7 @@ static int pcidev_init(struct pci_dev *pdev, const struct pci_device_id *id) result = -ENOMEM; - info = kzalloc(sizeof(struct platform_info), GFP_KERNEL); + info = kzalloc_obj(struct platform_info, GFP_KERNEL); if (!info) goto pcidev_init_dev_err; @@ -6630,7 +6630,7 @@ static int pcidev_init(struct pci_dev *pdev, const struct pci_device_id *id) mib_port_count = SWITCH_PORT_NUM; } hw->mib_port_cnt = TOTAL_PORT_NUM; - hw->ksz_switch = kzalloc(sizeof(struct ksz_switch), GFP_KERNEL); + hw->ksz_switch = kzalloc_obj(struct ksz_switch, GFP_KERNEL); if (!hw->ksz_switch) goto pcidev_init_alloc_err; diff --git a/drivers/net/ethernet/microchip/lan743x_main.c b/drivers/net/ethernet/microchip/lan743x_main.c index e4c542fc6c2b..7ab6ad877a3c 100644 --- a/drivers/net/ethernet/microchip/lan743x_main.c +++ b/drivers/net/ethernet/microchip/lan743x_main.c @@ -2141,7 +2141,7 @@ static int lan743x_tx_ring_init(struct lan743x_tx *tx) tx->ring_cpu_ptr = (struct lan743x_tx_descriptor *)cpu_ptr; tx->ring_dma_ptr = dma_ptr; - cpu_ptr = kcalloc(tx->ring_size, sizeof(*tx->buffer_info), GFP_KERNEL); + cpu_ptr = kzalloc_objs(*tx->buffer_info, tx->ring_size, GFP_KERNEL); if (!cpu_ptr) { ret = -ENOMEM; goto cleanup; @@ -2686,8 +2686,7 @@ static int lan743x_rx_ring_init(struct lan743x_rx *rx) rx->ring_cpu_ptr = (struct lan743x_rx_descriptor *)cpu_ptr; rx->ring_dma_ptr = dma_ptr; - cpu_ptr = kcalloc(rx->ring_size, sizeof(*rx->buffer_info), - GFP_KERNEL); + cpu_ptr = kzalloc_objs(*rx->buffer_info, rx->ring_size, GFP_KERNEL); if (!cpu_ptr) { ret = -ENOMEM; goto cleanup; diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c b/drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c index 2ea263e893ee..cddd5dd35feb 100644 --- a/drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c +++ b/drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c @@ -46,7 +46,7 @@ static void lan966x_fdb_add_entry(struct lan966x *lan966x, return; } - fdb_entry = kzalloc(sizeof(*fdb_entry), GFP_KERNEL); + fdb_entry = kzalloc_obj(*fdb_entry, GFP_KERNEL); if (!fdb_entry) return; @@ -262,7 +262,7 @@ int lan966x_handle_fdb(struct net_device *dev, !fdb_info->added_by_user) break; - fdb_work = kzalloc(sizeof(*fdb_work), GFP_ATOMIC); + fdb_work = kzalloc_obj(*fdb_work, GFP_ATOMIC); if (!fdb_work) return -ENOMEM; diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c b/drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c index 502670718104..13e22179f57a 100644 --- a/drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c +++ b/drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c @@ -200,8 +200,8 @@ static int lan966x_fdma_tx_alloc(struct lan966x_tx *tx) struct fdma *fdma = &tx->fdma; int err; - tx->dcbs_buf = kcalloc(fdma->n_dcbs, sizeof(struct lan966x_tx_dcb_buf), - GFP_KERNEL); + tx->dcbs_buf = kzalloc_objs(struct lan966x_tx_dcb_buf, fdma->n_dcbs, + GFP_KERNEL); if (!tx->dcbs_buf) return -ENOMEM; diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_mac.c b/drivers/net/ethernet/microchip/lan966x/lan966x_mac.c index baa3a30c039f..7a2294a0d099 100644 --- a/drivers/net/ethernet/microchip/lan966x/lan966x_mac.c +++ b/drivers/net/ethernet/microchip/lan966x/lan966x_mac.c @@ -206,7 +206,7 @@ static struct lan966x_mac_entry *lan966x_mac_alloc_entry(struct lan966x_port *po { struct lan966x_mac_entry *mac_entry; - mac_entry = kzalloc(sizeof(*mac_entry), GFP_ATOMIC); + mac_entry = kzalloc_obj(*mac_entry, GFP_ATOMIC); if (!mac_entry) return NULL; diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c b/drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c index 2af55268bf4d..aef4bc288e05 100644 --- a/drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c +++ b/drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c @@ -74,7 +74,7 @@ lan966x_mdb_entry_add(struct lan966x *lan966x, { struct lan966x_mdb_entry *mdb_entry; - mdb_entry = kzalloc(sizeof(*mdb_entry), GFP_KERNEL); + mdb_entry = kzalloc_obj(*mdb_entry, GFP_KERNEL); if (!mdb_entry) return ERR_PTR(-ENOMEM); @@ -184,7 +184,7 @@ lan966x_pgid_entry_add(struct lan966x *lan966x, int index, u16 ports) { struct lan966x_pgid_entry *pgid_entry; - pgid_entry = kzalloc(sizeof(*pgid_entry), GFP_KERNEL); + pgid_entry = kzalloc_obj(*pgid_entry, GFP_KERNEL); if (!pgid_entry) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c b/drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c index 2a37fc1ba4bc..cb07178f55fa 100644 --- a/drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c +++ b/drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c @@ -611,7 +611,7 @@ lan966x_vcap_admin_alloc(struct lan966x *lan966x, struct vcap_control *ctrl, { struct vcap_admin *admin; - admin = kzalloc(sizeof(*admin), GFP_KERNEL); + admin = kzalloc_obj(*admin, GFP_KERNEL); if (!admin) return ERR_PTR(-ENOMEM); @@ -712,7 +712,7 @@ int lan966x_vcap_init(struct lan966x *lan966x) struct vcap_admin *admin; struct dentry *dir; - ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL); + ctrl = kzalloc_obj(*ctrl, GFP_KERNEL); if (!ctrl) return -ENOMEM; diff --git a/drivers/net/ethernet/microchip/sparx5/lan969x/lan969x_fdma.c b/drivers/net/ethernet/microchip/sparx5/lan969x/lan969x_fdma.c index 1282f5c3ee6d..57a24cbfb398 100644 --- a/drivers/net/ethernet/microchip/sparx5/lan969x/lan969x_fdma.c +++ b/drivers/net/ethernet/microchip/sparx5/lan969x/lan969x_fdma.c @@ -186,9 +186,7 @@ static int lan969x_fdma_tx_alloc(struct sparx5 *sparx5) struct fdma *fdma = &tx->fdma; int err; - tx->dbs = kcalloc(fdma->n_dcbs, - sizeof(struct sparx5_tx_buf), - GFP_KERNEL); + tx->dbs = kzalloc_objs(struct sparx5_tx_buf, fdma->n_dcbs, GFP_KERNEL); if (!tx->dbs) return -ENOMEM; diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_calendar.c b/drivers/net/ethernet/microchip/sparx5/sparx5_calendar.c index 5c46d81de530..19321de0712e 100644 --- a/drivers/net/ethernet/microchip/sparx5/sparx5_calendar.c +++ b/drivers/net/ethernet/microchip/sparx5/sparx5_calendar.c @@ -585,7 +585,7 @@ int sparx5_config_dsm_calendar(struct sparx5 *sparx5) struct sparx5_calendar_data *data; int err = 0; - data = kzalloc(sizeof(*data), GFP_KERNEL); + data = kzalloc_obj(*data, GFP_KERNEL); if (!data) return -ENOMEM; diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_main.c b/drivers/net/ethernet/microchip/sparx5/sparx5_main.c index 582145713cfd..8c7894a69e5c 100644 --- a/drivers/net/ethernet/microchip/sparx5/sparx5_main.c +++ b/drivers/net/ethernet/microchip/sparx5/sparx5_main.c @@ -889,8 +889,8 @@ static int mchp_sparx5_probe(struct platform_device *pdev) } sparx5->port_count = of_get_child_count(ports); - configs = kcalloc(sparx5->port_count, - sizeof(struct initial_port_config), GFP_KERNEL); + configs = kzalloc_objs(struct initial_port_config, sparx5->port_count, + GFP_KERNEL); if (!configs) { err = -ENOMEM; goto cleanup_pnode; diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_switchdev.c b/drivers/net/ethernet/microchip/sparx5/sparx5_switchdev.c index 0a71abbd3da5..6743c5ef3efd 100644 --- a/drivers/net/ethernet/microchip/sparx5/sparx5_switchdev.c +++ b/drivers/net/ethernet/microchip/sparx5/sparx5_switchdev.c @@ -398,7 +398,7 @@ static int sparx5_switchdev_event(struct notifier_block *nb, case SWITCHDEV_FDB_ADD_TO_DEVICE: fallthrough; case SWITCHDEV_FDB_DEL_TO_DEVICE: - switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC); + switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC); if (!switchdev_work) return NOTIFY_BAD; @@ -465,7 +465,7 @@ static int sparx5_alloc_mdb_entry(struct sparx5 *sparx5, u16 pgid_idx; int err; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) return -ENOMEM; diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c b/drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c index 4dc1ebd5d510..57d88fe32752 100644 --- a/drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c +++ b/drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c @@ -1464,7 +1464,7 @@ static int sparx5_tc_flower_template_create(struct net_device *ndev, return -EBUSY; } - ftp = kzalloc(sizeof(*ftp), GFP_KERNEL); + ftp = kzalloc_obj(*ftp, GFP_KERNEL); if (!ftp) return -ENOMEM; diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_tc_matchall.c b/drivers/net/ethernet/microchip/sparx5/sparx5_tc_matchall.c index 6b4d1d7b9730..cd0f44a6c88e 100644 --- a/drivers/net/ethernet/microchip/sparx5/sparx5_tc_matchall.c +++ b/drivers/net/ethernet/microchip/sparx5/sparx5_tc_matchall.c @@ -60,7 +60,7 @@ static int sparx5_tc_matchall_replace(struct net_device *ndev, } action = &tmo->rule->action.entries[0]; - mall_entry = kzalloc(sizeof(*mall_entry), GFP_KERNEL); + mall_entry = kzalloc_obj(*mall_entry, GFP_KERNEL); if (!mall_entry) return -ENOMEM; diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c b/drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c index 25066ddb8d4d..4bf3be00d627 100644 --- a/drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c +++ b/drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c @@ -1944,7 +1944,7 @@ sparx5_vcap_admin_alloc(struct sparx5 *sparx5, struct vcap_control *ctrl, { struct vcap_admin *admin; - admin = kzalloc(sizeof(*admin), GFP_KERNEL); + admin = kzalloc_obj(*admin, GFP_KERNEL); if (!admin) return ERR_PTR(-ENOMEM); INIT_LIST_HEAD(&admin->list); @@ -2047,7 +2047,7 @@ int sparx5_vcap_init(struct sparx5 *sparx5) * - Initialize VCAP blocks * - Configure port keysets */ - ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL); + ctrl = kzalloc_obj(*ctrl, GFP_KERNEL); if (!ctrl) return -ENOMEM; diff --git a/drivers/net/ethernet/microchip/vcap/vcap_api.c b/drivers/net/ethernet/microchip/vcap/vcap_api.c index 2687765abe52..29fe5101db4c 100644 --- a/drivers/net/ethernet/microchip/vcap/vcap_api.c +++ b/drivers/net/ethernet/microchip/vcap/vcap_api.c @@ -1004,7 +1004,7 @@ static struct vcap_rule_internal *vcap_dup_rule(struct vcap_rule_internal *ri, struct vcap_rule_internal *duprule; /* Allocate the client part */ - duprule = kzalloc(sizeof(*duprule), GFP_KERNEL); + duprule = kzalloc_obj(*duprule, GFP_KERNEL); if (!duprule) return ERR_PTR(-ENOMEM); *duprule = *ri; @@ -1309,7 +1309,7 @@ static void vcap_rule_alloc_keyfield(struct vcap_rule_internal *ri, { struct vcap_client_keyfield *field; - field = kzalloc(sizeof(*field), GFP_KERNEL); + field = kzalloc_obj(*field, GFP_KERNEL); if (!field) return; INIT_LIST_HEAD(&field->ctrl.list); @@ -1418,7 +1418,7 @@ static void vcap_rule_alloc_actionfield(struct vcap_rule_internal *ri, { struct vcap_client_actionfield *field; - field = kzalloc(sizeof(*field), GFP_KERNEL); + field = kzalloc_obj(*field, GFP_KERNEL); if (!field) return; INIT_LIST_HEAD(&field->ctrl.list); @@ -2345,7 +2345,7 @@ struct vcap_rule *vcap_alloc_rule(struct vcap_control *vctrl, } /* Create a container for the rule and return it */ - ri = kzalloc(sizeof(*ri), GFP_KERNEL); + ri = kzalloc_obj(*ri, GFP_KERNEL); if (!ri) { err = -ENOMEM; goto out_unlock; @@ -2689,7 +2689,7 @@ static int vcap_rule_add_key(struct vcap_rule *rule, return -EINVAL; } - field = kzalloc(sizeof(*field), GFP_KERNEL); + field = kzalloc_obj(*field, GFP_KERNEL); if (!field) return -ENOMEM; memcpy(&field->data, data, sizeof(field->data)); @@ -2857,7 +2857,7 @@ static int vcap_rule_add_action(struct vcap_rule *rule, return -EINVAL; } - field = kzalloc(sizeof(*field), GFP_KERNEL); + field = kzalloc_obj(*field, GFP_KERNEL); if (!field) return -ENOMEM; memcpy(&field->data, data, sizeof(field->data)); @@ -3125,7 +3125,7 @@ static int vcap_enable(struct vcap_control *vctrl, struct net_device *ndev, if (!admin) return -ENOENT; - eport = kzalloc(sizeof(*eport), GFP_KERNEL); + eport = kzalloc_obj(*eport, GFP_KERNEL); if (!eport) return -ENOMEM; diff --git a/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c b/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c index 16eb3de60eb6..c57919278783 100644 --- a/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c +++ b/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c @@ -2037,7 +2037,7 @@ static void vcap_api_filter_unsupported_keys_test(struct kunit *test) /* Add all keys to the rule */ INIT_LIST_HEAD(&ri.data.keyfields); for (idx = 0; idx < ARRAY_SIZE(keylist); idx++) { - ckf = kzalloc(sizeof(*ckf), GFP_KERNEL); + ckf = kzalloc_obj(*ckf, GFP_KERNEL); if (ckf) { ckf->ctrl.key = keylist[idx]; list_add_tail(&ckf->ctrl.list, &ri.data.keyfields); @@ -2161,7 +2161,7 @@ static void vcap_api_filter_keylist_test(struct kunit *test) /* Add all keys to the rule */ INIT_LIST_HEAD(&ri.data.keyfields); for (idx = 0; idx < ARRAY_SIZE(keylist); idx++) { - ckf = kzalloc(sizeof(*ckf), GFP_KERNEL); + ckf = kzalloc_obj(*ckf, GFP_KERNEL); if (ckf) { ckf->ctrl.key = keylist[idx]; list_add_tail(&ckf->ctrl.list, &ri.data.keyfields); diff --git a/drivers/net/ethernet/microsoft/mana/gdma_main.c b/drivers/net/ethernet/microsoft/mana/gdma_main.c index 0055c231acf6..dc7c29240cac 100644 --- a/drivers/net/ethernet/microsoft/mana/gdma_main.c +++ b/drivers/net/ethernet/microsoft/mana/gdma_main.c @@ -634,7 +634,7 @@ static void mana_gd_process_eqe(struct gdma_queue *eq) break; } - mns_wk = kzalloc(sizeof(*mns_wk), GFP_ATOMIC); + mns_wk = kzalloc_obj(*mns_wk, GFP_ATOMIC); if (!mns_wk) { module_put(THIS_MODULE); break; @@ -923,7 +923,7 @@ int mana_gd_create_hwc_queue(struct gdma_dev *gd, struct gdma_queue *queue; int err; - queue = kzalloc(sizeof(*queue), GFP_KERNEL); + queue = kzalloc_obj(*queue, GFP_KERNEL); if (!queue) return -ENOMEM; @@ -1062,7 +1062,7 @@ int mana_gd_create_mana_eq(struct gdma_dev *gd, if (spec->type != GDMA_EQ) return -EINVAL; - queue = kzalloc(sizeof(*queue), GFP_KERNEL); + queue = kzalloc_obj(*queue, GFP_KERNEL); if (!queue) return -ENOMEM; @@ -1115,7 +1115,7 @@ int mana_gd_create_mana_wq_cq(struct gdma_dev *gd, spec->type != GDMA_RQ) return -EINVAL; - queue = kzalloc(sizeof(*queue), GFP_KERNEL); + queue = kzalloc_obj(*queue, GFP_KERNEL); if (!queue) return -ENOMEM; @@ -1625,7 +1625,7 @@ static int mana_gd_setup_dyn_irqs(struct pci_dev *pdev, int nvec) bool skip_first_cpu = false; int *irqs, irq, err, i; - irqs = kmalloc_array(nvec, sizeof(int), GFP_KERNEL); + irqs = kmalloc_objs(int, nvec, GFP_KERNEL); if (!irqs) return -ENOMEM; @@ -1636,7 +1636,7 @@ static int mana_gd_setup_dyn_irqs(struct pci_dev *pdev, int nvec) * further used in irq_setup() */ for (i = 1; i <= nvec; i++) { - gic = kzalloc(sizeof(*gic), GFP_KERNEL); + gic = kzalloc_obj(*gic, GFP_KERNEL); if (!gic) { err = -ENOMEM; goto free_irq; @@ -1707,14 +1707,14 @@ static int mana_gd_setup_irqs(struct pci_dev *pdev, int nvec) unsigned int cpu; int err, i; - irqs = kmalloc_array(nvec, sizeof(int), GFP_KERNEL); + irqs = kmalloc_objs(int, nvec, GFP_KERNEL); if (!irqs) return -ENOMEM; start_irqs = irqs; for (i = 0; i < nvec; i++) { - gic = kzalloc(sizeof(*gic), GFP_KERNEL); + gic = kzalloc_obj(*gic, GFP_KERNEL); if (!gic) { err = -ENOMEM; goto free_irq; @@ -2071,7 +2071,7 @@ disable_dev: dev_info(&pdev->dev, "Start MANA recovery mode\n"); - dev = kzalloc(sizeof(*dev), GFP_KERNEL); + dev = kzalloc_obj(*dev, GFP_KERNEL); if (!dev) return err; diff --git a/drivers/net/ethernet/microsoft/mana/hw_channel.c b/drivers/net/ethernet/microsoft/mana/hw_channel.c index aa4e2731e2ba..f2221e65a6a3 100644 --- a/drivers/net/ethernet/microsoft/mana/hw_channel.c +++ b/drivers/net/ethernet/microsoft/mana/hw_channel.c @@ -407,7 +407,7 @@ static int mana_hwc_create_cq(struct hw_channel_context *hwc, u16 q_depth, if (cq_size < MANA_MIN_QSIZE) cq_size = MANA_MIN_QSIZE; - hwc_cq = kzalloc(sizeof(*hwc_cq), GFP_KERNEL); + hwc_cq = kzalloc_obj(*hwc_cq, GFP_KERNEL); if (!hwc_cq) return -ENOMEM; @@ -426,7 +426,7 @@ static int mana_hwc_create_cq(struct hw_channel_context *hwc, u16 q_depth, } hwc_cq->gdma_cq = cq; - comp_buf = kcalloc(q_depth, sizeof(*comp_buf), GFP_KERNEL); + comp_buf = kzalloc_objs(*comp_buf, q_depth, GFP_KERNEL); if (!comp_buf) { err = -ENOMEM; goto out; @@ -461,7 +461,7 @@ static int mana_hwc_alloc_dma_buf(struct hw_channel_context *hwc, u16 q_depth, int err; u16 i; - dma_buf = kzalloc(struct_size(dma_buf, reqs, q_depth), GFP_KERNEL); + dma_buf = kzalloc_flex(*dma_buf, reqs, q_depth, GFP_KERNEL); if (!dma_buf) return -ENOMEM; @@ -539,7 +539,7 @@ static int mana_hwc_create_wq(struct hw_channel_context *hwc, if (queue_size < MANA_MIN_QSIZE) queue_size = MANA_MIN_QSIZE; - hwc_wq = kzalloc(sizeof(*hwc_wq), GFP_KERNEL); + hwc_wq = kzalloc_obj(*hwc_wq, GFP_KERNEL); if (!hwc_wq) return -ENOMEM; @@ -644,7 +644,7 @@ static int mana_hwc_test_channel(struct hw_channel_context *hwc, u16 q_depth, return err; } - ctx = kcalloc(q_depth, sizeof(*ctx), GFP_KERNEL); + ctx = kzalloc_objs(*ctx, q_depth, GFP_KERNEL); if (!ctx) return -ENOMEM; @@ -750,7 +750,7 @@ int mana_hwc_create_channel(struct gdma_context *gc) u16 q_depth_max; int err; - hwc = kzalloc(sizeof(*hwc), GFP_KERNEL); + hwc = kzalloc_obj(*hwc, GFP_KERNEL); if (!hwc) return -ENOMEM; diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c index 9b5a72ada5c4..5c9704f2041a 100644 --- a/drivers/net/ethernet/microsoft/mana/mana_en.c +++ b/drivers/net/ethernet/microsoft/mana/mana_en.c @@ -491,9 +491,8 @@ netdev_tx_t mana_start_xmit(struct sk_buff *skb, struct net_device *ndev) if (pkg.wqe_req.num_sge <= ARRAY_SIZE(pkg.sgl_array)) { pkg.wqe_req.sgl = pkg.sgl_array; } else { - pkg.sgl_ptr = kmalloc_array(pkg.wqe_req.num_sge, - sizeof(struct gdma_sge), - GFP_ATOMIC); + pkg.sgl_ptr = kmalloc_objs(struct gdma_sge, pkg.wqe_req.num_sge, + GFP_ATOMIC); if (!pkg.sgl_ptr) goto tx_drop_count; @@ -804,7 +803,7 @@ int mana_pre_alloc_rxbufs(struct mana_port_context *mpc, int new_mtu, int num_qu if (!mpc->rxbufs_pre) goto error; - mpc->das_pre = kmalloc_array(num_rxb, sizeof(dma_addr_t), GFP_KERNEL); + mpc->das_pre = kmalloc_objs(dma_addr_t, num_rxb, GFP_KERNEL); if (!mpc->das_pre) goto error; @@ -996,8 +995,7 @@ static void mana_cleanup_indir_table(struct mana_port_context *apc) static int mana_init_port_context(struct mana_port_context *apc) { - apc->rxqs = kcalloc(apc->num_queues, sizeof(struct mana_rxq *), - GFP_KERNEL); + apc->rxqs = kzalloc_objs(struct mana_rxq *, apc->num_queues, GFP_KERNEL); return !apc->rxqs ? -ENOMEM : 0; } @@ -1634,8 +1632,7 @@ static int mana_create_eq(struct mana_context *ac) int err; int i; - ac->eqs = kcalloc(gc->max_num_queues, sizeof(struct mana_eq), - GFP_KERNEL); + ac->eqs = kzalloc_objs(struct mana_eq, gc->max_num_queues, GFP_KERNEL); if (!ac->eqs) return -ENOMEM; @@ -2329,8 +2326,8 @@ static int mana_create_txq(struct mana_port_context *apc, int err; int i; - apc->tx_qp = kcalloc(apc->num_queues, sizeof(struct mana_tx_qp), - GFP_KERNEL); + apc->tx_qp = kzalloc_objs(struct mana_tx_qp, apc->num_queues, + GFP_KERNEL); if (!apc->tx_qp) return -ENOMEM; @@ -2640,8 +2637,7 @@ static struct mana_rxq *mana_create_rxq(struct mana_port_context *apc, gc = gd->gdma_context; - rxq = kzalloc(struct_size(rxq, rx_oobs, apc->rx_queue_size), - GFP_KERNEL); + rxq = kzalloc_flex(*rxq, rx_oobs, apc->rx_queue_size, GFP_KERNEL); if (!rxq) return NULL; @@ -2856,7 +2852,8 @@ static int mana_rss_table_alloc(struct mana_port_context *apc) if (!apc->indir_table) return -ENOMEM; - apc->rxobj_table = kcalloc(apc->indir_table_sz, sizeof(mana_handle_t), GFP_KERNEL); + apc->rxobj_table = kzalloc_objs(mana_handle_t, apc->indir_table_sz, + GFP_KERNEL); if (!apc->rxobj_table) { kfree(apc->indir_table); return -ENOMEM; @@ -3418,7 +3415,7 @@ static int add_adev(struct gdma_dev *gd, const char *name) struct mana_adev *madev; int ret; - madev = kzalloc(sizeof(*madev), GFP_KERNEL); + madev = kzalloc_obj(*madev, GFP_KERNEL); if (!madev) return -ENOMEM; @@ -3511,7 +3508,7 @@ int mana_rdma_service_event(struct gdma_context *gc, enum gdma_service_type even return 0; } - serv_work = kzalloc(sizeof(*serv_work), GFP_ATOMIC); + serv_work = kzalloc_obj(*serv_work, GFP_ATOMIC); if (!serv_work) return -ENOMEM; @@ -3562,7 +3559,7 @@ int mana_probe(struct gdma_dev *gd, bool resuming) return err; if (!resuming) { - ac = kzalloc(sizeof(*ac), GFP_KERNEL); + ac = kzalloc_obj(*ac, GFP_KERNEL); if (!ac) return -ENOMEM; diff --git a/drivers/net/ethernet/mscc/ocelot.c b/drivers/net/ethernet/mscc/ocelot.c index c345d9b17c89..a572170506cb 100644 --- a/drivers/net/ethernet/mscc/ocelot.c +++ b/drivers/net/ethernet/mscc/ocelot.c @@ -576,7 +576,7 @@ static int ocelot_update_vlan_reclassify_rule(struct ocelot *ocelot, int port) } /* Filter doesn't exist, create it */ - filter = kzalloc(sizeof(*filter), GFP_KERNEL); + filter = kzalloc_obj(*filter, GFP_KERNEL); if (!filter) return -ENOMEM; @@ -682,7 +682,7 @@ static int ocelot_vlan_member_add(struct ocelot *ocelot, int port, u16 vid, return 0; } - vlan = kzalloc(sizeof(*vlan), GFP_KERNEL); + vlan = kzalloc_obj(*vlan, GFP_KERNEL); if (!vlan) return -ENOMEM; @@ -1664,7 +1664,7 @@ int ocelot_trap_add(struct ocelot *ocelot, int port, trap = ocelot_vcap_block_find_filter_by_id(block_vcap_is2, cookie, false); if (!trap) { - trap = kzalloc(sizeof(*trap), GFP_KERNEL); + trap = kzalloc_obj(*trap, GFP_KERNEL); if (!trap) return -ENOMEM; @@ -2046,7 +2046,7 @@ static struct ocelot_pgid *ocelot_pgid_alloc(struct ocelot *ocelot, int index, { struct ocelot_pgid *pgid; - pgid = kzalloc(sizeof(*pgid), GFP_KERNEL); + pgid = kzalloc_obj(*pgid, GFP_KERNEL); if (!pgid) return ERR_PTR(-ENOMEM); @@ -2563,7 +2563,7 @@ int ocelot_lag_fdb_add(struct ocelot *ocelot, struct net_device *bond, struct ocelot_lag_fdb *fdb; int lag, err; - fdb = kzalloc(sizeof(*fdb), GFP_KERNEL); + fdb = kzalloc_obj(*fdb, GFP_KERNEL); if (!fdb) return -ENOMEM; @@ -2894,7 +2894,7 @@ struct ocelot_mirror *ocelot_mirror_get(struct ocelot *ocelot, int to, return m; } - m = kzalloc(sizeof(*m), GFP_KERNEL); + m = kzalloc_obj(*m, GFP_KERNEL); if (!m) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/mscc/ocelot_flower.c b/drivers/net/ethernet/mscc/ocelot_flower.c index 986b1f150e3b..4fccc8adad56 100644 --- a/drivers/net/ethernet/mscc/ocelot_flower.c +++ b/drivers/net/ethernet/mscc/ocelot_flower.c @@ -833,7 +833,7 @@ static struct ocelot_vcap_filter { struct ocelot_vcap_filter *filter; - filter = kzalloc(sizeof(*filter), GFP_KERNEL); + filter = kzalloc_obj(*filter, GFP_KERNEL); if (!filter) return NULL; diff --git a/drivers/net/ethernet/mscc/ocelot_mrp.c b/drivers/net/ethernet/mscc/ocelot_mrp.c index 3ccec488a304..04ae7a156f22 100644 --- a/drivers/net/ethernet/mscc/ocelot_mrp.c +++ b/drivers/net/ethernet/mscc/ocelot_mrp.c @@ -54,7 +54,7 @@ static int ocelot_mrp_redirect_add_vcap(struct ocelot *ocelot, int src_port, struct ocelot_vcap_filter *filter; int err; - filter = kzalloc(sizeof(*filter), GFP_KERNEL); + filter = kzalloc_obj(*filter, GFP_KERNEL); if (!filter) return -ENOMEM; diff --git a/drivers/net/ethernet/mscc/ocelot_vcap.c b/drivers/net/ethernet/mscc/ocelot_vcap.c index 5734b86aed5b..ec193ed18050 100644 --- a/drivers/net/ethernet/mscc/ocelot_vcap.c +++ b/drivers/net/ethernet/mscc/ocelot_vcap.c @@ -910,7 +910,7 @@ int ocelot_vcap_policer_add(struct ocelot *ocelot, u32 pol_ix, return 0; } - tmp = kzalloc(sizeof(*tmp), GFP_KERNEL); + tmp = kzalloc_obj(*tmp, GFP_KERNEL); if (!tmp) return -ENOMEM; diff --git a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c index d9b5d7999370..75ee09571af6 100644 --- a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c +++ b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c @@ -3703,8 +3703,8 @@ static void myri10ge_probe_slices(struct myri10ge_priv *mgp) * slices. We give up on MSI-X if we can only get a single * vector. */ - mgp->msix_vectors = kcalloc(mgp->num_slices, sizeof(*mgp->msix_vectors), - GFP_KERNEL); + mgp->msix_vectors = kzalloc_objs(*mgp->msix_vectors, mgp->num_slices, + GFP_KERNEL); if (mgp->msix_vectors == NULL) goto no_msix; for (i = 0; i < mgp->num_slices; i++) { diff --git a/drivers/net/ethernet/netronome/nfp/abm/cls.c b/drivers/net/ethernet/netronome/nfp/abm/cls.c index 23ebddfb9532..5cb4bb03b2a5 100644 --- a/drivers/net/ethernet/netronome/nfp/abm/cls.c +++ b/drivers/net/ethernet/netronome/nfp/abm/cls.c @@ -203,7 +203,7 @@ nfp_abm_u32_knode_replace(struct nfp_abm_link *alink, } if (!match) { - match = kzalloc(sizeof(*match), GFP_KERNEL); + match = kzalloc_obj(*match, GFP_KERNEL); if (!match) return -ENOMEM; list_add(&match->list, &alink->dscp_map); diff --git a/drivers/net/ethernet/netronome/nfp/abm/main.c b/drivers/net/ethernet/netronome/nfp/abm/main.c index 5d3df28c648f..b4c85bb0f787 100644 --- a/drivers/net/ethernet/netronome/nfp/abm/main.c +++ b/drivers/net/ethernet/netronome/nfp/abm/main.c @@ -317,7 +317,7 @@ nfp_abm_vnic_alloc(struct nfp_app *app, struct nfp_net *nn, unsigned int id) struct nfp_abm_link *alink; int err; - alink = kzalloc(sizeof(*alink), GFP_KERNEL); + alink = kzalloc_obj(*alink, GFP_KERNEL); if (!alink) return -ENOMEM; nn->app_priv = alink; @@ -461,7 +461,7 @@ static int nfp_abm_init(struct nfp_app *app) return -EINVAL; } - abm = kzalloc(sizeof(*abm), GFP_KERNEL); + abm = kzalloc_obj(*abm, GFP_KERNEL); if (!abm) return -ENOMEM; app->priv = abm; diff --git a/drivers/net/ethernet/netronome/nfp/abm/qdisc.c b/drivers/net/ethernet/netronome/nfp/abm/qdisc.c index 2a5cc64227e9..a030b59901c9 100644 --- a/drivers/net/ethernet/netronome/nfp/abm/qdisc.c +++ b/drivers/net/ethernet/netronome/nfp/abm/qdisc.c @@ -344,7 +344,7 @@ nfp_abm_qdisc_alloc(struct net_device *netdev, struct nfp_abm_link *alink, struct nfp_qdisc *qdisc; int err; - qdisc = kzalloc(sizeof(*qdisc), GFP_KERNEL); + qdisc = kzalloc_obj(*qdisc, GFP_KERNEL); if (!qdisc) return NULL; diff --git a/drivers/net/ethernet/netronome/nfp/bpf/main.c b/drivers/net/ethernet/netronome/nfp/bpf/main.c index f469950c7265..d9591ca44a8f 100644 --- a/drivers/net/ethernet/netronome/nfp/bpf/main.c +++ b/drivers/net/ethernet/netronome/nfp/bpf/main.c @@ -76,7 +76,7 @@ nfp_bpf_vnic_alloc(struct nfp_app *app, struct nfp_net *nn, unsigned int id) return -EINVAL; } - bv = kzalloc(sizeof(*bv), GFP_KERNEL); + bv = kzalloc_obj(*bv, GFP_KERNEL); if (!bv) return -ENOMEM; nn->app_priv = bv; @@ -458,7 +458,7 @@ static int nfp_bpf_init(struct nfp_app *app) struct nfp_app_bpf *bpf; int err; - bpf = kzalloc(sizeof(*bpf), GFP_KERNEL); + bpf = kzalloc_obj(*bpf, GFP_KERNEL); if (!bpf) return -ENOMEM; bpf->app = app; diff --git a/drivers/net/ethernet/netronome/nfp/bpf/offload.c b/drivers/net/ethernet/netronome/nfp/bpf/offload.c index c03558adda91..2b22725fb8a6 100644 --- a/drivers/net/ethernet/netronome/nfp/bpf/offload.c +++ b/drivers/net/ethernet/netronome/nfp/bpf/offload.c @@ -48,7 +48,7 @@ nfp_map_ptr_record(struct nfp_app_bpf *bpf, struct nfp_prog *nfp_prog, */ bpf_map_inc(map); - record = kmalloc(sizeof(*record), GFP_KERNEL); + record = kmalloc_obj(*record, GFP_KERNEL); if (!record) { err = -ENOMEM; goto err_map_put; @@ -123,9 +123,8 @@ nfp_map_ptrs_record(struct nfp_app_bpf *bpf, struct nfp_prog *nfp_prog, if (!cnt) goto out; - nfp_prog->map_records = kmalloc_array(cnt, - sizeof(nfp_prog->map_records[0]), - GFP_KERNEL); + nfp_prog->map_records = kmalloc_objs(nfp_prog->map_records[0], cnt, + GFP_KERNEL); if (!nfp_prog->map_records) { err = -ENOMEM; goto out; @@ -155,7 +154,7 @@ nfp_prog_prepare(struct nfp_prog *nfp_prog, const struct bpf_insn *prog, unsigned int i; for (i = 0; i < cnt; i++) { - meta = kzalloc(sizeof(*meta), GFP_KERNEL); + meta = kzalloc_obj(*meta, GFP_KERNEL); if (!meta) return -ENOMEM; @@ -193,7 +192,7 @@ static int nfp_bpf_verifier_prep(struct bpf_prog *prog) struct nfp_prog *nfp_prog; int ret; - nfp_prog = kzalloc(sizeof(*nfp_prog), GFP_KERNEL); + nfp_prog = kzalloc_obj(*nfp_prog, GFP_KERNEL); if (!nfp_prog) return -ENOMEM; prog->aux->offload->dev_priv = nfp_prog; diff --git a/drivers/net/ethernet/netronome/nfp/bpf/verifier.c b/drivers/net/ethernet/netronome/nfp/bpf/verifier.c index 9d235c0ce46a..de9508282841 100644 --- a/drivers/net/ethernet/netronome/nfp/bpf/verifier.c +++ b/drivers/net/ethernet/netronome/nfp/bpf/verifier.c @@ -770,8 +770,8 @@ int nfp_bpf_finalize(struct bpf_verifier_env *env) nfp_prog = env->prog->aux->offload->dev_priv; nfp_prog->subprog_cnt = env->subprog_cnt; - nfp_prog->subprog = kcalloc(nfp_prog->subprog_cnt, - sizeof(nfp_prog->subprog[0]), GFP_KERNEL); + nfp_prog->subprog = kzalloc_objs(nfp_prog->subprog[0], + nfp_prog->subprog_cnt, GFP_KERNEL); if (!nfp_prog->subprog) return -ENOMEM; diff --git a/drivers/net/ethernet/netronome/nfp/flower/conntrack.c b/drivers/net/ethernet/netronome/nfp/flower/conntrack.c index 15180538b80a..178184a68816 100644 --- a/drivers/net/ethernet/netronome/nfp/flower/conntrack.c +++ b/drivers/net/ethernet/netronome/nfp/flower/conntrack.c @@ -1355,7 +1355,7 @@ nfp_fl_ct_zone_entry *get_nfp_zone_entry(struct nfp_flower_priv *priv, if (IS_ERR(zt) || zt->priv) return zt; } else { - zt = kzalloc(sizeof(*zt), GFP_KERNEL); + zt = kzalloc_obj(*zt, GFP_KERNEL); if (!zt) return ERR_PTR(-ENOMEM); } @@ -1487,7 +1487,7 @@ nfp_fl_ct_flow_entry *nfp_fl_ct_add_flow(struct nfp_fl_ct_zone_entry *zt, struct flow_action_entry *act; int err, i; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) return ERR_PTR(-ENOMEM); @@ -1501,7 +1501,7 @@ nfp_fl_ct_flow_entry *nfp_fl_ct_add_flow(struct nfp_fl_ct_zone_entry *zt, * to do a full copy instead of just a reference. */ if (is_nft) { - nft_match = kzalloc(sizeof(*nft_match), GFP_KERNEL); + nft_match = kzalloc_obj(*nft_match, GFP_KERNEL); if (!nft_match) { err = -ENOMEM; goto err_pre_ct_act; diff --git a/drivers/net/ethernet/netronome/nfp/flower/lag_conf.c b/drivers/net/ethernet/netronome/nfp/flower/lag_conf.c index 2c7bd6e80d99..9b78cc9600fe 100644 --- a/drivers/net/ethernet/netronome/nfp/flower/lag_conf.c +++ b/drivers/net/ethernet/netronome/nfp/flower/lag_conf.c @@ -119,7 +119,7 @@ nfp_fl_lag_group_create(struct nfp_fl_lag *lag, struct net_device *master) return ERR_PTR(id); } - group = kmalloc(sizeof(*group), GFP_KERNEL); + group = kmalloc_obj(*group, GFP_KERNEL); if (!group) { ida_free(&lag->ida_handle, id); return ERR_PTR(-ENOMEM); @@ -335,8 +335,8 @@ static void nfp_fl_lag_do_work(struct work_struct *work) continue; } - acti_netdevs = kmalloc_array(entry->slave_cnt, - sizeof(*acti_netdevs), GFP_KERNEL); + acti_netdevs = kmalloc_objs(*acti_netdevs, entry->slave_cnt, + GFP_KERNEL); if (!acti_netdevs) { schedule_delayed_work(&lag->work, NFP_FL_LAG_DELAY); diff --git a/drivers/net/ethernet/netronome/nfp/flower/main.c b/drivers/net/ethernet/netronome/nfp/flower/main.c index 83eaa5ae3cd4..4677183322bc 100644 --- a/drivers/net/ethernet/netronome/nfp/flower/main.c +++ b/drivers/net/ethernet/netronome/nfp/flower/main.c @@ -182,7 +182,7 @@ nfp_flower_non_repr_priv_get(struct nfp_app *app, struct net_device *netdev) if (entry) goto inc_ref; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) return NULL; @@ -406,7 +406,7 @@ nfp_flower_spawn_vnic_reprs(struct nfp_app *app, goto err_reprs_clean; } - repr_priv = kzalloc(sizeof(*repr_priv), GFP_KERNEL); + repr_priv = kzalloc_obj(*repr_priv, GFP_KERNEL); if (!repr_priv) { err = -ENOMEM; nfp_repr_free(repr); @@ -524,7 +524,7 @@ nfp_flower_spawn_phy_reprs(struct nfp_app *app, struct nfp_flower_priv *priv) goto err_reprs_clean; } - repr_priv = kzalloc(sizeof(*repr_priv), GFP_KERNEL); + repr_priv = kzalloc_obj(*repr_priv, GFP_KERNEL); if (!repr_priv) { err = -ENOMEM; nfp_repr_free(repr); diff --git a/drivers/net/ethernet/netronome/nfp/flower/metadata.c b/drivers/net/ethernet/netronome/nfp/flower/metadata.c index dde60c4572fa..fbb858a5324b 100644 --- a/drivers/net/ethernet/netronome/nfp/flower/metadata.c +++ b/drivers/net/ethernet/netronome/nfp/flower/metadata.c @@ -214,7 +214,7 @@ nfp_add_mask_table(struct nfp_app *app, char *mask_data, u32 mask_len) if (nfp_mask_alloc(app, &mask_id)) return -ENOENT; - mask_entry = kmalloc(sizeof(*mask_entry), GFP_KERNEL); + mask_entry = kmalloc_obj(*mask_entry, GFP_KERNEL); if (!mask_entry) { nfp_release_mask_id(app, mask_id); return -ENOMEM; @@ -324,7 +324,7 @@ int nfp_compile_flow_metadata(struct nfp_app *app, u32 cookie, nfp_flow->meta.host_cookie = cpu_to_be64(cookie); nfp_flow->ingress_dev = netdev; - ctx_entry = kzalloc(sizeof(*ctx_entry), GFP_KERNEL); + ctx_entry = kzalloc_obj(*ctx_entry, GFP_KERNEL); if (!ctx_entry) { err = -ENOMEM; goto err_release_stats; @@ -557,8 +557,8 @@ int nfp_flower_metadata_init(struct nfp_app *app, u64 host_ctx_count, /* Init timestamps for mask id*/ priv->mask_ids.last_used = - kmalloc_array(NFP_FLOWER_MASK_ENTRY_RS, - sizeof(*priv->mask_ids.last_used), GFP_KERNEL); + kmalloc_objs(*priv->mask_ids.last_used, + NFP_FLOWER_MASK_ENTRY_RS, GFP_KERNEL); if (!priv->mask_ids.last_used) goto err_free_mask_id; @@ -573,8 +573,7 @@ int nfp_flower_metadata_init(struct nfp_app *app, u64 host_ctx_count, stats_size = FIELD_PREP(NFP_FL_STAT_ID_STAT, host_ctx_count) | FIELD_PREP(NFP_FL_STAT_ID_MU_NUM, host_num_mems - 1); - priv->stats = kvmalloc_array(stats_size, sizeof(struct nfp_fl_stats), - GFP_KERNEL); + priv->stats = kvmalloc_objs(struct nfp_fl_stats, stats_size, GFP_KERNEL); if (!priv->stats) goto err_free_ring_buf; diff --git a/drivers/net/ethernet/netronome/nfp/flower/offload.c b/drivers/net/ethernet/netronome/nfp/flower/offload.c index 46ffc2c20893..b6e1e33d3f27 100644 --- a/drivers/net/ethernet/netronome/nfp/flower/offload.c +++ b/drivers/net/ethernet/netronome/nfp/flower/offload.c @@ -549,7 +549,7 @@ nfp_flower_allocate_new(struct nfp_fl_key_ls *key_layer) { struct nfp_fl_payload *flow_pay; - flow_pay = kmalloc(sizeof(*flow_pay), GFP_KERNEL); + flow_pay = kmalloc_obj(*flow_pay, GFP_KERNEL); if (!flow_pay) return NULL; @@ -979,7 +979,7 @@ static int nfp_flower_link_flows(struct nfp_fl_payload *merge_flow, { struct nfp_fl_payload_link *link; - link = kmalloc(sizeof(*link), GFP_KERNEL); + link = kmalloc_obj(*link, GFP_KERNEL); if (!link) return -ENOMEM; @@ -1067,7 +1067,7 @@ int nfp_flower_merge_offloaded_flows(struct nfp_app *app, if (err) goto err_release_metadata; - merge_info = kmalloc(sizeof(*merge_info), GFP_KERNEL); + merge_info = kmalloc_obj(*merge_info, GFP_KERNEL); if (!merge_info) { err = -ENOMEM; goto err_remove_rhash; @@ -1354,7 +1354,7 @@ nfp_flower_add_offload(struct nfp_app *app, struct net_device *netdev, if (!offload_pre_check(flow)) return -EOPNOTSUPP; - key_layer = kmalloc(sizeof(*key_layer), GFP_KERNEL); + key_layer = kmalloc_obj(*key_layer, GFP_KERNEL); if (!key_layer) return -ENOMEM; @@ -1400,7 +1400,7 @@ nfp_flower_add_offload(struct nfp_app *app, struct net_device *netdev, if (priv->flower_ext_feats & NFP_FL_FEATS_DECAP_V2) { struct nfp_predt_entry *predt; - predt = kzalloc(sizeof(*predt), GFP_KERNEL); + predt = kzalloc_obj(*predt, GFP_KERNEL); if (!predt) { err = -ENOMEM; goto err_remove_rhash; @@ -1901,7 +1901,7 @@ nfp_flower_setup_indr_tc_block(struct net_device *netdev, struct Qdisc *sch, str &nfp_block_cb_list)) return -EBUSY; - cb_priv = kmalloc(sizeof(*cb_priv), GFP_KERNEL); + cb_priv = kmalloc_obj(*cb_priv, GFP_KERNEL); if (!cb_priv) return -ENOMEM; diff --git a/drivers/net/ethernet/netronome/nfp/flower/qos_conf.c b/drivers/net/ethernet/netronome/nfp/flower/qos_conf.c index e7180b4793c7..6a7f806b3fdf 100644 --- a/drivers/net/ethernet/netronome/nfp/flower/qos_conf.c +++ b/drivers/net/ethernet/netronome/nfp/flower/qos_conf.c @@ -579,7 +579,7 @@ nfp_flower_add_meter_entry(struct nfp_app *app, u32 meter_id) if (meter_entry) return meter_entry; - meter_entry = kzalloc(sizeof(*meter_entry), GFP_KERNEL); + meter_entry = kzalloc_obj(*meter_entry, GFP_KERNEL); if (!meter_entry) return NULL; diff --git a/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c b/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c index 0d7d138d6e0d..e0d32ddc80c3 100644 --- a/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c +++ b/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c @@ -696,7 +696,7 @@ nfp_tun_alloc_neigh_update_work(struct nfp_app *app, struct neighbour *n) { struct nfp_neigh_update_work *update_work; - update_work = kzalloc(sizeof(*update_work), GFP_ATOMIC); + update_work = kzalloc_obj(*update_work, GFP_ATOMIC); if (!update_work) return NULL; @@ -884,7 +884,7 @@ void nfp_tunnel_add_ipv4_off(struct nfp_app *app, __be32 ipv4) } } - entry = kmalloc(sizeof(*entry), GFP_KERNEL); + entry = kmalloc_obj(*entry, GFP_KERNEL); if (!entry) { mutex_unlock(&priv->tun.ipv4_off_lock); nfp_flower_cmsg_warn(app, "Mem error when offloading IP address.\n"); @@ -959,7 +959,7 @@ nfp_tunnel_add_ipv6_off(struct nfp_app *app, struct in6_addr *ipv6) return entry; } - entry = kmalloc(sizeof(*entry), GFP_KERNEL); + entry = kmalloc_obj(*entry, GFP_KERNEL); if (!entry) { mutex_unlock(&priv->tun.ipv6_off_lock); nfp_flower_cmsg_warn(app, "Mem error when offloading IP address.\n"); @@ -1117,7 +1117,7 @@ nfp_tunnel_add_shared_mac(struct nfp_app *app, struct net_device *netdev, } if (!entry) { - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) { err = -ENOMEM; goto err_free_ida; diff --git a/drivers/net/ethernet/netronome/nfp/nfd3/rings.c b/drivers/net/ethernet/netronome/nfp/nfd3/rings.c index a03190c9313c..480b644afed5 100644 --- a/drivers/net/ethernet/netronome/nfp/nfd3/rings.c +++ b/drivers/net/ethernet/netronome/nfp/nfd3/rings.c @@ -140,8 +140,8 @@ nfp_nfd3_tx_ring_alloc(struct nfp_net_dp *dp, struct nfp_net_tx_ring *tx_ring) goto err_alloc; } - tx_ring->txbufs = kvcalloc(tx_ring->cnt, sizeof(*tx_ring->txbufs), - GFP_KERNEL); + tx_ring->txbufs = kvzalloc_objs(*tx_ring->txbufs, tx_ring->cnt, + GFP_KERNEL); if (!tx_ring->txbufs) goto err_alloc; diff --git a/drivers/net/ethernet/netronome/nfp/nfdk/rings.c b/drivers/net/ethernet/netronome/nfp/nfdk/rings.c index fdb8144a63e0..c0905469911c 100644 --- a/drivers/net/ethernet/netronome/nfp/nfdk/rings.c +++ b/drivers/net/ethernet/netronome/nfp/nfdk/rings.c @@ -105,8 +105,8 @@ nfp_nfdk_tx_ring_alloc(struct nfp_net_dp *dp, struct nfp_net_tx_ring *tx_ring) goto err_alloc; } - tx_ring->ktxbufs = kvcalloc(tx_ring->cnt, sizeof(*tx_ring->ktxbufs), - GFP_KERNEL); + tx_ring->ktxbufs = kvzalloc_objs(*tx_ring->ktxbufs, tx_ring->cnt, + GFP_KERNEL); if (!tx_ring->ktxbufs) goto err_alloc; diff --git a/drivers/net/ethernet/netronome/nfp/nfp_app.c b/drivers/net/ethernet/netronome/nfp/nfp_app.c index bb3f46c74f77..f53418136c37 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_app.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_app.c @@ -239,7 +239,7 @@ struct nfp_app *nfp_app_alloc(struct nfp_pf *pf, enum nfp_app_id id) if (WARN_ON(!apps[id]->ctrl_msg_rx && apps[id]->ctrl_msg_rx_raw)) return ERR_PTR(-EINVAL); - app = kzalloc(sizeof(*app), GFP_KERNEL); + app = kzalloc_obj(*app, GFP_KERNEL); if (!app) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c index 9ef72f294117..bebf7e7c4a86 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c @@ -1554,7 +1554,7 @@ struct nfp_net_dp *nfp_net_clone_dp(struct nfp_net *nn) { struct nfp_net_dp *new; - new = kmalloc(sizeof(*new), GFP_KERNEL); + new = kmalloc_obj(*new, GFP_KERNEL); if (!new) return NULL; @@ -2537,8 +2537,8 @@ nfp_net_alloc(struct pci_dev *pdev, const struct nfp_dev_info *dev_info, nn->dp.num_r_vecs, num_online_cpus()); nn->max_r_vecs = nn->dp.num_r_vecs; - nn->dp.xsk_pools = kcalloc(nn->max_r_vecs, sizeof(*nn->dp.xsk_pools), - GFP_KERNEL); + nn->dp.xsk_pools = kzalloc_objs(*nn->dp.xsk_pools, nn->max_r_vecs, + GFP_KERNEL); if (!nn->dp.xsk_pools) { err = -ENOMEM; goto err_free_nn; diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_dp.c b/drivers/net/ethernet/netronome/nfp/nfp_net_dp.c index 550df83b798c..cbb983729f22 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_dp.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_dp.c @@ -184,8 +184,7 @@ int nfp_net_tx_rings_prepare(struct nfp_net *nn, struct nfp_net_dp *dp) { unsigned int r; - dp->tx_rings = kcalloc(dp->num_tx_rings, sizeof(*dp->tx_rings), - GFP_KERNEL); + dp->tx_rings = kzalloc_objs(*dp->tx_rings, dp->num_tx_rings, GFP_KERNEL); if (!dp->tx_rings) return -ENOMEM; @@ -340,8 +339,7 @@ int nfp_net_rx_rings_prepare(struct nfp_net *nn, struct nfp_net_dp *dp) { unsigned int r; - dp->rx_rings = kcalloc(dp->num_rx_rings, sizeof(*dp->rx_rings), - GFP_KERNEL); + dp->rx_rings = kzalloc_objs(*dp->rx_rings, dp->num_rx_rings, GFP_KERNEL); if (!dp->rx_rings) return -ENOMEM; diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c b/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c index e88b1c4732a5..16bf77708b9e 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c @@ -713,7 +713,7 @@ static int nfp_test_nsp(struct net_device *netdev) goto exit_close_nsp; } - nspi = kzalloc(sizeof(*nspi), GFP_KERNEL); + nspi = kzalloc_obj(*nspi, GFP_KERNEL); if (!nspi) { err = -ENOMEM; goto exit_close_nsp; @@ -1676,7 +1676,7 @@ static int nfp_net_fs_add(struct nfp_net *nn, struct ethtool_rxnfc *cmd) if (unsupp_mask) return -EOPNOTSUPP; - new = kzalloc(sizeof(*new), GFP_KERNEL); + new = kzalloc_obj(*new, GFP_KERNEL); if (!new) return -ENOMEM; diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_main.c b/drivers/net/ethernet/netronome/nfp/nfp_net_main.c index cbe4972ba104..aeaa998e2f75 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_main.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_main.c @@ -229,8 +229,8 @@ static int nfp_net_pf_alloc_irqs(struct nfp_pf *pf) wanted_irqs = 0; list_for_each_entry(nn, &pf->vnics, vnic_list) wanted_irqs += NFP_NET_NON_Q_VECTORS + nn->dp.num_r_vecs; - pf->irq_entries = kcalloc(wanted_irqs, sizeof(*pf->irq_entries), - GFP_KERNEL); + pf->irq_entries = kzalloc_objs(*pf->irq_entries, wanted_irqs, + GFP_KERNEL); if (!pf->irq_entries) return -ENOMEM; diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c index 227e7a5d712e..bac4c61f8632 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c @@ -500,7 +500,7 @@ struct nfp_reprs *nfp_reprs_alloc(unsigned int num_reprs) { struct nfp_reprs *reprs; - reprs = kzalloc(struct_size(reprs, reprs, num_reprs), GFP_KERNEL); + reprs = kzalloc_flex(*reprs, reprs, num_reprs, GFP_KERNEL); if (!reprs) return NULL; reprs->num_reprs = num_reprs; diff --git a/drivers/net/ethernet/netronome/nfp/nfp_netvf_main.c b/drivers/net/ethernet/netronome/nfp/nfp_netvf_main.c index e19bb0150cb5..061d1ba89760 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_netvf_main.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_netvf_main.c @@ -93,7 +93,7 @@ static int nfp_netvf_pci_probe(struct pci_dev *pdev, dev_info = &nfp_dev_info[pci_id->driver_data]; - vf = kzalloc(sizeof(*vf), GFP_KERNEL); + vf = kzalloc_obj(*vf, GFP_KERNEL); if (!vf) return -ENOMEM; pci_set_drvdata(pdev, vf); diff --git a/drivers/net/ethernet/netronome/nfp/nfp_port.c b/drivers/net/ethernet/netronome/nfp/nfp_port.c index 54640bcb70fb..1ce12ad44d2f 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_port.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_port.c @@ -203,7 +203,7 @@ nfp_port_alloc(struct nfp_app *app, enum nfp_port_type type, { struct nfp_port *port; - port = kzalloc(sizeof(*port), GFP_KERNEL); + port = kzalloc_obj(*port, GFP_KERNEL); if (!port) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/netronome/nfp/nfp_shared_buf.c b/drivers/net/ethernet/netronome/nfp/nfp_shared_buf.c index ea2e3f829aba..eb5f9c2bf445 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_shared_buf.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_shared_buf.c @@ -99,8 +99,8 @@ int nfp_shared_buf_register(struct nfp_pf *pf) entry_sz = nfp_cpp_area_size(sb_desc_area) / num_entries; - pf->shared_bufs = kmalloc_array(num_entries, sizeof(pf->shared_bufs[0]), - GFP_KERNEL); + pf->shared_bufs = kmalloc_objs(pf->shared_bufs[0], num_entries, + GFP_KERNEL); if (!pf->shared_bufs) { err = -ENOMEM; goto err_release_area; diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c index 7c2200b49ce4..ff16af23fc3a 100644 --- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c +++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c @@ -1320,7 +1320,7 @@ nfp_cpp_from_nfp6000_pcie(struct pci_dev *pdev, const struct nfp_dev_info *dev_i dev_info->chip_names); pcie_print_link_status(pdev); - nfp = kzalloc(sizeof(*nfp), GFP_KERNEL); + nfp = kzalloc_obj(*nfp, GFP_KERNEL); if (!nfp) { err = -ENOMEM; goto err_ret; diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c index 669f9f8fb507..06ebad34c00b 100644 --- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c +++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c @@ -802,7 +802,7 @@ int nfp_cpp_area_cache_add(struct nfp_cpp *cpp, size_t size) if (!area) return -ENOMEM; - cache = kzalloc(sizeof(*cache), GFP_KERNEL); + cache = kzalloc_obj(*cache, GFP_KERNEL); if (!cache) { nfp_cpp_area_free(area); return -ENOMEM; @@ -1170,7 +1170,7 @@ nfp_cpp_from_operations(const struct nfp_cpp_operations *ops, u32 xpbaddr; size_t tgt; - cpp = kzalloc(sizeof(*cpp), GFP_KERNEL); + cpp = kzalloc_obj(*cpp, GFP_KERNEL); if (!cpp) { err = -ENOMEM; goto err_malloc; diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_mip.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_mip.c index 79e17943519e..93b11eaf7d9f 100644 --- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_mip.c +++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_mip.c @@ -101,7 +101,7 @@ const struct nfp_mip *nfp_mip_open(struct nfp_cpp *cpp) struct nfp_mip *mip; int err; - mip = kmalloc(sizeof(*mip), GFP_KERNEL); + mip = kmalloc_obj(*mip, GFP_KERNEL); if (!mip) return NULL; diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_mutex.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_mutex.c index 7bc17b94ac60..d017b7779819 100644 --- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_mutex.c +++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_mutex.c @@ -140,7 +140,7 @@ struct nfp_cpp_mutex *nfp_cpp_mutex_alloc(struct nfp_cpp *cpp, int target, if (tmp != key) return NULL; - mutex = kzalloc(sizeof(*mutex), GFP_KERNEL); + mutex = kzalloc_obj(*mutex, GFP_KERNEL); if (!mutex) return NULL; diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nffw.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nffw.c index e2e5fd003ad6..4ad0f7586ba1 100644 --- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nffw.c +++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nffw.c @@ -163,7 +163,7 @@ struct nfp_nffw_info *nfp_nffw_info_open(struct nfp_cpp *cpp) u32 info_ver; int err; - state = kzalloc(sizeof(*state), GFP_KERNEL); + state = kzalloc_obj(*state, GFP_KERNEL); if (!state) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c index 0bd6477292a6..a874a5f233a6 100644 --- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c +++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c @@ -280,7 +280,7 @@ struct nfp_nsp *nfp_nsp_open(struct nfp_cpp *cpp) if (IS_ERR(res)) return ERR_CAST(res); - state = kzalloc(sizeof(*state), GFP_KERNEL); + state = kzalloc_obj(*state, GFP_KERNEL); if (!state) { nfp_resource_release(res); return ERR_PTR(-ENOMEM); @@ -514,7 +514,7 @@ nfp_nsp_command_buf_dma_sg(struct nfp_nsp *nsp, dma_size = BIT_ULL(dma_order); nseg = DIV_ROUND_UP(max_size, chunk_size); - chunks = kcalloc(nseg, sizeof(*chunks), GFP_KERNEL); + chunks = kzalloc_objs(*chunks, nseg, GFP_KERNEL); if (!chunks) return -ENOMEM; diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_cmds.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_cmds.c index 0997d127144f..33ff357b6fc6 100644 --- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_cmds.c +++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_cmds.c @@ -29,7 +29,7 @@ struct nfp_nsp_identify *__nfp_nsp_identify(struct nfp_nsp *nsp) if (nfp_nsp_get_abi_ver_minor(nsp) < 15) return NULL; - ni = kzalloc(sizeof(*ni), GFP_KERNEL); + ni = kzalloc_obj(*ni, GFP_KERNEL); if (!ni) return NULL; @@ -40,7 +40,7 @@ struct nfp_nsp_identify *__nfp_nsp_identify(struct nfp_nsp *nsp) goto exit_free; } - nspi = kzalloc(sizeof(*nspi), GFP_KERNEL); + nspi = kzalloc_obj(*nspi, GFP_KERNEL); if (!nspi) goto exit_free; diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_eth.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_eth.c index 5cfddc9a5d87..9a1f1849e0db 100644 --- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_eth.c +++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_eth.c @@ -319,7 +319,7 @@ __nfp_eth_read_ports(struct nfp_cpp *cpp, struct nfp_nsp *nsp) goto err; } - table = kzalloc(struct_size(table, ports, cnt), GFP_KERNEL); + table = kzalloc_flex(*table, ports, cnt, GFP_KERNEL); if (!table) goto err; diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_resource.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_resource.c index 279ea0b56955..54089663bbd7 100644 --- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_resource.c +++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_resource.c @@ -155,7 +155,7 @@ nfp_resource_acquire(struct nfp_cpp *cpp, const char *name) struct nfp_resource *res; int err; - res = kzalloc(sizeof(*res), GFP_KERNEL); + res = kzalloc_obj(*res, GFP_KERNEL); if (!res) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/netronome/nfp/nic/main.c b/drivers/net/ethernet/netronome/nfp/nic/main.c index 9dd5afe37f6e..82ec6d9018b0 100644 --- a/drivers/net/ethernet/netronome/nfp/nic/main.c +++ b/drivers/net/ethernet/netronome/nfp/nic/main.c @@ -51,7 +51,7 @@ static int nfp_nic_vnic_alloc(struct nfp_app *app, struct nfp_net *nn, return err; if (sizeof(*app_pri)) { - nn->app_priv = kzalloc(sizeof(*app_pri), GFP_KERNEL); + nn->app_priv = kzalloc_obj(*app_pri, GFP_KERNEL); if (!nn->app_priv) return -ENOMEM; } diff --git a/drivers/net/ethernet/nvidia/forcedeth.c b/drivers/net/ethernet/nvidia/forcedeth.c index 19aa1f1538aa..bff27b223f5d 100644 --- a/drivers/net/ethernet/nvidia/forcedeth.c +++ b/drivers/net/ethernet/nvidia/forcedeth.c @@ -5854,8 +5854,10 @@ static int nv_probe(struct pci_dev *pci_dev, const struct pci_device_id *id) goto out_unmap; np->tx_ring.ex = &np->rx_ring.ex[np->rx_ring_size]; } - np->rx_skb = kcalloc(np->rx_ring_size, sizeof(struct nv_skb_map), GFP_KERNEL); - np->tx_skb = kcalloc(np->tx_ring_size, sizeof(struct nv_skb_map), GFP_KERNEL); + np->rx_skb = kzalloc_objs(struct nv_skb_map, np->rx_ring_size, + GFP_KERNEL); + np->tx_skb = kzalloc_objs(struct nv_skb_map, np->tx_ring_size, + GFP_KERNEL); if (!np->rx_skb || !np->tx_skb) goto out_freering; diff --git a/drivers/net/ethernet/pasemi/pasemi_mac.c b/drivers/net/ethernet/pasemi/pasemi_mac.c index 00909372ea61..f9a6471b36d0 100644 --- a/drivers/net/ethernet/pasemi/pasemi_mac.c +++ b/drivers/net/ethernet/pasemi/pasemi_mac.c @@ -381,9 +381,8 @@ static int pasemi_mac_setup_rx_resources(const struct net_device *dev) spin_lock_init(&ring->lock); ring->size = RX_RING_SIZE; - ring->ring_info = kcalloc(RX_RING_SIZE, - sizeof(struct pasemi_mac_buffer), - GFP_KERNEL); + ring->ring_info = kzalloc_objs(struct pasemi_mac_buffer, RX_RING_SIZE, + GFP_KERNEL); if (!ring->ring_info) goto out_ring_info; @@ -465,9 +464,8 @@ pasemi_mac_setup_tx_resources(const struct net_device *dev) spin_lock_init(&ring->lock); ring->size = TX_RING_SIZE; - ring->ring_info = kcalloc(TX_RING_SIZE, - sizeof(struct pasemi_mac_buffer), - GFP_KERNEL); + ring->ring_info = kzalloc_objs(struct pasemi_mac_buffer, TX_RING_SIZE, + GFP_KERNEL); if (!ring->ring_info) goto out_ring_info; diff --git a/drivers/net/ethernet/pensando/ionic/ionic_aux.c b/drivers/net/ethernet/pensando/ionic/ionic_aux.c index a2be338eb3e5..4c9db73cef23 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_aux.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_aux.c @@ -26,7 +26,7 @@ int ionic_auxbus_register(struct ionic_lif *lif) if (!(le64_to_cpu(lif->ionic->ident.lif.capabilities) & IONIC_LIF_CAP_RDMA)) return 0; - ionic_adev = kzalloc(sizeof(*ionic_adev), GFP_KERNEL); + ionic_adev = kzalloc_obj(*ionic_adev, GFP_KERNEL); if (!ionic_adev) return -ENOMEM; diff --git a/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c b/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c index 0671deae9a28..104e1d35e0be 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c @@ -151,7 +151,7 @@ static int ionic_vf_alloc(struct ionic *ionic, int num_vfs) down_write(&ionic->vf_op_lock); - ionic->vfs = kcalloc(num_vfs, sizeof(struct ionic_vf), GFP_KERNEL); + ionic->vfs = kzalloc_objs(struct ionic_vf, num_vfs, GFP_KERNEL); if (!ionic->vfs) { err = -ENOMEM; goto out; diff --git a/drivers/net/ethernet/pensando/ionic/ionic_dev.c b/drivers/net/ethernet/pensando/ionic/ionic_dev.c index ab27e9225c1e..3838c4a70766 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_dev.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_dev.c @@ -35,7 +35,7 @@ static void ionic_watchdog_cb(struct timer_list *t) if (test_bit(IONIC_LIF_F_FILTER_SYNC_NEEDED, lif->state) && !test_bit(IONIC_LIF_F_FW_RESET, lif->state)) { - work = kzalloc(sizeof(*work), GFP_ATOMIC); + work = kzalloc_obj(*work, GFP_ATOMIC); if (!work) { netdev_err(lif->netdev, "rxmode change dropped\n"); return; @@ -577,7 +577,7 @@ do_check_time: if (trigger) { struct ionic_deferred_work *work; - work = kzalloc(sizeof(*work), GFP_ATOMIC); + work = kzalloc_obj(*work, GFP_ATOMIC); if (work) { work->type = IONIC_DW_TYPE_LIF_RESET; work->fw_status = fw_status_ready; diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c b/drivers/net/ethernet/pensando/ionic/ionic_lif.c index 058eea86e141..050dd3168f6b 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_lif.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.c @@ -203,7 +203,7 @@ void ionic_link_status_check_request(struct ionic_lif *lif, bool can_sleep) return; if (!can_sleep) { - work = kzalloc(sizeof(*work), GFP_ATOMIC); + work = kzalloc_obj(*work, GFP_ATOMIC); if (!work) { clear_bit(IONIC_LIF_F_LINK_CHECK_REQUESTED, lif->state); return; @@ -1427,7 +1427,7 @@ static void ionic_ndo_set_rx_mode(struct net_device *netdev) /* Shove off the rest of the rxmode work to the work task * which will include syncing the filters to the firmware. */ - work = kzalloc(sizeof(*work), GFP_ATOMIC); + work = kzalloc_obj(*work, GFP_ATOMIC); if (!work) { netdev_err(lif->netdev, "rxmode change dropped\n"); return; @@ -2694,7 +2694,7 @@ static int ionic_register_rxq_info(struct ionic_queue *q, unsigned int napi_id) struct xdp_rxq_info *rxq_info; int err; - rxq_info = kzalloc(sizeof(*rxq_info), GFP_KERNEL); + rxq_info = kzalloc_obj(*rxq_info, GFP_KERNEL); if (!rxq_info) return -ENOMEM; @@ -3177,7 +3177,7 @@ static int ionic_affinity_masks_alloc(struct ionic *ionic) int nintrs = ionic->nintrs; int i; - affinity_masks = kcalloc(nintrs, sizeof(cpumask_var_t), GFP_KERNEL); + affinity_masks = kzalloc_objs(cpumask_var_t, nintrs, GFP_KERNEL); if (!affinity_masks) return -ENOMEM; @@ -3218,7 +3218,7 @@ int ionic_lif_alloc(struct ionic *ionic) int tbl_sz; int err; - lid = kzalloc(sizeof(*lid), GFP_KERNEL); + lid = kzalloc_obj(*lid, GFP_KERNEL); if (!lid) return -ENOMEM; diff --git a/drivers/net/ethernet/pensando/ionic/ionic_main.c b/drivers/net/ethernet/pensando/ionic/ionic_main.c index 14dc055be3e9..3c5200e2fdb7 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_main.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_main.c @@ -283,7 +283,7 @@ bool ionic_notifyq_service(struct ionic_cq *cq) if (lif->ionic->idev.fw_status_ready && !test_bit(IONIC_LIF_F_FW_RESET, lif->state) && !test_and_set_bit(IONIC_LIF_F_FW_STOPPING, lif->state)) { - work = kzalloc(sizeof(*work), GFP_ATOMIC); + work = kzalloc_obj(*work, GFP_ATOMIC); if (!work) { netdev_err(lif->netdev, "Reset event dropped\n"); clear_bit(IONIC_LIF_F_FW_STOPPING, lif->state); diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c index 89c8b2349694..fff8dc84212d 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c @@ -634,7 +634,7 @@ static int nx_p3_nic_add_mac(struct netxen_adapter *adapter, } } - cur = kzalloc(sizeof(nx_mac_list_t), GFP_ATOMIC); + cur = kzalloc_obj(nx_mac_list_t, GFP_ATOMIC); if (cur == NULL) return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c index 51fa880eaf6c..a0466693e2d9 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c @@ -185,7 +185,7 @@ int netxen_alloc_sw_resources(struct netxen_adapter *adapter) struct netxen_cmd_buffer *cmd_buf_arr; struct net_device *netdev = adapter->netdev; - tx_ring = kzalloc(sizeof(struct nx_host_tx_ring), GFP_KERNEL); + tx_ring = kzalloc_obj(struct nx_host_tx_ring, GFP_KERNEL); if (tx_ring == NULL) return -ENOMEM; @@ -202,8 +202,8 @@ int netxen_alloc_sw_resources(struct netxen_adapter *adapter) recv_ctx = &adapter->recv_ctx; - rds_ring = kcalloc(adapter->max_rds_rings, - sizeof(struct nx_host_rds_ring), GFP_KERNEL); + rds_ring = kzalloc_objs(struct nx_host_rds_ring, adapter->max_rds_rings, + GFP_KERNEL); if (rds_ring == NULL) goto err_out; @@ -451,7 +451,7 @@ int netxen_pinit_from_rom(struct netxen_adapter *adapter) return -EIO; } - buf = kcalloc(n, sizeof(struct crb_addr_pair), GFP_KERNEL); + buf = kzalloc_objs(struct crb_addr_pair, n, GFP_KERNEL); if (buf == NULL) return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c index e8ff661fa4a5..5ee2bd9d6886 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c @@ -3198,7 +3198,7 @@ netxen_list_config_ip(struct netxen_adapter *adapter, goto out; } - cur = kzalloc(sizeof(struct nx_ip_list), GFP_ATOMIC); + cur = kzalloc_obj(struct nx_ip_list, GFP_ATOMIC); if (cur == NULL) goto out; if (is_vlan_dev(dev)) diff --git a/drivers/net/ethernet/qlogic/qed/qed_cxt.c b/drivers/net/ethernet/qlogic/qed/qed_cxt.c index 33f4f58ee51c..ddc1f9213a95 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_cxt.c +++ b/drivers/net/ethernet/qlogic/qed/qed_cxt.c @@ -845,8 +845,8 @@ static int qed_cxt_src_t2_alloc(struct qed_hwfn *p_hwfn) p_t2->num_pages = DIV_ROUND_UP(total_size, psz); /* allocate t2 */ - p_t2->dma_mem = kcalloc(p_t2->num_pages, sizeof(struct phys_mem_desc), - GFP_KERNEL); + p_t2->dma_mem = kzalloc_objs(struct phys_mem_desc, p_t2->num_pages, + GFP_KERNEL); if (!p_t2->dma_mem) { DP_NOTICE(p_hwfn, "Failed to allocate t2 table\n"); rc = -ENOMEM; @@ -994,8 +994,8 @@ static int qed_ilt_shadow_alloc(struct qed_hwfn *p_hwfn) int rc; size = qed_cxt_ilt_shadow_size(clients); - p_mngr->ilt_shadow = kcalloc(size, sizeof(struct phys_mem_desc), - GFP_KERNEL); + p_mngr->ilt_shadow = kzalloc_objs(struct phys_mem_desc, size, + GFP_KERNEL); if (!p_mngr->ilt_shadow) { rc = -ENOMEM; goto ilt_shadow_fail; @@ -1114,7 +1114,7 @@ int qed_cxt_mngr_alloc(struct qed_hwfn *p_hwfn) struct qed_cxt_mngr *p_mngr; u32 i; - p_mngr = kzalloc(sizeof(*p_mngr), GFP_KERNEL); + p_mngr = kzalloc_obj(*p_mngr, GFP_KERNEL); if (!p_mngr) return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/qed/qed_dcbx.c b/drivers/net/ethernet/qlogic/qed/qed_dcbx.c index dc93ddea8906..593931ec7226 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_dcbx.c +++ b/drivers/net/ethernet/qlogic/qed/qed_dcbx.c @@ -915,7 +915,7 @@ qed_dcbx_mib_update_event(struct qed_hwfn *p_hwfn, int qed_dcbx_info_alloc(struct qed_hwfn *p_hwfn) { - p_hwfn->p_dcbx_info = kzalloc(sizeof(*p_hwfn->p_dcbx_info), GFP_KERNEL); + p_hwfn->p_dcbx_info = kzalloc_obj(*p_hwfn->p_dcbx_info, GFP_KERNEL); if (!p_hwfn->p_dcbx_info) return -ENOMEM; @@ -1244,7 +1244,7 @@ int qed_dcbx_get_config_params(struct qed_hwfn *p_hwfn, return 0; } - dcbx_info = kzalloc(sizeof(*dcbx_info), GFP_KERNEL); + dcbx_info = kzalloc_obj(*dcbx_info, GFP_KERNEL); if (!dcbx_info) return -ENOMEM; @@ -1283,7 +1283,7 @@ static struct qed_dcbx_get *qed_dcbnl_get_dcbx(struct qed_hwfn *hwfn, { struct qed_dcbx_get *dcbx_info; - dcbx_info = kzalloc(sizeof(*dcbx_info), GFP_ATOMIC); + dcbx_info = kzalloc_obj(*dcbx_info, GFP_ATOMIC); if (!dcbx_info) return NULL; diff --git a/drivers/net/ethernet/qlogic/qed/qed_debug.c b/drivers/net/ethernet/qlogic/qed/qed_debug.c index 1f0cea3cae92..a869a2a7e918 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_debug.c +++ b/drivers/net/ethernet/qlogic/qed/qed_debug.c @@ -6821,9 +6821,8 @@ qed_mcp_trace_alloc_meta_data(struct qed_hwfn *p_hwfn, /* Read number of formats and allocate memory for all formats */ meta->formats_num = qed_read_dword_from_buf(meta_buf_bytes, &offset); - meta->formats = kcalloc(meta->formats_num, - sizeof(struct mcp_trace_format), - GFP_KERNEL); + meta->formats = kzalloc_objs(struct mcp_trace_format, meta->formats_num, + GFP_KERNEL); if (!meta->formats) return DBG_STATUS_VIRT_MEM_ALLOC_FAILED; @@ -7536,8 +7535,7 @@ enum dbg_status qed_dbg_user_set_bin_ptr(struct qed_hwfn *p_hwfn, enum dbg_status qed_dbg_alloc_user_data(struct qed_hwfn *p_hwfn, void **user_data_ptr) { - *user_data_ptr = kzalloc(sizeof(struct dbg_tools_user_data), - GFP_KERNEL); + *user_data_ptr = kzalloc_obj(struct dbg_tools_user_data, GFP_KERNEL); if (!(*user_data_ptr)) return DBG_STATUS_VIRT_MEM_ALLOC_FAILED; diff --git a/drivers/net/ethernet/qlogic/qed/qed_dev.c b/drivers/net/ethernet/qlogic/qed/qed_dev.c index f3d2b2b3bad5..4c2027972347 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_dev.c +++ b/drivers/net/ethernet/qlogic/qed/qed_dev.c @@ -146,7 +146,7 @@ int qed_db_recovery_add(struct qed_dev *cdev, p_hwfn = qed_db_rec_find_hwfn(cdev, db_addr); /* Create entry */ - db_entry = kzalloc(sizeof(*db_entry), GFP_KERNEL); + db_entry = kzalloc_obj(*db_entry, GFP_KERNEL); if (!db_entry) { DP_NOTICE(cdev, "Failed to allocate a db recovery entry\n"); return -ENOMEM; @@ -383,7 +383,7 @@ static int qed_llh_alloc(struct qed_dev *cdev) struct qed_llh_info *p_llh_info; u32 size, i; - p_llh_info = kzalloc(sizeof(*p_llh_info), GFP_KERNEL); + p_llh_info = kzalloc_obj(*p_llh_info, GFP_KERNEL); if (!p_llh_info) return -ENOMEM; cdev->p_llh_info = p_llh_info; @@ -2108,27 +2108,27 @@ static int qed_alloc_qm_data(struct qed_hwfn *p_hwfn) if (rc) goto alloc_err; - qm_info->qm_pq_params = kcalloc(qed_init_qm_get_num_pqs(p_hwfn), - sizeof(*qm_info->qm_pq_params), - GFP_KERNEL); + qm_info->qm_pq_params = kzalloc_objs(*qm_info->qm_pq_params, + qed_init_qm_get_num_pqs(p_hwfn), + GFP_KERNEL); if (!qm_info->qm_pq_params) goto alloc_err; - qm_info->qm_vport_params = kcalloc(qed_init_qm_get_num_vports(p_hwfn), - sizeof(*qm_info->qm_vport_params), - GFP_KERNEL); + qm_info->qm_vport_params = kzalloc_objs(*qm_info->qm_vport_params, + qed_init_qm_get_num_vports(p_hwfn), + GFP_KERNEL); if (!qm_info->qm_vport_params) goto alloc_err; - qm_info->qm_port_params = kcalloc(p_hwfn->cdev->num_ports_in_engine, - sizeof(*qm_info->qm_port_params), - GFP_KERNEL); + qm_info->qm_port_params = kzalloc_objs(*qm_info->qm_port_params, + p_hwfn->cdev->num_ports_in_engine, + GFP_KERNEL); if (!qm_info->qm_port_params) goto alloc_err; - qm_info->wfq_data = kcalloc(qed_init_qm_get_num_vports(p_hwfn), - sizeof(*qm_info->wfq_data), - GFP_KERNEL); + qm_info->wfq_data = kzalloc_objs(*qm_info->wfq_data, + qed_init_qm_get_num_vports(p_hwfn), + GFP_KERNEL); if (!qm_info->wfq_data) goto alloc_err; @@ -2155,7 +2155,7 @@ int qed_resc_alloc(struct qed_dev *cdev) return rc; } - cdev->fw_data = kzalloc(sizeof(*cdev->fw_data), GFP_KERNEL); + cdev->fw_data = kzalloc_obj(*cdev->fw_data, GFP_KERNEL); if (!cdev->fw_data) return -ENOMEM; @@ -2345,7 +2345,7 @@ int qed_resc_alloc(struct qed_dev *cdev) goto alloc_err; } - cdev->reset_stats = kzalloc(sizeof(*cdev->reset_stats), GFP_KERNEL); + cdev->reset_stats = kzalloc_obj(*cdev->reset_stats, GFP_KERNEL); if (!cdev->reset_stats) goto alloc_no_mem; @@ -2642,7 +2642,7 @@ static int qed_hw_init_common(struct qed_hwfn *p_hwfn, u32 concrete_fid; int rc = 0; - params = kzalloc(sizeof(*params), GFP_KERNEL); + params = kzalloc_obj(*params, GFP_KERNEL); if (!params) { DP_NOTICE(p_hwfn->cdev, "Failed to allocate common init params\n"); diff --git a/drivers/net/ethernet/qlogic/qed/qed_fcoe.c b/drivers/net/ethernet/qlogic/qed/qed_fcoe.c index 04602ac94708..9d91e4775b52 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_fcoe.c +++ b/drivers/net/ethernet/qlogic/qed/qed_fcoe.c @@ -383,7 +383,7 @@ qed_fcoe_allocate_connection(struct qed_hwfn *p_hwfn, } spin_unlock_bh(&p_hwfn->p_fcoe_info->lock); - p_conn = kzalloc(sizeof(*p_conn), GFP_KERNEL); + p_conn = kzalloc_obj(*p_conn, GFP_KERNEL); if (!p_conn) return -ENOMEM; @@ -535,7 +535,7 @@ int qed_fcoe_alloc(struct qed_hwfn *p_hwfn) struct qed_fcoe_info *p_fcoe_info; /* Allocate LL2's set struct */ - p_fcoe_info = kzalloc(sizeof(*p_fcoe_info), GFP_KERNEL); + p_fcoe_info = kzalloc_obj(*p_fcoe_info, GFP_KERNEL); if (!p_fcoe_info) { DP_NOTICE(p_hwfn, "Failed to allocate qed_fcoe_info'\n"); return -ENOMEM; @@ -817,8 +817,8 @@ static int qed_fcoe_start(struct qed_dev *cdev, struct qed_fcoe_tid *tasks) hash_init(cdev->connections); if (tasks) { - struct qed_tid_mem *tid_info = kzalloc(sizeof(*tid_info), - GFP_ATOMIC); + struct qed_tid_mem *tid_info = kzalloc_obj(*tid_info, + GFP_ATOMIC); if (!tid_info) { DP_NOTICE(cdev, @@ -855,7 +855,7 @@ static int qed_fcoe_acquire_conn(struct qed_dev *cdev, int rc; /* Allocate a hashed connection */ - hash_con = kzalloc(sizeof(*hash_con), GFP_KERNEL); + hash_con = kzalloc_obj(*hash_con, GFP_KERNEL); if (!hash_con) { DP_NOTICE(cdev, "Failed to allocate hashed connection\n"); return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/qed/qed_hw.c b/drivers/net/ethernet/qlogic/qed/qed_hw.c index 9907973399dc..6fff9788101c 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_hw.c +++ b/drivers/net/ethernet/qlogic/qed/qed_hw.c @@ -46,7 +46,7 @@ struct qed_ptt_pool { int qed_ptt_pool_alloc(struct qed_hwfn *p_hwfn) { - struct qed_ptt_pool *p_pool = kmalloc(sizeof(*p_pool), GFP_KERNEL); + struct qed_ptt_pool *p_pool = kmalloc_obj(*p_pool, GFP_KERNEL); int i; if (!p_pool) diff --git a/drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c b/drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c index aa20bb8caa9a..9b7b05362c68 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c +++ b/drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c @@ -1692,8 +1692,8 @@ struct phys_mem_desc *qed_fw_overlay_mem_alloc(struct qed_hwfn *p_hwfn, if (!buf_size) return NULL; - allocated_mem = kcalloc(NUM_STORMS, sizeof(struct phys_mem_desc), - GFP_KERNEL); + allocated_mem = kzalloc_objs(struct phys_mem_desc, NUM_STORMS, + GFP_KERNEL); if (!allocated_mem) return NULL; diff --git a/drivers/net/ethernet/qlogic/qed/qed_init_ops.c b/drivers/net/ethernet/qlogic/qed/qed_init_ops.c index b3bf9899c1a1..330c75d9ee07 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_init_ops.c +++ b/drivers/net/ethernet/qlogic/qed/qed_init_ops.c @@ -210,8 +210,7 @@ int qed_init_alloc(struct qed_hwfn *p_hwfn) if (IS_VF(p_hwfn->cdev)) return 0; - rt_data->b_valid = kcalloc(RUNTIME_ARRAY_SIZE, sizeof(bool), - GFP_KERNEL); + rt_data->b_valid = kzalloc_objs(bool, RUNTIME_ARRAY_SIZE, GFP_KERNEL); if (!rt_data->b_valid) return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/qed/qed_int.c b/drivers/net/ethernet/qlogic/qed/qed_int.c index 2661c483c67e..a65827240d00 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_int.c +++ b/drivers/net/ethernet/qlogic/qed/qed_int.c @@ -1412,7 +1412,7 @@ static int qed_int_sb_attn_alloc(struct qed_hwfn *p_hwfn, void *p_virt; /* SB struct */ - p_sb = kmalloc(sizeof(*p_sb), GFP_KERNEL); + p_sb = kmalloc_obj(*p_sb, GFP_KERNEL); if (!p_sb) return -ENOMEM; @@ -1765,7 +1765,7 @@ static int qed_int_sp_sb_alloc(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt) void *p_virt; /* SB struct */ - p_sb = kmalloc(sizeof(*p_sb), GFP_KERNEL); + p_sb = kmalloc_obj(*p_sb, GFP_KERNEL); if (!p_sb) return -ENOMEM; @@ -2188,7 +2188,7 @@ int qed_int_igu_read_cam(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt) u32 min_vf = 0, max_vf = 0; u16 igu_sb_id; - p_hwfn->hw_info.p_igu_info = kzalloc(sizeof(*p_igu_info), GFP_KERNEL); + p_hwfn->hw_info.p_igu_info = kzalloc_obj(*p_igu_info, GFP_KERNEL); if (!p_hwfn->hw_info.p_igu_info) return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/qed/qed_iscsi.c b/drivers/net/ethernet/qlogic/qed/qed_iscsi.c index 980e7289b481..758fa97be920 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_iscsi.c +++ b/drivers/net/ethernet/qlogic/qed/qed_iscsi.c @@ -710,7 +710,7 @@ static int qed_iscsi_allocate_connection(struct qed_hwfn *p_hwfn, /* Need to allocate a new connection */ p_params = &p_hwfn->pf_params.iscsi_pf_params; - p_conn = kzalloc(sizeof(*p_conn), GFP_KERNEL); + p_conn = kzalloc_obj(*p_conn, GFP_KERNEL); if (!p_conn) return -ENOMEM; @@ -845,7 +845,7 @@ int qed_iscsi_alloc(struct qed_hwfn *p_hwfn) { struct qed_iscsi_info *p_iscsi_info; - p_iscsi_info = kzalloc(sizeof(*p_iscsi_info), GFP_KERNEL); + p_iscsi_info = kzalloc_obj(*p_iscsi_info, GFP_KERNEL); if (!p_iscsi_info) return -ENOMEM; @@ -1125,7 +1125,7 @@ static int qed_iscsi_start(struct qed_dev *cdev, if (!tasks) return 0; - tid_info = kzalloc(sizeof(*tid_info), GFP_KERNEL); + tid_info = kzalloc_obj(*tid_info, GFP_KERNEL); if (!tid_info) { qed_iscsi_stop(cdev); @@ -1159,7 +1159,7 @@ static int qed_iscsi_acquire_conn(struct qed_dev *cdev, int rc; /* Allocate a hashed connection */ - hash_con = kzalloc(sizeof(*hash_con), GFP_ATOMIC); + hash_con = kzalloc_obj(*hash_con, GFP_ATOMIC); if (!hash_con) return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c index 1d1d4caad680..3b1ff94a0588 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c +++ b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c @@ -546,7 +546,7 @@ qed_iwarp_create_ep(struct qed_hwfn *p_hwfn, struct qed_iwarp_ep **ep_out) struct qed_iwarp_ep *ep; int rc; - ep = kzalloc(sizeof(*ep), GFP_KERNEL); + ep = kzalloc_obj(*ep, GFP_KERNEL); if (!ep) return -ENOMEM; @@ -2602,7 +2602,7 @@ qed_iwarp_ll2_alloc_buffers(struct qed_hwfn *p_hwfn, int i; for (i = 0; i < num_rx_bufs; i++) { - buffer = kzalloc(sizeof(*buffer), GFP_KERNEL); + buffer = kzalloc_obj(*buffer, GFP_KERNEL); if (!buffer) { rc = -ENOMEM; break; @@ -2759,9 +2759,9 @@ qed_iwarp_ll2_start(struct qed_hwfn *p_hwfn, if (rc) goto err; - iwarp_info->partial_fpdus = kcalloc((u16)p_hwfn->p_rdma_info->num_qps, - sizeof(*iwarp_info->partial_fpdus), - GFP_KERNEL); + iwarp_info->partial_fpdus = kzalloc_objs(*iwarp_info->partial_fpdus, + (u16)p_hwfn->p_rdma_info->num_qps, + GFP_KERNEL); if (!iwarp_info->partial_fpdus) { rc = -ENOMEM; goto err; @@ -2780,9 +2780,8 @@ qed_iwarp_ll2_start(struct qed_hwfn *p_hwfn, * processing. We can't fail on allocation of such a struct therefore * we allocate enough to take care of all rx packets */ - iwarp_info->mpa_bufs = kcalloc(data.input.rx_num_desc, - sizeof(*iwarp_info->mpa_bufs), - GFP_KERNEL); + iwarp_info->mpa_bufs = kzalloc_objs(*iwarp_info->mpa_bufs, + data.input.rx_num_desc, GFP_KERNEL); if (!iwarp_info->mpa_bufs) { rc = -ENOMEM; goto err; @@ -3167,7 +3166,7 @@ qed_iwarp_create_listen(void *rdma_cxt, struct qed_hwfn *p_hwfn = rdma_cxt; struct qed_iwarp_listener *listener; - listener = kzalloc(sizeof(*listener), GFP_KERNEL); + listener = kzalloc_obj(*listener, GFP_KERNEL); if (!listener) return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/qed/qed_l2.c b/drivers/net/ethernet/qlogic/qed/qed_l2.c index 970b9aabbc3d..e78f9c2ffc38 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_l2.c +++ b/drivers/net/ethernet/qlogic/qed/qed_l2.c @@ -58,7 +58,7 @@ int qed_l2_alloc(struct qed_hwfn *p_hwfn) if (!QED_IS_L2_PERSONALITY(p_hwfn)) return 0; - p_l2_info = kzalloc(sizeof(*p_l2_info), GFP_KERNEL); + p_l2_info = kzalloc_obj(*p_l2_info, GFP_KERNEL); if (!p_l2_info) return -ENOMEM; p_hwfn->p_l2_info = p_l2_info; diff --git a/drivers/net/ethernet/qlogic/qed/qed_ll2.c b/drivers/net/ethernet/qlogic/qed/qed_ll2.c index ab5ef254a748..904bb1cd9bdb 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_ll2.c +++ b/drivers/net/ethernet/qlogic/qed/qed_ll2.c @@ -1195,8 +1195,7 @@ qed_ll2_acquire_connection_rx(struct qed_hwfn *p_hwfn, } capacity = qed_chain_get_capacity(&p_ll2_info->rx_queue.rxq_chain); - p_descq = kcalloc(capacity, sizeof(struct qed_ll2_rx_packet), - GFP_KERNEL); + p_descq = kzalloc_objs(struct qed_ll2_rx_packet, capacity, GFP_KERNEL); if (!p_descq) { rc = -ENOMEM; DP_NOTICE(p_hwfn, "Failed to allocate ll2 Rx desc\n"); @@ -1291,7 +1290,7 @@ qed_ll2_acquire_connection_ooo(struct qed_hwfn *p_hwfn, for (buf_idx = 0; buf_idx < p_ll2_info->input.rx_num_ooo_buffers; buf_idx++) { - p_buf = kzalloc(sizeof(*p_buf), GFP_KERNEL); + p_buf = kzalloc_obj(*p_buf, GFP_KERNEL); if (!p_buf) { rc = -ENOMEM; goto out; @@ -2200,8 +2199,9 @@ int qed_ll2_alloc(struct qed_hwfn *p_hwfn) u8 i; /* Allocate LL2's set struct */ - p_ll2_connections = kcalloc(QED_MAX_NUM_OF_LL2_CONNECTIONS, - sizeof(struct qed_ll2_info), GFP_KERNEL); + p_ll2_connections = kzalloc_objs(struct qed_ll2_info, + QED_MAX_NUM_OF_LL2_CONNECTIONS, + GFP_KERNEL); if (!p_ll2_connections) { DP_NOTICE(p_hwfn, "Failed to allocate `struct qed_ll2'\n"); return -ENOMEM; @@ -2603,7 +2603,7 @@ static int qed_ll2_start(struct qed_dev *cdev, struct qed_ll2_params *params) DP_INFO(cdev, "Allocating %d LL2 buffers of size %08x bytes\n", rx_num_desc, cdev->ll2->rx_size); for (i = 0; i < rx_num_desc; i++) { - buffer = kzalloc(sizeof(*buffer), GFP_KERNEL); + buffer = kzalloc_obj(*buffer, GFP_KERNEL); if (!buffer) { DP_INFO(cdev, "Failed to allocate LL2 buffers\n"); rc = -ENOMEM; @@ -2811,7 +2811,7 @@ const struct qed_ll2_ops qed_ll2_ops_pass = { int qed_ll2_alloc_if(struct qed_dev *cdev) { - cdev->ll2 = kzalloc(sizeof(*cdev->ll2), GFP_KERNEL); + cdev->ll2 = kzalloc_obj(*cdev->ll2, GFP_KERNEL); return cdev->ll2 ? 0 : -ENOMEM; } diff --git a/drivers/net/ethernet/qlogic/qed/qed_main.c b/drivers/net/ethernet/qlogic/qed/qed_main.c index d4685ad4b169..544d790efdea 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_main.c +++ b/drivers/net/ethernet/qlogic/qed/qed_main.c @@ -461,7 +461,7 @@ static struct qed_dev *qed_alloc_cdev(struct pci_dev *pdev) { struct qed_dev *cdev; - cdev = kzalloc(sizeof(*cdev), GFP_KERNEL); + cdev = kzalloc_obj(*cdev, GFP_KERNEL); if (!cdev) return cdev; @@ -612,7 +612,7 @@ static int qed_set_int_mode(struct qed_dev *cdev, bool force_mode) case QED_INT_MODE_MSIX: /* Allocate MSIX table */ cnt = int_params->in.num_vectors; - int_params->msix_table = kcalloc(cnt, sizeof(*tbl), GFP_KERNEL); + int_params->msix_table = kzalloc_objs(*tbl, cnt, GFP_KERNEL); if (!int_params->msix_table) { rc = -ENOMEM; goto out; @@ -1050,7 +1050,7 @@ static int qed_alloc_stream_mem(struct qed_dev *cdev) for_each_hwfn(cdev, i) { struct qed_hwfn *p_hwfn = &cdev->hwfns[i]; - p_hwfn->stream = kzalloc(sizeof(*p_hwfn->stream), GFP_KERNEL); + p_hwfn->stream = kzalloc_obj(*p_hwfn->stream, GFP_KERNEL); if (!p_hwfn->stream) return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/qed/qed_mcp.c b/drivers/net/ethernet/qlogic/qed/qed_mcp.c index c7f497c36f66..22802c793d68 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_mcp.c +++ b/drivers/net/ethernet/qlogic/qed/qed_mcp.c @@ -104,7 +104,7 @@ qed_mcp_cmd_add_elem(struct qed_hwfn *p_hwfn, { struct qed_mcp_cmd_elem *p_cmd_elem = NULL; - p_cmd_elem = kzalloc(sizeof(*p_cmd_elem), GFP_ATOMIC); + p_cmd_elem = kzalloc_obj(*p_cmd_elem, GFP_ATOMIC); if (!p_cmd_elem) goto out; @@ -241,7 +241,7 @@ int qed_mcp_cmd_init(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt) u32 size; /* Allocate mcp_info structure */ - p_hwfn->mcp_info = kzalloc(sizeof(*p_hwfn->mcp_info), GFP_KERNEL); + p_hwfn->mcp_info = kzalloc_obj(*p_hwfn->mcp_info, GFP_KERNEL); if (!p_hwfn->mcp_info) goto err; p_info = p_hwfn->mcp_info; @@ -3365,9 +3365,8 @@ int qed_mcp_nvm_info_populate(struct qed_hwfn *p_hwfn) goto err0; } - nvm_info.image_att = kmalloc_array(nvm_info.num_images, - sizeof(struct bist_nvm_image_att), - GFP_KERNEL); + nvm_info.image_att = kmalloc_objs(struct bist_nvm_image_att, + nvm_info.num_images, GFP_KERNEL); if (!nvm_info.image_att) { rc = -ENOMEM; goto err0; diff --git a/drivers/net/ethernet/qlogic/qed/qed_nvmetcp.c b/drivers/net/ethernet/qlogic/qed/qed_nvmetcp.c index f19128c8d9cc..81823f4197f6 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_nvmetcp.c +++ b/drivers/net/ethernet/qlogic/qed/qed_nvmetcp.c @@ -218,7 +218,7 @@ static int qed_nvmetcp_start(struct qed_dev *cdev, if (!tasks) return 0; - tid_info = kzalloc(sizeof(*tid_info), GFP_KERNEL); + tid_info = kzalloc_obj(*tid_info, GFP_KERNEL); if (!tid_info) { qed_nvmetcp_stop(cdev); @@ -477,7 +477,7 @@ static int qed_nvmetcp_allocate_connection(struct qed_hwfn *p_hwfn, /* Need to allocate a new connection */ p_params = &p_hwfn->pf_params.nvmetcp_pf_params; - p_conn = kzalloc(sizeof(*p_conn), GFP_KERNEL); + p_conn = kzalloc_obj(*p_conn, GFP_KERNEL); if (!p_conn) return -ENOMEM; @@ -568,7 +568,7 @@ int qed_nvmetcp_alloc(struct qed_hwfn *p_hwfn) { struct qed_nvmetcp_info *p_nvmetcp_info; - p_nvmetcp_info = kzalloc(sizeof(*p_nvmetcp_info), GFP_KERNEL); + p_nvmetcp_info = kzalloc_obj(*p_nvmetcp_info, GFP_KERNEL); if (!p_nvmetcp_info) return -ENOMEM; @@ -611,7 +611,7 @@ static int qed_nvmetcp_acquire_conn(struct qed_dev *cdev, int rc; /* Allocate a hashed connection */ - hash_con = kzalloc(sizeof(*hash_con), GFP_ATOMIC); + hash_con = kzalloc_obj(*hash_con, GFP_ATOMIC); if (!hash_con) return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/qed/qed_ooo.c b/drivers/net/ethernet/qlogic/qed/qed_ooo.c index 8be567a6ad44..23631e18858e 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_ooo.c +++ b/drivers/net/ethernet/qlogic/qed/qed_ooo.c @@ -107,7 +107,7 @@ int qed_ooo_alloc(struct qed_hwfn *p_hwfn) return -EINVAL; } - p_ooo_info = kzalloc(sizeof(*p_ooo_info), GFP_KERNEL); + p_ooo_info = kzalloc_obj(*p_ooo_info, GFP_KERNEL); if (!p_ooo_info) return -ENOMEM; @@ -118,9 +118,8 @@ int qed_ooo_alloc(struct qed_hwfn *p_hwfn) INIT_LIST_HEAD(&p_ooo_info->ready_buffers_list); INIT_LIST_HEAD(&p_ooo_info->free_isles_list); - p_ooo_info->p_isles_mem = kcalloc(max_num_isles, - sizeof(struct qed_ooo_isle), - GFP_KERNEL); + p_ooo_info->p_isles_mem = kzalloc_objs(struct qed_ooo_isle, + max_num_isles, GFP_KERNEL); if (!p_ooo_info->p_isles_mem) goto no_isles_mem; @@ -131,9 +130,8 @@ int qed_ooo_alloc(struct qed_hwfn *p_hwfn) } p_ooo_info->p_archipelagos_mem = - kcalloc(max_num_archipelagos, - sizeof(struct qed_ooo_archipelago), - GFP_KERNEL); + kzalloc_objs(struct qed_ooo_archipelago, + max_num_archipelagos, GFP_KERNEL); if (!p_ooo_info->p_archipelagos_mem) goto no_archipelagos_mem; @@ -141,9 +139,9 @@ int qed_ooo_alloc(struct qed_hwfn *p_hwfn) INIT_LIST_HEAD(&p_ooo_info->p_archipelagos_mem[i].isles_list); p_ooo_info->ooo_history.p_cqes = - kcalloc(QED_MAX_NUM_OOO_HISTORY_ENTRIES, - sizeof(struct ooo_opaque), - GFP_KERNEL); + kzalloc_objs(struct ooo_opaque, + QED_MAX_NUM_OOO_HISTORY_ENTRIES, + GFP_KERNEL); if (!p_ooo_info->ooo_history.p_cqes) goto no_history_mem; diff --git a/drivers/net/ethernet/qlogic/qed/qed_rdma.c b/drivers/net/ethernet/qlogic/qed/qed_rdma.c index 9a1660a12c57..8872c9ebcd26 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_rdma.c +++ b/drivers/net/ethernet/qlogic/qed/qed_rdma.c @@ -119,7 +119,7 @@ int qed_rdma_info_alloc(struct qed_hwfn *p_hwfn) { struct qed_rdma_info *p_rdma_info; - p_rdma_info = kzalloc(sizeof(*p_rdma_info), GFP_KERNEL); + p_rdma_info = kzalloc_obj(*p_rdma_info, GFP_KERNEL); if (!p_rdma_info) return -ENOMEM; @@ -168,12 +168,12 @@ static int qed_rdma_alloc(struct qed_hwfn *p_hwfn) p_rdma_info->max_queue_zones = (u16)RESC_NUM(p_hwfn, QED_L2_QUEUE); /* Allocate a struct with device params and fill it */ - p_rdma_info->dev = kzalloc(sizeof(*p_rdma_info->dev), GFP_KERNEL); + p_rdma_info->dev = kzalloc_obj(*p_rdma_info->dev, GFP_KERNEL); if (!p_rdma_info->dev) return rc; /* Allocate a struct with port params and fill it */ - p_rdma_info->port = kzalloc(sizeof(*p_rdma_info->port), GFP_KERNEL); + p_rdma_info->port = kzalloc_obj(*p_rdma_info->port, GFP_KERNEL); if (!p_rdma_info->port) goto free_rdma_dev; @@ -1293,7 +1293,7 @@ qed_rdma_create_qp(void *rdma_cxt, } } - qp = kzalloc(sizeof(*qp), GFP_KERNEL); + qp = kzalloc_obj(*qp, GFP_KERNEL); if (!qp) return NULL; diff --git a/drivers/net/ethernet/qlogic/qed/qed_spq.c b/drivers/net/ethernet/qlogic/qed/qed_spq.c index d01b9245f811..d0ef2782f5ba 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_spq.c +++ b/drivers/net/ethernet/qlogic/qed/qed_spq.c @@ -407,7 +407,7 @@ int qed_eq_alloc(struct qed_hwfn *p_hwfn, u16 num_elem) int ret; /* Allocate EQ struct */ - p_eq = kzalloc(sizeof(*p_eq), GFP_KERNEL); + p_eq = kzalloc_obj(*p_eq, GFP_KERNEL); if (!p_eq) return -ENOMEM; @@ -562,7 +562,7 @@ int qed_spq_alloc(struct qed_hwfn *p_hwfn) int ret; /* SPQ struct */ - p_spq = kzalloc(sizeof(*p_spq), GFP_KERNEL); + p_spq = kzalloc_obj(*p_spq, GFP_KERNEL); if (!p_spq) return -ENOMEM; @@ -633,7 +633,7 @@ int qed_spq_get_entry(struct qed_hwfn *p_hwfn, struct qed_spq_entry **pp_ent) spin_lock_bh(&p_spq->lock); if (list_empty(&p_spq->free_pool)) { - p_ent = kzalloc(sizeof(*p_ent), GFP_ATOMIC); + p_ent = kzalloc_obj(*p_ent, GFP_ATOMIC); if (!p_ent) { DP_NOTICE(p_hwfn, "Failed to allocate an SPQ entry for a pending ramrod\n"); @@ -1013,7 +1013,7 @@ int qed_consq_alloc(struct qed_hwfn *p_hwfn) int ret; /* Allocate ConsQ struct */ - p_consq = kzalloc(sizeof(*p_consq), GFP_KERNEL); + p_consq = kzalloc_obj(*p_consq, GFP_KERNEL); if (!p_consq) return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/qed/qed_sriov.c b/drivers/net/ethernet/qlogic/qed/qed_sriov.c index 5222a035fd19..cc9087abbacc 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_sriov.c +++ b/drivers/net/ethernet/qlogic/qed/qed_sriov.c @@ -543,7 +543,7 @@ int qed_iov_alloc(struct qed_hwfn *p_hwfn) return 0; } - p_sriov = kzalloc(sizeof(*p_sriov), GFP_KERNEL); + p_sriov = kzalloc_obj(*p_sriov, GFP_KERNEL); if (!p_sriov) return -ENOMEM; @@ -600,7 +600,7 @@ int qed_iov_hw_info(struct qed_hwfn *p_hwfn) } /* Allocate a new struct for IOV information */ - cdev->p_iov_info = kzalloc(sizeof(*cdev->p_iov_info), GFP_KERNEL); + cdev->p_iov_info = kzalloc_obj(*cdev->p_iov_info, GFP_KERNEL); if (!cdev->p_iov_info) return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/qed/qed_vf.c b/drivers/net/ethernet/qlogic/qed/qed_vf.c index 0e265ed1f501..b9ebf91e6b6a 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_vf.c +++ b/drivers/net/ethernet/qlogic/qed/qed_vf.c @@ -454,7 +454,7 @@ int qed_vf_hw_prepare(struct qed_hwfn *p_hwfn) p_hwfn->hw_info.concrete_fid = REG_RD(p_hwfn, reg); /* Allocate vf sriov info */ - p_iov = kzalloc(sizeof(*p_iov), GFP_KERNEL); + p_iov = kzalloc_obj(*p_iov, GFP_KERNEL); if (!p_iov) return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/qede/qede_filter.c b/drivers/net/ethernet/qlogic/qede/qede_filter.c index 7e341e026489..32bb653c50f7 100644 --- a/drivers/net/ethernet/qlogic/qede/qede_filter.c +++ b/drivers/net/ethernet/qlogic/qede/qede_filter.c @@ -413,7 +413,7 @@ qede_alloc_filter(struct qede_dev *edev, int min_hlen) if (bit_id >= QEDE_RFS_MAX_FLTR) return NULL; - n = kzalloc(sizeof(*n), GFP_ATOMIC); + n = kzalloc_obj(*n, GFP_ATOMIC); if (!n) return NULL; @@ -682,7 +682,7 @@ int qede_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid) DP_VERBOSE(edev, NETIF_MSG_IFUP, "Adding vlan 0x%04x\n", vid); - vlan = kzalloc(sizeof(*vlan), GFP_KERNEL); + vlan = kzalloc_obj(*vlan, GFP_KERNEL); if (!vlan) { DP_INFO(edev, "Failed to allocate struct for vlan\n"); return -ENOMEM; @@ -1916,7 +1916,7 @@ int qede_add_tc_flower_fltr(struct qede_dev *edev, __be16 proto, goto unlock; } - n = kzalloc(sizeof(*n), GFP_KERNEL); + n = kzalloc_obj(*n, GFP_KERNEL); if (!n) { rc = -ENOMEM; goto unlock; @@ -2059,7 +2059,7 @@ int qede_add_cls_rule(struct qede_dev *edev, struct ethtool_rxnfc *info) goto unlock; } - n = kzalloc(sizeof(*n), GFP_KERNEL); + n = kzalloc_obj(*n, GFP_KERNEL); if (!n) { rc = -ENOMEM; goto unlock; diff --git a/drivers/net/ethernet/qlogic/qede/qede_main.c b/drivers/net/ethernet/qlogic/qede/qede_main.c index 66ab1b9d65a1..dfa221b30e9e 100644 --- a/drivers/net/ethernet/qlogic/qede/qede_main.c +++ b/drivers/net/ethernet/qlogic/qede/qede_main.c @@ -963,17 +963,17 @@ static int qede_alloc_fp_array(struct qede_dev *edev) struct qede_fastpath *fp; int i; - edev->fp_array = kcalloc(QEDE_QUEUE_CNT(edev), - sizeof(*edev->fp_array), GFP_KERNEL); + edev->fp_array = kzalloc_objs(*edev->fp_array, QEDE_QUEUE_CNT(edev), + GFP_KERNEL); if (!edev->fp_array) { DP_NOTICE(edev, "fp array allocation failed\n"); goto err; } if (!edev->coal_entry) { - edev->coal_entry = kcalloc(QEDE_MAX_RSS_CNT(edev), - sizeof(*edev->coal_entry), - GFP_KERNEL); + edev->coal_entry = kzalloc_objs(*edev->coal_entry, + QEDE_MAX_RSS_CNT(edev), + GFP_KERNEL); if (!edev->coal_entry) { DP_ERR(edev, "coalesce entry allocation failed\n"); goto err; @@ -990,7 +990,7 @@ static int qede_alloc_fp_array(struct qede_dev *edev) for_each_queue(i) { fp = &edev->fp_array[i]; - fp->sb_info = kzalloc(sizeof(*fp->sb_info), GFP_KERNEL); + fp->sb_info = kzalloc_obj(*fp->sb_info, GFP_KERNEL); if (!fp->sb_info) { DP_NOTICE(edev, "sb info struct allocation failed\n"); goto err; @@ -1007,20 +1007,20 @@ static int qede_alloc_fp_array(struct qede_dev *edev) } if (fp->type & QEDE_FASTPATH_TX) { - fp->txq = kcalloc(edev->dev_info.num_tc, - sizeof(*fp->txq), GFP_KERNEL); + fp->txq = kzalloc_objs(*fp->txq, edev->dev_info.num_tc, + GFP_KERNEL); if (!fp->txq) goto err; } if (fp->type & QEDE_FASTPATH_RX) { - fp->rxq = kzalloc(sizeof(*fp->rxq), GFP_KERNEL); + fp->rxq = kzalloc_obj(*fp->rxq, GFP_KERNEL); if (!fp->rxq) goto err; if (edev->xdp_prog) { - fp->xdp_tx = kzalloc(sizeof(*fp->xdp_tx), - GFP_KERNEL); + fp->xdp_tx = kzalloc_obj(*fp->xdp_tx, + GFP_KERNEL); if (!fp->xdp_tx) goto err; fp->type |= QEDE_FASTPATH_XDP; diff --git a/drivers/net/ethernet/qlogic/qede/qede_ptp.c b/drivers/net/ethernet/qlogic/qede/qede_ptp.c index d351be5fbda1..774f77f9a55e 100644 --- a/drivers/net/ethernet/qlogic/qede/qede_ptp.c +++ b/drivers/net/ethernet/qlogic/qede/qede_ptp.c @@ -446,7 +446,7 @@ int qede_ptp_enable(struct qede_dev *edev) struct qede_ptp *ptp; int rc; - ptp = kzalloc(sizeof(*ptp), GFP_KERNEL); + ptp = kzalloc_obj(*ptp, GFP_KERNEL); if (!ptp) { DP_INFO(edev, "Failed to allocate struct for PTP\n"); return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/qede/qede_rdma.c b/drivers/net/ethernet/qlogic/qede/qede_rdma.c index 6304514a6f2c..d0fff415871e 100644 --- a/drivers/net/ethernet/qlogic/qede/qede_rdma.c +++ b/drivers/net/ethernet/qlogic/qede/qede_rdma.c @@ -258,7 +258,7 @@ qede_rdma_get_free_event_node(struct qede_dev *edev) } if (!found) { - event_node = kzalloc(sizeof(*event_node), GFP_ATOMIC); + event_node = kzalloc_obj(*event_node, GFP_ATOMIC); if (!event_node) { DP_NOTICE(edev, "qedr: Could not allocate memory for rdma work\n"); diff --git a/drivers/net/ethernet/qlogic/qla3xxx.c b/drivers/net/ethernet/qlogic/qla3xxx.c index fca94a69c777..b75b4708c300 100644 --- a/drivers/net/ethernet/qlogic/qla3xxx.c +++ b/drivers/net/ethernet/qlogic/qla3xxx.c @@ -2578,9 +2578,8 @@ static int ql_alloc_buffer_queues(struct ql3_adapter *qdev) else qdev->lrg_buf_q_alloc_size = qdev->lrg_buf_q_size * 2; - qdev->lrg_buf = kmalloc_array(qdev->num_large_buffers, - sizeof(struct ql_rcv_buf_cb), - GFP_KERNEL); + qdev->lrg_buf = kmalloc_objs(struct ql_rcv_buf_cb, + qdev->num_large_buffers, GFP_KERNEL); if (qdev->lrg_buf == NULL) return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c index 91e7b38143ea..bae848bd5e26 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c @@ -1732,7 +1732,7 @@ int qlcnic_83xx_nic_set_promisc(struct qlcnic_adapter *adapter, u32 mode) if (adapter->recv_ctx->state == QLCNIC_HOST_CTX_STATE_FREED) return -EIO; - cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC); + cmd = kzalloc_obj(*cmd, GFP_ATOMIC); if (!cmd) return -ENOMEM; @@ -2103,7 +2103,7 @@ int qlcnic_83xx_sre_macaddr_change(struct qlcnic_adapter *adapter, u8 *addr, if (adapter->recv_ctx->state == QLCNIC_HOST_CTX_STATE_FREED) return -EIO; - cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC); + cmd = kzalloc_obj(*cmd, GFP_ATOMIC); if (!cmd) return -ENOMEM; @@ -4164,7 +4164,7 @@ int qlcnic_83xx_init_mailbox_work(struct qlcnic_adapter *adapter) struct qlcnic_hardware_context *ahw = adapter->ahw; struct qlcnic_mailbox *mbx; - ahw->mailbox = kzalloc(sizeof(*mbx), GFP_KERNEL); + ahw->mailbox = kzalloc_obj(*mbx, GFP_KERNEL); if (!ahw->mailbox) return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c index 6145252d8ff8..42c8e5490ee7 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c @@ -2388,7 +2388,7 @@ static int qlcnic_83xx_get_fw_info(struct qlcnic_adapter *adapter) struct qlc_83xx_fw_info *fw_info; int err = 0; - ahw->fw_info = kzalloc(sizeof(*fw_info), GFP_KERNEL); + ahw->fw_info = kzalloc_obj(*fw_info, GFP_KERNEL); if (!ahw->fw_info) { err = -ENOMEM; } else { diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c index 4d638f60f237..576340315e0d 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c @@ -259,7 +259,7 @@ int qlcnic_register_dcb(struct qlcnic_adapter *adapter) if (qlcnic_sriov_vf_check(adapter)) return 0; - dcb = kzalloc(sizeof(struct qlcnic_dcb), GFP_ATOMIC); + dcb = kzalloc_obj(struct qlcnic_dcb, GFP_ATOMIC); if (!dcb) return -ENOMEM; @@ -317,13 +317,13 @@ static int __qlcnic_dcb_attach(struct qlcnic_dcb *dcb) return -1; } - dcb->cfg = kzalloc(sizeof(struct qlcnic_dcb_cfg), GFP_ATOMIC); + dcb->cfg = kzalloc_obj(struct qlcnic_dcb_cfg, GFP_ATOMIC); if (!dcb->cfg) { err = -ENOMEM; goto out_free_wq; } - dcb->param = kzalloc(sizeof(struct qlcnic_dcb_mbx_params), GFP_ATOMIC); + dcb->param = kzalloc_obj(struct qlcnic_dcb_mbx_params, GFP_ATOMIC); if (!dcb->param) { err = -ENOMEM; goto out_free_cfg; diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c index ae4ee0326ee1..e58176badc1f 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c @@ -489,7 +489,7 @@ int qlcnic_nic_add_mac(struct qlcnic_adapter *adapter, const u8 *addr, u16 vlan, return 0; } - cur = kzalloc(sizeof(*cur), GFP_ATOMIC); + cur = kzalloc_obj(*cur, GFP_ATOMIC); if (cur == NULL) return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c index 09f20c794754..e56ef10b6a2d 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c @@ -189,8 +189,8 @@ int qlcnic_alloc_sw_resources(struct qlcnic_adapter *adapter) recv_ctx = adapter->recv_ctx; - rds_ring = kcalloc(adapter->max_rds_rings, - sizeof(struct qlcnic_host_rds_ring), GFP_KERNEL); + rds_ring = kzalloc_objs(struct qlcnic_host_rds_ring, + adapter->max_rds_rings, GFP_KERNEL); if (rds_ring == NULL) goto err_out; @@ -454,7 +454,7 @@ int qlcnic_pinit_from_rom(struct qlcnic_adapter *adapter) return -EIO; } - buf = kcalloc(n, sizeof(struct crb_addr_pair), GFP_KERNEL); + buf = kzalloc_objs(struct crb_addr_pair, n, GFP_KERNEL); if (buf == NULL) return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c index b9dc0071c5de..537fd26da904 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c @@ -220,7 +220,7 @@ static void qlcnic_add_lb_filter(struct qlcnic_adapter *adapter, return; } - fil = kzalloc(sizeof(struct qlcnic_filter), GFP_ATOMIC); + fil = kzalloc_obj(struct qlcnic_filter, GFP_ATOMIC); if (!fil) return; @@ -346,7 +346,7 @@ static void qlcnic_send_filter(struct qlcnic_adapter *adapter, return; } - fil = kzalloc(sizeof(struct qlcnic_filter), GFP_ATOMIC); + fil = kzalloc_obj(struct qlcnic_filter, GFP_ATOMIC); if (!fil) return; diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c index e051d8c7a28d..00eab09c1710 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c @@ -679,9 +679,8 @@ int qlcnic_setup_tss_rss_intr(struct qlcnic_adapter *adapter) num_msix += 1; if (!adapter->msix_entries) { - adapter->msix_entries = kcalloc(num_msix, - sizeof(struct msix_entry), - GFP_KERNEL); + adapter->msix_entries = kzalloc_objs(struct msix_entry, + num_msix, GFP_KERNEL); if (!adapter->msix_entries) return -ENOMEM; } @@ -734,9 +733,8 @@ int qlcnic_enable_msix(struct qlcnic_adapter *adapter, u32 num_msix) int err, vector; if (!adapter->msix_entries) { - adapter->msix_entries = kcalloc(num_msix, - sizeof(struct msix_entry), - GFP_KERNEL); + adapter->msix_entries = kzalloc_objs(struct msix_entry, + num_msix, GFP_KERNEL); if (!adapter->msix_entries) return -ENOMEM; } @@ -952,7 +950,7 @@ static int qlcnic_get_act_pci_func(struct qlcnic_adapter *adapter) if (ahw->op_mode == QLCNIC_MGMT_FUNC) return 0; - pci_info = kcalloc(ahw->max_vnic_func, sizeof(*pci_info), GFP_KERNEL); + pci_info = kzalloc_objs(*pci_info, ahw->max_vnic_func, GFP_KERNEL); if (!pci_info) return -ENOMEM; @@ -986,7 +984,7 @@ int qlcnic_init_pci_info(struct qlcnic_adapter *adapter) u16 act_pci_func; u8 pfn; - pci_info = kcalloc(ahw->max_vnic_func, sizeof(*pci_info), GFP_KERNEL); + pci_info = kzalloc_objs(*pci_info, ahw->max_vnic_func, GFP_KERNEL); if (!pci_info) return -ENOMEM; @@ -996,17 +994,15 @@ int qlcnic_init_pci_info(struct qlcnic_adapter *adapter) act_pci_func = ahw->total_nic_func; - adapter->npars = kcalloc(act_pci_func, - sizeof(struct qlcnic_npar_info), - GFP_KERNEL); + adapter->npars = kzalloc_objs(struct qlcnic_npar_info, act_pci_func, + GFP_KERNEL); if (!adapter->npars) { ret = -ENOMEM; goto err_pci_info; } - adapter->eswitch = kcalloc(QLCNIC_NIU_MAX_XG_PORTS, - sizeof(struct qlcnic_eswitch), - GFP_KERNEL); + adapter->eswitch = kzalloc_objs(struct qlcnic_eswitch, + QLCNIC_NIU_MAX_XG_PORTS, GFP_KERNEL); if (!adapter->eswitch) { ret = -ENOMEM; goto err_npars; @@ -2059,8 +2055,7 @@ static int qlcnic_alloc_adapter_resources(struct qlcnic_adapter *adapter) struct qlcnic_hardware_context *ahw = adapter->ahw; int err = 0; - adapter->recv_ctx = kzalloc(sizeof(struct qlcnic_recv_context), - GFP_KERNEL); + adapter->recv_ctx = kzalloc_obj(struct qlcnic_recv_context, GFP_KERNEL); if (!adapter->recv_ctx) { err = -ENOMEM; goto err_out; @@ -2356,8 +2351,8 @@ int qlcnic_alloc_tx_rings(struct qlcnic_adapter *adapter, struct qlcnic_host_tx_ring *tx_ring; struct qlcnic_cmd_buffer *cmd_buf_arr; - tx_ring = kcalloc(adapter->drv_tx_rings, - sizeof(struct qlcnic_host_tx_ring), GFP_KERNEL); + tx_ring = kzalloc_objs(struct qlcnic_host_tx_ring, + adapter->drv_tx_rings, GFP_KERNEL); if (tx_ring == NULL) return -ENOMEM; @@ -2444,7 +2439,7 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) pci_set_master(pdev); - ahw = kzalloc(sizeof(struct qlcnic_hardware_context), GFP_KERNEL); + ahw = kzalloc_obj(struct qlcnic_hardware_context, GFP_KERNEL); if (!ahw) { err = -ENOMEM; goto err_out_free_res; @@ -2851,8 +2846,8 @@ void qlcnic_alloc_lb_filters_mem(struct qlcnic_adapter *adapter) adapter->fhash.fbucket_size = QLC_83XX_LB_BUCKET_SIZE; } - head = kcalloc(adapter->fhash.fbucket_size, - sizeof(struct hlist_head), GFP_ATOMIC); + head = kzalloc_objs(struct hlist_head, adapter->fhash.fbucket_size, + GFP_ATOMIC); if (!head) return; @@ -2868,8 +2863,8 @@ void qlcnic_alloc_lb_filters_mem(struct qlcnic_adapter *adapter) adapter->rx_fhash.fbucket_size = adapter->fhash.fbucket_size; - head = kcalloc(adapter->rx_fhash.fbucket_size, - sizeof(struct hlist_head), GFP_ATOMIC); + head = kzalloc_objs(struct hlist_head, adapter->rx_fhash.fbucket_size, + GFP_ATOMIC); if (!head) return; diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c index 7ecb3dfe30bd..c2bf5455092c 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c @@ -792,8 +792,7 @@ static u32 qlcnic_read_memory_pexdma(struct qlcnic_adapter *adapter, } /* Create DMA descriptor */ - dma_descr = kzalloc(sizeof(struct qlcnic_pex_dma_descriptor), - GFP_KERNEL); + dma_descr = kzalloc_obj(struct qlcnic_pex_dma_descriptor, GFP_KERNEL); if (!dma_descr) { *ret = -ENOMEM; return 0; diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c index d57b976b9040..c6af69e5a700 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c @@ -149,15 +149,15 @@ int qlcnic_sriov_init(struct qlcnic_adapter *adapter, int num_vfs) if (!qlcnic_sriov_enable_check(adapter)) return -EIO; - sriov = kzalloc(sizeof(struct qlcnic_sriov), GFP_KERNEL); + sriov = kzalloc_obj(struct qlcnic_sriov, GFP_KERNEL); if (!sriov) return -ENOMEM; adapter->ahw->sriov = sriov; sriov->num_vfs = num_vfs; bc = &sriov->bc; - sriov->vf_info = kcalloc(num_vfs, sizeof(struct qlcnic_vf_info), - GFP_KERNEL); + sriov->vf_info = kzalloc_objs(struct qlcnic_vf_info, num_vfs, + GFP_KERNEL); if (!sriov->vf_info) { err = -ENOMEM; goto qlcnic_free_sriov; @@ -201,7 +201,7 @@ int qlcnic_sriov_init(struct qlcnic_adapter *adapter, int num_vfs) INIT_WORK(&vf->trans_work, qlcnic_sriov_process_bc_cmd); if (qlcnic_sriov_pf_check(adapter)) { - vp = kzalloc(sizeof(struct qlcnic_vport), GFP_KERNEL); + vp = kzalloc_obj(struct qlcnic_vport, GFP_KERNEL); if (!vp) { err = -ENOMEM; goto qlcnic_destroy_async_wq; @@ -699,7 +699,7 @@ int qlcnic_sriov_func_to_index(struct qlcnic_adapter *adapter, u8 pci_func) static inline int qlcnic_sriov_alloc_bc_trans(struct qlcnic_bc_trans **trans) { - *trans = kzalloc(sizeof(struct qlcnic_bc_trans), GFP_ATOMIC); + *trans = kzalloc_obj(struct qlcnic_bc_trans, GFP_ATOMIC); if (!*trans) return -ENOMEM; @@ -710,7 +710,7 @@ static inline int qlcnic_sriov_alloc_bc_trans(struct qlcnic_bc_trans **trans) static inline int qlcnic_sriov_alloc_bc_msg(struct qlcnic_bc_hdr **hdr, u32 size) { - *hdr = kcalloc(size, sizeof(struct qlcnic_bc_hdr), GFP_ATOMIC); + *hdr = kzalloc_objs(struct qlcnic_bc_hdr, size, GFP_ATOMIC); if (!*hdr) return -ENOMEM; @@ -1634,7 +1634,7 @@ qlcnic_sriov_alloc_async_cmd(struct qlcnic_back_channel *bc, { struct qlcnic_async_cmd *entry = NULL; - entry = kzalloc(sizeof(*entry), GFP_ATOMIC); + entry = kzalloc_obj(*entry, GFP_ATOMIC); if (!entry) return NULL; diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c index 8dd7aa08ecfb..7052d34aad45 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c @@ -799,7 +799,7 @@ static int qlcnic_sriov_cfg_vf_def_mac(struct qlcnic_adapter *adapter, vp = vf->vp; - cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC); + cmd = kzalloc_obj(*cmd, GFP_ATOMIC); if (!cmd) return -ENOMEM; diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c index 5296d9a6ee83..406101671602 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c @@ -909,7 +909,7 @@ static ssize_t qlcnic_sysfs_read_pci_config(struct file *file, int i, ret; u32 count; - pci_info = kcalloc(size, sizeof(*pci_info), GFP_KERNEL); + pci_info = kzalloc_objs(*pci_info, size, GFP_KERNEL); if (!pci_info) return -ENOMEM; diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c b/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c index ba8763cac9d9..723ddbb1a70a 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c @@ -68,7 +68,7 @@ static int rmnet_register_real_device(struct net_device *real_dev, return 0; } - port = kzalloc(sizeof(*port), GFP_KERNEL); + port = kzalloc_obj(*port, GFP_KERNEL); if (!port) return -ENOMEM; @@ -143,7 +143,7 @@ static int rmnet_newlink(struct net_device *dev, return -ENODEV; } - ep = kzalloc(sizeof(*ep), GFP_KERNEL); + ep = kzalloc_obj(*ep, GFP_KERNEL); if (!ep) return -ENOMEM; diff --git a/drivers/net/ethernet/realtek/r8169_leds.c b/drivers/net/ethernet/realtek/r8169_leds.c index e10bee706bc6..5da64cea5eb4 100644 --- a/drivers/net/ethernet/realtek/r8169_leds.c +++ b/drivers/net/ethernet/realtek/r8169_leds.c @@ -154,7 +154,7 @@ struct r8169_led_classdev *rtl8168_init_leds(struct net_device *ndev) struct r8169_led_classdev *leds; int i; - leds = kcalloc(RTL8168_NUM_LEDS + 1, sizeof(*leds), GFP_KERNEL); + leds = kzalloc_objs(*leds, RTL8168_NUM_LEDS + 1, GFP_KERNEL); if (!leds) return NULL; @@ -253,7 +253,7 @@ struct r8169_led_classdev *rtl8125_init_leds(struct net_device *ndev) struct r8169_led_classdev *leds; int i; - leds = kcalloc(RTL8125_NUM_LEDS + 1, sizeof(*leds), GFP_KERNEL); + leds = kzalloc_objs(*leds, RTL8125_NUM_LEDS + 1, GFP_KERNEL); if (!leds) return NULL; diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c index 2f7d9809c373..ad0e07e2a09d 100644 --- a/drivers/net/ethernet/realtek/r8169_main.c +++ b/drivers/net/ethernet/realtek/r8169_main.c @@ -2683,7 +2683,7 @@ static void rtl_request_firmware(struct rtl8169_private *tp) if (tp->rtl_fw || !tp->fw_name) return; - rtl_fw = kzalloc(sizeof(*rtl_fw), GFP_KERNEL); + rtl_fw = kzalloc_obj(*rtl_fw, GFP_KERNEL); if (!rtl_fw) return; diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c index 57b0db314fb5..85f2e23f2638 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -436,14 +436,14 @@ static int ravb_ring_init(struct net_device *ndev, int q) goto error; /* Allocate RX buffers */ - priv->rx_buffers[q] = kcalloc(priv->num_rx_ring[q], - sizeof(*priv->rx_buffers[q]), GFP_KERNEL); + priv->rx_buffers[q] = kzalloc_objs(*priv->rx_buffers[q], + priv->num_rx_ring[q], GFP_KERNEL); if (!priv->rx_buffers[q]) goto error; /* Allocate TX skb rings */ - priv->tx_skb[q] = kcalloc(priv->num_tx_ring[q], - sizeof(*priv->tx_skb[q]), GFP_KERNEL); + priv->tx_skb[q] = kzalloc_objs(*priv->tx_skb[q], priv->num_tx_ring[q], + GFP_KERNEL); if (!priv->tx_skb[q]) goto error; @@ -2199,7 +2199,7 @@ static netdev_tx_t ravb_start_xmit(struct sk_buff *skb, struct net_device *ndev) /* TX timestamp required */ if (info->gptp || info->ccc_gac) { if (q == RAVB_NC) { - ts_skb = kmalloc(sizeof(*ts_skb), GFP_ATOMIC); + ts_skb = kmalloc_obj(*ts_skb, GFP_ATOMIC); if (!ts_skb) { if (num_tx_desc > 1) { desc--; diff --git a/drivers/net/ethernet/renesas/rswitch_main.c b/drivers/net/ethernet/renesas/rswitch_main.c index 433eb2b00d10..421677d4b1d7 100644 --- a/drivers/net/ethernet/renesas/rswitch_main.c +++ b/drivers/net/ethernet/renesas/rswitch_main.c @@ -346,7 +346,8 @@ static int rswitch_gwca_queue_alloc(struct net_device *ndev, gq->ndev = ndev; if (!dir_tx) { - gq->rx_bufs = kcalloc(gq->ring_size, sizeof(*gq->rx_bufs), GFP_KERNEL); + gq->rx_bufs = kzalloc_objs(*gq->rx_bufs, gq->ring_size, + GFP_KERNEL); if (!gq->rx_bufs) return -ENOMEM; if (rswitch_gwca_queue_alloc_rx_buf(gq, 0, gq->ring_size) < 0) @@ -356,10 +357,11 @@ static int rswitch_gwca_queue_alloc(struct net_device *ndev, sizeof(struct rswitch_ext_ts_desc) * (gq->ring_size + 1), &gq->ring_dma, GFP_KERNEL); } else { - gq->skbs = kcalloc(gq->ring_size, sizeof(*gq->skbs), GFP_KERNEL); + gq->skbs = kzalloc_objs(*gq->skbs, gq->ring_size, GFP_KERNEL); if (!gq->skbs) return -ENOMEM; - gq->unmap_addrs = kcalloc(gq->ring_size, sizeof(*gq->unmap_addrs), GFP_KERNEL); + gq->unmap_addrs = kzalloc_objs(*gq->unmap_addrs, gq->ring_size, + GFP_KERNEL); if (!gq->unmap_addrs) goto out; gq->tx_ring = dma_alloc_coherent(ndev->dev.parent, diff --git a/drivers/net/ethernet/renesas/rtsn.c b/drivers/net/ethernet/renesas/rtsn.c index 85052b47afb9..2850e76d7f6f 100644 --- a/drivers/net/ethernet/renesas/rtsn.c +++ b/drivers/net/ethernet/renesas/rtsn.c @@ -349,8 +349,8 @@ static int rtsn_chain_init(struct rtsn_private *priv, int tx_size, int rx_size) priv->num_tx_ring = tx_size; priv->num_rx_ring = rx_size; - priv->tx_skb = kcalloc(tx_size, sizeof(*priv->tx_skb), GFP_KERNEL); - priv->rx_skb = kcalloc(rx_size, sizeof(*priv->rx_skb), GFP_KERNEL); + priv->tx_skb = kzalloc_objs(*priv->tx_skb, tx_size, GFP_KERNEL); + priv->rx_skb = kzalloc_objs(*priv->rx_skb, rx_size, GFP_KERNEL); if (!priv->rx_skb || !priv->tx_skb) goto error; diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c index 6fb0ffc1c844..019828d3713f 100644 --- a/drivers/net/ethernet/renesas/sh_eth.c +++ b/drivers/net/ethernet/renesas/sh_eth.c @@ -1410,13 +1410,13 @@ static int sh_eth_ring_init(struct net_device *ndev) mdp->rx_buf_sz += NET_IP_ALIGN; /* Allocate RX and TX skb rings */ - mdp->rx_skbuff = kcalloc(mdp->num_rx_ring, sizeof(*mdp->rx_skbuff), - GFP_KERNEL); + mdp->rx_skbuff = kzalloc_objs(*mdp->rx_skbuff, mdp->num_rx_ring, + GFP_KERNEL); if (!mdp->rx_skbuff) return -ENOMEM; - mdp->tx_skbuff = kcalloc(mdp->num_tx_ring, sizeof(*mdp->tx_skbuff), - GFP_KERNEL); + mdp->tx_skbuff = kzalloc_objs(*mdp->tx_skbuff, mdp->num_tx_ring, + GFP_KERNEL); if (!mdp->tx_skbuff) goto ring_free; diff --git a/drivers/net/ethernet/rocker/rocker_main.c b/drivers/net/ethernet/rocker/rocker_main.c index 2794f75df8fc..503a9869e1db 100644 --- a/drivers/net/ethernet/rocker/rocker_main.c +++ b/drivers/net/ethernet/rocker/rocker_main.c @@ -66,7 +66,7 @@ static struct rocker_wait *rocker_wait_create(void) { struct rocker_wait *wait; - wait = kzalloc(sizeof(*wait), GFP_KERNEL); + wait = kzalloc_obj(*wait, GFP_KERNEL); if (!wait) return NULL; return wait; @@ -435,8 +435,7 @@ static int rocker_dma_ring_create(const struct rocker *rocker, info->type = type; info->head = 0; info->tail = 0; - info->desc_info = kcalloc(info->size, sizeof(*info->desc_info), - GFP_KERNEL); + info->desc_info = kzalloc_objs(*info->desc_info, info->size, GFP_KERNEL); if (!info->desc_info) return -ENOMEM; @@ -2155,7 +2154,7 @@ static int rocker_router_fib_event(struct notifier_block *nb, if (info->family != AF_INET) return NOTIFY_DONE; - fib_work = kzalloc(sizeof(*fib_work), GFP_ATOMIC); + fib_work = kzalloc_obj(*fib_work, GFP_ATOMIC); if (WARN_ON(!fib_work)) return NOTIFY_BAD; @@ -2648,9 +2647,8 @@ static int rocker_msix_init(struct rocker *rocker) if (msix_entries != ROCKER_MSIX_VEC_COUNT(rocker->port_count)) return -EINVAL; - rocker->msix_entries = kmalloc_array(msix_entries, - sizeof(struct msix_entry), - GFP_KERNEL); + rocker->msix_entries = kmalloc_objs(struct msix_entry, msix_entries, + GFP_KERNEL); if (!rocker->msix_entries) return -ENOMEM; @@ -2764,7 +2762,7 @@ static int rocker_switchdev_event(struct notifier_block *unused, return rocker_switchdev_port_attr_set_event(dev, ptr); rocker_port = netdev_priv(dev); - switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC); + switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC); if (WARN_ON(!switchdev_work)) return NOTIFY_BAD; @@ -2850,7 +2848,7 @@ static int rocker_probe(struct pci_dev *pdev, const struct pci_device_id *id) struct rocker *rocker; int err; - rocker = kzalloc(sizeof(*rocker), GFP_KERNEL); + rocker = kzalloc_obj(*rocker, GFP_KERNEL); if (!rocker) return -ENOMEM; diff --git a/drivers/net/ethernet/rocker/rocker_ofdpa.c b/drivers/net/ethernet/rocker/rocker_ofdpa.c index 61e50517c05b..a9795b79d1d4 100644 --- a/drivers/net/ethernet/rocker/rocker_ofdpa.c +++ b/drivers/net/ethernet/rocker/rocker_ofdpa.c @@ -838,7 +838,7 @@ static int ofdpa_flow_tbl_ig_port(struct ofdpa_port *ofdpa_port, int flags, { struct ofdpa_flow_tbl_entry *entry; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) return -ENOMEM; @@ -860,7 +860,7 @@ static int ofdpa_flow_tbl_vlan(struct ofdpa_port *ofdpa_port, { struct ofdpa_flow_tbl_entry *entry; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) return -ENOMEM; @@ -886,7 +886,7 @@ static int ofdpa_flow_tbl_term_mac(struct ofdpa_port *ofdpa_port, { struct ofdpa_flow_tbl_entry *entry; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) return -ENOMEM; @@ -926,7 +926,7 @@ static int ofdpa_flow_tbl_bridge(struct ofdpa_port *ofdpa_port, bool dflt = !eth_dst || eth_dst_mask; bool wild = false; - entry = kzalloc(sizeof(*entry), GFP_ATOMIC); + entry = kzalloc_obj(*entry, GFP_ATOMIC); if (!entry) return -ENOMEM; @@ -976,7 +976,7 @@ static int ofdpa_flow_tbl_ucast4_routing(struct ofdpa_port *ofdpa_port, { struct ofdpa_flow_tbl_entry *entry; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) return -ENOMEM; @@ -1006,7 +1006,7 @@ static int ofdpa_flow_tbl_acl(struct ofdpa_port *ofdpa_port, int flags, u32 priority; struct ofdpa_flow_tbl_entry *entry; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) return -ENOMEM; @@ -1150,7 +1150,7 @@ static int ofdpa_group_l2_interface(struct ofdpa_port *ofdpa_port, { struct ofdpa_group_tbl_entry *entry; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) return -ENOMEM; @@ -1166,7 +1166,7 @@ static int ofdpa_group_l2_fan_out(struct ofdpa_port *ofdpa_port, { struct ofdpa_group_tbl_entry *entry; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) return -ENOMEM; @@ -1199,7 +1199,7 @@ static int ofdpa_group_l3_unicast(struct ofdpa_port *ofdpa_port, int flags, { struct ofdpa_group_tbl_entry *entry; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) return -ENOMEM; @@ -1273,7 +1273,7 @@ static int ofdpa_port_ipv4_neigh(struct ofdpa_port *ofdpa_port, bool removing; int err = 0; - entry = kzalloc(sizeof(*entry), GFP_ATOMIC); + entry = kzalloc_obj(*entry, GFP_ATOMIC); if (!entry) return -ENOMEM; @@ -1386,7 +1386,7 @@ static int ofdpa_port_ipv4_nh(struct ofdpa_port *ofdpa_port, bool resolved = true; int err = 0; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) return -ENOMEM; @@ -1866,7 +1866,7 @@ static int ofdpa_port_fdb_learn(struct ofdpa_port *ofdpa_port, if (!(flags & OFDPA_OP_FLAG_LEARNED)) return 0; - lw = kzalloc(sizeof(*lw), GFP_ATOMIC); + lw = kzalloc_obj(*lw, GFP_ATOMIC); if (!lw) return -ENOMEM; @@ -1904,7 +1904,7 @@ static int ofdpa_port_fdb(struct ofdpa_port *ofdpa_port, bool removing = (flags & OFDPA_OP_FLAG_REMOVE); unsigned long lock_flags; - fdb = kzalloc(sizeof(*fdb), GFP_KERNEL); + fdb = kzalloc_obj(*fdb, GFP_KERNEL); if (!fdb) return -ENOMEM; @@ -2232,7 +2232,7 @@ static __be16 ofdpa_port_internal_vlan_id_get(struct ofdpa_port *ofdpa_port, unsigned long lock_flags; int i; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc_obj(*entry, GFP_KERNEL); if (!entry) return 0; diff --git a/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c b/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c index 849c5a6c2af1..437bcf8ad0c8 100644 --- a/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c +++ b/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c @@ -489,15 +489,14 @@ static int init_rx_ring(struct net_device *dev, u8 queue_no, return -ENOMEM; /* allocate memory for RX skbuff array */ - rx_ring->rx_skbuff_dma = kmalloc_array(rx_rsize, - sizeof(dma_addr_t), GFP_KERNEL); + rx_ring->rx_skbuff_dma = kmalloc_objs(dma_addr_t, rx_rsize, GFP_KERNEL); if (!rx_ring->rx_skbuff_dma) { ret = -ENOMEM; goto err_free_dma_rx; } - rx_ring->rx_skbuff = kmalloc_array(rx_rsize, - sizeof(struct sk_buff *), GFP_KERNEL); + rx_ring->rx_skbuff = kmalloc_objs(struct sk_buff *, rx_rsize, + GFP_KERNEL); if (!rx_ring->rx_skbuff) { ret = -ENOMEM; goto err_free_skbuff_dma; @@ -2007,7 +2006,7 @@ static int sxgbe_hw_init(struct sxgbe_priv_data * const priv) { u32 ctrl_ids; - priv->hw = kmalloc(sizeof(*priv->hw), GFP_KERNEL); + priv->hw = kmalloc_obj(*priv->hw, GFP_KERNEL); if(!priv->hw) return -ENOMEM; diff --git a/drivers/net/ethernet/sfc/ef10.c b/drivers/net/ethernet/sfc/ef10.c index fcec81f862ec..58d3a381271d 100644 --- a/drivers/net/ethernet/sfc/ef10.c +++ b/drivers/net/ethernet/sfc/ef10.c @@ -431,7 +431,7 @@ static int efx_ef10_add_vlan(struct efx_nic *efx, u16 vid) } rc = -ENOMEM; - vlan = kzalloc(sizeof(*vlan), GFP_KERNEL); + vlan = kzalloc_obj(*vlan, GFP_KERNEL); if (!vlan) goto fail_alloc; @@ -527,7 +527,7 @@ static int efx_ef10_probe(struct efx_nic *efx) struct efx_ef10_nic_data *nic_data; int i, rc; - nic_data = kzalloc(sizeof(*nic_data), GFP_KERNEL); + nic_data = kzalloc_obj(*nic_data, GFP_KERNEL); if (!nic_data) return -ENOMEM; efx->nic_data = nic_data; @@ -3591,7 +3591,7 @@ static int efx_ef10_mtd_probe(struct efx_nic *efx) MCDI_VAR_ARRAY_LEN(outlen, NVRAM_PARTITIONS_OUT_TYPE_ID)) return -EIO; - parts = kcalloc(n_parts_total, sizeof(*parts), GFP_KERNEL); + parts = kzalloc_objs(*parts, n_parts_total, GFP_KERNEL); if (!parts) return -ENOMEM; diff --git a/drivers/net/ethernet/sfc/ef100.c b/drivers/net/ethernet/sfc/ef100.c index 6334992b0af4..d2f64e049be1 100644 --- a/drivers/net/ethernet/sfc/ef100.c +++ b/drivers/net/ethernet/sfc/ef100.c @@ -453,7 +453,7 @@ static int ef100_pci_probe(struct pci_dev *pci_dev, int rc; /* Allocate probe data and struct efx_nic */ - probe_data = kzalloc(sizeof(*probe_data), GFP_KERNEL); + probe_data = kzalloc_obj(*probe_data, GFP_KERNEL); if (!probe_data) return -ENOMEM; probe_data->pci_dev = pci_dev; diff --git a/drivers/net/ethernet/sfc/ef100_nic.c b/drivers/net/ethernet/sfc/ef100_nic.c index 3ad95a4c8af2..da433a94a994 100644 --- a/drivers/net/ethernet/sfc/ef100_nic.c +++ b/drivers/net/ethernet/sfc/ef100_nic.c @@ -351,7 +351,7 @@ int ef100_phy_probe(struct efx_nic *efx) int rc; /* Probe for the PHY */ - efx->phy_data = kzalloc(sizeof(struct efx_mcdi_phy_data), GFP_KERNEL); + efx->phy_data = kzalloc_obj(struct efx_mcdi_phy_data, GFP_KERNEL); if (!efx->phy_data) return -ENOMEM; @@ -1020,7 +1020,7 @@ static int ef100_probe_main(struct efx_nic *efx) if (WARN_ON(bar_size == 0)) return -EIO; - nic_data = kzalloc(sizeof(*nic_data), GFP_KERNEL); + nic_data = kzalloc_obj(*nic_data, GFP_KERNEL); if (!nic_data) return -ENOMEM; efx->nic_data = nic_data; diff --git a/drivers/net/ethernet/sfc/ef10_sriov.c b/drivers/net/ethernet/sfc/ef10_sriov.c index 9aae0d8b713f..5b3377ca7220 100644 --- a/drivers/net/ethernet/sfc/ef10_sriov.c +++ b/drivers/net/ethernet/sfc/ef10_sriov.c @@ -189,8 +189,7 @@ static int efx_ef10_sriov_alloc_vf_vswitching(struct efx_nic *efx) unsigned int i; int rc; - nic_data->vf = kcalloc(efx->vf_count, sizeof(struct ef10_vf), - GFP_KERNEL); + nic_data->vf = kzalloc_objs(struct ef10_vf, efx->vf_count, GFP_KERNEL); if (!nic_data->vf) return -ENOMEM; diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c index 112e55b98ed3..133a23a9dd5a 100644 --- a/drivers/net/ethernet/sfc/efx.c +++ b/drivers/net/ethernet/sfc/efx.c @@ -1155,7 +1155,7 @@ static int efx_pci_probe(struct pci_dev *pci_dev, int rc; /* Allocate probe data and struct efx_nic */ - probe_data = kzalloc(sizeof(*probe_data), GFP_KERNEL); + probe_data = kzalloc_obj(*probe_data, GFP_KERNEL); if (!probe_data) return -ENOMEM; probe_data->pci_dev = pci_dev; diff --git a/drivers/net/ethernet/sfc/efx_channels.c b/drivers/net/ethernet/sfc/efx_channels.c index ed3a96ebc7f3..84beb79f1969 100644 --- a/drivers/net/ethernet/sfc/efx_channels.c +++ b/drivers/net/ethernet/sfc/efx_channels.c @@ -534,7 +534,7 @@ static struct efx_channel *efx_alloc_channel(struct efx_nic *efx, int i) struct efx_channel *channel; int j; - channel = kzalloc(sizeof(*channel), GFP_KERNEL); + channel = kzalloc_obj(*channel, GFP_KERNEL); if (!channel) return NULL; @@ -604,7 +604,7 @@ struct efx_channel *efx_copy_channel(const struct efx_channel *old_channel) struct efx_channel *channel; int j; - channel = kmalloc(sizeof(*channel), GFP_KERNEL); + channel = kmalloc_obj(*channel, GFP_KERNEL); if (!channel) return NULL; @@ -934,9 +934,9 @@ int efx_set_channels(struct efx_nic *efx) EFX_WARN_ON_PARANOID(efx->xdp_tx_queues); /* Allocate array for XDP TX queue lookup. */ - efx->xdp_tx_queues = kcalloc(efx->xdp_tx_queue_count, - sizeof(*efx->xdp_tx_queues), - GFP_KERNEL); + efx->xdp_tx_queues = kzalloc_objs(*efx->xdp_tx_queues, + efx->xdp_tx_queue_count, + GFP_KERNEL); if (!efx->xdp_tx_queues) return -ENOMEM; } diff --git a/drivers/net/ethernet/sfc/efx_common.c b/drivers/net/ethernet/sfc/efx_common.c index e8fdbb62d872..a41a840b3710 100644 --- a/drivers/net/ethernet/sfc/efx_common.c +++ b/drivers/net/ethernet/sfc/efx_common.c @@ -996,8 +996,8 @@ int efx_init_struct(struct efx_nic *efx, struct pci_dev *pci_dev) mutex_init(&efx->rps_mutex); spin_lock_init(&efx->rps_hash_lock); /* Failure to allocate is not fatal, but may degrade ARFS performance */ - efx->rps_hash_table = kcalloc(EFX_ARFS_HASH_TABLE_SIZE, - sizeof(*efx->rps_hash_table), GFP_KERNEL); + efx->rps_hash_table = kzalloc_objs(*efx->rps_hash_table, + EFX_ARFS_HASH_TABLE_SIZE, GFP_KERNEL); #endif spin_lock_init(&efx->vf_reps_lock); INIT_LIST_HEAD(&efx->vf_reps); diff --git a/drivers/net/ethernet/sfc/ethtool_common.c b/drivers/net/ethernet/sfc/ethtool_common.c index 2fc42b1a2bfb..6b762153c8a4 100644 --- a/drivers/net/ethernet/sfc/ethtool_common.c +++ b/drivers/net/ethernet/sfc/ethtool_common.c @@ -133,7 +133,7 @@ void efx_ethtool_self_test(struct net_device *net_dev, bool already_up; int rc = -ENOMEM; - efx_tests = kzalloc(sizeof(*efx_tests), GFP_KERNEL); + efx_tests = kzalloc_obj(*efx_tests, GFP_KERNEL); if (!efx_tests) goto fail; diff --git a/drivers/net/ethernet/sfc/falcon/efx.c b/drivers/net/ethernet/sfc/falcon/efx.c index 6ea41f6c9ef5..2852868c1003 100644 --- a/drivers/net/ethernet/sfc/falcon/efx.c +++ b/drivers/net/ethernet/sfc/falcon/efx.c @@ -423,7 +423,7 @@ ef4_alloc_channel(struct ef4_nic *efx, int i, struct ef4_channel *old_channel) struct ef4_tx_queue *tx_queue; int j; - channel = kzalloc(sizeof(*channel), GFP_KERNEL); + channel = kzalloc_obj(*channel, GFP_KERNEL); if (!channel) return NULL; @@ -456,7 +456,7 @@ ef4_copy_channel(const struct ef4_channel *old_channel) struct ef4_tx_queue *tx_queue; int j; - channel = kmalloc(sizeof(*channel), GFP_KERNEL); + channel = kmalloc_obj(*channel, GFP_KERNEL); if (!channel) return NULL; diff --git a/drivers/net/ethernet/sfc/falcon/ethtool.c b/drivers/net/ethernet/sfc/falcon/ethtool.c index 049364031545..069269884396 100644 --- a/drivers/net/ethernet/sfc/falcon/ethtool.c +++ b/drivers/net/ethernet/sfc/falcon/ethtool.c @@ -493,7 +493,7 @@ static void ef4_ethtool_self_test(struct net_device *net_dev, bool already_up; int rc = -ENOMEM; - ef4_tests = kzalloc(sizeof(*ef4_tests), GFP_KERNEL); + ef4_tests = kzalloc_obj(*ef4_tests, GFP_KERNEL); if (!ef4_tests) goto fail; diff --git a/drivers/net/ethernet/sfc/falcon/falcon.c b/drivers/net/ethernet/sfc/falcon/falcon.c index c44df8e4dd30..1603c5267654 100644 --- a/drivers/net/ethernet/sfc/falcon/falcon.c +++ b/drivers/net/ethernet/sfc/falcon/falcon.c @@ -929,7 +929,7 @@ static int falcon_mtd_probe(struct ef4_nic *efx) ASSERT_RTNL(); /* Allocate space for maximum number of partitions */ - parts = kcalloc(2, sizeof(*parts), GFP_KERNEL); + parts = kzalloc_objs(*parts, 2, GFP_KERNEL); if (!parts) return -ENOMEM; n_parts = 0; @@ -2180,7 +2180,7 @@ static int falcon_probe_nvconfig(struct ef4_nic *efx) struct falcon_nvconfig *nvconfig; int rc; - nvconfig = kmalloc(sizeof(*nvconfig), GFP_KERNEL); + nvconfig = kmalloc_obj(*nvconfig, GFP_KERNEL); if (!nvconfig) return -ENOMEM; @@ -2289,7 +2289,7 @@ static int falcon_probe_nic(struct ef4_nic *efx) efx->primary = efx; /* only one usable function per controller */ /* Allocate storage for hardware specific data */ - nic_data = kzalloc(sizeof(*nic_data), GFP_KERNEL); + nic_data = kzalloc_obj(*nic_data, GFP_KERNEL); if (!nic_data) return -ENOMEM; efx->nic_data = nic_data; diff --git a/drivers/net/ethernet/sfc/falcon/farch.c b/drivers/net/ethernet/sfc/falcon/farch.c index 01017c41338e..67b62c3a9839 100644 --- a/drivers/net/ethernet/sfc/falcon/farch.c +++ b/drivers/net/ethernet/sfc/falcon/farch.c @@ -2701,7 +2701,7 @@ int ef4_farch_filter_table_probe(struct ef4_nic *efx) struct ef4_farch_filter_table *table; unsigned table_id; - state = kzalloc(sizeof(struct ef4_farch_filter_state), GFP_KERNEL); + state = kzalloc_obj(struct ef4_farch_filter_state, GFP_KERNEL); if (!state) return -ENOMEM; efx->filter_state = state; diff --git a/drivers/net/ethernet/sfc/falcon/qt202x_phy.c b/drivers/net/ethernet/sfc/falcon/qt202x_phy.c index 21af67e42296..dc6383ceb656 100644 --- a/drivers/net/ethernet/sfc/falcon/qt202x_phy.c +++ b/drivers/net/ethernet/sfc/falcon/qt202x_phy.c @@ -340,7 +340,7 @@ static int qt202x_phy_probe(struct ef4_nic *efx) { struct qt202x_phy_data *phy_data; - phy_data = kzalloc(sizeof(struct qt202x_phy_data), GFP_KERNEL); + phy_data = kzalloc_obj(struct qt202x_phy_data, GFP_KERNEL); if (!phy_data) return -ENOMEM; efx->phy_data = phy_data; diff --git a/drivers/net/ethernet/sfc/falcon/rx.c b/drivers/net/ethernet/sfc/falcon/rx.c index f69fcf6caca8..d32bab1b5783 100644 --- a/drivers/net/ethernet/sfc/falcon/rx.c +++ b/drivers/net/ethernet/sfc/falcon/rx.c @@ -701,8 +701,7 @@ int ef4_probe_rx_queue(struct ef4_rx_queue *rx_queue) rx_queue->ptr_mask); /* Allocate RX buffers */ - rx_queue->buffer = kcalloc(entries, sizeof(*rx_queue->buffer), - GFP_KERNEL); + rx_queue->buffer = kzalloc_objs(*rx_queue->buffer, entries, GFP_KERNEL); if (!rx_queue->buffer) return -ENOMEM; @@ -734,8 +733,8 @@ static void ef4_init_rx_recycle_ring(struct ef4_nic *efx, page_ring_size = roundup_pow_of_two(bufs_in_recycle_ring / efx->rx_bufs_per_page); - rx_queue->page_ring = kcalloc(page_ring_size, - sizeof(*rx_queue->page_ring), GFP_KERNEL); + rx_queue->page_ring = kzalloc_objs(*rx_queue->page_ring, page_ring_size, + GFP_KERNEL); if (!rx_queue->page_ring) rx_queue->page_ptr_mask = 0; else diff --git a/drivers/net/ethernet/sfc/falcon/selftest.c b/drivers/net/ethernet/sfc/falcon/selftest.c index c3dc88e6c26c..8205a08132ae 100644 --- a/drivers/net/ethernet/sfc/falcon/selftest.c +++ b/drivers/net/ethernet/sfc/falcon/selftest.c @@ -545,8 +545,8 @@ ef4_test_loopback(struct ef4_tx_queue *tx_queue, /* Determine how many packets to send */ state->packet_count = efx->txq_entries / 3; state->packet_count = min(1 << (i << 2), state->packet_count); - state->skbs = kcalloc(state->packet_count, - sizeof(state->skbs[0]), GFP_KERNEL); + state->skbs = kzalloc_objs(state->skbs[0], state->packet_count, + GFP_KERNEL); if (!state->skbs) return -ENOMEM; state->flush = false; @@ -635,7 +635,7 @@ static int ef4_test_loopbacks(struct ef4_nic *efx, struct ef4_self_tests *tests, /* Set the port loopback_selftest member. From this point on * all received packets will be dropped. Mark the state as * "flushing" so all inflight packets are dropped */ - state = kzalloc(sizeof(*state), GFP_KERNEL); + state = kzalloc_obj(*state, GFP_KERNEL); if (state == NULL) return -ENOMEM; BUG_ON(efx->loopback_selftest); diff --git a/drivers/net/ethernet/sfc/falcon/tenxpress.c b/drivers/net/ethernet/sfc/falcon/tenxpress.c index e27824ef121f..4a5e24b4d174 100644 --- a/drivers/net/ethernet/sfc/falcon/tenxpress.c +++ b/drivers/net/ethernet/sfc/falcon/tenxpress.c @@ -165,7 +165,7 @@ static int tenxpress_phy_probe(struct ef4_nic *efx) struct tenxpress_phy_data *phy_data; /* Allocate phy private storage */ - phy_data = kzalloc(sizeof(*phy_data), GFP_KERNEL); + phy_data = kzalloc_obj(*phy_data, GFP_KERNEL); if (!phy_data) return -ENOMEM; efx->phy_data = phy_data; diff --git a/drivers/net/ethernet/sfc/falcon/tx.c b/drivers/net/ethernet/sfc/falcon/tx.c index e6e80b039ca2..a295b40342a4 100644 --- a/drivers/net/ethernet/sfc/falcon/tx.c +++ b/drivers/net/ethernet/sfc/falcon/tx.c @@ -544,13 +544,13 @@ int ef4_probe_tx_queue(struct ef4_tx_queue *tx_queue) tx_queue->queue, efx->txq_entries, tx_queue->ptr_mask); /* Allocate software ring */ - tx_queue->buffer = kcalloc(entries, sizeof(*tx_queue->buffer), - GFP_KERNEL); + tx_queue->buffer = kzalloc_objs(*tx_queue->buffer, entries, GFP_KERNEL); if (!tx_queue->buffer) return -ENOMEM; - tx_queue->cb_page = kcalloc(ef4_tx_cb_page_count(tx_queue), - sizeof(tx_queue->cb_page[0]), GFP_KERNEL); + tx_queue->cb_page = kzalloc_objs(tx_queue->cb_page[0], + ef4_tx_cb_page_count(tx_queue), + GFP_KERNEL); if (!tx_queue->cb_page) { rc = -ENOMEM; goto fail1; diff --git a/drivers/net/ethernet/sfc/falcon/txc43128_phy.c b/drivers/net/ethernet/sfc/falcon/txc43128_phy.c index f3503965c52c..0025baff6efe 100644 --- a/drivers/net/ethernet/sfc/falcon/txc43128_phy.c +++ b/drivers/net/ethernet/sfc/falcon/txc43128_phy.c @@ -323,7 +323,7 @@ static int txc43128_phy_probe(struct ef4_nic *efx) struct txc43128_data *phy_data; /* Allocate phy private storage */ - phy_data = kzalloc(sizeof(*phy_data), GFP_KERNEL); + phy_data = kzalloc_obj(*phy_data, GFP_KERNEL); if (!phy_data) return -ENOMEM; efx->phy_data = phy_data; diff --git a/drivers/net/ethernet/sfc/mae.c b/drivers/net/ethernet/sfc/mae.c index 7cfd9000f79d..6e8e90254792 100644 --- a/drivers/net/ethernet/sfc/mae.c +++ b/drivers/net/ethernet/sfc/mae.c @@ -255,14 +255,12 @@ more: if (desc->scheme) goto fail; rc = -ENOMEM; - desc->keys = kcalloc(desc->n_keys, - sizeof(struct efx_tc_table_field_fmt), - GFP_KERNEL); + desc->keys = kzalloc_objs(struct efx_tc_table_field_fmt, + desc->n_keys, GFP_KERNEL); if (!desc->keys) goto fail; - desc->resps = kcalloc(desc->n_resps, - sizeof(struct efx_tc_table_field_fmt), - GFP_KERNEL); + desc->resps = kzalloc_objs(struct efx_tc_table_field_fmt, + desc->n_resps, GFP_KERNEL); if (!desc->resps) goto fail; } @@ -1160,7 +1158,7 @@ int efx_mae_enumerate_mports(struct efx_nic *efx) for (i = 0; i < count; i++) { struct mae_mport_desc *d; - d = kzalloc(sizeof(*d), GFP_KERNEL); + d = kzalloc_obj(*d, GFP_KERNEL); if (!d) { rc = -ENOMEM; goto fail; @@ -2315,7 +2313,7 @@ int efx_init_mae(struct efx_nic *efx) if (!nic_data->have_mport) return -EINVAL; - mae = kmalloc(sizeof(*mae), GFP_KERNEL); + mae = kmalloc_obj(*mae, GFP_KERNEL); if (!mae) return -ENOMEM; diff --git a/drivers/net/ethernet/sfc/mcdi.c b/drivers/net/ethernet/sfc/mcdi.c index 5e9b8def5e42..7a19bba484cd 100644 --- a/drivers/net/ethernet/sfc/mcdi.c +++ b/drivers/net/ethernet/sfc/mcdi.c @@ -63,7 +63,7 @@ int efx_mcdi_init(struct efx_nic *efx) bool already_attached; int rc = -ENOMEM; - efx->mcdi = kzalloc(sizeof(*efx->mcdi), GFP_KERNEL); + efx->mcdi = kzalloc_obj(*efx->mcdi, GFP_KERNEL); if (!efx->mcdi) goto fail; diff --git a/drivers/net/ethernet/sfc/mcdi_filters.c b/drivers/net/ethernet/sfc/mcdi_filters.c index 3db589b90b68..80d53614e4fc 100644 --- a/drivers/net/ethernet/sfc/mcdi_filters.c +++ b/drivers/net/ethernet/sfc/mcdi_filters.c @@ -459,7 +459,7 @@ static s32 efx_mcdi_filter_insert_locked(struct efx_nic *efx, replacing = true; priv_flags = efx_mcdi_filter_entry_flags(table, ins_index); } else { - saved_spec = kmalloc(sizeof(*spec), GFP_ATOMIC); + saved_spec = kmalloc_obj(*spec, GFP_ATOMIC); if (!saved_spec) { rc = -ENOMEM; goto out_unlock; @@ -1310,7 +1310,7 @@ int efx_mcdi_filter_table_probe(struct efx_nic *efx, bool multicast_chaining) if (efx->filter_state) /* already probed */ return 0; - table = kzalloc(sizeof(*table), GFP_KERNEL); + table = kzalloc_obj(*table, GFP_KERNEL); if (!table) return -ENOMEM; @@ -1586,7 +1586,7 @@ int efx_mcdi_filter_add_vlan(struct efx_nic *efx, u16 vid) return -EALREADY; } - vlan = kzalloc(sizeof(*vlan), GFP_KERNEL); + vlan = kzalloc_obj(*vlan, GFP_KERNEL); if (!vlan) return -ENOMEM; diff --git a/drivers/net/ethernet/sfc/mcdi_mon.c b/drivers/net/ethernet/sfc/mcdi_mon.c index f5128db7c7e7..2d6472ec4a02 100644 --- a/drivers/net/ethernet/sfc/mcdi_mon.c +++ b/drivers/net/ethernet/sfc/mcdi_mon.c @@ -350,13 +350,13 @@ int efx_mcdi_mon_probe(struct efx_nic *efx) * value, min, max, crit, alarm and label for each sensor. */ n_attrs = 6 * n_sensors; - hwmon->attrs = kcalloc(n_attrs, sizeof(*hwmon->attrs), GFP_KERNEL); + hwmon->attrs = kzalloc_objs(*hwmon->attrs, n_attrs, GFP_KERNEL); if (!hwmon->attrs) { rc = -ENOMEM; goto fail; } - hwmon->group.attrs = kcalloc(n_attrs + 1, sizeof(struct attribute *), - GFP_KERNEL); + hwmon->group.attrs = kzalloc_objs(struct attribute *, n_attrs + 1, + GFP_KERNEL); if (!hwmon->group.attrs) { rc = -ENOMEM; goto fail; diff --git a/drivers/net/ethernet/sfc/mcdi_port_common.c b/drivers/net/ethernet/sfc/mcdi_port_common.c index dae684194ac8..ba9e29ca9874 100644 --- a/drivers/net/ethernet/sfc/mcdi_port_common.c +++ b/drivers/net/ethernet/sfc/mcdi_port_common.c @@ -429,7 +429,7 @@ int efx_mcdi_phy_probe(struct efx_nic *efx) int rc; /* Initialise and populate phy_data */ - phy_data = kzalloc(sizeof(*phy_data), GFP_KERNEL); + phy_data = kzalloc_obj(*phy_data, GFP_KERNEL); if (phy_data == NULL) return -ENOMEM; diff --git a/drivers/net/ethernet/sfc/ptp.c b/drivers/net/ethernet/sfc/ptp.c index 4c7222bf26be..7268f049cf3d 100644 --- a/drivers/net/ethernet/sfc/ptp.c +++ b/drivers/net/ethernet/sfc/ptp.c @@ -1263,7 +1263,7 @@ static int efx_ptp_insert_filter(struct efx_nic *efx, return 0; } - rxfilter = kzalloc(sizeof(*rxfilter), GFP_KERNEL); + rxfilter = kzalloc_obj(*rxfilter, GFP_KERNEL); if (!rxfilter) return -ENOMEM; @@ -1565,7 +1565,7 @@ int efx_ptp_probe(struct efx_nic *efx, struct efx_channel *channel) return 0; } - ptp = kzalloc(sizeof(struct efx_ptp_data), GFP_KERNEL); + ptp = kzalloc_obj(struct efx_ptp_data, GFP_KERNEL); efx->ptp_data = ptp; if (!efx->ptp_data) return -ENOMEM; diff --git a/drivers/net/ethernet/sfc/rx_common.c b/drivers/net/ethernet/sfc/rx_common.c index 5306f4c44be4..809faeead09b 100644 --- a/drivers/net/ethernet/sfc/rx_common.c +++ b/drivers/net/ethernet/sfc/rx_common.c @@ -138,8 +138,8 @@ static void efx_init_rx_recycle_ring(struct efx_rx_queue *rx_queue) bufs_in_recycle_ring = efx_rx_recycle_ring_size(efx); page_ring_size = roundup_pow_of_two(bufs_in_recycle_ring / efx->rx_bufs_per_page); - rx_queue->page_ring = kcalloc(page_ring_size, - sizeof(*rx_queue->page_ring), GFP_KERNEL); + rx_queue->page_ring = kzalloc_objs(*rx_queue->page_ring, page_ring_size, + GFP_KERNEL); if (!rx_queue->page_ring) rx_queue->page_ptr_mask = 0; else @@ -204,8 +204,7 @@ int efx_probe_rx_queue(struct efx_rx_queue *rx_queue) rx_queue->ptr_mask); /* Allocate RX buffers */ - rx_queue->buffer = kcalloc(entries, sizeof(*rx_queue->buffer), - GFP_KERNEL); + rx_queue->buffer = kzalloc_objs(*rx_queue->buffer, entries, GFP_KERNEL); if (!rx_queue->buffer) return -ENOMEM; @@ -709,7 +708,7 @@ struct efx_arfs_rule *efx_rps_hash_add(struct efx_nic *efx, return rule; } } - rule = kmalloc(sizeof(*rule), GFP_ATOMIC); + rule = kmalloc_obj(*rule, GFP_ATOMIC); *new = true; if (rule) { memcpy(&rule->spec, spec, sizeof(rule->spec)); diff --git a/drivers/net/ethernet/sfc/selftest.c b/drivers/net/ethernet/sfc/selftest.c index 894fad0bb5ea..ef37de056a19 100644 --- a/drivers/net/ethernet/sfc/selftest.c +++ b/drivers/net/ethernet/sfc/selftest.c @@ -542,8 +542,8 @@ efx_test_loopback(struct efx_tx_queue *tx_queue, /* Determine how many packets to send */ state->packet_count = efx->txq_entries / 3; state->packet_count = min(1 << (i << 2), state->packet_count); - state->skbs = kcalloc(state->packet_count, - sizeof(state->skbs[0]), GFP_KERNEL); + state->skbs = kzalloc_objs(state->skbs[0], state->packet_count, + GFP_KERNEL); if (!state->skbs) return -ENOMEM; state->flush = false; @@ -628,7 +628,7 @@ static int efx_test_loopbacks(struct efx_nic *efx, struct efx_self_tests *tests, /* Set the port loopback_selftest member. From this point on * all received packets will be dropped. Mark the state as * "flushing" so all inflight packets are dropped */ - state = kzalloc(sizeof(*state), GFP_KERNEL); + state = kzalloc_obj(*state, GFP_KERNEL); if (state == NULL) return -ENOMEM; BUG_ON(efx->loopback_selftest); diff --git a/drivers/net/ethernet/sfc/siena/efx_channels.c b/drivers/net/ethernet/sfc/siena/efx_channels.c index fc075ab6b7b5..f2ed3c8b1f5d 100644 --- a/drivers/net/ethernet/sfc/siena/efx_channels.c +++ b/drivers/net/ethernet/sfc/siena/efx_channels.c @@ -536,7 +536,7 @@ static struct efx_channel *efx_alloc_channel(struct efx_nic *efx, int i) struct efx_channel *channel; int j; - channel = kzalloc(sizeof(*channel), GFP_KERNEL); + channel = kzalloc_obj(*channel, GFP_KERNEL); if (!channel) return NULL; @@ -607,7 +607,7 @@ struct efx_channel *efx_copy_channel(const struct efx_channel *old_channel) struct efx_channel *channel; int j; - channel = kmalloc(sizeof(*channel), GFP_KERNEL); + channel = kmalloc_obj(*channel, GFP_KERNEL); if (!channel) return NULL; @@ -966,9 +966,9 @@ int efx_siena_set_channels(struct efx_nic *efx) EFX_WARN_ON_PARANOID(efx->xdp_tx_queues); /* Allocate array for XDP TX queue lookup. */ - efx->xdp_tx_queues = kcalloc(efx->xdp_tx_queue_count, - sizeof(*efx->xdp_tx_queues), - GFP_KERNEL); + efx->xdp_tx_queues = kzalloc_objs(*efx->xdp_tx_queues, + efx->xdp_tx_queue_count, + GFP_KERNEL); if (!efx->xdp_tx_queues) return -ENOMEM; } diff --git a/drivers/net/ethernet/sfc/siena/efx_common.c b/drivers/net/ethernet/sfc/siena/efx_common.c index 35036cc902fe..07e650f2d13e 100644 --- a/drivers/net/ethernet/sfc/siena/efx_common.c +++ b/drivers/net/ethernet/sfc/siena/efx_common.c @@ -1023,8 +1023,8 @@ int efx_siena_init_struct(struct efx_nic *efx, mutex_init(&efx->rps_mutex); spin_lock_init(&efx->rps_hash_lock); /* Failure to allocate is not fatal, but may degrade ARFS performance */ - efx->rps_hash_table = kcalloc(EFX_ARFS_HASH_TABLE_SIZE, - sizeof(*efx->rps_hash_table), GFP_KERNEL); + efx->rps_hash_table = kzalloc_objs(*efx->rps_hash_table, + EFX_ARFS_HASH_TABLE_SIZE, GFP_KERNEL); #endif efx->mdio.dev = net_dev; INIT_WORK(&efx->mac_work, efx_mac_work); diff --git a/drivers/net/ethernet/sfc/siena/ethtool_common.c b/drivers/net/ethernet/sfc/siena/ethtool_common.c index c56e0b54d854..cb19af6aafd9 100644 --- a/drivers/net/ethernet/sfc/siena/ethtool_common.c +++ b/drivers/net/ethernet/sfc/siena/ethtool_common.c @@ -355,7 +355,7 @@ void efx_siena_ethtool_self_test(struct net_device *net_dev, bool already_up; int rc = -ENOMEM; - efx_tests = kzalloc(sizeof(*efx_tests), GFP_KERNEL); + efx_tests = kzalloc_obj(*efx_tests, GFP_KERNEL); if (!efx_tests) goto fail; diff --git a/drivers/net/ethernet/sfc/siena/farch.c b/drivers/net/ethernet/sfc/siena/farch.c index 562a038e38a7..ab2e36520fb9 100644 --- a/drivers/net/ethernet/sfc/siena/farch.c +++ b/drivers/net/ethernet/sfc/siena/farch.c @@ -2790,7 +2790,7 @@ int efx_farch_filter_table_probe(struct efx_nic *efx) struct efx_farch_filter_table *table; unsigned table_id; - state = kzalloc(sizeof(struct efx_farch_filter_state), GFP_KERNEL); + state = kzalloc_obj(struct efx_farch_filter_state, GFP_KERNEL); if (!state) return -ENOMEM; efx->filter_state = state; diff --git a/drivers/net/ethernet/sfc/siena/mcdi.c b/drivers/net/ethernet/sfc/siena/mcdi.c index c8f0fb43e285..3bee5c0e6edc 100644 --- a/drivers/net/ethernet/sfc/siena/mcdi.c +++ b/drivers/net/ethernet/sfc/siena/mcdi.c @@ -65,7 +65,7 @@ int efx_siena_mcdi_init(struct efx_nic *efx) bool already_attached; int rc = -ENOMEM; - efx->mcdi = kzalloc(sizeof(*efx->mcdi), GFP_KERNEL); + efx->mcdi = kzalloc_obj(*efx->mcdi, GFP_KERNEL); if (!efx->mcdi) goto fail; diff --git a/drivers/net/ethernet/sfc/siena/mcdi_mon.c b/drivers/net/ethernet/sfc/siena/mcdi_mon.c index 56a9c56ed9e3..ddf7d712fb21 100644 --- a/drivers/net/ethernet/sfc/siena/mcdi_mon.c +++ b/drivers/net/ethernet/sfc/siena/mcdi_mon.c @@ -350,13 +350,13 @@ int efx_siena_mcdi_mon_probe(struct efx_nic *efx) * value, min, max, crit, alarm and label for each sensor. */ n_attrs = 6 * n_sensors; - hwmon->attrs = kcalloc(n_attrs, sizeof(*hwmon->attrs), GFP_KERNEL); + hwmon->attrs = kzalloc_objs(*hwmon->attrs, n_attrs, GFP_KERNEL); if (!hwmon->attrs) { rc = -ENOMEM; goto fail; } - hwmon->group.attrs = kcalloc(n_attrs + 1, sizeof(struct attribute *), - GFP_KERNEL); + hwmon->group.attrs = kzalloc_objs(struct attribute *, n_attrs + 1, + GFP_KERNEL); if (!hwmon->group.attrs) { rc = -ENOMEM; goto fail; diff --git a/drivers/net/ethernet/sfc/siena/mcdi_port_common.c b/drivers/net/ethernet/sfc/siena/mcdi_port_common.c index 067fe0f4393a..6154d09f9dde 100644 --- a/drivers/net/ethernet/sfc/siena/mcdi_port_common.c +++ b/drivers/net/ethernet/sfc/siena/mcdi_port_common.c @@ -430,7 +430,7 @@ int efx_siena_mcdi_phy_probe(struct efx_nic *efx) int rc; /* Initialise and populate phy_data */ - phy_data = kzalloc(sizeof(*phy_data), GFP_KERNEL); + phy_data = kzalloc_obj(*phy_data, GFP_KERNEL); if (phy_data == NULL) return -ENOMEM; diff --git a/drivers/net/ethernet/sfc/siena/ptp.c b/drivers/net/ethernet/sfc/siena/ptp.c index 062c77c92077..2cb1d0fc9daa 100644 --- a/drivers/net/ethernet/sfc/siena/ptp.c +++ b/drivers/net/ethernet/sfc/siena/ptp.c @@ -1443,7 +1443,7 @@ static int efx_ptp_probe(struct efx_nic *efx, struct efx_channel *channel) int rc = 0; unsigned int pos; - ptp = kzalloc(sizeof(struct efx_ptp_data), GFP_KERNEL); + ptp = kzalloc_obj(struct efx_ptp_data, GFP_KERNEL); efx->ptp_data = ptp; if (!efx->ptp_data) return -ENOMEM; diff --git a/drivers/net/ethernet/sfc/siena/rx_common.c b/drivers/net/ethernet/sfc/siena/rx_common.c index 4ae09505e417..71549c21ebc1 100644 --- a/drivers/net/ethernet/sfc/siena/rx_common.c +++ b/drivers/net/ethernet/sfc/siena/rx_common.c @@ -141,8 +141,8 @@ static void efx_init_rx_recycle_ring(struct efx_rx_queue *rx_queue) bufs_in_recycle_ring = efx_rx_recycle_ring_size(efx); page_ring_size = roundup_pow_of_two(bufs_in_recycle_ring / efx->rx_bufs_per_page); - rx_queue->page_ring = kcalloc(page_ring_size, - sizeof(*rx_queue->page_ring), GFP_KERNEL); + rx_queue->page_ring = kzalloc_objs(*rx_queue->page_ring, page_ring_size, + GFP_KERNEL); if (!rx_queue->page_ring) rx_queue->page_ptr_mask = 0; else @@ -207,8 +207,7 @@ int efx_siena_probe_rx_queue(struct efx_rx_queue *rx_queue) rx_queue->ptr_mask); /* Allocate RX buffers */ - rx_queue->buffer = kcalloc(entries, sizeof(*rx_queue->buffer), - GFP_KERNEL); + rx_queue->buffer = kzalloc_objs(*rx_queue->buffer, entries, GFP_KERNEL); if (!rx_queue->buffer) return -ENOMEM; @@ -696,7 +695,7 @@ static struct efx_arfs_rule *efx_rps_hash_add(struct efx_nic *efx, return rule; } } - rule = kmalloc(sizeof(*rule), GFP_ATOMIC); + rule = kmalloc_obj(*rule, GFP_ATOMIC); *new = true; if (rule) { memcpy(&rule->spec, spec, sizeof(rule->spec)); diff --git a/drivers/net/ethernet/sfc/siena/selftest.c b/drivers/net/ethernet/sfc/siena/selftest.c index 526da43d4b61..668e6771b8bf 100644 --- a/drivers/net/ethernet/sfc/siena/selftest.c +++ b/drivers/net/ethernet/sfc/siena/selftest.c @@ -543,8 +543,8 @@ efx_test_loopback(struct efx_tx_queue *tx_queue, /* Determine how many packets to send */ state->packet_count = efx->txq_entries / 3; state->packet_count = min(1 << (i << 2), state->packet_count); - state->skbs = kcalloc(state->packet_count, - sizeof(state->skbs[0]), GFP_KERNEL); + state->skbs = kzalloc_objs(state->skbs[0], state->packet_count, + GFP_KERNEL); if (!state->skbs) return -ENOMEM; state->flush = false; @@ -633,7 +633,7 @@ static int efx_test_loopbacks(struct efx_nic *efx, struct efx_self_tests *tests, /* Set the port loopback_selftest member. From this point on * all received packets will be dropped. Mark the state as * "flushing" so all inflight packets are dropped */ - state = kzalloc(sizeof(*state), GFP_KERNEL); + state = kzalloc_obj(*state, GFP_KERNEL); if (state == NULL) return -ENOMEM; BUG_ON(efx->loopback_selftest); diff --git a/drivers/net/ethernet/sfc/siena/siena.c b/drivers/net/ethernet/sfc/siena/siena.c index 49f0c8a1a90a..4718a31b4d94 100644 --- a/drivers/net/ethernet/sfc/siena/siena.c +++ b/drivers/net/ethernet/sfc/siena/siena.c @@ -266,7 +266,7 @@ static int siena_probe_nic(struct efx_nic *efx) int rc; /* Allocate storage for hardware specific data */ - nic_data = kzalloc(sizeof(struct siena_nic_data), GFP_KERNEL); + nic_data = kzalloc_obj(struct siena_nic_data, GFP_KERNEL); if (!nic_data) return -ENOMEM; nic_data->efx = efx; @@ -923,7 +923,7 @@ static int siena_mtd_probe(struct efx_nic *efx) if (rc) return rc; - parts = kcalloc(hweight32(nvram_types), sizeof(*parts), GFP_KERNEL); + parts = kzalloc_objs(*parts, hweight32(nvram_types), GFP_KERNEL); if (!parts) return -ENOMEM; diff --git a/drivers/net/ethernet/sfc/siena/siena_sriov.c b/drivers/net/ethernet/sfc/siena/siena_sriov.c index 8353c15dc233..bcab299f7204 100644 --- a/drivers/net/ethernet/sfc/siena/siena_sriov.c +++ b/drivers/net/ethernet/sfc/siena/siena_sriov.c @@ -1123,7 +1123,7 @@ static void efx_siena_sriov_peer_work(struct work_struct *data) ++peer_count; if (--peer_space == 0) { if (list_empty(&pages)) { - epp = kmalloc(sizeof(*epp), GFP_KERNEL); + epp = kmalloc_obj(*epp, GFP_KERNEL); if (!epp) break; epp->ptr = dma_alloc_coherent( @@ -1197,8 +1197,7 @@ static int efx_siena_sriov_vf_alloc(struct efx_nic *efx) struct siena_vf *vf; struct siena_nic_data *nic_data = efx->nic_data; - nic_data->vf = kcalloc(efx->vf_count, sizeof(*nic_data->vf), - GFP_KERNEL); + nic_data->vf = kzalloc_objs(*nic_data->vf, efx->vf_count, GFP_KERNEL); if (!nic_data->vf) return -ENOMEM; diff --git a/drivers/net/ethernet/sfc/siena/tx_common.c b/drivers/net/ethernet/sfc/siena/tx_common.c index 71f9b5ec5ae4..ca7f910a4847 100644 --- a/drivers/net/ethernet/sfc/siena/tx_common.c +++ b/drivers/net/ethernet/sfc/siena/tx_common.c @@ -36,13 +36,13 @@ int efx_siena_probe_tx_queue(struct efx_tx_queue *tx_queue) tx_queue->queue, efx->txq_entries, tx_queue->ptr_mask); /* Allocate software ring */ - tx_queue->buffer = kcalloc(entries, sizeof(*tx_queue->buffer), - GFP_KERNEL); + tx_queue->buffer = kzalloc_objs(*tx_queue->buffer, entries, GFP_KERNEL); if (!tx_queue->buffer) return -ENOMEM; - tx_queue->cb_page = kcalloc(efx_tx_cb_page_count(tx_queue), - sizeof(tx_queue->cb_page[0]), GFP_KERNEL); + tx_queue->cb_page = kzalloc_objs(tx_queue->cb_page[0], + efx_tx_cb_page_count(tx_queue), + GFP_KERNEL); if (!tx_queue->cb_page) { rc = -ENOMEM; goto fail1; diff --git a/drivers/net/ethernet/sfc/tc.c b/drivers/net/ethernet/sfc/tc.c index fa94aa3cd5fe..bf39fb5e4bb6 100644 --- a/drivers/net/ethernet/sfc/tc.c +++ b/drivers/net/ethernet/sfc/tc.c @@ -126,7 +126,7 @@ static struct efx_tc_mac_pedit_action *efx_tc_flower_get_mac(struct efx_nic *efx struct efx_tc_mac_pedit_action *ped, *old; int rc; - ped = kzalloc(sizeof(*ped), GFP_USER); + ped = kzalloc_obj(*ped, GFP_USER); if (!ped) return ERR_PTR(-ENOMEM); memcpy(ped->h_addr, h_addr, ETH_ALEN); @@ -571,7 +571,7 @@ static int efx_tc_flower_record_encap_match(struct efx_nic *efx, if (rc) goto fail_pseudo; - encap = kzalloc(sizeof(*encap), GFP_USER); + encap = kzalloc_obj(*encap, GFP_USER); if (!encap) { rc = -ENOMEM; goto fail_pseudo; @@ -694,7 +694,7 @@ static struct efx_tc_recirc_id *efx_tc_get_recirc_id(struct efx_nic *efx, struct efx_tc_recirc_id *rid, *old; int rc; - rid = kzalloc(sizeof(*rid), GFP_USER); + rid = kzalloc_obj(*rid, GFP_USER); if (!rid) return ERR_PTR(-ENOMEM); rid->chain_index = chain_index; @@ -1505,7 +1505,7 @@ static int efx_tc_flower_replace_foreign_lhs_ar(struct efx_nic *efx, if (rc) goto release_encap_match; - rule = kzalloc(sizeof(*rule), GFP_USER); + rule = kzalloc_obj(*rule, GFP_USER); if (!rule) { rc = -ENOMEM; goto release_encap_match; @@ -1618,7 +1618,7 @@ static int efx_tc_flower_replace_foreign_lhs(struct efx_nic *efx, if (rc) goto release_encap_match; - rule = kzalloc(sizeof(*rule), GFP_USER); + rule = kzalloc_obj(*rule, GFP_USER); if (!rule) { rc = -ENOMEM; goto release_encap_match; @@ -1794,7 +1794,7 @@ static int efx_tc_flower_replace_foreign(struct efx_nic *efx, goto release; } - rule = kzalloc(sizeof(*rule), GFP_USER); + rule = kzalloc_obj(*rule, GFP_USER); if (!rule) { rc = -ENOMEM; goto release; @@ -1815,7 +1815,7 @@ static int efx_tc_flower_replace_foreign(struct efx_nic *efx, goto release; } - act = kzalloc(sizeof(*act), GFP_USER); + act = kzalloc_obj(*act, GFP_USER); if (!act) { rc = -ENOMEM; goto release; @@ -1901,7 +1901,7 @@ static int efx_tc_flower_replace_foreign(struct efx_nic *efx, if (fa->id == FLOW_ACTION_REDIRECT) break; /* end of the line */ /* Mirror, so continue on with saved act */ - act = kzalloc(sizeof(*act), GFP_USER); + act = kzalloc_obj(*act, GFP_USER); if (!act) { rc = -ENOMEM; goto release; @@ -2016,7 +2016,7 @@ static int efx_tc_flower_replace_lhs(struct efx_nic *efx, if (rc) return rc; - rule = kzalloc(sizeof(*rule), GFP_USER); + rule = kzalloc_obj(*rule, GFP_USER); if (!rule) return -ENOMEM; rule->cookie = tc->cookie; @@ -2177,7 +2177,7 @@ static int efx_tc_flower_replace(struct efx_nic *efx, if (rc) goto release; - rule = kzalloc(sizeof(*rule), GFP_USER); + rule = kzalloc_obj(*rule, GFP_USER); if (!rule) { rc = -ENOMEM; goto release; @@ -2199,7 +2199,7 @@ static int efx_tc_flower_replace(struct efx_nic *efx, } /* Parse actions */ - act = kzalloc(sizeof(*act), GFP_USER); + act = kzalloc_obj(*act, GFP_USER); if (!act) { rc = -ENOMEM; goto release; @@ -2340,7 +2340,7 @@ static int efx_tc_flower_replace(struct efx_nic *efx, break; /* end of the line */ /* Mirror, so continue on with saved act */ save.count = NULL; - act = kzalloc(sizeof(*act), GFP_USER); + act = kzalloc_obj(*act, GFP_USER); if (!act) { rc = -ENOMEM; goto release; @@ -2380,7 +2380,7 @@ static int efx_tc_flower_replace(struct efx_nic *efx, break; /* end of the line */ /* Mirror, so continue on with saved act */ save.count = NULL; - act = kzalloc(sizeof(*act), GFP_USER); + act = kzalloc_obj(*act, GFP_USER); if (!act) { rc = -ENOMEM; goto release; @@ -2672,7 +2672,7 @@ static int efx_tc_configure_default_rule(struct efx_nic *efx, u32 ing_port, match->value.ingress_port = ing_port; match->mask.ingress_port = ~0; - act = kzalloc(sizeof(*act), GFP_KERNEL); + act = kzalloc_obj(*act, GFP_KERNEL); if (!act) return -ENOMEM; act->deliver = 1; @@ -2745,7 +2745,7 @@ static int efx_tc_configure_fallback_acts(struct efx_nic *efx, u32 eg_port, struct efx_tc_action_set *act; int rc; - act = kzalloc(sizeof(*act), GFP_KERNEL); + act = kzalloc_obj(*act, GFP_KERNEL); if (!act) return -ENOMEM; act->deliver = 1; @@ -2988,10 +2988,10 @@ int efx_init_struct_tc(struct efx_nic *efx) if (efx->type->is_vf) return 0; - efx->tc = kzalloc(sizeof(*efx->tc), GFP_KERNEL); + efx->tc = kzalloc_obj(*efx->tc, GFP_KERNEL); if (!efx->tc) return -ENOMEM; - efx->tc->caps = kzalloc(sizeof(struct mae_caps), GFP_KERNEL); + efx->tc->caps = kzalloc_obj(struct mae_caps, GFP_KERNEL); if (!efx->tc->caps) { rc = -ENOMEM; goto fail_alloc_caps; diff --git a/drivers/net/ethernet/sfc/tc_bindings.c b/drivers/net/ethernet/sfc/tc_bindings.c index 1b79c535c54e..c4b187b51a69 100644 --- a/drivers/net/ethernet/sfc/tc_bindings.c +++ b/drivers/net/ethernet/sfc/tc_bindings.c @@ -59,7 +59,7 @@ static struct efx_tc_block_binding *efx_tc_create_binding( struct efx_nic *efx, struct efx_rep *efv, struct net_device *otherdev, struct flow_block *block) { - struct efx_tc_block_binding *binding = kmalloc(sizeof(*binding), GFP_KERNEL); + struct efx_tc_block_binding *binding = kmalloc_obj(*binding, GFP_KERNEL); if (!binding) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/sfc/tc_conntrack.c b/drivers/net/ethernet/sfc/tc_conntrack.c index c0603f54cec3..77ce2eca43f2 100644 --- a/drivers/net/ethernet/sfc/tc_conntrack.c +++ b/drivers/net/ethernet/sfc/tc_conntrack.c @@ -365,7 +365,7 @@ static int efx_tc_ct_replace(struct efx_tc_ct_zone *ct_zone, if (WARN_ON(!efx->tc->up)) return -ENETDOWN; - conn = kzalloc(sizeof(*conn), GFP_USER); + conn = kzalloc_obj(*conn, GFP_USER); if (!conn) return -ENOMEM; conn->cookie = tc->cookie; @@ -562,7 +562,7 @@ struct efx_tc_ct_zone *efx_tc_ct_register_zone(struct efx_nic *efx, u16 zone, struct efx_tc_ct_zone *ct_zone, *old; int rc; - ct_zone = kzalloc(sizeof(*ct_zone), GFP_USER); + ct_zone = kzalloc_obj(*ct_zone, GFP_USER); if (!ct_zone) return ERR_PTR(-ENOMEM); ct_zone->zone = zone; diff --git a/drivers/net/ethernet/sfc/tc_counters.c b/drivers/net/ethernet/sfc/tc_counters.c index a421b0123506..d168282f30bf 100644 --- a/drivers/net/ethernet/sfc/tc_counters.c +++ b/drivers/net/ethernet/sfc/tc_counters.c @@ -135,7 +135,7 @@ struct efx_tc_counter *efx_tc_flower_allocate_counter(struct efx_nic *efx, struct efx_tc_counter *cnt; int rc, rc2; - cnt = kzalloc(sizeof(*cnt), GFP_USER); + cnt = kzalloc_obj(*cnt, GFP_USER); if (!cnt) return ERR_PTR(-ENOMEM); @@ -226,7 +226,7 @@ struct efx_tc_counter_index *efx_tc_flower_get_counter_index( struct efx_tc_counter_index *ctr, *old; struct efx_tc_counter *cnt; - ctr = kzalloc(sizeof(*ctr), GFP_USER); + ctr = kzalloc_obj(*ctr, GFP_USER); if (!ctr) return ERR_PTR(-ENOMEM); ctr->cookie = cookie; diff --git a/drivers/net/ethernet/sfc/tc_encap_actions.c b/drivers/net/ethernet/sfc/tc_encap_actions.c index eef06e48185d..da35705cc5e1 100644 --- a/drivers/net/ethernet/sfc/tc_encap_actions.c +++ b/drivers/net/ethernet/sfc/tc_encap_actions.c @@ -120,7 +120,7 @@ static int efx_bind_neigh(struct efx_nic *efx, return -EOPNOTSUPP; } - neigh = kzalloc(sizeof(*neigh), GFP_KERNEL_ACCOUNT); + neigh = kzalloc_obj(*neigh, GFP_KERNEL_ACCOUNT); if (!neigh) return -ENOMEM; neigh->net = get_net_track(net, &neigh->ns_tracker, GFP_KERNEL_ACCOUNT); @@ -632,7 +632,7 @@ struct efx_tc_encap_action *efx_tc_flower_create_encap_md( info->mode); return ERR_PTR(-EOPNOTSUPP); } - encap = kzalloc(sizeof(*encap), GFP_KERNEL_ACCOUNT); + encap = kzalloc_obj(*encap, GFP_KERNEL_ACCOUNT); if (!encap) return ERR_PTR(-ENOMEM); encap->type = type; diff --git a/drivers/net/ethernet/sfc/tx_common.c b/drivers/net/ethernet/sfc/tx_common.c index a22a0d634ffc..4437e2c424f7 100644 --- a/drivers/net/ethernet/sfc/tx_common.c +++ b/drivers/net/ethernet/sfc/tx_common.c @@ -36,13 +36,13 @@ int efx_probe_tx_queue(struct efx_tx_queue *tx_queue) tx_queue->queue, efx->txq_entries, tx_queue->ptr_mask); /* Allocate software ring */ - tx_queue->buffer = kcalloc(entries, sizeof(*tx_queue->buffer), - GFP_KERNEL); + tx_queue->buffer = kzalloc_objs(*tx_queue->buffer, entries, GFP_KERNEL); if (!tx_queue->buffer) return -ENOMEM; - tx_queue->cb_page = kcalloc(efx_tx_cb_page_count(tx_queue), - sizeof(tx_queue->cb_page[0]), GFP_KERNEL); + tx_queue->cb_page = kzalloc_objs(tx_queue->cb_page[0], + efx_tx_cb_page_count(tx_queue), + GFP_KERNEL); if (!tx_queue->cb_page) { rc = -ENOMEM; goto fail1; diff --git a/drivers/net/ethernet/sis/sis190.c b/drivers/net/ethernet/sis/sis190.c index 15e46e6ac262..c06387ed3bf1 100644 --- a/drivers/net/ethernet/sis/sis190.c +++ b/drivers/net/ethernet/sis/sis190.c @@ -1407,7 +1407,7 @@ static int sis190_mii_probe(struct net_device *dev) if (status == 0xffff || status == 0x0000) continue; - phy = kmalloc(sizeof(*phy), GFP_KERNEL); + phy = kmalloc_obj(*phy, GFP_KERNEL); if (!phy) { sis190_free_phy(&tp->first_phy); rc = -ENOMEM; diff --git a/drivers/net/ethernet/sis/sis900.c b/drivers/net/ethernet/sis/sis900.c index d85ac8cbeb00..b756eea09513 100644 --- a/drivers/net/ethernet/sis/sis900.c +++ b/drivers/net/ethernet/sis/sis900.c @@ -619,7 +619,7 @@ static int sis900_mii_probe(struct net_device *net_dev) continue; } - if ((mii_phy = kmalloc(sizeof(struct mii_phy), GFP_KERNEL)) == NULL) { + if ((mii_phy = kmalloc_obj(struct mii_phy, GFP_KERNEL)) == NULL) { mii_phy = sis_priv->first_mii; while (mii_phy) { struct mii_phy *phy; diff --git a/drivers/net/ethernet/smsc/smsc9420.c b/drivers/net/ethernet/smsc/smsc9420.c index f30d4b17c7fb..02482de18b56 100644 --- a/drivers/net/ethernet/smsc/smsc9420.c +++ b/drivers/net/ethernet/smsc/smsc9420.c @@ -1179,9 +1179,8 @@ static int smsc9420_alloc_tx_ring(struct smsc9420_pdata *pd) BUG_ON(!pd->tx_ring); - pd->tx_buffers = kmalloc_array(TX_RING_SIZE, - sizeof(struct smsc9420_ring_info), - GFP_KERNEL); + pd->tx_buffers = kmalloc_objs(struct smsc9420_ring_info, TX_RING_SIZE, + GFP_KERNEL); if (!pd->tx_buffers) return -ENOMEM; @@ -1212,9 +1211,8 @@ static int smsc9420_alloc_rx_ring(struct smsc9420_pdata *pd) BUG_ON(!pd->rx_ring); - pd->rx_buffers = kmalloc_array(RX_RING_SIZE, - sizeof(struct smsc9420_ring_info), - GFP_KERNEL); + pd->rx_buffers = kmalloc_objs(struct smsc9420_ring_info, RX_RING_SIZE, + GFP_KERNEL); if (pd->rx_buffers == NULL) goto out; diff --git a/drivers/net/ethernet/socionext/netsec.c b/drivers/net/ethernet/socionext/netsec.c index ee890de69ffe..3b6008cad3a5 100644 --- a/drivers/net/ethernet/socionext/netsec.c +++ b/drivers/net/ethernet/socionext/netsec.c @@ -1263,7 +1263,7 @@ static int netsec_alloc_dring(struct netsec_priv *priv, enum ring_id id) if (!dring->vaddr) goto err; - dring->desc = kcalloc(DESC_NUM, sizeof(*dring->desc), GFP_KERNEL); + dring->desc = kzalloc_objs(*dring->desc, DESC_NUM, GFP_KERNEL); if (!dring->desc) goto err; diff --git a/drivers/net/ethernet/socionext/sni_ave.c b/drivers/net/ethernet/socionext/sni_ave.c index 4700998c4837..3c581d71c00e 100644 --- a/drivers/net/ethernet/socionext/sni_ave.c +++ b/drivers/net/ethernet/socionext/sni_ave.c @@ -1273,15 +1273,13 @@ static int ave_open(struct net_device *ndev) if (ret) return ret; - priv->tx.desc = kcalloc(priv->tx.ndesc, sizeof(*priv->tx.desc), - GFP_KERNEL); + priv->tx.desc = kzalloc_objs(*priv->tx.desc, priv->tx.ndesc, GFP_KERNEL); if (!priv->tx.desc) { ret = -ENOMEM; goto out_free_irq; } - priv->rx.desc = kcalloc(priv->rx.ndesc, sizeof(*priv->rx.desc), - GFP_KERNEL); + priv->rx.desc = kzalloc_objs(*priv->rx.desc, priv->rx.ndesc, GFP_KERNEL); if (!priv->rx.desc) { kfree(priv->tx.desc); ret = -ENOMEM; diff --git a/drivers/net/ethernet/spacemit/k1_emac.c b/drivers/net/ethernet/spacemit/k1_emac.c index dab0772c5b9d..870ab19395d6 100644 --- a/drivers/net/ethernet/spacemit/k1_emac.c +++ b/drivers/net/ethernet/spacemit/k1_emac.c @@ -391,9 +391,8 @@ static int emac_alloc_tx_resources(struct emac_priv *priv) struct emac_desc_ring *tx_ring = &priv->tx_ring; struct platform_device *pdev = priv->pdev; - tx_ring->tx_desc_buf = kcalloc(tx_ring->total_cnt, - sizeof(*tx_ring->tx_desc_buf), - GFP_KERNEL); + tx_ring->tx_desc_buf = kzalloc_objs(*tx_ring->tx_desc_buf, + tx_ring->total_cnt, GFP_KERNEL); if (!tx_ring->tx_desc_buf) return -ENOMEM; @@ -420,9 +419,8 @@ static int emac_alloc_rx_resources(struct emac_priv *priv) struct emac_desc_ring *rx_ring = &priv->rx_ring; struct platform_device *pdev = priv->pdev; - rx_ring->rx_desc_buf = kcalloc(rx_ring->total_cnt, - sizeof(*rx_ring->rx_desc_buf), - GFP_KERNEL); + rx_ring->rx_desc_buf = kzalloc_objs(*rx_ring->rx_desc_buf, + rx_ring->total_cnt, GFP_KERNEL); if (!rx_ring->rx_desc_buf) return -ENOMEM; diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 82375d34ad57..ebda64cd1bf2 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -2212,9 +2212,8 @@ static int __alloc_dma_rx_desc_resources(struct stmmac_priv *priv, return ret; } - rx_q->buf_pool = kcalloc(dma_conf->dma_rx_size, - sizeof(*rx_q->buf_pool), - GFP_KERNEL); + rx_q->buf_pool = kzalloc_objs(*rx_q->buf_pool, dma_conf->dma_rx_size, + GFP_KERNEL); if (!rx_q->buf_pool) return -ENOMEM; @@ -2297,15 +2296,13 @@ static int __alloc_dma_tx_desc_resources(struct stmmac_priv *priv, tx_q->queue_index = queue; tx_q->priv_data = priv; - tx_q->tx_skbuff_dma = kcalloc(dma_conf->dma_tx_size, - sizeof(*tx_q->tx_skbuff_dma), - GFP_KERNEL); + tx_q->tx_skbuff_dma = kzalloc_objs(*tx_q->tx_skbuff_dma, + dma_conf->dma_tx_size, GFP_KERNEL); if (!tx_q->tx_skbuff_dma) return -ENOMEM; - tx_q->tx_skbuff = kcalloc(dma_conf->dma_tx_size, - sizeof(struct sk_buff *), - GFP_KERNEL); + tx_q->tx_skbuff = kzalloc_objs(struct sk_buff *, dma_conf->dma_tx_size, + GFP_KERNEL); if (!tx_q->tx_skbuff) return -ENOMEM; @@ -4016,7 +4013,7 @@ stmmac_setup_dma_desc(struct stmmac_priv *priv, unsigned int mtu) struct stmmac_dma_conf *dma_conf; int chan, bfsize, ret; - dma_conf = kzalloc(sizeof(*dma_conf), GFP_KERNEL); + dma_conf = kzalloc_obj(*dma_conf, GFP_KERNEL); if (!dma_conf) { netdev_err(priv->dev, "%s: DMA conf allocation failed\n", __func__); diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c index 08b60b7d5fd6..8f18a2eab33e 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c @@ -324,7 +324,7 @@ static int __stmmac_test_loopback(struct stmmac_priv *priv, struct sk_buff *skb = NULL; int ret = 0; - tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL); + tpriv = kzalloc_obj(*tpriv, GFP_KERNEL); if (!tpriv) return -ENOMEM; @@ -434,11 +434,11 @@ static int stmmac_test_eee(struct stmmac_priv *priv) if (!priv->dma_cap.eee || !priv->eee_active) return -EOPNOTSUPP; - initial = kzalloc(sizeof(*initial), GFP_KERNEL); + initial = kzalloc_obj(*initial, GFP_KERNEL); if (!initial) return -ENOMEM; - final = kzalloc(sizeof(*final), GFP_KERNEL); + final = kzalloc_obj(*final, GFP_KERNEL); if (!final) { ret = -ENOMEM; goto out_free_initial; @@ -744,7 +744,7 @@ static int stmmac_test_flowctrl(struct stmmac_priv *priv) if (!phydev || (!phydev->pause && !phydev->asym_pause)) return -EOPNOTSUPP; - tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL); + tpriv = kzalloc_obj(*tpriv, GFP_KERNEL); if (!tpriv) return -ENOMEM; @@ -898,7 +898,7 @@ static int __stmmac_test_vlanfilt(struct stmmac_priv *priv) struct sk_buff *skb = NULL; int ret = 0, i; - tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL); + tpriv = kzalloc_obj(*tpriv, GFP_KERNEL); if (!tpriv) return -ENOMEM; @@ -991,7 +991,7 @@ static int __stmmac_test_dvlanfilt(struct stmmac_priv *priv) struct sk_buff *skb = NULL; int ret = 0, i; - tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL); + tpriv = kzalloc_obj(*tpriv, GFP_KERNEL); if (!tpriv) return -ENOMEM; @@ -1095,23 +1095,23 @@ static int stmmac_test_rxp(struct stmmac_priv *priv) if (!priv->dma_cap.frpsel) return -EOPNOTSUPP; - sel = kzalloc(struct_size(sel, keys, nk), GFP_KERNEL); + sel = kzalloc_flex(*sel, keys, nk, GFP_KERNEL); if (!sel) return -ENOMEM; - exts = kzalloc(sizeof(*exts), GFP_KERNEL); + exts = kzalloc_obj(*exts, GFP_KERNEL); if (!exts) { ret = -ENOMEM; goto cleanup_sel; } - actions = kcalloc(nk, sizeof(*actions), GFP_KERNEL); + actions = kzalloc_objs(*actions, nk, GFP_KERNEL); if (!actions) { ret = -ENOMEM; goto cleanup_exts; } - gact = kcalloc(nk, sizeof(*gact), GFP_KERNEL); + gact = kzalloc_objs(*gact, nk, GFP_KERNEL); if (!gact) { ret = -ENOMEM; goto cleanup_actions; @@ -1266,7 +1266,7 @@ static int stmmac_test_vlanoff_common(struct stmmac_priv *priv, bool svlan) if (!priv->dma_cap.vlins) return -EOPNOTSUPP; - tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL); + tpriv = kzalloc_obj(*tpriv, GFP_KERNEL); if (!tpriv) return -ENOMEM; @@ -1349,7 +1349,7 @@ static int __stmmac_test_l3filt(struct stmmac_priv *priv, u32 dst, u32 src, priv->plat->rx_queues_to_use); } - dissector = kzalloc(sizeof(*dissector), GFP_KERNEL); + dissector = kzalloc_obj(*dissector, GFP_KERNEL); if (!dissector) { ret = -ENOMEM; goto cleanup_rss; @@ -1358,7 +1358,7 @@ static int __stmmac_test_l3filt(struct stmmac_priv *priv, u32 dst, u32 src, dissector->used_keys |= (1ULL << FLOW_DISSECTOR_KEY_IPV4_ADDRS); dissector->offset[FLOW_DISSECTOR_KEY_IPV4_ADDRS] = 0; - cls = kzalloc(sizeof(*cls), GFP_KERNEL); + cls = kzalloc_obj(*cls, GFP_KERNEL); if (!cls) { ret = -ENOMEM; goto cleanup_dissector; @@ -1368,7 +1368,7 @@ static int __stmmac_test_l3filt(struct stmmac_priv *priv, u32 dst, u32 src, cls->command = FLOW_CLS_REPLACE; cls->cookie = dummy_cookie; - rule = kzalloc(struct_size(rule, action.entries, 1), GFP_KERNEL); + rule = kzalloc_flex(*rule, action.entries, 1, GFP_KERNEL); if (!rule) { ret = -ENOMEM; goto cleanup_cls; @@ -1475,7 +1475,7 @@ static int __stmmac_test_l4filt(struct stmmac_priv *priv, u32 dst, u32 src, priv->plat->rx_queues_to_use); } - dissector = kzalloc(sizeof(*dissector), GFP_KERNEL); + dissector = kzalloc_obj(*dissector, GFP_KERNEL); if (!dissector) { ret = -ENOMEM; goto cleanup_rss; @@ -1486,7 +1486,7 @@ static int __stmmac_test_l4filt(struct stmmac_priv *priv, u32 dst, u32 src, dissector->offset[FLOW_DISSECTOR_KEY_BASIC] = 0; dissector->offset[FLOW_DISSECTOR_KEY_PORTS] = offsetof(typeof(keys), key); - cls = kzalloc(sizeof(*cls), GFP_KERNEL); + cls = kzalloc_obj(*cls, GFP_KERNEL); if (!cls) { ret = -ENOMEM; goto cleanup_dissector; @@ -1496,7 +1496,7 @@ static int __stmmac_test_l4filt(struct stmmac_priv *priv, u32 dst, u32 src, cls->command = FLOW_CLS_REPLACE; cls->cookie = dummy_cookie; - rule = kzalloc(struct_size(rule, action.entries, 1), GFP_KERNEL); + rule = kzalloc_flex(*rule, action.entries, 1, GFP_KERNEL); if (!rule) { ret = -ENOMEM; goto cleanup_cls; @@ -1628,7 +1628,7 @@ static int stmmac_test_arpoffload(struct stmmac_priv *priv) if (!priv->dma_cap.arpoffsel) return -EOPNOTSUPP; - tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL); + tpriv = kzalloc_obj(*tpriv, GFP_KERNEL); if (!tpriv) return -ENOMEM; diff --git a/drivers/net/ethernet/sun/cassini.c b/drivers/net/ethernet/sun/cassini.c index acfb523214b9..fe00e7dd3fe4 100644 --- a/drivers/net/ethernet/sun/cassini.c +++ b/drivers/net/ethernet/sun/cassini.c @@ -465,7 +465,7 @@ static cas_page_t *cas_page_alloc(struct cas *cp, const gfp_t flags) { cas_page_t *page; - page = kmalloc(sizeof(cas_page_t), flags); + page = kmalloc_obj(cas_page_t, flags); if (!page) return NULL; diff --git a/drivers/net/ethernet/sun/ldmvsw.c b/drivers/net/ethernet/sun/ldmvsw.c index 6fc37ab27f7b..c1102acbb1e0 100644 --- a/drivers/net/ethernet/sun/ldmvsw.c +++ b/drivers/net/ethernet/sun/ldmvsw.c @@ -202,7 +202,7 @@ static struct vnet *vsw_get_vnet(struct mdesc_handle *hp, } if (!vp) { - vp = kzalloc(sizeof(*vp), GFP_KERNEL); + vp = kzalloc_obj(*vp, GFP_KERNEL); if (unlikely(!vp)) { mutex_unlock(&vnet_list_mutex); return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/sun/niu.c b/drivers/net/ethernet/sun/niu.c index f035e3bbbef8..2d31e6112ca6 100644 --- a/drivers/net/ethernet/sun/niu.c +++ b/drivers/net/ethernet/sun/niu.c @@ -4341,8 +4341,7 @@ static int niu_alloc_rx_ring_info(struct niu *np, { BUILD_BUG_ON(sizeof(struct rxdma_mailbox) != 64); - rp->rxhash = kcalloc(MAX_RBR_RING_SIZE, sizeof(struct page *), - GFP_KERNEL); + rp->rxhash = kzalloc_objs(struct page *, MAX_RBR_RING_SIZE, GFP_KERNEL); if (!rp->rxhash) return -ENOMEM; @@ -4485,8 +4484,7 @@ static int niu_alloc_channels(struct niu *np) num_rx_rings = parent->rxchan_per_port[port]; num_tx_rings = parent->txchan_per_port[port]; - rx_rings = kcalloc(num_rx_rings, sizeof(struct rx_ring_info), - GFP_KERNEL); + rx_rings = kzalloc_objs(struct rx_ring_info, num_rx_rings, GFP_KERNEL); err = -ENOMEM; if (!rx_rings) goto out_err; @@ -4525,8 +4523,7 @@ static int niu_alloc_channels(struct niu *np) goto out_err; } - tx_rings = kcalloc(num_tx_rings, sizeof(struct tx_ring_info), - GFP_KERNEL); + tx_rings = kzalloc_objs(struct tx_ring_info, num_tx_rings, GFP_KERNEL); err = -ENOMEM; if (!tx_rings) goto out_err; @@ -9514,7 +9511,7 @@ static struct niu_parent *niu_new_parent(struct niu *np, goto fail_unregister; } - p = kzalloc(sizeof(*p), GFP_KERNEL); + p = kzalloc_obj(*p, GFP_KERNEL); if (!p) goto fail_unregister; diff --git a/drivers/net/ethernet/sun/sunhme.c b/drivers/net/ethernet/sun/sunhme.c index 666998082998..1984a6de65ee 100644 --- a/drivers/net/ethernet/sun/sunhme.c +++ b/drivers/net/ethernet/sun/sunhme.c @@ -2248,7 +2248,7 @@ static struct quattro *quattro_sbus_find(struct platform_device *child) if (qp) return qp; - qp = kzalloc(sizeof(*qp), GFP_KERNEL); + qp = kzalloc_obj(*qp, GFP_KERNEL); if (!qp) return NULL; @@ -2278,7 +2278,7 @@ static struct quattro *quattro_pci_find(struct pci_dev *pdev) return qp; } - qp = kmalloc(sizeof(struct quattro), GFP_KERNEL); + qp = kmalloc_obj(struct quattro, GFP_KERNEL); if (!qp) return ERR_PTR(-ENOMEM); diff --git a/drivers/net/ethernet/sun/sunqe.c b/drivers/net/ethernet/sun/sunqe.c index 2920341b14a0..36187e85b7e6 100644 --- a/drivers/net/ethernet/sun/sunqe.c +++ b/drivers/net/ethernet/sun/sunqe.c @@ -771,7 +771,7 @@ static struct sunqec *get_qec(struct platform_device *child) qecp = platform_get_drvdata(op); if (!qecp) { - qecp = kzalloc(sizeof(struct sunqec), GFP_KERNEL); + qecp = kzalloc_obj(struct sunqec, GFP_KERNEL); if (qecp) { u32 ctrl; diff --git a/drivers/net/ethernet/sun/sunvnet.c b/drivers/net/ethernet/sun/sunvnet.c index a2a3e94da4b8..7c756e07eb55 100644 --- a/drivers/net/ethernet/sun/sunvnet.c +++ b/drivers/net/ethernet/sun/sunvnet.c @@ -436,7 +436,7 @@ static int vnet_port_probe(struct vio_dev *vdev, const struct vio_device_id *id) goto err_out_put_mdesc; } - port = kzalloc(sizeof(*port), GFP_KERNEL); + port = kzalloc_obj(*port, GFP_KERNEL); err = -ENOMEM; if (!port) goto err_out_put_mdesc; diff --git a/drivers/net/ethernet/sun/sunvnet_common.c b/drivers/net/ethernet/sun/sunvnet_common.c index 0212853c9430..5cca95869052 100644 --- a/drivers/net/ethernet/sun/sunvnet_common.c +++ b/drivers/net/ethernet/sun/sunvnet_common.c @@ -1571,7 +1571,7 @@ static void __update_mc_list(struct vnet *vp, struct net_device *dev) } if (!m) { - m = kzalloc(sizeof(*m), GFP_ATOMIC); + m = kzalloc_obj(*m, GFP_ATOMIC); if (!m) continue; memcpy(m->addr, ha->addr, ETH_ALEN); diff --git a/drivers/net/ethernet/sunplus/spl2sw_desc.c b/drivers/net/ethernet/sunplus/spl2sw_desc.c index 3f0d9f78b37d..f6b42cda693a 100644 --- a/drivers/net/ethernet/sunplus/spl2sw_desc.c +++ b/drivers/net/ethernet/sunplus/spl2sw_desc.c @@ -129,8 +129,9 @@ int spl2sw_rx_descs_init(struct spl2sw_common *comm) u32 i, j; for (i = 0; i < RX_DESC_QUEUE_NUM; i++) { - comm->rx_skb_info[i] = kcalloc(comm->rx_desc_num[i], sizeof(*rx_skbinfo), - GFP_KERNEL | GFP_DMA); + comm->rx_skb_info[i] = kzalloc_objs(*rx_skbinfo, + comm->rx_desc_num[i], + GFP_KERNEL | GFP_DMA); if (!comm->rx_skb_info[i]) goto mem_alloc_fail; diff --git a/drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c b/drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c index 589797bad1f9..cda6ee474400 100644 --- a/drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c +++ b/drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c @@ -140,9 +140,8 @@ static int xlgmac_init_ring(struct xlgmac_pdata *pdata, return -ENOMEM; /* Array of descriptor data */ - ring->desc_data_head = kcalloc(dma_desc_count, - sizeof(struct xlgmac_desc_data), - GFP_KERNEL); + ring->desc_data_head = kzalloc_objs(struct xlgmac_desc_data, + dma_desc_count, GFP_KERNEL); if (!ring->desc_data_head) return -ENOMEM; @@ -234,21 +233,21 @@ static int xlgmac_alloc_channels(struct xlgmac_pdata *pdata) int ret = -ENOMEM; unsigned int i; - channel_head = kcalloc(pdata->channel_count, - sizeof(struct xlgmac_channel), GFP_KERNEL); + channel_head = kzalloc_objs(struct xlgmac_channel, pdata->channel_count, + GFP_KERNEL); if (!channel_head) return ret; netif_dbg(pdata, drv, pdata->netdev, "channel_head=%p\n", channel_head); - tx_ring = kcalloc(pdata->tx_ring_count, sizeof(struct xlgmac_ring), - GFP_KERNEL); + tx_ring = kzalloc_objs(struct xlgmac_ring, pdata->tx_ring_count, + GFP_KERNEL); if (!tx_ring) goto err_tx_ring; - rx_ring = kcalloc(pdata->rx_ring_count, sizeof(struct xlgmac_ring), - GFP_KERNEL); + rx_ring = kzalloc_objs(struct xlgmac_ring, pdata->rx_ring_count, + GFP_KERNEL); if (!rx_ring) goto err_rx_ring; diff --git a/drivers/net/ethernet/ti/am65-cpsw-switchdev.c b/drivers/net/ethernet/ti/am65-cpsw-switchdev.c index d4c56da98a6a..53cdac272b58 100644 --- a/drivers/net/ethernet/ti/am65-cpsw-switchdev.c +++ b/drivers/net/ethernet/ti/am65-cpsw-switchdev.c @@ -435,7 +435,7 @@ static int am65_cpsw_switchdev_event(struct notifier_block *unused, if (!am65_cpsw_port_dev_check(ndev)) return NOTIFY_DONE; - switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC); + switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC); if (WARN_ON(!switchdev_work)) return NOTIFY_BAD; diff --git a/drivers/net/ethernet/ti/cpsw_switchdev.c b/drivers/net/ethernet/ti/cpsw_switchdev.c index ce85f7610273..7e06aac388a6 100644 --- a/drivers/net/ethernet/ti/cpsw_switchdev.c +++ b/drivers/net/ethernet/ti/cpsw_switchdev.c @@ -445,7 +445,7 @@ static int cpsw_switchdev_event(struct notifier_block *unused, if (!cpsw_port_dev_check(ndev)) return NOTIFY_DONE; - switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC); + switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC); if (WARN_ON(!switchdev_work)) return NOTIFY_BAD; diff --git a/drivers/net/ethernet/ti/icssg/icssg_switchdev.c b/drivers/net/ethernet/ti/icssg/icssg_switchdev.c index 67e2927e176d..26a57be04665 100644 --- a/drivers/net/ethernet/ti/icssg/icssg_switchdev.c +++ b/drivers/net/ethernet/ti/icssg/icssg_switchdev.c @@ -193,7 +193,7 @@ static int prueth_switchdev_event(struct notifier_block *unused, return notifier_from_errno(err); } - switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC); + switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC); if (WARN_ON(!switchdev_work)) return NOTIFY_BAD; diff --git a/drivers/net/ethernet/ti/icssm/icssm_prueth_switch.c b/drivers/net/ethernet/ti/icssm/icssm_prueth_switch.c index 07c08564386e..fa9959ad966d 100644 --- a/drivers/net/ethernet/ti/icssm/icssm_prueth_switch.c +++ b/drivers/net/ethernet/ti/icssm/icssm_prueth_switch.c @@ -748,7 +748,7 @@ int icssm_prueth_sw_init_fdb_table(struct prueth *prueth) if (prueth->emac_configured) return 0; - prueth->fdb_tbl = kmalloc(sizeof(*prueth->fdb_tbl), GFP_KERNEL); + prueth->fdb_tbl = kmalloc_obj(*prueth->fdb_tbl, GFP_KERNEL); if (!prueth->fdb_tbl) return -ENOMEM; @@ -816,7 +816,7 @@ int icssm_prueth_sw_learn_fdb(struct prueth_emac *emac, u8 *src_mac) { struct icssm_prueth_sw_fdb_work *fdb_work; - fdb_work = kzalloc(sizeof(*fdb_work), GFP_ATOMIC); + fdb_work = kzalloc_obj(*fdb_work, GFP_ATOMIC); if (WARN_ON(!fdb_work)) return -ENOMEM; @@ -835,7 +835,7 @@ int icssm_prueth_sw_purge_fdb(struct prueth_emac *emac) { struct icssm_prueth_sw_fdb_work *fdb_work; - fdb_work = kzalloc(sizeof(*fdb_work), GFP_ATOMIC); + fdb_work = kzalloc_obj(*fdb_work, GFP_ATOMIC); if (WARN_ON(!fdb_work)) return -ENOMEM; diff --git a/drivers/net/ethernet/ti/icssm/icssm_switchdev.c b/drivers/net/ethernet/ti/icssm/icssm_switchdev.c index 414ec9fc02a0..1c48023031dc 100644 --- a/drivers/net/ethernet/ti/icssm/icssm_switchdev.c +++ b/drivers/net/ethernet/ti/icssm/icssm_switchdev.c @@ -167,7 +167,7 @@ static int icssm_prueth_sw_switchdev_event(struct notifier_block *unused, return notifier_from_errno(err); } - switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC); + switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC); if (WARN_ON(!switchdev_work)) return NOTIFY_BAD; diff --git a/drivers/net/ethernet/ti/k3-cppi-desc-pool.c b/drivers/net/ethernet/ti/k3-cppi-desc-pool.c index 739bae8e11ee..58bb394fecdf 100644 --- a/drivers/net/ethernet/ti/k3-cppi-desc-pool.c +++ b/drivers/net/ethernet/ti/k3-cppi-desc-pool.c @@ -55,7 +55,7 @@ k3_cppi_desc_pool_create_name(struct device *dev, size_t size, const char *pool_name = NULL; int ret = -ENOMEM; - pool = kzalloc(sizeof(*pool), GFP_KERNEL); + pool = kzalloc_obj(*pool, GFP_KERNEL); if (!pool) return ERR_PTR(ret); @@ -77,8 +77,8 @@ k3_cppi_desc_pool_create_name(struct device *dev, size_t size, pool->gen_pool->name = pool_name; - pool->desc_infos = kcalloc(pool->num_desc, - sizeof(*pool->desc_infos), GFP_KERNEL); + pool->desc_infos = kzalloc_objs(*pool->desc_infos, pool->num_desc, + GFP_KERNEL); if (!pool->desc_infos) goto gen_pool_desc_infos_alloc_fail; diff --git a/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c b/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c index 4fbe4b7cd12a..67d96efcb8bc 100644 --- a/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c +++ b/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c @@ -209,7 +209,7 @@ static struct gelic_eurus_cmd *gelic_eurus_sync_cmd(struct gelic_wl_info *wl, struct gelic_eurus_cmd *cmd; /* allocate cmd */ - cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); + cmd = kzalloc_obj(*cmd, GFP_KERNEL); if (!cmd) return NULL; @@ -2305,9 +2305,8 @@ static struct net_device *gelic_wl_alloc(struct gelic_card *card) pr_debug("%s: wl=%p port=%p\n", __func__, wl, port); /* allocate scan list */ - wl->networks = kcalloc(GELIC_WL_BSS_MAX_ENT, - sizeof(struct gelic_wl_scan_info), - GFP_KERNEL); + wl->networks = kzalloc_objs(struct gelic_wl_scan_info, + GELIC_WL_BSS_MAX_ENT, GFP_KERNEL); if (!wl->networks) goto fail_bss; diff --git a/drivers/net/ethernet/via/via-velocity.c b/drivers/net/ethernet/via/via-velocity.c index 5aa93144a4f5..f761975aeda8 100644 --- a/drivers/net/ethernet/via/via-velocity.c +++ b/drivers/net/ethernet/via/via-velocity.c @@ -1631,8 +1631,8 @@ static int velocity_init_rd_ring(struct velocity_info *vptr) { int ret = -ENOMEM; - vptr->rx.info = kcalloc(vptr->options.numrx, - sizeof(struct velocity_rd_info), GFP_KERNEL); + vptr->rx.info = kzalloc_objs(struct velocity_rd_info, + vptr->options.numrx, GFP_KERNEL); if (!vptr->rx.info) goto out; @@ -1664,9 +1664,9 @@ static int velocity_init_td_ring(struct velocity_info *vptr) /* Init the TD ring entries */ for (j = 0; j < vptr->tx.numq; j++) { - vptr->tx.infos[j] = kcalloc(vptr->options.numtx, - sizeof(struct velocity_td_info), - GFP_KERNEL); + vptr->tx.infos[j] = kzalloc_objs(struct velocity_td_info, + vptr->options.numtx, + GFP_KERNEL); if (!vptr->tx.infos[j]) { while (--j >= 0) kfree(vptr->tx.infos[j]); @@ -2304,7 +2304,7 @@ static int velocity_change_mtu(struct net_device *dev, int new_mtu) struct rx_info rx; struct tx_info tx; - tmp_vptr = kzalloc(sizeof(*tmp_vptr), GFP_KERNEL); + tmp_vptr = kzalloc_obj(*tmp_vptr, GFP_KERNEL); if (!tmp_vptr) { ret = -ENOMEM; goto out_0; diff --git a/drivers/net/ethernet/wangxun/libwx/wx_hw.c b/drivers/net/ethernet/wangxun/libwx/wx_hw.c index 58b8300e3d2c..c78e0775aeb5 100644 --- a/drivers/net/ethernet/wangxun/libwx/wx_hw.c +++ b/drivers/net/ethernet/wangxun/libwx/wx_hw.c @@ -2505,9 +2505,8 @@ int wx_sw_init(struct wx *wx) wx->rss_flags = WX_RSS_FIELD_IPV4 | WX_RSS_FIELD_IPV4_TCP | WX_RSS_FIELD_IPV6 | WX_RSS_FIELD_IPV6_TCP; - wx->mac_table = kcalloc(wx->mac.num_rar_entries, - sizeof(struct wx_mac_addr), - GFP_KERNEL); + wx->mac_table = kzalloc_objs(struct wx_mac_addr, + wx->mac.num_rar_entries, GFP_KERNEL); if (!wx->mac_table) { wx_err(wx, "mac_table allocation failed\n"); kfree(wx->rss_key); diff --git a/drivers/net/ethernet/wangxun/libwx/wx_lib.c b/drivers/net/ethernet/wangxun/libwx/wx_lib.c index b31b48d26575..00c23bebdc72 100644 --- a/drivers/net/ethernet/wangxun/libwx/wx_lib.c +++ b/drivers/net/ethernet/wangxun/libwx/wx_lib.c @@ -1905,16 +1905,14 @@ static int wx_acquire_msix_vectors(struct wx *wx) nvecs = min_t(int, nvecs, num_online_cpus()); nvecs = min_t(int, nvecs, wx->mac.max_msix_vectors); - wx->msix_q_entries = kcalloc(nvecs, sizeof(struct msix_entry), - GFP_KERNEL); + wx->msix_q_entries = kzalloc_objs(struct msix_entry, nvecs, GFP_KERNEL); if (!wx->msix_q_entries) return -ENOMEM; /* One for non-queue interrupts */ nvecs += 1; - wx->msix_entry = kcalloc(1, sizeof(struct msix_entry), - GFP_KERNEL); + wx->msix_entry = kzalloc_objs(struct msix_entry, 1, GFP_KERNEL); if (!wx->msix_entry) { kfree(wx->msix_q_entries); wx->msix_q_entries = NULL; @@ -2097,8 +2095,7 @@ static int wx_alloc_q_vector(struct wx *wx, /* note this will allocate space for the ring structure as well! */ ring_count = txr_count + rxr_count; - q_vector = kzalloc(struct_size(q_vector, ring, ring_count), - GFP_KERNEL); + q_vector = kzalloc_flex(*q_vector, ring, ring_count, GFP_KERNEL); if (!q_vector) return -ENOMEM; diff --git a/drivers/net/ethernet/wangxun/libwx/wx_mbx.c b/drivers/net/ethernet/wangxun/libwx/wx_mbx.c index 2aa03eadf064..d237814cbae5 100644 --- a/drivers/net/ethernet/wangxun/libwx/wx_mbx.c +++ b/drivers/net/ethernet/wangxun/libwx/wx_mbx.c @@ -403,8 +403,7 @@ int wx_read_mbx_vf(struct wx *wx, u32 *msg, u16 size) int wx_init_mbx_params_vf(struct wx *wx) { - wx->vfinfo = kzalloc(sizeof(struct vf_data_storage), - GFP_KERNEL); + wx->vfinfo = kzalloc_obj(struct vf_data_storage, GFP_KERNEL); if (!wx->vfinfo) return -ENOMEM; diff --git a/drivers/net/ethernet/wangxun/libwx/wx_sriov.c b/drivers/net/ethernet/wangxun/libwx/wx_sriov.c index 493da5fffdb6..70a5b00eb353 100644 --- a/drivers/net/ethernet/wangxun/libwx/wx_sriov.c +++ b/drivers/net/ethernet/wangxun/libwx/wx_sriov.c @@ -32,8 +32,7 @@ static int wx_alloc_vf_macvlans(struct wx *wx, u8 num_vfs) if (!num_vf_macvlans) return -EINVAL; - mv_list = kcalloc(num_vf_macvlans, sizeof(struct vf_macvlans), - GFP_KERNEL); + mv_list = kzalloc_objs(struct vf_macvlans, num_vf_macvlans, GFP_KERNEL); if (!mv_list) return -ENOMEM; @@ -88,8 +87,7 @@ static int __wx_enable_sriov(struct wx *wx, u8 num_vfs) wx->ring_feature[RING_F_VMDQ].limit = 1; wx->ring_feature[RING_F_VMDQ].offset = num_vfs; - wx->vfinfo = kcalloc(num_vfs, sizeof(struct vf_data_storage), - GFP_KERNEL); + wx->vfinfo = kzalloc_objs(struct vf_data_storage, num_vfs, GFP_KERNEL); if (!wx->vfinfo) return -ENOMEM; diff --git a/drivers/net/ethernet/wangxun/ngbe/ngbe_ethtool.c b/drivers/net/ethernet/wangxun/ngbe/ngbe_ethtool.c index 662f28bdde8a..d42fd6d8d9c8 100644 --- a/drivers/net/ethernet/wangxun/ngbe/ngbe_ethtool.c +++ b/drivers/net/ethernet/wangxun/ngbe/ngbe_ethtool.c @@ -81,7 +81,7 @@ static int ngbe_set_ringparam(struct net_device *netdev, /* allocate temporary buffer to store rings in */ i = max_t(int, wx->num_tx_queues, wx->num_rx_queues); - temp_ring = kvmalloc_array(i, sizeof(struct wx_ring), GFP_KERNEL); + temp_ring = kvmalloc_objs(struct wx_ring, i, GFP_KERNEL); if (!temp_ring) { err = -ENOMEM; goto clear_reset; diff --git a/drivers/net/ethernet/wangxun/txgbe/txgbe_ethtool.c b/drivers/net/ethernet/wangxun/txgbe/txgbe_ethtool.c index 59d758acccf0..cc0ebc3d030a 100644 --- a/drivers/net/ethernet/wangxun/txgbe/txgbe_ethtool.c +++ b/drivers/net/ethernet/wangxun/txgbe/txgbe_ethtool.c @@ -73,7 +73,7 @@ static int txgbe_set_ringparam(struct net_device *netdev, /* allocate temporary buffer to store rings in */ i = max_t(int, wx->num_tx_queues, wx->num_rx_queues); - temp_ring = kvmalloc_array(i, sizeof(struct wx_ring), GFP_KERNEL); + temp_ring = kvmalloc_objs(struct wx_ring, i, GFP_KERNEL); if (!temp_ring) { err = -ENOMEM; goto clear_reset; @@ -390,7 +390,7 @@ static int txgbe_add_ethtool_fdir_entry(struct txgbe *txgbe, return -EINVAL; } - input = kzalloc(sizeof(*input), GFP_ATOMIC); + input = kzalloc_obj(*input, GFP_ATOMIC); if (!input) return -ENOMEM; diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c index 998bacd508b8..8980c965b5fd 100644 --- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c +++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c @@ -1542,14 +1542,14 @@ static int axienet_init_dmaengine(struct net_device *ndev) lp->tx_ring_head = 0; lp->rx_ring_tail = 0; lp->rx_ring_head = 0; - lp->tx_skb_ring = kcalloc(TX_BD_NUM_MAX, sizeof(*lp->tx_skb_ring), - GFP_KERNEL); + lp->tx_skb_ring = kzalloc_objs(*lp->tx_skb_ring, TX_BD_NUM_MAX, + GFP_KERNEL); if (!lp->tx_skb_ring) { ret = -ENOMEM; goto err_dma_release_rx; } for (i = 0; i < TX_BD_NUM_MAX; i++) { - skbuf_dma = kzalloc(sizeof(*skbuf_dma), GFP_KERNEL); + skbuf_dma = kzalloc_obj(*skbuf_dma, GFP_KERNEL); if (!skbuf_dma) { ret = -ENOMEM; goto err_free_tx_skb_ring; @@ -1557,14 +1557,14 @@ static int axienet_init_dmaengine(struct net_device *ndev) lp->tx_skb_ring[i] = skbuf_dma; } - lp->rx_skb_ring = kcalloc(RX_BUF_NUM_DEFAULT, sizeof(*lp->rx_skb_ring), - GFP_KERNEL); + lp->rx_skb_ring = kzalloc_objs(*lp->rx_skb_ring, RX_BUF_NUM_DEFAULT, + GFP_KERNEL); if (!lp->rx_skb_ring) { ret = -ENOMEM; goto err_free_tx_skb_ring; } for (i = 0; i < RX_BUF_NUM_DEFAULT; i++) { - skbuf_dma = kzalloc(sizeof(*skbuf_dma), GFP_KERNEL); + skbuf_dma = kzalloc_obj(*skbuf_dma, GFP_KERNEL); if (!skbuf_dma) { ret = -ENOMEM; goto err_free_rx_skb_ring; |
