Skip to content

Commit 426aa1f

Browse files
jpirkodavem330
authored andcommitted
mlxsw: minimal: Initialize base_mac
Currently base_mac is not initialized which causes wrong reporting of zeroed parent_id to userspace. Fix this by initializing base_mac properly. Fixes: c100e47 ("mlxsw: minimal: Add ethtool support") Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 6bab45b commit 426aa1f

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

drivers/net/ethernet/mellanox/mlxsw/minimal.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,18 @@ struct mlxsw_m_port {
3434
u8 module;
3535
};
3636

37+
static int mlxsw_m_base_mac_get(struct mlxsw_m *mlxsw_m)
38+
{
39+
char spad_pl[MLXSW_REG_SPAD_LEN] = {0};
40+
int err;
41+
42+
err = mlxsw_reg_query(mlxsw_m->core, MLXSW_REG(spad), spad_pl);
43+
if (err)
44+
return err;
45+
mlxsw_reg_spad_base_mac_memcpy_from(spad_pl, mlxsw_m->base_mac);
46+
return 0;
47+
}
48+
3749
static int mlxsw_m_port_dummy_open_stop(struct net_device *dev)
3850
{
3951
return 0;
@@ -314,6 +326,12 @@ static int mlxsw_m_init(struct mlxsw_core *mlxsw_core,
314326
mlxsw_m->core = mlxsw_core;
315327
mlxsw_m->bus_info = mlxsw_bus_info;
316328

329+
err = mlxsw_m_base_mac_get(mlxsw_m);
330+
if (err) {
331+
dev_err(mlxsw_m->bus_info->dev, "Failed to get base mac\n");
332+
return err;
333+
}
334+
317335
err = mlxsw_m_ports_create(mlxsw_m);
318336
if (err) {
319337
dev_err(mlxsw_m->bus_info->dev, "Failed to create ports\n");

0 commit comments

Comments
 (0)