All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 net-next 0/3] More aggressive DSA cleanup
@ 2022-02-10 13:44 Vladimir Oltean
  2022-02-10 13:44 ` [PATCH v2 net-next 1/3] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id Vladimir Oltean
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Vladimir Oltean @ 2022-02-10 13:44 UTC (permalink / raw)
  To: netdev
  Cc: David S. Miller, Jakub Kicinski, Andrew Lunn, Vivien Didelot,
	Florian Fainelli

This series deletes some code which is apparently not needed.

I've had these patches in my tree for a while, and testing on my boards
didn't reveal any issues.

Compared to the RFC v1 series, the only change is the addition of patch 3.
https://patchwork.kernel.org/project/netdevbpf/cover/20220107184842.550334-1-vladimir.oltean@nxp.com/

Vladimir Oltean (3):
  net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id
  net: dsa: remove lockdep class for DSA master address list
  net: dsa: remove lockdep class for DSA slave address list

 net/dsa/master.c |  4 ----
 net/dsa/slave.c  | 54 +-----------------------------------------------
 2 files changed, 1 insertion(+), 57 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2 net-next 1/3] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id
  2022-02-10 13:44 [PATCH v2 net-next 0/3] More aggressive DSA cleanup Vladimir Oltean
@ 2022-02-10 13:44 ` Vladimir Oltean
  2022-02-10 13:44 ` [PATCH v2 net-next 2/3] net: dsa: remove lockdep class for DSA master address list Vladimir Oltean
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Vladimir Oltean @ 2022-02-10 13:44 UTC (permalink / raw)
  To: netdev
  Cc: David S. Miller, Jakub Kicinski, Andrew Lunn, Vivien Didelot,
	Florian Fainelli, Ido Schimmel, Jiri Pirko

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>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
---
 net/dsa/slave.c | 42 +-----------------------------------------
 1 file changed, 1 insertion(+), 41 deletions(-)

diff --git a/net/dsa/slave.c b/net/dsa/slave.c
index 2b5b0f294233..62966fa6022f 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,
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v2 net-next 2/3] net: dsa: remove lockdep class for DSA master address list
  2022-02-10 13:44 [PATCH v2 net-next 0/3] More aggressive DSA cleanup Vladimir Oltean
  2022-02-10 13:44 ` [PATCH v2 net-next 1/3] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id Vladimir Oltean
