net: ocelot: Fix the call to switchdev_bridge_port_offload
authorHoratiu Vultur <horatiu.vultur@microchip.com>
Mon, 17 Jan 2022 12:53:00 +0000 (13:53 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jan 2022 10:05:41 +0000 (11:05 +0100)
commit c0b7f7d7e0ad44f35745c01964b3fa2833e298cb upstream.

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>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/mscc/ocelot_net.c

index 2545727fd5b2f31288683a8648629f4fb7cb9e3f..c08c56e07b1d3a97f968aec42834967b071f68a2 100644 (file)
@@ -1168,7 +1168,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)
@@ -1182,7 +1182,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);
@@ -1195,7 +1195,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);
 }