bonding: slight optimizztion for bond_slave_override()
Subsystems (3)
PATCH 4/7 bonding: slight optimizztion for bond_slave_override()
When the skb is xmit by the function bond_slave_override(), it will have duplicate judgement for slave state, and I think it will consumes a little performance, maybe it is negligible, so I simplify the function and remove the unwanted judgement.
Signed-off-by Ding Tianhong <[email protected]>
--- drivers/net/bonding/bond_main.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-)
drivers/net/bonding/bond_main.c +8 -12
@@ -3668,28 +3668,24 @@ static inline int bond_slave_override(struct bonding *bond, struct sk_buff *skb) {struct slave *slave =NULL ; -struct slave *check_slave;struct list_head *iter; -int res =1 ;if (!skb->queue_mapping)return 1 ;/* Find out if any slaves have the same mapping as this skb. */ -bond_for_each_slave_rcu (bond, check_slave, iter) { -if (check_slave->queue_id == skb->queue_mapping) { - slave = check_slave; +bond_for_each_slave_rcu (bond, slave, iter) { +if (slave->queue_id == skb->queue_mapping) { +if (slave_can_tx (slave)) { +bond_dev_queue_xmit (bond, skb, slave->dev); +return 0 ; + } +/* If the slave isn't UP, use default transmit policy. */ break ; } } -/* If the slave isn't UP, use default transmit policy. */ -if (slave && slave->queue_id &&IS_UP (slave->dev) && - (slave->link ==BOND_LINK_UP )) { - res =bond_dev_queue_xmit (bond, skb, slave->dev); - } - -return res; +return 1 ; }
Signature · 1 line
1.8.0