@ 2022-02-10 13:44 ` Vladimir Oltean
  2022-02-10 13:45 ` [PATCH v2 net-next 3/3] net: dsa: remove lockdep class for DSA slave " Vladimir Oltean
  2022-02-11 12:00 ` [PATCH v2 net-next 0/3] More aggressive DSA cleanup patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: Vladimir Oltean @ 2022-02-10 13:44 UTC (permalink / raw)
  To: netdev
  Cc: David S. Miller, Jakub Kicinski, Andrew Lunn, Vivien Didelot,
	Florian Fainelli, Cong Wang

Since commit 2f1e8ea726e9 ("net: dsa: link interfaces with the DSA
master to get rid of lockdep warnings"), suggested by Cong Wang, the
DSA interfaces and their master have different dev->nested_level, which
makes netif_addr_lock() stop complaining about potentially recursive
locking on the same lock class.

So we no longer need DSA masters to have their own lockdep class.

Cc: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
---
 net/dsa/master.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/net/dsa/master.c b/net/dsa/master.c
index 2199104ca7df..6ac393cc6ea7 100644
--- a/net/dsa/master.c
+++ b/net/dsa/master.c
@@ -330,8 +330,6 @@ static const struct attribute_group dsa_group = {
 	.attrs	= dsa_slave_attrs,
 };
 
-static struct lock_class_key dsa_master_addr_list_lock_key;
-
 int dsa_master_setup(struct net_device *dev, struct dsa_port *cpu_dp)
 {
 	struct dsa_switch *ds = cpu_dp->ds;
@@ -353,8 +351,6 @@ int dsa_master_setup(struct net_device *dev, struct dsa_port *cpu_dp)
 	wmb();
 
 	dev->dsa_ptr = cpu_dp;
-	lockdep_set_class(&dev->addr_list_lock,
-			  &dsa_master_addr_list_lock_key);
 
 	dsa_master_set_promiscuity(dev, 1);
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v2 net-next 3/3] net: dsa: remove lockdep class for DSA slave address list
  2022-02-10 13:44 [PATCH v2 net-next 0/3] More aggressive DSA cleanup Vladimir Oltean
  2022-02-10 13:44 ` [PATCH v2 net-next 1/3] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id Vladimir Oltean
  2022-02-10 13:44 ` [PATCH v2 net-next 2/3] net: dsa: remove lockdep class for DSA master address list Vladimir Oltean
@ 2022-02-10 13:45 ` Vladimir Oltean
  2022-02-11 12:00 ` [PATCH v2 net-next 0/3] More aggressive DSA cleanup patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: Vladimir Oltean @ 2022-02-10 13:45 UTC (permalink / raw)
  To: netdev
  Cc: David S. Miller, Jakub Kicinski, Andrew Lunn, Vivien Didelot,
	Florian Fainelli, Cong Wang

Since commit 2f1e8ea726e9 ("net: dsa: link interfaces with the DSA
master to get rid of lockdep warnings"), suggested by Cong Wang, the
DSA interfaces and their master have different dev->nested_level, which
makes netif_addr_lock() stop complaining about potentially recursive
locking on the same lock class.

So we no longer need DSA slave interfaces to have their own lockdep
class.

Cc: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
 net/dsa/slave.c | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/net/dsa/slave.c b/net/dsa/slave.c
index 62966fa6022f..2f6caf5d037e 100644
--- a/net/dsa/slave.c
+++ b/net/dsa/slave.c
@@ -1877,15 +1877,6 @@ void dsa_slave_setup_tagger(struct net_device *slave)
 		slave->features |= NETIF_F_HW_VLAN_CTAG_FILTER;
 }
 
-static struct lock_class_key dsa_slave_netdev_xmit_lock_key;
-static void dsa_slave_set_lockdep_class_one(struct net_device *dev,
-					    struct netdev_queue *txq,
-					    void *_unused)
-{
-	lockdep_set_class(&txq->_xmit_lock,
-			  &dsa_slave_netdev_xmit_lock_key);
-}
-
 int dsa_slave_suspend(struct net_device *slave_dev)
 {
 	struct dsa_port *dp = dsa_slave_to_port(slave_dev);
@@ -1948,9 +1939,6 @@ int dsa_slave_create(struct dsa_port *port)
 		slave_dev->max_mtu = ds->ops->port_max_mtu(ds, port->index);
 	SET_NETDEV_DEVTYPE(slave_dev, &dsa_type);
 
-	netdev_for_each_tx_queue(slave_dev, dsa_slave_set_lockdep_class_one,
-				 NULL);
-
 	SET_NETDEV_DEV(slave_dev, port->ds->dev);
 	slave_dev->dev.of_node = port->dn;
 	slave_dev->vlan_features = master->vlan_features;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 net-next 0/3] More aggressive DSA cleanup
  2022-02-10 13:44 [PATCH v2 net-next 0/3] More aggressive DSA cleanup Vladimir Oltean
                   ` (2 preceding siblings ...)
  2022-02-10 13:45 ` [PATCH v2 net-next 3/3] net: dsa: remove lockdep class for DSA slave " Vladimir Oltean
@ 2022-02-11 12:00 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: patchwork-bot+netdevbpf @ 2022-02-11 12:00 UTC (permalink / raw)
  To: Vladimir Oltean; +Cc: netdev, davem, kuba, andrew, vivien.didelot, f.fainelli

Hello:

This series was applied to netdev/net-next.git (master)
by David S. Miller <davem@davemloft.net>:

On Thu, 10 Feb 2022 15:44:57 +0200 you wrote:
> This series deletes some code which is apparently not needed.
> 
> I've had these patches in my tree for a while, and testing on my boards
> didn't reveal any issues.
> 
> Compared to the RFC v1 series, the only change is the addition of patch 3.
> https://patchwork.kernel.org/project/netdevbpf/cover/20220107184842.550334-1-vladimir.oltean@nxp.com/
> 
> [...]

Here is the summary with links:
  - [v2,net-next,1/3] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id
    https://git.kernel.org/netdev/net-next/c/45b987d5edf2
  - [v2,net-next,2/3] net: dsa: remove lockdep class for DSA master address list
    https://git.kernel.org/netdev/net-next/c/8db2bc790d20
  - [v2,net-next,3/3] net: dsa: remove lockdep class for DSA slave address list
    https://git.kernel.org/netdev/net-next/c/ddb44bdcdef7

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-02-11 12:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-10 13:44 [PATCH v2 net-next 0/3] More aggressive DSA cleanup Vladimir Oltean
2022-02-10 13:44 ` [PATCH v2 net-next 1/3] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id Vladimir Oltean
2022-02-10 13:44 ` [PATCH v2 net-next 2/3] net: dsa: remove lockdep class for DSA master address list Vladimir Oltean
2022-02-10 13:45 ` [PATCH v2 net-next 3/3] net: dsa: remove lockdep class for DSA slave " Vladimir Oltean
2022-02-11 12:00 ` [PATCH v2 net-next 0/3] More aggressive DSA cleanup patchwork-bot+netdevbpf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.