Commit 93f62ad5 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller

bonding: use netpoll_poll_dev() helper

We want to allow NAPI drivers to no longer provide
ndo_poll_controller() method, as it has been proven problematic.

team driver must not look at its presence, but instead call
netpoll_poll_dev() which factorize the needed actions.
Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Cc: Jay Vosburgh <j.vosburgh@gmail.com>
Cc: Veaceslav Falico <vfalico@gmail.com>
Cc: Andy Gospodarek <andy@greyhouse.net>
Acked-by: default avatarJay Vosburgh <jay.vosburgh@canonical.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ac3d9dd0
...@@ -971,16 +971,13 @@ static void bond_poll_controller(struct net_device *bond_dev) ...@@ -971,16 +971,13 @@ static void bond_poll_controller(struct net_device *bond_dev)
struct slave *slave = NULL; struct slave *slave = NULL;
struct list_head *iter; struct list_head *iter;
struct ad_info ad_info; struct ad_info ad_info;
struct netpoll_info *ni;
const struct net_device_ops *ops;
if (BOND_MODE(bond) == BOND_MODE_8023AD) if (BOND_MODE(bond) == BOND_MODE_8023AD)
if (bond_3ad_get_active_agg_info(bond, &ad_info)) if (bond_3ad_get_active_agg_info(bond, &ad_info))
return; return;
bond_for_each_slave_rcu(bond, slave, iter) { bond_for_each_slave_rcu(bond, slave, iter) {
ops = slave->dev->netdev_ops; if (!bond_slave_is_up(slave))
if (!bond_slave_is_up(slave) || !ops->ndo_poll_controller)
continue; continue;
if (BOND_MODE(bond) == BOND_MODE_8023AD) { if (BOND_MODE(bond) == BOND_MODE_8023AD) {
...@@ -992,11 +989,7 @@ static void bond_poll_controller(struct net_device *bond_dev) ...@@ -992,11 +989,7 @@ static void bond_poll_controller(struct net_device *bond_dev)
continue; continue;
} }
ni = rcu_dereference_bh(slave->dev->npinfo); netpoll_poll_dev(slave->dev);
if (down_trylock(&ni->dev_lock))
continue;
ops->ndo_poll_controller(slave->dev);
up(&ni->dev_lock);
} }
} }
......
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