Netdev Archive on lore.kernel.org
help / color / mirror / Atom feed
* [RFC PATCH net-next 0/2] More aggressive DSA cleanup
@ 2022-01-07 18:48 Vladimir Oltean
2022-01-07 18:48 ` [RFC PATCH net-next 1/2] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id Vladimir Oltean
2022-01-07 18:48 ` [RFC PATCH net-next 2/2] net: dsa: remove lockdep class for DSA master address list Vladimir Oltean
0 siblings, 2 replies; 9+ messages in thread
From: Vladimir Oltean @ 2022-01-07 18:48 UTC (permalink / raw)
To: netdev; +Cc: Andrew Lunn, Vivien Didelot, Florian Fainelli
I'm sending these as RFC because I'm not 100% sure and may be missing
something. I've had these patches in my tree for a while though, and
testing on my boards didn't reveal any issues.
Vladimir Oltean (2):
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/master.c | 4 ----
net/dsa/slave.c | 42 +-----------------------------------------
2 files changed, 1 insertion(+), 45 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [RFC PATCH net-next 1/2] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id
2022-01-07 18:48 [RFC PATCH net-next 0/2] More aggressive DSA cleanup Vladimir Oltean
@ 2022-01-07 18:48 ` Vladimir Oltean
2022-01-07 19:37 ` Andrew Lunn
2022-01-09 17:25 ` Ido Schimmel
2022-01-07 18:48 ` [RFC PATCH net-next 2/2] net: dsa: remove lockdep class for DSA master address list Vladimir Oltean
1 sibling, 2 replies; 9+ messages in thread
From: Vladimir Oltean @ 2022-01-07 18:48 UTC (permalink / raw)
To: netdev; +Cc: Andrew Lunn, Vivien Didelot, Florian Fainelli
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(-)
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,
--
2.25.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [RFC PATCH net-next 2/2] net: dsa: remove lockdep class for DSA master address list
2022-01-07 18:48 [RFC PATCH net-next 0/2] More aggressive DSA cleanup Vladimir Oltean
2022-01-07 18:48 ` [RFC PATCH net-next 1/2] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id Vladimir Oltean
@ 2022-01-07 18:48 ` Vladimir Oltean
2022-01-07 19:57 ` Florian Fainelli
1 sibling, 1 reply; 9+ messages in thread
From: Vladimir Oltean @ 2022-01-07 18:48 UTC (permalink / raw)
To: netdev; +Cc: 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>
---
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 [flat|nested] 9+ messages in thread
* Re: [RFC PATCH net-next 1/2] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id
2022-01-07 18:48 ` [RFC PATCH net-next 1/2] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id Vladimir Oltean
@ 2022-01-07 19:37 ` Andrew Lunn
2022-01-07 19:48 ` Florian Fainelli
2022-01-09 17:25 ` Ido Schimmel
1 sibling, 1 reply; 9+ messages in thread
From: Andrew Lunn @ 2022-01-07 19:37 UTC (permalink / raw)
To: Vladimir Oltean; +Cc: netdev, Vivien Didelot, Florian Fainelli
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC PATCH net-next 1/2] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id
2022-01-07 19:37 ` Andrew Lunn
@ 2022-01-07 19:48 ` Florian Fainelli
2022-01-07 20:00 ` Vladimir Oltean
0 siblings, 1 reply; 9+ messages in thread
From: Florian Fainelli @ 2022-01-07 19:48 UTC (permalink / raw)
To: Andrew Lunn, Vladimir Oltean; +Cc: netdev, Vivien Didelot
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>
--
Florian
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC PATCH net-next 2/2] net: dsa: remove lockdep class for DSA master address list
2022-01-07 18:48 ` [RFC PATCH net-next 2/2] net: dsa: remove lockdep class for DSA master address list Vladimir Oltean
@ 2022-01-07 19:57 ` Florian Fainelli
0 siblings, 0 replies; 9+ messages in thread
From: Florian Fainelli @ 2022-01-07 19:57 UTC (permalink / raw)
To: Vladimir Oltean, netdev; +Cc: Andrew Lunn, Vivien Didelot, Cong Wang
On 1/7/22 10:48 AM, Vladimir Oltean wrote:
> 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>
--
Florian
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC PATCH net-next 1/2] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id
2022-01-07 19:48 ` Florian Fainelli
@ 2022-01-07 20:00 ` Vladimir Oltean
0 siblings, 0 replies; 9+ messages in thread
From: Vladimir Oltean @ 2022-01-07 20:00 UTC (permalink / raw)
To: Jiri Pirko, Ido Schimmel
Cc: Andrew Lunn, netdev, Vivien Didelot, Florian Fainelli
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/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC PATCH net-next 1/2] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id
2022-01-07 18:48 ` [RFC PATCH net-next 1/2] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id Vladimir Oltean
2022-01-07 19:37 ` Andrew Lunn
@ 2022-01-09 17:25 ` Ido Schimmel
2022-01-10 9:33 ` Jiri Pirko
1 sibling, 1 reply; 9+ messages in thread
From: Ido Schimmel @ 2022-01-09 17:25 UTC (permalink / raw)
To: Vladimir Oltean; +Cc: netdev, Andrew Lunn, Vivien Didelot, Florian Fainelli
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>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC PATCH net-next 1/2] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id
2022-01-09 17:25 ` Ido Schimmel
@ 2022-01-10 9:33 ` Jiri Pirko
0 siblings, 0 replies; 9+ messages in thread
From: Jiri Pirko @ 2022-01-10 9:33 UTC (permalink / raw)
To: Ido Schimmel
Cc: Vladimir Oltean, netdev, Andrew Lunn, Vivien Didelot, Florian Fainelli
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>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2022-01-10 9:34 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-07 18:48 [RFC PATCH net-next 0/2] More aggressive DSA cleanup Vladimir Oltean
2022-01-07 18:48 ` [RFC PATCH net-next 1/2] net: dsa: remove ndo_get_phys_port_name and ndo_get_port_parent_id Vladimir Oltean
2022-01-07 19:37 ` Andrew Lunn
2022-01-07 19:48 ` Florian Fainelli
2022-01-07 20:00 ` Vladimir Oltean
2022-01-09 17:25 ` Ido Schimmel
2022-01-10 9:33 ` Jiri Pirko
2022-01-07 18:48 ` [RFC PATCH net-next 2/2] net: dsa: remove lockdep class for DSA master address list Vladimir Oltean
2022-01-07 19:57 ` Florian Fainelli
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).