Message ID | 20190205221311.18476-11-f.fainelli@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | net: Introduce ndo_get_port_parent_id() | expand |
On 2/5/19 2:13 PM, Florian Fainelli wrote: > ethsw implements SWITCHDEV_ATTR_ID_PORT_PARENT_ID and we want to get rid > of switchdev_ops eventually, ease that migration by implementing a > ndo_get_port_parent_id() function which returns what > switchdev_port_attr_get() would do. > > Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> > --- > drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 17 ++++++++++++----- > 1 file changed, 12 insertions(+), 5 deletions(-) > > diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c > index daabaceeea52..622f32377b91 100644 > --- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c > +++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c > @@ -505,6 +505,17 @@ static netdev_tx_t port_dropframe(struct sk_buff *skb, > return NETDEV_TX_OK; > } > > +static int swdev_get_port_parent_id(struct net_device *dev, > + struct netdev_phys_item_id *ppid) > +{ > + struct ethsw_port_priv *port_priv = netdev_priv(dev); > + > + ppid->id_len = 1; > + ppid->id[0] = port_priv->ethsw_data->dev_id; > + > + return 0; > +} > + > static const struct net_device_ops ethsw_port_ops = { > .ndo_open = port_open, > .ndo_stop = port_stop, > @@ -515,6 +526,7 @@ static const struct net_device_ops ethsw_port_ops = { > .ndo_get_offload_stats = port_get_offload_stats, > > .ndo_start_xmit = port_dropframe, > + .ndo_get_port_parent_id = swdev_get_port_parent_id, > }; > > static void ethsw_links_state_update(struct ethsw_core *ethsw) > @@ -634,10 +646,6 @@ static int swdev_port_attr_get(struct net_device *netdev, > struct ethsw_port_priv *port_priv = netdev_priv(netdev); > > switch (attr->id) { > - case SWITCHDEV_ATTR_ID_PORT_PARENT_ID: > - attr->u.ppid.id_len = 1; > - attr->u.ppid.id[0] = port_priv->ethsw_data->dev_id; > - break; > case SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS: > attr->u.brport_flags = > (port_priv->ethsw_data->learning ? BR_LEARNING : 0) | > @@ -1434,7 +1442,6 @@ static int ethsw_probe_port(struct ethsw_core *ethsw, u16 port_idx) > SET_NETDEV_DEV(port_netdev, dev); > port_netdev->netdev_ops = ðsw_port_ops; > port_netdev->ethtool_ops = ðsw_port_ethtool_ops; > - port_netdev->switchdev_ops = ðsw_port_switchdev_ops; This hunk should not be removed, I will respin a new version after getting feedback.
diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c index daabaceeea52..622f32377b91 100644 --- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c +++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c @@ -505,6 +505,17 @@ static netdev_tx_t port_dropframe(struct sk_buff *skb, return NETDEV_TX_OK; } +static int swdev_get_port_parent_id(struct net_device *dev, + struct netdev_phys_item_id *ppid) +{ + struct ethsw_port_priv *port_priv = netdev_priv(dev); + + ppid->id_len = 1; + ppid->id[0] = port_priv->ethsw_data->dev_id; + + return 0; +} + static const struct net_device_ops ethsw_port_ops = { .ndo_open = port_open, .ndo_stop = port_stop, @@ -515,6 +526,7 @@ static const struct net_device_ops ethsw_port_ops = { .ndo_get_offload_stats = port_get_offload_stats, .ndo_start_xmit = port_dropframe, + .ndo_get_port_parent_id = swdev_get_port_parent_id, }; static void ethsw_links_state_update(struct ethsw_core *ethsw) @@ -634,10 +646,6 @@ static int swdev_port_attr_get(struct net_device *netdev, struct ethsw_port_priv *port_priv = netdev_priv(netdev); switch (attr->id) { - case SWITCHDEV_ATTR_ID_PORT_PARENT_ID: - attr->u.ppid.id_len = 1; - attr->u.ppid.id[0] = port_priv->ethsw_data->dev_id; - break; case SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS: attr->u.brport_flags = (port_priv->ethsw_data->learning ? BR_LEARNING : 0) | @@ -1434,7 +1442,6 @@ static int ethsw_probe_port(struct ethsw_core *ethsw, u16 port_idx) SET_NETDEV_DEV(port_netdev, dev); port_netdev->netdev_ops = ðsw_port_ops; port_netdev->ethtool_ops = ðsw_port_ethtool_ops; - port_netdev->switchdev_ops = ðsw_port_switchdev_ops; /* Set MTU limits */ port_netdev->min_mtu = ETH_MIN_MTU;
ethsw implements SWITCHDEV_ATTR_ID_PORT_PARENT_ID and we want to get rid of switchdev_ops eventually, ease that migration by implementing a ndo_get_port_parent_id() function which returns what switchdev_port_attr_get() would do. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> --- drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-)