mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-01 16:14:13 +08:00
bonding: always set recv_probe to bond_arp_rcv in arp monitor
Currently we only set bond_arp_rcv() if we're using arp_validate, however this makes us skip updating last_arp_rx if we're not validating incoming ARPs - thus, if arp_validate is off, last_arp_rx will never be updated. Fix this by always setting up recv_probe = bond_arp_rcv, even if we're not using arp_validate. CC: Jay Vosburgh <fubar@us.ibm.com> CC: Andy Gospodarek <andy@greyhouse.net> Signed-off-by: Veaceslav Falico <vfalico@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
6db4a54593
commit
3fe68df97c
@ -3059,8 +3059,7 @@ static int bond_open(struct net_device *bond_dev)
|
||||
|
||||
if (bond->params.arp_interval) { /* arp interval, in milliseconds. */
|
||||
queue_delayed_work(bond->wq, &bond->arp_work, 0);
|
||||
if (bond->params.arp_validate)
|
||||
bond->recv_probe = bond_arp_rcv;
|
||||
bond->recv_probe = bond_arp_rcv;
|
||||
}
|
||||
|
||||
if (bond->params.mode == BOND_MODE_8023AD) {
|
||||
|
@ -810,8 +810,7 @@ int bond_option_arp_interval_set(struct bonding *bond,
|
||||
cancel_delayed_work_sync(&bond->arp_work);
|
||||
} else {
|
||||
/* arp_validate can be set only in active-backup mode */
|
||||
if (bond->params.arp_validate)
|
||||
bond->recv_probe = bond_arp_rcv;
|
||||
bond->recv_probe = bond_arp_rcv;
|
||||
cancel_delayed_work_sync(&bond->mii_work);
|
||||
queue_delayed_work(bond->wq, &bond->arp_work, 0);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user