Commit 45b0cb8a authored by Neil Horman's avatar Neil Horman Committed by David S. Miller

bonding: Re-enable netpoll over bonding

With the inclusion of previous fixup patches, netpoll over bonding apears to
work reliably with failover conditions.  This reverts Gospos previous commit
c22d7ac8, and allows access again to the netpoll
functionality in the bonding driver.
Signed-off-by: default avatarNeil Horman <nhorman@tuxdriver.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3b410a31
...@@ -184,9 +184,6 @@ static int arp_ip_count; ...@@ -184,9 +184,6 @@ static int arp_ip_count;
static int bond_mode = BOND_MODE_ROUNDROBIN; static int bond_mode = BOND_MODE_ROUNDROBIN;
static int xmit_hashtype = BOND_XMIT_POLICY_LAYER2; static int xmit_hashtype = BOND_XMIT_POLICY_LAYER2;
static int lacp_fast; static int lacp_fast;
#ifdef CONFIG_NET_POLL_CONTROLLER
static int disable_netpoll = 1;
#endif
const struct bond_parm_tbl bond_lacp_tbl[] = { const struct bond_parm_tbl bond_lacp_tbl[] = {
{ "slow", AD_LACP_SLOW}, { "slow", AD_LACP_SLOW},
...@@ -1811,19 +1808,15 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev) ...@@ -1811,19 +1808,15 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
bond_set_carrier(bond); bond_set_carrier(bond);
#ifdef CONFIG_NET_POLL_CONTROLLER #ifdef CONFIG_NET_POLL_CONTROLLER
if (disable_netpoll) { if (slaves_support_netpoll(bond_dev)) {
bond_dev->priv_flags &= ~IFF_DISABLE_NETPOLL;
if (bond_dev->npinfo)
slave_dev->npinfo = bond_dev->npinfo;
} else if (!(bond_dev->priv_flags & IFF_DISABLE_NETPOLL)) {
bond_dev->priv_flags |= IFF_DISABLE_NETPOLL; bond_dev->priv_flags |= IFF_DISABLE_NETPOLL;
} else { pr_info("New slave device %s does not support netpoll\n",
if (slaves_support_netpoll(bond_dev)) { slave_dev->name);
bond_dev->priv_flags &= ~IFF_DISABLE_NETPOLL; pr_info("Disabling netpoll support for %s\n", bond_dev->name);
if (bond_dev->npinfo)
slave_dev->npinfo = bond_dev->npinfo;
} else if (!(bond_dev->priv_flags & IFF_DISABLE_NETPOLL)) {
bond_dev->priv_flags |= IFF_DISABLE_NETPOLL;
pr_info("New slave device %s does not support netpoll\n",
slave_dev->name);
pr_info("Disabling netpoll support for %s\n", bond_dev->name);
}
} }
#endif #endif
read_unlock(&bond->lock); read_unlock(&bond->lock);
...@@ -2030,10 +2023,8 @@ int bond_release(struct net_device *bond_dev, struct net_device *slave_dev) ...@@ -2030,10 +2023,8 @@ int bond_release(struct net_device *bond_dev, struct net_device *slave_dev)
#ifdef CONFIG_NET_POLL_CONTROLLER #ifdef CONFIG_NET_POLL_CONTROLLER
read_lock_bh(&bond->lock); read_lock_bh(&bond->lock);
/* Make sure netpoll over stays disabled until fixed. */ if (slaves_support_netpoll(bond_dev))
if (!disable_netpoll) bond_dev->priv_flags &= ~IFF_DISABLE_NETPOLL;
if (slaves_support_netpoll(bond_dev))
bond_dev->priv_flags &= ~IFF_DISABLE_NETPOLL;
read_unlock_bh(&bond->lock); read_unlock_bh(&bond->lock);
if (slave_dev->netdev_ops->ndo_netpoll_cleanup) if (slave_dev->netdev_ops->ndo_netpoll_cleanup)
slave_dev->netdev_ops->ndo_netpoll_cleanup(slave_dev); slave_dev->netdev_ops->ndo_netpoll_cleanup(slave_dev);
......
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