Commit 7b465f4c authored by Vladimir Oltean's avatar Vladimir Oltean Committed by David S. Miller

net: switchdev: rename switchdev_lower_dev_find to switchdev_lower_dev_find_rcu

switchdev_lower_dev_find() assumes RCU read-side critical section
calling context, since it uses netdev_walk_all_lower_dev_rcu().

Rename it appropriately, in preparation of adding a similar iterator
that assumes writer-side rtnl_mutex protection.
Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b28d580e
...@@ -409,7 +409,7 @@ static int switchdev_lower_dev_walk(struct net_device *lower_dev, ...@@ -409,7 +409,7 @@ static int switchdev_lower_dev_walk(struct net_device *lower_dev,
} }
static struct net_device * static struct net_device *
switchdev_lower_dev_find(struct net_device *dev, switchdev_lower_dev_find_rcu(struct net_device *dev,
bool (*check_cb)(const struct net_device *dev), bool (*check_cb)(const struct net_device *dev),
bool (*foreign_dev_check_cb)(const struct net_device *dev, bool (*foreign_dev_check_cb)(const struct net_device *dev,
const struct net_device *foreign_dev)) const struct net_device *foreign_dev))
...@@ -451,7 +451,7 @@ static int __switchdev_handle_fdb_event_to_device(struct net_device *dev, ...@@ -451,7 +451,7 @@ static int __switchdev_handle_fdb_event_to_device(struct net_device *dev,
return mod_cb(dev, orig_dev, event, info->ctx, fdb_info); return mod_cb(dev, orig_dev, event, info->ctx, fdb_info);
if (netif_is_lag_master(dev)) { if (netif_is_lag_master(dev)) {
if (!switchdev_lower_dev_find(dev, check_cb, foreign_dev_check_cb)) if (!switchdev_lower_dev_find_rcu(dev, check_cb, foreign_dev_check_cb))
goto maybe_bridged_with_us; goto maybe_bridged_with_us;
/* This is a LAG interface that we offload */ /* This is a LAG interface that we offload */
...@@ -465,7 +465,7 @@ static int __switchdev_handle_fdb_event_to_device(struct net_device *dev, ...@@ -465,7 +465,7 @@ static int __switchdev_handle_fdb_event_to_device(struct net_device *dev,
* towards a bridge device. * towards a bridge device.
*/ */
if (netif_is_bridge_master(dev)) { if (netif_is_bridge_master(dev)) {
if (!switchdev_lower_dev_find(dev, check_cb, foreign_dev_check_cb)) if (!switchdev_lower_dev_find_rcu(dev, check_cb, foreign_dev_check_cb))
return 0; return 0;
/* This is a bridge interface that we offload */ /* This is a bridge interface that we offload */
...@@ -478,7 +478,7 @@ static int __switchdev_handle_fdb_event_to_device(struct net_device *dev, ...@@ -478,7 +478,7 @@ static int __switchdev_handle_fdb_event_to_device(struct net_device *dev,
* that we offload. * that we offload.
*/ */
if (!check_cb(lower_dev) && if (!check_cb(lower_dev) &&
!switchdev_lower_dev_find(lower_dev, check_cb, !switchdev_lower_dev_find_rcu(lower_dev, check_cb,
foreign_dev_check_cb)) foreign_dev_check_cb))
continue; continue;
...@@ -501,7 +501,7 @@ static int __switchdev_handle_fdb_event_to_device(struct net_device *dev, ...@@ -501,7 +501,7 @@ static int __switchdev_handle_fdb_event_to_device(struct net_device *dev,
if (!br || !netif_is_bridge_master(br)) if (!br || !netif_is_bridge_master(br))
return 0; return 0;
if (!switchdev_lower_dev_find(br, check_cb, foreign_dev_check_cb)) if (!switchdev_lower_dev_find_rcu(br, check_cb, foreign_dev_check_cb))
return 0; return 0;
return __switchdev_handle_fdb_event_to_device(br, orig_dev, event, fdb_info, return __switchdev_handle_fdb_event_to_device(br, orig_dev, event, fdb_info,
......
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