Message ID | 20220117125300.2399394-1-horatiu.vultur@microchip.com (mailing list archive) |
---|---|
State | Accepted |
Commit | c0b7f7d7e0ad44f35745c01964b3fa2833e298cb |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] net: ocelot: Fix the call to switchdev_bridge_port_offload | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Clearly marked for net |
netdev/apply | success | Patch already applied to net |
On Mon, Jan 17, 2022 at 01:53:00PM +0100, Horatiu Vultur wrote: > In the blamed commit, the call to the function > switchdev_bridge_port_offload was passing the wrong argument for > atomic_nb. It was ocelot_netdevice_nb instead of ocelot_swtchdev_nb. > This patch fixes this issue. > > Fixes: 4e51bf44a03af6 ("net: bridge: move the switchdev object replay helpers to "push" mode") > Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com> > --- > drivers/net/ethernet/mscc/ocelot_net.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/ethernet/mscc/ocelot_net.c b/drivers/net/ethernet/mscc/ocelot_net.c > index 8115c3db252e..e271b6225b72 100644 > --- a/drivers/net/ethernet/mscc/ocelot_net.c > +++ b/drivers/net/ethernet/mscc/ocelot_net.c > @@ -1187,7 +1187,7 @@ static int ocelot_netdevice_bridge_join(struct net_device *dev, > ocelot_port_bridge_join(ocelot, port, bridge); > > err = switchdev_bridge_port_offload(brport_dev, dev, priv, > - &ocelot_netdevice_nb, > + &ocelot_switchdev_nb, > &ocelot_switchdev_blocking_nb, > false, extack); > if (err) > @@ -1201,7 +1201,7 @@ static int ocelot_netdevice_bridge_join(struct net_device *dev, > > err_switchdev_sync: > switchdev_bridge_port_unoffload(brport_dev, priv, > - &ocelot_netdevice_nb, > + &ocelot_switchdev_nb, > &ocelot_switchdev_blocking_nb); > err_switchdev_offload: > ocelot_port_bridge_leave(ocelot, port, bridge); > @@ -1214,7 +1214,7 @@ static void ocelot_netdevice_pre_bridge_leave(struct net_device *dev, > struct ocelot_port_private *priv = netdev_priv(dev); > > switchdev_bridge_port_unoffload(brport_dev, priv, > - &ocelot_netdevice_nb, > + &ocelot_switchdev_nb, > &ocelot_switchdev_blocking_nb); > } > > -- > 2.33.0 > Oh my... I remember noticing this issue when preparing those patches, and also noticed that ocelot doesn't implement SWITCHDEV_FDB_{ADD,DEL}_TO_DEVICE anyway. So I wanted to pass NULL anyway. I don't know what happened, I must have made the fixup on a branch which wasn't the branch that I posted. Anyway. Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Hello: This patch was applied to netdev/net.git (master) by David S. Miller <davem@davemloft.net>: On Mon, 17 Jan 2022 13:53:00 +0100 you wrote: > In the blamed commit, the call to the function > switchdev_bridge_port_offload was passing the wrong argument for > atomic_nb. It was ocelot_netdevice_nb instead of ocelot_swtchdev_nb. > This patch fixes this issue. > > Fixes: 4e51bf44a03af6 ("net: bridge: move the switchdev object replay helpers to "push" mode") > Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com> > > [...] Here is the summary with links: - [net] net: ocelot: Fix the call to switchdev_bridge_port_offload https://git.kernel.org/netdev/net/c/c0b7f7d7e0ad You are awesome, thank you!
diff --git a/drivers/net/ethernet/mscc/ocelot_net.c b/drivers/net/ethernet/mscc/ocelot_net.c index 8115c3db252e..e271b6225b72 100644 --- a/drivers/net/ethernet/mscc/ocelot_net.c +++ b/drivers/net/ethernet/mscc/ocelot_net.c @@ -1187,7 +1187,7 @@ static int ocelot_netdevice_bridge_join(struct net_device *dev, ocelot_port_bridge_join(ocelot, port, bridge); err = switchdev_bridge_port_offload(brport_dev, dev, priv, - &ocelot_netdevice_nb, + &ocelot_switchdev_nb, &ocelot_switchdev_blocking_nb, false, extack); if (err) @@ -1201,7 +1201,7 @@ static int ocelot_netdevice_bridge_join(struct net_device *dev, err_switchdev_sync: switchdev_bridge_port_unoffload(brport_dev, priv, - &ocelot_netdevice_nb, + &ocelot_switchdev_nb, &ocelot_switchdev_blocking_nb); err_switchdev_offload: ocelot_port_bridge_leave(ocelot, port, bridge); @@ -1214,7 +1214,7 @@ static void ocelot_netdevice_pre_bridge_leave(struct net_device *dev, struct ocelot_port_private *priv = netdev_priv(dev); switchdev_bridge_port_unoffload(brport_dev, priv, - &ocelot_netdevice_nb, + &ocelot_switchdev_nb, &ocelot_switchdev_blocking_nb); }
In the blamed commit, the call to the function switchdev_bridge_port_offload was passing the wrong argument for atomic_nb. It was ocelot_netdevice_nb instead of ocelot_swtchdev_nb. This patch fixes this issue. Fixes: 4e51bf44a03af6 ("net: bridge: move the switchdev object replay helpers to "push" mode") Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com> --- drivers/net/ethernet/mscc/ocelot_net.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)