devlink: Replace devlink_port_attrs_set parameters with a struct
Currently, devlink_port_attrs_set accepts a long list of parameters, that most of them are devlink port's attributes. Use the devlink_port_attrs struct to replace the relevant parameters. Signed-off-by: Danielle Ratson <danieller@mellanox.com> Reviewed-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
46737a1949
commit
71ad8d55f8
@@ -691,6 +691,7 @@ static void bnxt_dl_params_unregister(struct bnxt *bp)
|
||||
|
||||
int bnxt_dl_register(struct bnxt *bp)
|
||||
{
|
||||
struct devlink_port_attrs attrs = {};
|
||||
struct devlink *dl;
|
||||
int rc;
|
||||
|
||||
@@ -719,9 +720,11 @@ int bnxt_dl_register(struct bnxt *bp)
|
||||
if (!BNXT_PF(bp))
|
||||
return 0;
|
||||
|
||||
devlink_port_attrs_set(&bp->dl_port, DEVLINK_PORT_FLAVOUR_PHYSICAL,
|
||||
bp->pf.port_id, false, 0, bp->dsn,
|
||||
sizeof(bp->dsn));
|
||||
attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL;
|
||||
attrs.phys.port_number = bp->pf.port_id;
|
||||
memcpy(attrs.switch_id.id, bp->dsn, sizeof(bp->dsn));
|
||||
attrs.switch_id.id_len = sizeof(bp->dsn);
|
||||
devlink_port_attrs_set(&bp->dl_port, &attrs);
|
||||
rc = devlink_port_register(dl, &bp->dl_port, bp->pf.port_id);
|
||||
if (rc) {
|
||||
netdev_err(bp->dev, "devlink_port_register failed\n");
|
||||
|
@@ -312,6 +312,7 @@ int ice_devlink_create_port(struct ice_pf *pf)
|
||||
struct devlink *devlink = priv_to_devlink(pf);
|
||||
struct ice_vsi *vsi = ice_get_main_vsi(pf);
|
||||
struct device *dev = ice_pf_to_dev(pf);
|
||||
struct devlink_port_attrs attrs = {};
|
||||
int err;
|
||||
|
||||
if (!vsi) {
|
||||
@@ -319,8 +320,9 @@ int ice_devlink_create_port(struct ice_pf *pf)
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
devlink_port_attrs_set(&pf->devlink_port, DEVLINK_PORT_FLAVOUR_PHYSICAL,
|
||||
pf->hw.pf_id, false, 0, NULL, 0);
|
||||
attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL;
|
||||
attrs.phys.port_number = pf->hw.pf_id;
|
||||
devlink_port_attrs_set(&pf->devlink_port, &attrs);
|
||||
err = devlink_port_register(devlink, &pf->devlink_port, pf->hw.pf_id);
|
||||
if (err) {
|
||||
dev_err(dev, "devlink_port_register failed: %d\n", err);
|
||||
|
@@ -6,17 +6,16 @@
|
||||
int mlx5e_devlink_port_register(struct mlx5e_priv *priv)
|
||||
{
|
||||
struct devlink *devlink = priv_to_devlink(priv->mdev);
|
||||
struct devlink_port_attrs attrs = {};
|
||||
|
||||
if (mlx5_core_is_pf(priv->mdev))
|
||||
devlink_port_attrs_set(&priv->dl_port,
|
||||
DEVLINK_PORT_FLAVOUR_PHYSICAL,
|
||||
PCI_FUNC(priv->mdev->pdev->devfn),
|
||||
false, 0,
|
||||
NULL, 0);
|
||||
else
|
||||
devlink_port_attrs_set(&priv->dl_port,
|
||||
DEVLINK_PORT_FLAVOUR_VIRTUAL,
|
||||
0, false, 0, NULL, 0);
|
||||
if (mlx5_core_is_pf(priv->mdev)) {
|
||||
attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL;
|
||||
attrs.phys.port_number = PCI_FUNC(priv->mdev->pdev->devfn);
|
||||
} else {
|
||||
attrs.flavour = DEVLINK_PORT_FLAVOUR_VIRTUAL;
|
||||
}
|
||||
|
||||
devlink_port_attrs_set(&priv->dl_port, &attrs);
|
||||
|
||||
return devlink_port_register(devlink, &priv->dl_port, 1);
|
||||
}
|
||||
|
@@ -1185,6 +1185,7 @@ static int register_devlink_port(struct mlx5_core_dev *dev,
|
||||
{
|
||||
struct devlink *devlink = priv_to_devlink(dev);
|
||||
struct mlx5_eswitch_rep *rep = rpriv->rep;
|
||||
struct devlink_port_attrs attrs = {};
|
||||
struct netdev_phys_item_id ppid = {};
|
||||
unsigned int dl_port_index = 0;
|
||||
u16 pfnum;
|
||||
@@ -1195,19 +1196,16 @@ static int register_devlink_port(struct mlx5_core_dev *dev,
|
||||
mlx5e_rep_get_port_parent_id(rpriv->netdev, &ppid);
|
||||
dl_port_index = mlx5_esw_vport_to_devlink_port_index(dev, rep->vport);
|
||||
pfnum = PCI_FUNC(dev->pdev->devfn);
|
||||
|
||||
attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL;
|
||||
attrs.phys.port_number = pfnum;
|
||||
memcpy(attrs.switch_id.id, &ppid.id[0], ppid.id_len);
|
||||
attrs.switch_id.id_len = ppid.id_len;
|
||||
if (rep->vport == MLX5_VPORT_UPLINK)
|
||||
devlink_port_attrs_set(&rpriv->dl_port,
|
||||
DEVLINK_PORT_FLAVOUR_PHYSICAL,
|
||||
pfnum, false, 0,
|
||||
&ppid.id[0], ppid.id_len);
|
||||
devlink_port_attrs_set(&rpriv->dl_port, &attrs);
|
||||
else if (rep->vport == MLX5_VPORT_PF)
|
||||
devlink_port_attrs_pci_pf_set(&rpriv->dl_port,
|
||||
&ppid.id[0], ppid.id_len,
|
||||
pfnum);
|
||||
devlink_port_attrs_pci_pf_set(&rpriv->dl_port, pfnum);
|
||||
else if (mlx5_eswitch_is_vf_vport(dev->priv.eswitch, rpriv->rep->vport))
|
||||
devlink_port_attrs_pci_vf_set(&rpriv->dl_port,
|
||||
&ppid.id[0], ppid.id_len,
|
||||
pfnum, rep->vport - 1);
|
||||
|
||||
return devlink_port_register(devlink, &rpriv->dl_port, dl_port_index);
|
||||
|
@@ -2129,12 +2129,17 @@ static int __mlxsw_core_port_init(struct mlxsw_core *mlxsw_core, u8 local_port,
|
||||
struct mlxsw_core_port *mlxsw_core_port =
|
||||
&mlxsw_core->ports[local_port];
|
||||
struct devlink_port *devlink_port = &mlxsw_core_port->devlink_port;
|
||||
struct devlink_port_attrs attrs = {};
|
||||
int err;
|
||||
|
||||
attrs.split = split;
|
||||
attrs.flavour = flavour;
|
||||
attrs.phys.port_number = port_number;
|
||||
attrs.phys.split_subport_number = split_port_subnumber;
|
||||
memcpy(attrs.switch_id.id, switch_id, switch_id_len);
|
||||
attrs.switch_id.id_len = switch_id_len;
|
||||
mlxsw_core_port->local_port = local_port;
|
||||
devlink_port_attrs_set(devlink_port, flavour, port_number,
|
||||
split, split_port_subnumber,
|
||||
switch_id, switch_id_len);
|
||||
devlink_port_attrs_set(devlink_port, &attrs);
|
||||
err = devlink_port_register(devlink, devlink_port, local_port);
|
||||
if (err)
|
||||
memset(mlxsw_core_port, 0, sizeof(*mlxsw_core_port));
|
||||
|
@@ -353,6 +353,7 @@ const struct devlink_ops nfp_devlink_ops = {
|
||||
|
||||
int nfp_devlink_port_register(struct nfp_app *app, struct nfp_port *port)
|
||||
{
|
||||
struct devlink_port_attrs attrs = {};
|
||||
struct nfp_eth_table_port eth_port;
|
||||
struct devlink *devlink;
|
||||
const u8 *serial;
|
||||
@@ -365,10 +366,14 @@ int nfp_devlink_port_register(struct nfp_app *app, struct nfp_port *port)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
attrs.split = eth_port.is_split;
|
||||
attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL;
|
||||
attrs.phys.port_number = eth_port.label_port;
|
||||
attrs.phys.split_subport_number = eth_port.label_subport;
|
||||
serial_len = nfp_cpp_serial(port->app->cpp, &serial);
|
||||
devlink_port_attrs_set(&port->dl_port, DEVLINK_PORT_FLAVOUR_PHYSICAL,
|
||||
eth_port.label_port, eth_port.is_split,
|
||||
eth_port.label_subport, serial, serial_len);
|
||||
memcpy(attrs.switch_id.id, serial, serial_len);
|
||||
attrs.switch_id.id_len = serial_len;
|
||||
devlink_port_attrs_set(&port->dl_port, &attrs);
|
||||
|
||||
devlink = priv_to_devlink(app->pf);
|
||||
|
||||
|
@@ -69,6 +69,7 @@ void ionic_devlink_free(struct ionic *ionic)
|
||||
int ionic_devlink_register(struct ionic *ionic)
|
||||
{
|
||||
struct devlink *dl = priv_to_devlink(ionic);
|
||||
struct devlink_port_attrs attrs = {};
|
||||
int err;
|
||||
|
||||
err = devlink_register(dl, ionic->dev);
|
||||
@@ -77,8 +78,8 @@ int ionic_devlink_register(struct ionic *ionic)
|
||||
return err;
|
||||
}
|
||||
|
||||
devlink_port_attrs_set(&ionic->dl_port, DEVLINK_PORT_FLAVOUR_PHYSICAL,
|
||||
0, false, 0, NULL, 0);
|
||||
attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL;
|
||||
devlink_port_attrs_set(&ionic->dl_port, &attrs);
|
||||
err = devlink_port_register(dl, &ionic->dl_port, 0);
|
||||
if (err)
|
||||
dev_err(ionic->dev, "devlink_port_register failed: %d\n", err);
|
||||
|
Reference in New Issue
Block a user