OSDN Git Service

mlxsw: Pass switch ID through devlink_port_attrs_set()
authorJiri Pirko <jiri@mellanox.com>
Wed, 3 Apr 2019 12:24:18 +0000 (14:24 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 5 Apr 2019 00:42:36 +0000 (17:42 -0700)
Pass the switch ID down the to devlink through devlink_port_attrs_set()
so it can be used by devlink_compat_switch_id_get().

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/core.c
drivers/net/ethernet/mellanox/mlxsw/core.h
drivers/net/ethernet/mellanox/mlxsw/minimal.c
drivers/net/ethernet/mellanox/mlxsw/spectrum.c
drivers/net/ethernet/mellanox/mlxsw/switchib.c
drivers/net/ethernet/mellanox/mlxsw/switchx2.c

index d01bd9d..027e393 100644 (file)
@@ -1720,7 +1720,9 @@ EXPORT_SYMBOL(mlxsw_core_res_get);
 
 int mlxsw_core_port_init(struct mlxsw_core *mlxsw_core, u8 local_port,
                         u32 port_number, bool split,
-                        u32 split_port_subnumber)
+                        u32 split_port_subnumber,
+                        const unsigned char *switch_id,
+                        unsigned char switch_id_len)
 {
        struct devlink *devlink = priv_to_devlink(mlxsw_core);
        struct mlxsw_core_port *mlxsw_core_port =
@@ -1731,7 +1733,7 @@ int mlxsw_core_port_init(struct mlxsw_core *mlxsw_core, u8 local_port,
        mlxsw_core_port->local_port = local_port;
        devlink_port_attrs_set(devlink_port, DEVLINK_PORT_FLAVOUR_PHYSICAL,
                               port_number, split, split_port_subnumber,
-                              NULL, 0);
+                              switch_id, switch_id_len);
        err = devlink_port_register(devlink, devlink_port, local_port);
        if (err)
                memset(mlxsw_core_port, 0, sizeof(*mlxsw_core_port));
index e8c424d..d51dfc3 100644 (file)
@@ -166,7 +166,9 @@ void mlxsw_core_lag_mapping_clear(struct mlxsw_core *mlxsw_core,
 void *mlxsw_core_port_driver_priv(struct mlxsw_core_port *mlxsw_core_port);
 int mlxsw_core_port_init(struct mlxsw_core *mlxsw_core, u8 local_port,
                         u32 port_number, bool split,
-                        u32 split_port_subnumber);
+                        u32 split_port_subnumber,
+                        const unsigned char *switch_id,
+                        unsigned char switch_id_len);
 void mlxsw_core_port_fini(struct mlxsw_core *mlxsw_core, u8 local_port);
 void mlxsw_core_port_eth_set(struct mlxsw_core *mlxsw_core, u8 local_port,
                             void *port_driver_priv, struct net_device *dev);
index ec5f5a6..bd96211 100644 (file)
@@ -151,7 +151,9 @@ mlxsw_m_port_create(struct mlxsw_m *mlxsw_m, u8 local_port, u8 module)
        int err;
 
        err = mlxsw_core_port_init(mlxsw_m->core, local_port,
-                                  module + 1, false, 0);
+                                  module + 1, false, 0,
+                                  mlxsw_m->base_mac,
+                                  sizeof(mlxsw_m->base_mac));
        if (err) {
                dev_err(mlxsw_m->bus_info->dev, "Port %d: Failed to init core port\n",
                        local_port);
index 8b9a687..2dbcc8e 100644 (file)
@@ -3392,7 +3392,9 @@ static int mlxsw_sp_port_create(struct mlxsw_sp *mlxsw_sp, u8 local_port,
        int err;
 
        err = mlxsw_core_port_init(mlxsw_sp->core, local_port,
-                                  module + 1, split, lane / width);
+                                  module + 1, split, lane / width,
+                                  mlxsw_sp->base_mac,
+                                  sizeof(mlxsw_sp->base_mac));
        if (err) {
                dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to init core port\n",
                        local_port);
index e1e7e0d..b22caa1 100644 (file)
@@ -268,7 +268,7 @@ static int mlxsw_sib_port_create(struct mlxsw_sib *mlxsw_sib, u8 local_port,
        int err;
 
        err = mlxsw_core_port_init(mlxsw_sib->core, local_port,
-                                  module + 1, false, 0);
+                                  module + 1, false, 0, NULL, 0);
        if (err) {
                dev_err(mlxsw_sib->bus_info->dev, "Port %d: Failed to init core port\n",
                        local_port);
index 5312dc1..5397616 100644 (file)
@@ -1128,7 +1128,8 @@ static int mlxsw_sx_port_eth_create(struct mlxsw_sx *mlxsw_sx, u8 local_port,
        int err;
 
        err = mlxsw_core_port_init(mlxsw_sx->core, local_port,
-                                  module + 1, false, 0);
+                                  module + 1, false, 0,
+                                  mlxsw_sx->hw_id, sizeof(mlxsw_sx->hw_id));
        if (err) {
                dev_err(mlxsw_sx->bus_info->dev, "Port %d: Failed to init core port\n",
                        local_port);