summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/microchip
diff options
context:
space:
mode:
authorKees Cook <kees@kernel.org>2026-02-20 23:49:23 -0800
committerKees Cook <kees@kernel.org>2026-02-21 01:02:28 -0800
commit69050f8d6d075dc01af7a5f2f550a8067510366f (patch)
treebb265f94d9dfa7876c06a5d9f88673d496a15341 /drivers/net/ethernet/microchip
parentd39a1d7486d98668dd34aaa6732aad7977c45f5a (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/microchip')
-rw-r--r--drivers/net/ethernet/microchip/lan743x_main.c5
-rw-r--r--drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c4
-rw-r--r--drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c4
-rw-r--r--drivers/net/ethernet/microchip/lan966x/lan966x_mac.c2
-rw-r--r--drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c4
-rw-r--r--drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c4
-rw-r--r--drivers/net/ethernet/microchip/sparx5/lan969x/lan969x_fdma.c4
-rw-r--r--drivers/net/ethernet/microchip/sparx5/sparx5_calendar.c2
-rw-r--r--drivers/net/ethernet/microchip/sparx5/sparx5_main.c4
-rw-r--r--drivers/net/ethernet/microchip/sparx5/sparx5_switchdev.c4
-rw-r--r--drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c2
-rw-r--r--drivers/net/ethernet/microchip/sparx5/sparx5_tc_matchall.c2
-rw-r--r--drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c4
-rw-r--r--drivers/net/ethernet/microchip/vcap/vcap_api.c14
-rw-r--r--drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c4
15 files changed, 30 insertions, 33 deletions
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);