Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
This commit is contained in:
@@ -333,7 +333,8 @@ static void rlb_update_entry_from_arp(struct bonding *bond, struct arp_pkt *arp)
|
||||
|
||||
if ((client_info->assigned) &&
|
||||
(client_info->ip_src == arp->ip_dst) &&
|
||||
(client_info->ip_dst == arp->ip_src)) {
|
||||
(client_info->ip_dst == arp->ip_src) &&
|
||||
(compare_ether_addr_64bits(client_info->mac_dst, arp->mac_src))) {
|
||||
/* update the clients MAC address */
|
||||
memcpy(client_info->mac_dst, arp->mac_src, ETH_ALEN);
|
||||
client_info->ntt = 1;
|
||||
|
@@ -176,7 +176,7 @@ static int arp_ip_count;
|
||||
static int bond_mode = BOND_MODE_ROUNDROBIN;
|
||||
static int xmit_hashtype = BOND_XMIT_POLICY_LAYER2;
|
||||
static int lacp_fast;
|
||||
|
||||
static int disable_netpoll = 1;
|
||||
|
||||
const struct bond_parm_tbl bond_lacp_tbl[] = {
|
||||
{ "slow", AD_LACP_SLOW},
|
||||
@@ -1766,15 +1766,23 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
|
||||
bond_set_carrier(bond);
|
||||
|
||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
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)) {
|
||||
/*
|
||||
* Netpoll and bonding is broken, make sure it is not initialized
|
||||
* until it is fixed.
|
||||
*/
|
||||
if (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);
|
||||
} else {
|
||||
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;
|
||||
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
|
||||
read_unlock(&bond->lock);
|
||||
@@ -1977,8 +1985,11 @@ int bond_release(struct net_device *bond_dev, struct net_device *slave_dev)
|
||||
|
||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
read_lock_bh(&bond->lock);
|
||||
if (slaves_support_netpoll(bond_dev))
|
||||
bond_dev->priv_flags &= ~IFF_DISABLE_NETPOLL;
|
||||
|
||||
/* Make sure netpoll over stays disabled until fixed. */
|
||||
if (!disable_netpoll)
|
||||
if (slaves_support_netpoll(bond_dev))
|
||||
bond_dev->priv_flags &= ~IFF_DISABLE_NETPOLL;
|
||||
read_unlock_bh(&bond->lock);
|
||||
if (slave_dev->netdev_ops->ndo_netpoll_cleanup)
|
||||
slave_dev->netdev_ops->ndo_netpoll_cleanup(slave_dev);
|
||||
|
Reference in New Issue
Block a user