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 11:03:02 +0000 (12:03 +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 eaeba60b1bba5ef47a0bbb60a3e9a48e8c92cdb6..3cf998813b837b845296e8197b92f3e3a1ec881f 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);
 }