diff mbox series

[RFC,net-next,1/2] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id

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

Checks

Context Check Description
netdev/tree_selection success Clearly marked for net-next
netdev/fixes_present success Fixes tag not required for -next series
netdev/subject_prefix success Link
netdev/cover_letter success Series has a cover letter
netdev/patch_count success Link
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/cc_maintainers warning 3 maintainers not CCed: olteanv@gmail.com davem@davemloft.net kuba@kernel.org
netdev/build_clang success Errors and warnings before: 0 this patch: 0
netdev/module_param success Was 0 now: 0
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/verify_fixes success No Fixes tag
netdev/build_allmodconfig_warn success Errors and warnings before: 0 this patch: 0
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 68 lines checked
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

Vladimir Oltean Jan. 7, 2022, 6:48 p.m. UTC
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(-)

Comments

Andrew Lunn Jan. 7, 2022, 7:37 p.m. UTC | #1
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
Florian Fainelli Jan. 7, 2022, 7:48 p.m. UTC | #2
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>
Vladimir Oltean Jan. 7, 2022, 8 p.m. UTC | #3
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/
Ido Schimmel Jan. 9, 2022, 5:25 p.m. UTC | #4
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>
Jiri Pirko Jan. 10, 2022, 9:33 a.m. UTC | #5
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 mbox series

Patch

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,