diff --git a/net/core/dev.c b/net/core/dev.c index 1cf3ad840697..19b84eaa2643 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -8113,7 +8113,8 @@ struct net_device *netdev_upper_get_next_dev_rcu(struct net_device *dev, { struct netdev_adjacent *upper; - WARN_ON_ONCE(!rcu_read_lock_held() && !lockdep_rtnl_is_held()); + WARN_ON_ONCE(!rcu_read_lock_held() && !rcu_read_lock_bh_held() && + !lockdep_rtnl_is_held()); upper = list_entry_rcu((*iter)->next, struct netdev_adjacent, list);