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/dsa | |
| parent | d39a1d7486d98668dd34aaa6732aad7977c45f5a (diff) | |
| download | lwn-69050f8d6d075dc01af7a5f2f550a8067510366f.tar.gz lwn-69050f8d6d075dc01af7a5f2f550a8067510366f.zip | |
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/dsa')
| -rw-r--r-- | drivers/net/dsa/bcm_sf2_cfp.c | 2 | ||||
| -rw-r--r-- | drivers/net/dsa/hirschmann/hellcreek.c | 4 | ||||
| -rw-r--r-- | drivers/net/dsa/microchip/ksz9477_acl.c | 2 | ||||
| -rw-r--r-- | drivers/net/dsa/microchip/ksz_common.c | 2 | ||||
| -rw-r--r-- | drivers/net/dsa/mv88e6xxx/chip.c | 2 | ||||
| -rw-r--r-- | drivers/net/dsa/mv88e6xxx/devlink.c | 15 | ||||
| -rw-r--r-- | drivers/net/dsa/mv88e6xxx/pcs-6185.c | 2 | ||||
| -rw-r--r-- | drivers/net/dsa/mv88e6xxx/pcs-6352.c | 2 | ||||
| -rw-r--r-- | drivers/net/dsa/mv88e6xxx/pcs-639x.c | 2 | ||||
| -rw-r--r-- | drivers/net/dsa/ocelot/felix.c | 11 | ||||
| -rw-r--r-- | drivers/net/dsa/ocelot/felix_vsc9959.c | 2 | ||||
| -rw-r--r-- | drivers/net/dsa/sja1105/sja1105_devlink.c | 4 | ||||
| -rw-r--r-- | drivers/net/dsa/sja1105/sja1105_flower.c | 4 | ||||
| -rw-r--r-- | drivers/net/dsa/sja1105/sja1105_tas.c | 2 | ||||
| -rw-r--r-- | drivers/net/dsa/sja1105/sja1105_vl.c | 11 | ||||
| -rw-r--r-- | drivers/net/dsa/vitesse-vsc73xx-core.c | 2 |
16 files changed, 32 insertions, 37 deletions
diff --git a/drivers/net/dsa/bcm_sf2_cfp.c b/drivers/net/dsa/bcm_sf2_cfp.c index e22362e6f0cd..8df91e4c1237 100644 --- a/drivers/net/dsa/bcm_sf2_cfp.c +++ b/drivers/net/dsa/bcm_sf2_cfp.c @@ -950,7 +950,7 @@ static int bcm_sf2_cfp_rule_set(struct dsa_switch *ds, int port, if (ret == 0) return -EEXIST; - rule = kzalloc(sizeof(*rule), GFP_KERNEL); + rule = kzalloc_obj(*rule, GFP_KERNEL); if (!rule) return -ENOMEM; diff --git a/drivers/net/dsa/hirschmann/hellcreek.c b/drivers/net/dsa/hirschmann/hellcreek.c index dd5f263ab984..1e1917eafd7a 100644 --- a/drivers/net/dsa/hirschmann/hellcreek.c +++ b/drivers/net/dsa/hirschmann/hellcreek.c @@ -1265,7 +1265,7 @@ static int hellcreek_devlink_region_vlan_snapshot(struct devlink *dl, struct hellcreek *hellcreek = ds->priv; int i; - table = kcalloc(VLAN_N_VID, sizeof(*entry), GFP_KERNEL); + table = kzalloc_objs(*entry, VLAN_N_VID, GFP_KERNEL); if (!table) return -ENOMEM; @@ -1293,7 +1293,7 @@ static int hellcreek_devlink_region_fdb_snapshot(struct devlink *dl, struct hellcreek *hellcreek = ds->priv; size_t i; - table = kcalloc(hellcreek->fdb_entries, sizeof(*entry), GFP_KERNEL); + table = kzalloc_objs(*entry, hellcreek->fdb_entries, GFP_KERNEL); if (!table) return -ENOMEM; diff --git a/drivers/net/dsa/microchip/ksz9477_acl.c b/drivers/net/dsa/microchip/ksz9477_acl.c index 7ba778df63ac..efd1da08bb45 100644 --- a/drivers/net/dsa/microchip/ksz9477_acl.c +++ b/drivers/net/dsa/microchip/ksz9477_acl.c @@ -1060,7 +1060,7 @@ int ksz9477_port_acl_init(struct ksz_device *dev, int port) struct ksz9477_acl_priv *acl; int ret, i; - acl = kzalloc(sizeof(*acl), GFP_KERNEL); + acl = kzalloc_obj(*acl, GFP_KERNEL); if (!acl) return -ENOMEM; diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c index e5fa1f5fc09b..ddcbb1be4818 100644 --- a/drivers/net/dsa/microchip/ksz_common.c +++ b/drivers/net/dsa/microchip/ksz_common.c @@ -4835,7 +4835,7 @@ int ksz_switch_macaddr_get(struct dsa_switch *ds, int port, return 0; } - switch_macaddr = kzalloc(sizeof(*switch_macaddr), GFP_KERNEL); + switch_macaddr = kzalloc_obj(*switch_macaddr, GFP_KERNEL); if (!switch_macaddr) return -ENOMEM; diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c index 09002c853b78..7a43110e74b7 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -2024,7 +2024,7 @@ static int mv88e6xxx_mst_get(struct mv88e6xxx_chip *chip, struct net_device *br, if (err) goto err; - mst = kzalloc(sizeof(*mst), GFP_KERNEL); + mst = kzalloc_obj(*mst, GFP_KERNEL); if (!mst) { err = -ENOMEM; goto err; diff --git a/drivers/net/dsa/mv88e6xxx/devlink.c b/drivers/net/dsa/mv88e6xxx/devlink.c index da69e0b85879..f241e7df6eb5 100644 --- a/drivers/net/dsa/mv88e6xxx/devlink.c +++ b/drivers/net/dsa/mv88e6xxx/devlink.c @@ -378,9 +378,8 @@ static int mv88e6xxx_region_atu_snapshot(struct devlink *dl, struct mv88e6xxx_chip *chip = ds->priv; int fid = -1, err = 0, count = 0; - table = kcalloc(mv88e6xxx_num_databases(chip), - sizeof(struct mv88e6xxx_devlink_atu_entry), - GFP_KERNEL); + table = kzalloc_objs(struct mv88e6xxx_devlink_atu_entry, + mv88e6xxx_num_databases(chip), GFP_KERNEL); if (!table) return -ENOMEM; @@ -440,9 +439,8 @@ static int mv88e6xxx_region_vtu_snapshot(struct devlink *dl, struct mv88e6xxx_vtu_entry vlan; int err; - table = kcalloc(mv88e6xxx_max_vid(chip) + 1, - sizeof(struct mv88e6xxx_devlink_vtu_entry), - GFP_KERNEL); + table = kzalloc_objs(struct mv88e6xxx_devlink_vtu_entry, + mv88e6xxx_max_vid(chip) + 1, GFP_KERNEL); if (!table) return -ENOMEM; @@ -523,9 +521,8 @@ static int mv88e6xxx_region_stu_snapshot(struct devlink *dl, struct mv88e6xxx_stu_entry stu; int err; - table = kcalloc(mv88e6xxx_max_sid(chip) + 1, - sizeof(struct mv88e6xxx_devlink_stu_entry), - GFP_KERNEL); + table = kzalloc_objs(struct mv88e6xxx_devlink_stu_entry, + mv88e6xxx_max_sid(chip) + 1, GFP_KERNEL); if (!table) return -ENOMEM; diff --git a/drivers/net/dsa/mv88e6xxx/pcs-6185.c b/drivers/net/dsa/mv88e6xxx/pcs-6185.c index af7e06d265f7..176480cdee5a 100644 --- a/drivers/net/dsa/mv88e6xxx/pcs-6185.c +++ b/drivers/net/dsa/mv88e6xxx/pcs-6185.c @@ -131,7 +131,7 @@ static int mv88e6185_pcs_init(struct mv88e6xxx_chip *chip, int port) dev = chip->dev; - mpcs = kzalloc(sizeof(*mpcs), GFP_KERNEL); + mpcs = kzalloc_obj(*mpcs, GFP_KERNEL); if (!mpcs) return -ENOMEM; diff --git a/drivers/net/dsa/mv88e6xxx/pcs-6352.c b/drivers/net/dsa/mv88e6xxx/pcs-6352.c index 36993400837e..ecd8b5efccf6 100644 --- a/drivers/net/dsa/mv88e6xxx/pcs-6352.c +++ b/drivers/net/dsa/mv88e6xxx/pcs-6352.c @@ -267,7 +267,7 @@ static struct marvell_c22_pcs *marvell_c22_pcs_alloc(struct device *dev, { struct marvell_c22_pcs *mpcs; - mpcs = kzalloc(sizeof(*mpcs), GFP_KERNEL); + mpcs = kzalloc_obj(*mpcs, GFP_KERNEL); if (!mpcs) return NULL; diff --git a/drivers/net/dsa/mv88e6xxx/pcs-639x.c b/drivers/net/dsa/mv88e6xxx/pcs-639x.c index 5db17c0b77f5..c7728b00297d 100644 --- a/drivers/net/dsa/mv88e6xxx/pcs-639x.c +++ b/drivers/net/dsa/mv88e6xxx/pcs-639x.c @@ -67,7 +67,7 @@ mv88e639x_pcs_alloc(struct device *dev, struct mii_bus *bus, unsigned int addr, { struct mv88e639x_pcs *mpcs; - mpcs = kzalloc(sizeof(*mpcs), GFP_KERNEL); + mpcs = kzalloc_obj(*mpcs, GFP_KERNEL); if (!mpcs) return NULL; diff --git a/drivers/net/dsa/ocelot/felix.c b/drivers/net/dsa/ocelot/felix.c index 5d34eb82e639..1587dd33a557 100644 --- a/drivers/net/dsa/ocelot/felix.c +++ b/drivers/net/dsa/ocelot/felix.c @@ -109,8 +109,7 @@ static int felix_tag_8021q_vlan_add_rx(struct dsa_switch *ds, int port, key_length = ocelot->vcap[VCAP_ES0].keys[VCAP_ES0_IGR_PORT].length; - outer_tagging_rule = kzalloc(sizeof(struct ocelot_vcap_filter), - GFP_KERNEL); + outer_tagging_rule = kzalloc_obj(struct ocelot_vcap_filter, GFP_KERNEL); if (!outer_tagging_rule) return -ENOMEM; @@ -178,11 +177,11 @@ static int felix_tag_8021q_vlan_add_tx(struct dsa_switch *ds, int port, unsigned long cookie; int err; - untagging_rule = kzalloc(sizeof(struct ocelot_vcap_filter), GFP_KERNEL); + untagging_rule = kzalloc_obj(struct ocelot_vcap_filter, GFP_KERNEL); if (!untagging_rule) return -ENOMEM; - redirect_rule = kzalloc(sizeof(struct ocelot_vcap_filter), GFP_KERNEL); + redirect_rule = kzalloc_obj(struct ocelot_vcap_filter, GFP_KERNEL); if (!redirect_rule) { kfree(untagging_rule); return -ENOMEM; @@ -1540,8 +1539,8 @@ static int felix_init_structs(struct felix *felix, int num_phys_ports) ocelot->npi_xtr_prefix = OCELOT_TAG_PREFIX_SHORT; ocelot->devlink = felix->ds->devlink; - port_phy_modes = kcalloc(num_phys_ports, sizeof(phy_interface_t), - GFP_KERNEL); + port_phy_modes = kzalloc_objs(phy_interface_t, num_phys_ports, + GFP_KERNEL); if (!port_phy_modes) return -ENOMEM; diff --git a/drivers/net/dsa/ocelot/felix_vsc9959.c b/drivers/net/dsa/ocelot/felix_vsc9959.c index 8cf4c8986587..86b9a24d3e33 100644 --- a/drivers/net/dsa/ocelot/felix_vsc9959.c +++ b/drivers/net/dsa/ocelot/felix_vsc9959.c @@ -2201,7 +2201,7 @@ static int vsc9959_psfp_sgi_table_add(struct ocelot *ocelot, return 0; } - tmp = kzalloc(sizeof(*tmp), GFP_KERNEL); + tmp = kzalloc_obj(*tmp, GFP_KERNEL); if (!tmp) return -ENOMEM; diff --git a/drivers/net/dsa/sja1105/sja1105_devlink.c b/drivers/net/dsa/sja1105/sja1105_devlink.c index 30b1f1ba762f..c1dd9ccc32d0 100644 --- a/drivers/net/dsa/sja1105/sja1105_devlink.c +++ b/drivers/net/dsa/sja1105/sja1105_devlink.c @@ -82,8 +82,8 @@ static int sja1105_setup_devlink_regions(struct dsa_switch *ds) struct devlink_region *region; u64 size; - priv->regions = kcalloc(num_regions, sizeof(struct devlink_region *), - GFP_KERNEL); + priv->regions = kzalloc_objs(struct devlink_region *, num_regions, + GFP_KERNEL); if (!priv->regions) return -ENOMEM; diff --git a/drivers/net/dsa/sja1105/sja1105_flower.c b/drivers/net/dsa/sja1105/sja1105_flower.c index 05d8ed3121e7..c91f7371471c 100644 --- a/drivers/net/dsa/sja1105/sja1105_flower.c +++ b/drivers/net/dsa/sja1105/sja1105_flower.c @@ -41,7 +41,7 @@ static int sja1105_setup_bcast_policer(struct sja1105_private *priv, int rc; if (!rule) { - rule = kzalloc(sizeof(*rule), GFP_KERNEL); + rule = kzalloc_obj(*rule, GFP_KERNEL); if (!rule) return -ENOMEM; @@ -112,7 +112,7 @@ static int sja1105_setup_tc_policer(struct sja1105_private *priv, int rc; if (!rule) { - rule = kzalloc(sizeof(*rule), GFP_KERNEL); + rule = kzalloc_obj(*rule, GFP_KERNEL); if (!rule) return -ENOMEM; diff --git a/drivers/net/dsa/sja1105/sja1105_tas.c b/drivers/net/dsa/sja1105/sja1105_tas.c index d5949d2c3e71..a3090c70b428 100644 --- a/drivers/net/dsa/sja1105/sja1105_tas.c +++ b/drivers/net/dsa/sja1105/sja1105_tas.c @@ -477,7 +477,7 @@ bool sja1105_gating_check_conflicts(struct sja1105_private *priv, int port, if (list_empty(&gating_cfg->entries)) return false; - dummy = kzalloc(struct_size(dummy, entries, num_entries), GFP_KERNEL); + dummy = kzalloc_flex(*dummy, entries, num_entries, GFP_KERNEL); if (!dummy) { NL_SET_ERR_MSG_MOD(extack, "Failed to allocate memory"); return true; diff --git a/drivers/net/dsa/sja1105/sja1105_vl.c b/drivers/net/dsa/sja1105/sja1105_vl.c index b7e95d60a6e4..7ec1ce5edf07 100644 --- a/drivers/net/dsa/sja1105/sja1105_vl.c +++ b/drivers/net/dsa/sja1105/sja1105_vl.c @@ -16,7 +16,7 @@ static int sja1105_insert_gate_entry(struct sja1105_gating_config *gating_cfg, struct sja1105_gate_entry *e; int rc; - e = kzalloc(sizeof(*e), GFP_KERNEL); + e = kzalloc_obj(*e, GFP_KERNEL); if (!e) return -ENOMEM; @@ -524,7 +524,7 @@ int sja1105_vl_redirect(struct sja1105_private *priv, int port, } if (!rule) { - rule = kzalloc(sizeof(*rule), GFP_KERNEL); + rule = kzalloc_obj(*rule, GFP_KERNEL); if (!rule) return -ENOMEM; @@ -622,7 +622,7 @@ int sja1105_vl_gate(struct sja1105_private *priv, int port, } if (!rule) { - rule = kzalloc(sizeof(*rule), GFP_KERNEL); + rule = kzalloc_obj(*rule, GFP_KERNEL); if (!rule) return -ENOMEM; @@ -635,9 +635,8 @@ int sja1105_vl_gate(struct sja1105_private *priv, int port, rule->vl.base_time = base_time; rule->vl.cycle_time = cycle_time; rule->vl.num_entries = num_entries; - rule->vl.entries = kcalloc(num_entries, - sizeof(struct action_gate_entry), - GFP_KERNEL); + rule->vl.entries = kzalloc_objs(struct action_gate_entry, + num_entries, GFP_KERNEL); if (!rule->vl.entries) { rc = -ENOMEM; goto out; diff --git a/drivers/net/dsa/vitesse-vsc73xx-core.c b/drivers/net/dsa/vitesse-vsc73xx-core.c index 9d31b8258268..a2feb30843b6 100644 --- a/drivers/net/dsa/vitesse-vsc73xx-core.c +++ b/drivers/net/dsa/vitesse-vsc73xx-core.c @@ -1664,7 +1664,7 @@ static int vsc73xx_port_vlan_add(struct dsa_switch *ds, int port, vsc73xx_vlan = vsc73xx_bridge_vlan_find(vsc, vlan->vid); if (!vsc73xx_vlan) { - vsc73xx_vlan = kzalloc(sizeof(*vsc73xx_vlan), GFP_KERNEL); + vsc73xx_vlan = kzalloc_obj(*vsc73xx_vlan, GFP_KERNEL); if (!vsc73xx_vlan) return -ENOMEM; |
