Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b9ffcbaf authored by Jiri Pirko's avatar Jiri Pirko Committed by David S. Miller
Browse files

devlink: introduce devlink_port_attrs_set



Change existing setter for split port information into more generic
attrs setter. Alongside with that, allow to set port number and subport
number for split ports.

Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent eb38401c
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -1714,15 +1714,16 @@ EXPORT_SYMBOL(mlxsw_core_port_fini);

void mlxsw_core_port_eth_set(struct mlxsw_core *mlxsw_core, u8 local_port,
			     void *port_driver_priv, struct net_device *dev,
			     bool split, u32 split_group)
			     u32 port_number, bool split,
			     u32 split_port_subnumber)
{
	struct mlxsw_core_port *mlxsw_core_port =
					&mlxsw_core->ports[local_port];
	struct devlink_port *devlink_port = &mlxsw_core_port->devlink_port;

	mlxsw_core_port->port_driver_priv = port_driver_priv;
	if (split)
		devlink_port_split_set(devlink_port, split_group);
	devlink_port_attrs_set(devlink_port, port_number,
			       split, split_port_subnumber);
	devlink_port_type_eth_set(devlink_port, dev);
}
EXPORT_SYMBOL(mlxsw_core_port_eth_set);
+2 −1
Original line number Diff line number Diff line
@@ -201,7 +201,8 @@ int mlxsw_core_port_init(struct mlxsw_core *mlxsw_core, u8 local_port);
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,
			     bool split, u32 split_group);
			     u32 port_number, bool split,
			     u32 split_port_subnumber);
void mlxsw_core_port_ib_set(struct mlxsw_core *mlxsw_core, u8 local_port,
			    void *port_driver_priv);
void mlxsw_core_port_clear(struct mlxsw_core *mlxsw_core, u8 local_port,
+2 −2
Original line number Diff line number Diff line
@@ -2927,8 +2927,8 @@ static int mlxsw_sp_port_create(struct mlxsw_sp *mlxsw_sp, u8 local_port,
	}

	mlxsw_core_port_eth_set(mlxsw_sp->core, mlxsw_sp_port->local_port,
				mlxsw_sp_port, dev, mlxsw_sp_port->split,
				module);
				mlxsw_sp_port, dev, module + 1,
				mlxsw_sp_port->split, lane / width);
	mlxsw_core_schedule_dw(&mlxsw_sp_port->periodic_hw_stats.update_dw, 0);
	return 0;

+1 −1
Original line number Diff line number Diff line
@@ -1149,7 +1149,7 @@ static int __mlxsw_sx_port_eth_create(struct mlxsw_sx *mlxsw_sx, u8 local_port,
	}

	mlxsw_core_port_eth_set(mlxsw_sx->core, mlxsw_sx_port->local_port,
				mlxsw_sx_port, dev, false, 0);
				mlxsw_sx_port, dev, module + 1, false, 0);
	mlxsw_sx->ports[local_port] = mlxsw_sx_port;
	return 0;

+2 −2
Original line number Diff line number Diff line
@@ -175,8 +175,8 @@ int nfp_devlink_port_register(struct nfp_app *app, struct nfp_port *port)
		return ret;

	devlink_port_type_eth_set(&port->dl_port, port->netdev);
	if (eth_port.is_split)
		devlink_port_split_set(&port->dl_port, eth_port.label_port);
	devlink_port_attrs_set(&port->dl_port, eth_port.label_port,
			       eth_port.is_split, eth_port.label_subport);

	devlink = priv_to_devlink(app->pf);

Loading