[PATCH net-next] net: phy: microchip_rds_ptp: simplify allocation

From: Rosen Penev

Date: Sun Mar 15 2026 - 17:45:58 EST


Simplifies allocations by using a flexible array member in this struct.

Remove memset as it's now allocated by kzalloc.

Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
---
drivers/net/phy/microchip_rds_ptp.c | 10 ++--------
drivers/net/phy/microchip_rds_ptp.h | 2 +-
2 files changed, 3 insertions(+), 9 deletions(-)

diff --git a/drivers/net/phy/microchip_rds_ptp.c b/drivers/net/phy/microchip_rds_ptp.c
index 2ad95d5c9d86..4e6ed11f9334 100644
--- a/drivers/net/phy/microchip_rds_ptp.c
+++ b/drivers/net/phy/microchip_rds_ptp.c
@@ -1246,7 +1246,8 @@ struct mchp_rds_ptp_clock *mchp_rds_ptp_probe(struct phy_device *phydev, u8 mmd,
struct mchp_rds_ptp_clock *clock;
int rc;

- clock = devm_kzalloc(&phydev->mdio.dev, sizeof(*clock), GFP_KERNEL);
+ clock = devm_kzalloc(&phydev->mdio.dev,
+ struct_size(clock, pin_config, MCHP_RDS_PTP_N_PIN), GFP_KERNEL);
if (!clock)
return ERR_PTR(-ENOMEM);

@@ -1255,17 +1256,10 @@ struct mchp_rds_ptp_clock *mchp_rds_ptp_probe(struct phy_device *phydev, u8 mmd,
clock->mmd = mmd;

mutex_init(&clock->ptp_lock);
- clock->pin_config = devm_kmalloc_array(&phydev->mdio.dev,
- MCHP_RDS_PTP_N_PIN,
- sizeof(*clock->pin_config),
- GFP_KERNEL);
- if (!clock->pin_config)
- return ERR_PTR(-ENOMEM);

for (int i = 0; i < MCHP_RDS_PTP_N_PIN; ++i) {
struct ptp_pin_desc *p = &clock->pin_config[i];

- memset(p, 0, sizeof(*p));
snprintf(p->name, sizeof(p->name), "pin%d", i);
p->index = i;
p->func = PTP_PF_NONE;
diff --git a/drivers/net/phy/microchip_rds_ptp.h b/drivers/net/phy/microchip_rds_ptp.h
index 25af68337b94..f5c6ab585fff 100644
--- a/drivers/net/phy/microchip_rds_ptp.h
+++ b/drivers/net/phy/microchip_rds_ptp.h
@@ -199,7 +199,7 @@ struct mchp_rds_ptp_clock {
u8 mmd;
int mchp_rds_ptp_event;
int event_pin;
- struct ptp_pin_desc *pin_config;
+ struct ptp_pin_desc pin_config[];
};

struct mchp_rds_ptp_rx_ts {
--
2.53.0