Message ID | 20220107184842.550334-2-vladimir.oltean@nxp.com (mailing list archive) |
---|---|
State | RFC |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | More aggressive DSA cleanup | expand |
On Fri, Jan 07, 2022 at 08:48:41PM +0200, Vladimir Oltean wrote: > There are no legacy ports, DSA registers a devlink instance with ports > unconditionally for all switch drivers. Therefore, delete the old-style > ndo operations used for determining bridge forwarding domains. > > Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Hi Vladimir Maybe ask Ido or Jiri to review this? But none of the Mellanox drivers use use these ndo's, suggesting it is correct. Andrew
On 1/7/22 11:37 AM, Andrew Lunn wrote: > On Fri, Jan 07, 2022 at 08:48:41PM +0200, Vladimir Oltean wrote: >> There are no legacy ports, DSA registers a devlink instance with ports >> unconditionally for all switch drivers. Therefore, delete the old-style >> ndo operations used for determining bridge forwarding domains. >> >> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> > > Hi Vladimir > > Maybe ask Ido or Jiri to review this? But none of the Mellanox drivers > use use these ndo's, suggesting it is correct. I confirmed that /sys/class/net/*/phys_port_name continues to work before and after this patch, so: Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Tested-by: Florian Fainelli <f.fainelli@gmail.com>
On Fri, Jan 07, 2022 at 11:48:30AM -0800, Florian Fainelli wrote: > On 1/7/22 11:37 AM, Andrew Lunn wrote: > > On Fri, Jan 07, 2022 at 08:48:41PM +0200, Vladimir Oltean wrote: > >> There are no legacy ports, DSA registers a devlink instance with ports > >> unconditionally for all switch drivers. Therefore, delete the old-style > >> ndo operations used for determining bridge forwarding domains. > >> > >> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> > > > > Hi Vladimir > > > > Maybe ask Ido or Jiri to review this? But none of the Mellanox drivers > > use use these ndo's, suggesting it is correct. > > I confirmed that /sys/class/net/*/phys_port_name continues to work > before and after this patch, so: > > Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> > Tested-by: Florian Fainelli <f.fainelli@gmail.com> Hi Jiri, Ido, could you please take a look? Patch content got cut, but it's right here: https://patchwork.kernel.org/project/netdevbpf/patch/20220107184842.550334-2-vladimir.oltean@nxp.com/
On Fri, Jan 07, 2022 at 08:48:41PM +0200, Vladimir Oltean wrote: > There are no legacy ports, DSA registers a devlink instance with ports > unconditionally for all switch drivers. Therefore, delete the old-style > ndo operations used for determining bridge forwarding domains. > > Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Looks correct to me. If ndo_get_phys_port_name() is not implemented, then devlink_compat_phys_port_name_get() is called which invokes ndo_get_devlink_port() that you have implemented. Similarly, for ndo_get_port_parent_id(). Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Sun, Jan 09, 2022 at 06:25:38PM CET, idosch@idosch.org wrote: >On Fri, Jan 07, 2022 at 08:48:41PM +0200, Vladimir Oltean wrote: >> There are no legacy ports, DSA registers a devlink instance with ports >> unconditionally for all switch drivers. Therefore, delete the old-style >> ndo operations used for determining bridge forwarding domains. >> >> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> > >Looks correct to me. +1 > >If ndo_get_phys_port_name() is not implemented, then >devlink_compat_phys_port_name_get() is called which invokes >ndo_get_devlink_port() that you have implemented. Similarly, for >ndo_get_port_parent_id(). > >Reviewed-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: Jiri Pirko <jiri@nvidia.com>
diff --git a/net/dsa/slave.c b/net/dsa/slave.c index eccd0288e572..3acb2a2db473 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -515,26 +515,6 @@ static int dsa_slave_port_obj_del(struct net_device *dev, const void *ctx, return err; } -static int dsa_slave_get_port_parent_id(struct net_device *dev, - struct netdev_phys_item_id *ppid) -{ - struct dsa_port *dp = dsa_slave_to_port(dev); - struct dsa_switch *ds = dp->ds; - struct dsa_switch_tree *dst = ds->dst; - - /* For non-legacy ports, devlink is used and it takes - * care of the name generation. This ndo implementation - * should be removed with legacy support. - */ - if (dp->ds->devlink) - return -EOPNOTSUPP; - - ppid->id_len = sizeof(dst->index); - memcpy(&ppid->id, &dst->index, ppid->id_len); - - return 0; -} - static inline netdev_tx_t dsa_slave_netpoll_send_skb(struct net_device *dev, struct sk_buff *skb) { @@ -973,24 +953,6 @@ static void dsa_slave_poll_controller(struct net_device *dev) } #endif -static int dsa_slave_get_phys_port_name(struct net_device *dev, - char *name, size_t len) -{ - struct dsa_port *dp = dsa_slave_to_port(dev); - - /* For non-legacy ports, devlink is used and it takes - * care of the name generation. This ndo implementation - * should be removed with legacy support. - */ - if (dp->ds->devlink) - return -EOPNOTSUPP; - - if (snprintf(name, len, "p%d", dp->index) >= len) - return -EINVAL; - - return 0; -} - static struct dsa_mall_tc_entry * dsa_slave_mall_tc_entry_find(struct net_device *dev, unsigned long cookie) { @@ -1747,7 +1709,7 @@ static struct devlink_port *dsa_slave_get_devlink_port(struct net_device *dev) { struct dsa_port *dp = dsa_slave_to_port(dev); - return dp->ds->devlink ? &dp->devlink_port : NULL; + return &dp->devlink_port; } static void dsa_slave_get_stats64(struct net_device *dev, @@ -1792,10 +1754,8 @@ static const struct net_device_ops dsa_slave_netdev_ops = { .ndo_netpoll_cleanup = dsa_slave_netpoll_cleanup, .ndo_poll_controller = dsa_slave_poll_controller, #endif - .ndo_get_phys_port_name = dsa_slave_get_phys_port_name, .ndo_setup_tc = dsa_slave_setup_tc, .ndo_get_stats64 = dsa_slave_get_stats64, - .ndo_get_port_parent_id = dsa_slave_get_port_parent_id, .ndo_vlan_rx_add_vid = dsa_slave_vlan_rx_add_vid, .ndo_vlan_rx_kill_vid = dsa_slave_vlan_rx_kill_vid, .ndo_get_devlink_port = dsa_slave_get_devlink_port,
There are no legacy ports, DSA registers a devlink instance with ports unconditionally for all switch drivers. Therefore, delete the old-style ndo operations used for determining bridge forwarding domains. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> --- net/dsa/slave.c | 42 +----------------------------------------- 1 file changed, 1 insertion(+), 41 deletions(-)