diff options
author | Jiri Pirko <jpirko@redhat.com> | 2011-03-16 11:46:43 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-03-16 22:51:20 +0300 |
commit | 2d7011ca79f1a8792e04d131b8ea21db179ab917 (patch) | |
tree | 5c9c43a4d02c75b3c46e9fff94bb3f77c0607cd7 /drivers | |
parent | e30bc066ab67a4c8abcb972227ffe7c576f06a86 (diff) | |
download | linux-2d7011ca79f1a8792e04d131b8ea21db179ab917.tar.xz |
bonding: get rid of IFF_SLAVE_INACTIVE netdev->priv_flag
Since bond-related code was moved from net/core/dev.c into bonding,
IFF_SLAVE_INACTIVE is no longer needed. Replace is with flag "inactive"
stored in slave structure
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Reviewed-by: Nicolas de Pesloüan <nicolas.2p.debian@free.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/bonding/bond_main.c | 6 | ||||
-rw-r--r-- | drivers/net/bonding/bond_sysfs.c | 4 | ||||
-rw-r--r-- | drivers/net/bonding/bonding.h | 14 |
3 files changed, 14 insertions, 10 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index a3ea44997a2a..04119b1e7cdb 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -1461,7 +1461,7 @@ static bool bond_should_deliver_exact_match(struct sk_buff *skb, struct slave *slave, struct bonding *bond) { - if (slave->dev->priv_flags & IFF_SLAVE_INACTIVE) { + if (bond_is_slave_inactive(slave)) { if (slave_do_arp_validate(bond, slave) && skb->protocol == __cpu_to_be16(ETH_P_ARP)) return false; @@ -2122,7 +2122,7 @@ int bond_release(struct net_device *bond_dev, struct net_device *slave_dev) dev_set_mtu(slave_dev, slave->original_mtu); - slave_dev->priv_flags &= ~(IFF_SLAVE_INACTIVE | IFF_BONDING); + slave_dev->priv_flags &= ~IFF_BONDING; kfree(slave); @@ -2233,8 +2233,6 @@ static int bond_release_all(struct net_device *bond_dev) dev_set_mac_address(slave_dev, &addr); } - slave_dev->priv_flags &= ~IFF_SLAVE_INACTIVE; - kfree(slave); /* re-acquire the lock before getting the next slave */ diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c index c81b97cffaa3..de87aea6d01a 100644 --- a/drivers/net/bonding/bond_sysfs.c +++ b/drivers/net/bonding/bond_sysfs.c @@ -1584,9 +1584,9 @@ static ssize_t bonding_store_slaves_active(struct device *d, bond_for_each_slave(bond, slave, i) { if (!bond_is_active_slave(slave)) { if (new_value) - slave->dev->priv_flags &= ~IFF_SLAVE_INACTIVE; + slave->inactive = 0; else - slave->dev->priv_flags |= IFF_SLAVE_INACTIVE; + slave->inactive = 1; } } out: diff --git a/drivers/net/bonding/bonding.h b/drivers/net/bonding/bonding.h index 63e9cf779389..6b26962fd0ec 100644 --- a/drivers/net/bonding/bonding.h +++ b/drivers/net/bonding/bonding.h @@ -192,8 +192,9 @@ struct slave { unsigned long last_arp_rx; s8 link; /* one of BOND_LINK_XXXX */ s8 new_link; - u8 backup; /* indicates backup slave. Value corresponds with - BOND_STATE_ACTIVE and BOND_STATE_BACKUP */ + u8 backup:1, /* indicates backup slave. Value corresponds with + BOND_STATE_ACTIVE and BOND_STATE_BACKUP */ + inactive:1; /* indicates inactive slave */ u32 original_mtu; u32 link_failure_count; u8 perm_hwaddr[ETH_ALEN]; @@ -376,13 +377,18 @@ static inline void bond_set_slave_inactive_flags(struct slave *slave) if (!bond_is_lb(bond)) bond_set_backup_slave(slave); if (!bond->params.all_slaves_active) - slave->dev->priv_flags |= IFF_SLAVE_INACTIVE; + slave->inactive = 1; } static inline void bond_set_slave_active_flags(struct slave *slave) { bond_set_active_slave(slave); - slave->dev->priv_flags &= ~IFF_SLAVE_INACTIVE; + slave->inactive = 0; +} + +static inline bool bond_is_slave_inactive(struct slave *slave) +{ + return slave->inactive; } struct vlan_entry *bond_next_vlan(struct bonding *bond, struct vlan_entry *curr); |