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: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
b28d580e29
commit
7b465f4cf3
@@ -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,
|
|||||||
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,
|
|||||||
* 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,
|
|||||||
* 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 @@ maybe_bridged_with_us:
|
|||||||
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,
|
||||||
|
|||||||
Reference in New Issue
Block a user