Subject: [PATCH net-next 1/6] bonding: verify if bond has ip only once on arp validate

From: Veaceslav Falico <[email-masked]>
Date: Wed, 19 Jun 2013 19:34:41 +0200

It's extra work to verify bond's ip presence for every slave, so take it
out of the loop.

Signed-off-by: Veaceslav Falico <[email-masked]>
---
 drivers/net/bonding/bond_main.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index bc1246f..3d8b5ba 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -2602,13 +2602,16 @@ static void bond_validate_arp(struct bonding *bond, struct slave *slave, __be32
 	int i;
 	__be32 *targets = bond->params.arp_targets;
 
+	if (!bond_has_this_ip(bond, tip)) {
+		pr_debug("bva: tip %pI4 not found\n", &tip);
+		return;
+	}
+
 	for (i = 0; (i < BOND_MAX_ARP_TARGETS) && targets[i]; i++) {
-		pr_debug("bva: sip %pI4 tip %pI4 t[%d] %pI4 bhti(tip) %d\n",
-			 &sip, &tip, i, &targets[i],
-			 bond_has_this_ip(bond, tip));
+		pr_debug("bva: sip %pI4 tip %pI4 t[%d] %pI4 bhti(tip)\n",
+			 &sip, &tip, i, &targets[i]);
 		if (sip == targets[i]) {
-			if (bond_has_this_ip(bond, tip))
-				slave->last_arp_rx = jiffies;
+			slave->last_arp_rx = jiffies;
 			return;
 		}
 	}
-- 
1.7.1