|
@@ -971,16 +971,13 @@ static void bond_poll_controller(struct net_device *bond_dev)
|
|
|
struct slave *slave = NULL;
|
|
|
struct list_head *iter;
|
|
|
struct ad_info ad_info;
|
|
|
- struct netpoll_info *ni;
|
|
|
- const struct net_device_ops *ops;
|
|
|
|
|
|
if (BOND_MODE(bond) == BOND_MODE_8023AD)
|
|
|
if (bond_3ad_get_active_agg_info(bond, &ad_info))
|
|
|
return;
|
|
|
|
|
|
bond_for_each_slave_rcu(bond, slave, iter) {
|
|
|
- ops = slave->dev->netdev_ops;
|
|
|
- if (!bond_slave_is_up(slave) || !ops->ndo_poll_controller)
|
|
|
+ if (!bond_slave_is_up(slave))
|
|
|
continue;
|
|
|
|
|
|
if (BOND_MODE(bond) == BOND_MODE_8023AD) {
|
|
@@ -992,11 +989,7 @@ static void bond_poll_controller(struct net_device *bond_dev)
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- ni = rcu_dereference_bh(slave->dev->npinfo);
|
|
|
- if (down_trylock(&ni->dev_lock))
|
|
|
- continue;
|
|
|
- ops->ndo_poll_controller(slave->dev);
|
|
|
- up(&ni->dev_lock);
|
|
|
+ netpoll_poll_dev(slave->dev);
|
|
|
}
|
|
|
}
|
|
|
|