bnxt: Implement ndo_get_port_parent_id()
BNXT only supports SWITCHDEV_ATTR_ID_PORT_PARENT_ID, which makes it a great candidate to be converted to use the ndo_get_port_parent_id() NDO instead of implementing switchdev_port_attr_get(). The conversion is straight forward here since the PF and VF code use the same getter. Since bnxt makes uses of switchdev_port_same_parent_id() convert it to use netdev_port_same_parent_id(). Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
d6abc59694
commit
52d5254a2d
@@ -9981,8 +9981,11 @@ static int bnxt_get_phys_port_name(struct net_device *dev, char *buf,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int bnxt_port_attr_get(struct bnxt *bp, struct switchdev_attr *attr)
|
||||
int bnxt_get_port_parent_id(struct net_device *dev,
|
||||
struct netdev_phys_item_id *ppid)
|
||||
{
|
||||
struct bnxt *bp = netdev_priv(dev);
|
||||
|
||||
if (bp->eswitch_mode != DEVLINK_ESWITCH_MODE_SWITCHDEV)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
@@ -9990,27 +9993,12 @@ int bnxt_port_attr_get(struct bnxt *bp, struct switchdev_attr *attr)
|
||||
if (!BNXT_PF(bp))
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
switch (attr->id) {
|
||||
case SWITCHDEV_ATTR_ID_PORT_PARENT_ID:
|
||||
attr->u.ppid.id_len = sizeof(bp->switch_id);
|
||||
memcpy(attr->u.ppid.id, bp->switch_id, attr->u.ppid.id_len);
|
||||
break;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
ppid->id_len = sizeof(bp->switch_id);
|
||||
memcpy(ppid->id, bp->switch_id, ppid->id_len);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int bnxt_swdev_port_attr_get(struct net_device *dev,
|
||||
struct switchdev_attr *attr)
|
||||
{
|
||||
return bnxt_port_attr_get(netdev_priv(dev), attr);
|
||||
}
|
||||
|
||||
static const struct switchdev_ops bnxt_switchdev_ops = {
|
||||
.switchdev_port_attr_get = bnxt_swdev_port_attr_get
|
||||
};
|
||||
|
||||
static const struct net_device_ops bnxt_netdev_ops = {
|
||||
.ndo_open = bnxt_open,
|
||||
.ndo_start_xmit = bnxt_start_xmit,
|
||||
@@ -10042,6 +10030,7 @@ static const struct net_device_ops bnxt_netdev_ops = {
|
||||
.ndo_bpf = bnxt_xdp,
|
||||
.ndo_bridge_getlink = bnxt_bridge_getlink,
|
||||
.ndo_bridge_setlink = bnxt_bridge_setlink,
|
||||
.ndo_get_port_parent_id = bnxt_get_port_parent_id,
|
||||
.ndo_get_phys_port_name = bnxt_get_phys_port_name
|
||||
};
|
||||
|
||||
@@ -10400,7 +10389,6 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
dev->netdev_ops = &bnxt_netdev_ops;
|
||||
dev->watchdog_timeo = BNXT_TX_TIMEOUT;
|
||||
dev->ethtool_ops = &bnxt_ethtool_ops;
|
||||
SWITCHDEV_SET_OPS(dev, &bnxt_switchdev_ops);
|
||||
pci_set_drvdata(pdev, dev);
|
||||
|
||||
rc = bnxt_alloc_hwrm_resources(bp);
|
||||
|
Reference in New Issue
Block a user