summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAhmad Fatoum <a.fatoum@pengutronix.de>2023-01-16 14:44:57 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2023-01-23 09:21:37 +0100
commit6f18594a45923ac4552713e81d4e6836a3328b48 (patch)
tree4d86bf2a41689ccb999f467ab08db41303c2c30c
parentd98e5d91599019f2c73e38d874682eb11eb021f2 (diff)
downloadbarebox-6f18594a45923ac4552713e81d4e6836a3328b48.tar.gz
barebox-6f18594a45923ac4552713e81d4e6836a3328b48.tar.xz
net: dsa: populate struct dsa_port::index/dev members
Unlike with regular user ports, the CPU port doesn't have a dev or index member assigned, which leads to subtle breakage porting Linux drivers. Use the new dsa_port_alloc() helper to fix this. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20230116134501.2006391-6-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--drivers/net/dsa.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/net/dsa.c b/drivers/net/dsa.c
index ea1a6a6996..c1430a9361 100644
--- a/drivers/net/dsa.c
+++ b/drivers/net/dsa.c
@@ -317,7 +317,6 @@ static int dsa_switch_register_master(struct dsa_switch *ds,
{
struct device_node *phy_node;
struct phy_device *phydev;
- struct dsa_port *dp;
int ret;
if (ds->edev_master) {
@@ -348,9 +347,7 @@ static int dsa_switch_register_master(struct dsa_switch *ds,
phydev->interface = of_get_phy_mode(np);
- ds->dp[port] = xzalloc(sizeof(*dp));
- dp = ds->dp[port];
- dp->ds = ds;
+ dsa_port_alloc(ds, np, port);
ds->cpu_port = port;
ds->cpu_port_fixed_phy = phydev;