Commit 71f4f89a authored by Vladimir Oltean's avatar Vladimir Oltean Committed by David S. Miller

net: switchdev: recurse into __switchdev_handle_fdb_del_to_device

The difference between __switchdev_handle_fdb_del_to_device and
switchdev_handle_del_to_device is that the former takes an extra
orig_dev argument, while the latter starts with dev == orig_dev.

We should recurse into the variant that does not lose the orig_dev along
the way. This is relevant when deleting FDB entries pointing towards a
bridge (dev changes to the lower interfaces, but orig_dev shouldn't).

The addition helper already recurses properly, just the deletion one
doesn't.

Fixes: 8ca07176 ("net: switchdev: introduce a fanout helper for SWITCHDEV_FDB_{ADD,DEL}_TO_DEVICE")
Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 94111dfc
......@@ -532,10 +532,10 @@ static int __switchdev_handle_fdb_del_to_device(struct net_device *dev,
if (netif_is_bridge_master(lower_dev))
continue;
err = switchdev_handle_fdb_del_to_device(lower_dev, fdb_info,
check_cb,
foreign_dev_check_cb,
del_cb, lag_del_cb);
err = __switchdev_handle_fdb_del_to_device(lower_dev, orig_dev,
fdb_info, check_cb,
foreign_dev_check_cb,
del_cb, lag_del_cb);
if (err && err != -EOPNOTSUPP)
return err;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment