Commit b6adc610 authored by Veaceslav Falico's avatar Veaceslav Falico Committed by David S. Miller

bonding: convert IS_UP(slave->dev) to inline function

Also, remove the IFF_UP verification cause we can't be netif_running() with
being also IFF_UP.

CC: Jay Vosburgh <j.vosburgh@gmail.com>
CC: Andy Gospodarek <andy@greyhouse.net>
Signed-off-by: default avatarVeaceslav Falico <vfalico@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2807a9fe
...@@ -192,7 +192,7 @@ static inline void __enable_port(struct port *port) ...@@ -192,7 +192,7 @@ static inline void __enable_port(struct port *port)
{ {
struct slave *slave = port->slave; struct slave *slave = port->slave;
if ((slave->link == BOND_LINK_UP) && IS_UP(slave->dev)) if ((slave->link == BOND_LINK_UP) && bond_slave_is_up(slave))
bond_set_slave_active_flags(slave, BOND_SLAVE_NOTIFY_LATER); bond_set_slave_active_flags(slave, BOND_SLAVE_NOTIFY_LATER);
} }
......
...@@ -747,7 +747,7 @@ static struct slave *bond_find_best_slave(struct bonding *bond) ...@@ -747,7 +747,7 @@ static struct slave *bond_find_best_slave(struct bonding *bond)
bond_for_each_slave(bond, slave, iter) { bond_for_each_slave(bond, slave, iter) {
if (slave->link == BOND_LINK_UP) if (slave->link == BOND_LINK_UP)
return slave; return slave;
if (slave->link == BOND_LINK_BACK && IS_UP(slave->dev) && if (slave->link == BOND_LINK_BACK && bond_slave_is_up(slave) &&
slave->delay < mintime) { slave->delay < mintime) {
mintime = slave->delay; mintime = slave->delay;
bestslave = slave; bestslave = slave;
...@@ -958,7 +958,7 @@ static void bond_netpoll_cleanup(struct net_device *bond_dev) ...@@ -958,7 +958,7 @@ static void bond_netpoll_cleanup(struct net_device *bond_dev)
struct slave *slave; struct slave *slave;
bond_for_each_slave(bond, slave, iter) bond_for_each_slave(bond, slave, iter)
if (IS_UP(slave->dev)) if (bond_slave_is_up(slave))
slave_disable_netpoll(slave); slave_disable_netpoll(slave);
} }
...@@ -2490,7 +2490,7 @@ static void bond_loadbalance_arp_mon(struct work_struct *work) ...@@ -2490,7 +2490,7 @@ static void bond_loadbalance_arp_mon(struct work_struct *work)
* do - all replies will be rx'ed on same link causing slaves * do - all replies will be rx'ed on same link causing slaves
* to be unstable during low/no traffic periods * to be unstable during low/no traffic periods
*/ */
if (IS_UP(slave->dev)) if (bond_slave_is_up(slave))
bond_arp_send_all(bond, slave); bond_arp_send_all(bond, slave);
} }
...@@ -2712,10 +2712,10 @@ static bool bond_ab_arp_probe(struct bonding *bond) ...@@ -2712,10 +2712,10 @@ static bool bond_ab_arp_probe(struct bonding *bond)
bond_set_slave_inactive_flags(curr_arp_slave, BOND_SLAVE_NOTIFY_LATER); bond_set_slave_inactive_flags(curr_arp_slave, BOND_SLAVE_NOTIFY_LATER);
bond_for_each_slave_rcu(bond, slave, iter) { bond_for_each_slave_rcu(bond, slave, iter) {
if (!found && !before && IS_UP(slave->dev)) if (!found && !before && bond_slave_is_up(slave))
before = slave; before = slave;
if (found && !new_slave && IS_UP(slave->dev)) if (found && !new_slave && bond_slave_is_up(slave))
new_slave = slave; new_slave = slave;
/* if the link state is up at this point, we /* if the link state is up at this point, we
* mark it down - this can happen if we have * mark it down - this can happen if we have
...@@ -2724,7 +2724,7 @@ static bool bond_ab_arp_probe(struct bonding *bond) ...@@ -2724,7 +2724,7 @@ static bool bond_ab_arp_probe(struct bonding *bond)
* one the current slave so it is still marked * one the current slave so it is still marked
* up when it is actually down * up when it is actually down
*/ */
if (!IS_UP(slave->dev) && slave->link == BOND_LINK_UP) { if (!bond_slave_is_up(slave) && slave->link == BOND_LINK_UP) {
slave->link = BOND_LINK_DOWN; slave->link = BOND_LINK_DOWN;
if (slave->link_failure_count < UINT_MAX) if (slave->link_failure_count < UINT_MAX)
slave->link_failure_count++; slave->link_failure_count++;
...@@ -3710,7 +3710,7 @@ static int bond_xmit_broadcast(struct sk_buff *skb, struct net_device *bond_dev) ...@@ -3710,7 +3710,7 @@ static int bond_xmit_broadcast(struct sk_buff *skb, struct net_device *bond_dev)
bond_for_each_slave_rcu(bond, slave, iter) { bond_for_each_slave_rcu(bond, slave, iter) {
if (bond_is_last_slave(bond, slave)) if (bond_is_last_slave(bond, slave))
break; break;
if (IS_UP(slave->dev) && slave->link == BOND_LINK_UP) { if (bond_slave_is_up(slave) && slave->link == BOND_LINK_UP) {
struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC); struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC);
if (!skb2) { if (!skb2) {
...@@ -3722,7 +3722,7 @@ static int bond_xmit_broadcast(struct sk_buff *skb, struct net_device *bond_dev) ...@@ -3722,7 +3722,7 @@ static int bond_xmit_broadcast(struct sk_buff *skb, struct net_device *bond_dev)
bond_dev_queue_xmit(bond, skb2, slave->dev); bond_dev_queue_xmit(bond, skb2, slave->dev);
} }
} }
if (slave && IS_UP(slave->dev) && slave->link == BOND_LINK_UP) if (slave && bond_slave_is_up(slave) && slave->link == BOND_LINK_UP)
bond_dev_queue_xmit(bond, skb, slave->dev); bond_dev_queue_xmit(bond, skb, slave->dev);
else else
dev_kfree_skb_any(skb); dev_kfree_skb_any(skb);
......
...@@ -758,7 +758,7 @@ static int bond_option_active_slave_set(struct bonding *bond, ...@@ -758,7 +758,7 @@ static int bond_option_active_slave_set(struct bonding *bond,
bond->dev->name, new_active->dev->name); bond->dev->name, new_active->dev->name);
} else { } else {
if (old_active && (new_active->link == BOND_LINK_UP) && if (old_active && (new_active->link == BOND_LINK_UP) &&
IS_UP(new_active->dev)) { bond_slave_is_up(new_active)) {
pr_info("%s: Setting %s as active slave\n", pr_info("%s: Setting %s as active slave\n",
bond->dev->name, new_active->dev->name); bond->dev->name, new_active->dev->name);
bond_change_active_slave(bond, new_active); bond_change_active_slave(bond, new_active);
......
...@@ -40,11 +40,6 @@ ...@@ -40,11 +40,6 @@
#define BOND_DEFAULT_MIIMON 100 #define BOND_DEFAULT_MIIMON 100
#define IS_UP(dev) \
((((dev)->flags & IFF_UP) == IFF_UP) && \
netif_running(dev) && \
netif_carrier_ok(dev))
/* /*
* Checks whether slave is ready for transmit. * Checks whether slave is ready for transmit.
*/ */
...@@ -297,6 +292,11 @@ static inline bool bond_uses_primary(struct bonding *bond) ...@@ -297,6 +292,11 @@ static inline bool bond_uses_primary(struct bonding *bond)
return bond_mode_uses_primary(BOND_MODE(bond)); return bond_mode_uses_primary(BOND_MODE(bond));
} }
static inline bool bond_slave_is_up(struct slave *slave)
{
return netif_running(slave->dev) && netif_carrier_ok(slave->dev);
}
static inline void bond_set_active_slave(struct slave *slave) static inline void bond_set_active_slave(struct slave *slave)
{ {
if (slave->backup) { if (slave->backup) {
...@@ -487,7 +487,7 @@ static inline __be32 bond_confirm_addr(struct net_device *dev, __be32 dst, __be3 ...@@ -487,7 +487,7 @@ static inline __be32 bond_confirm_addr(struct net_device *dev, __be32 dst, __be3
static inline bool slave_can_tx(struct slave *slave) static inline bool slave_can_tx(struct slave *slave)
{ {
if (IS_UP(slave->dev) && slave->link == BOND_LINK_UP && if (bond_slave_is_up(slave) && slave->link == BOND_LINK_UP &&
bond_is_active_slave(slave)) bond_is_active_slave(slave))
return true; return true;
else else
......
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