aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bonding/bonding.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/bonding/bonding.h')
-rw-r--r--drivers/net/bonding/bonding.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/bonding/bonding.h b/drivers/net/bonding/bonding.h
index da809645c483..cecdea2a629f 100644
--- a/drivers/net/bonding/bonding.h
+++ b/drivers/net/bonding/bonding.h
@@ -131,6 +131,7 @@ struct bond_params {
131 char primary[IFNAMSIZ]; 131 char primary[IFNAMSIZ];
132 int primary_reselect; 132 int primary_reselect;
133 __be32 arp_targets[BOND_MAX_ARP_TARGETS]; 133 __be32 arp_targets[BOND_MAX_ARP_TARGETS];
134 int all_slaves_active;
134}; 135};
135 136
136struct bond_parm_tbl { 137struct bond_parm_tbl {
@@ -290,7 +291,8 @@ static inline void bond_set_slave_inactive_flags(struct slave *slave)
290 struct bonding *bond = netdev_priv(slave->dev->master); 291 struct bonding *bond = netdev_priv(slave->dev->master);
291 if (!bond_is_lb(bond)) 292 if (!bond_is_lb(bond))
292 slave->state = BOND_STATE_BACKUP; 293 slave->state = BOND_STATE_BACKUP;
293 slave->dev->priv_flags |= IFF_SLAVE_INACTIVE; 294 if (!bond->params.all_slaves_active)
295 slave->dev->priv_flags |= IFF_SLAVE_INACTIVE;
294 if (slave_do_arp_validate(bond, slave)) 296 if (slave_do_arp_validate(bond, slave))
295 slave->dev->priv_flags |= IFF_SLAVE_NEEDARP; 297 slave->dev->priv_flags |= IFF_SLAVE_NEEDARP;
296} 298}