diff options
author | Veaceslav Falico <vfalico@redhat.com> | 2013-06-24 11:49:31 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-06-25 16:58:38 -0700 |
commit | 2c14610210978512271dd6fe21d6f55b789d9a80 (patch) | |
tree | f8af6cd2194538de8d8311f18d3b14595a78239e /drivers/net/bonding | |
parent | 0afee4e8b9fe4b5f58734b2f28e980dd58d3e3cb (diff) | |
download | op-kernel-dev-2c14610210978512271dd6fe21d6f55b789d9a80.zip op-kernel-dev-2c14610210978512271dd6fe21d6f55b789d9a80.tar.gz |
bonding: don't validate arp if we don't have to
Currently, we validate all the incoming arps if arp_validate not 0.
However, we don't have to validate backup slaves if arp_validate == active
and vice versa, so return early in bond_arp_rcv() in these cases.
It works correctly now because we verify arp_validate in slave_last_rx(),
however we're just doing useless work in bond_arp_rcv().
Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bonding')
-rw-r--r-- | drivers/net/bonding/bond_main.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 1645130..7fe9802 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -2634,6 +2634,10 @@ static int bond_arp_rcv(const struct sk_buff *skb, struct bonding *bond, return RX_HANDLER_ANOTHER; read_lock(&bond->lock); + + if (!slave_do_arp_validate(bond, slave)) + goto out_unlock; + alen = arp_hdr_len(bond->dev); pr_debug("bond_arp_rcv: bond %s skb->dev %s\n", |