summaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorYossi Etigin <yosefe@Voltaire.COM>2009-01-09 14:05:11 -0800
committerRoland Dreier <rolandd@cisco.com>2009-01-09 14:05:11 -0800
commita50df398cddf6b757bdbf30f5f0875982ef5c660 (patch)
treec530f13534c55c589eae41556b119d857df42898 /mm
parent6a94cb73064c952255336cc57731904174b2c58f (diff)
downloadop-kernel-dev-a50df398cddf6b757bdbf30f5f0875982ef5c660.zip
op-kernel-dev-a50df398cddf6b757bdbf30f5f0875982ef5c660.tar.gz
IPoIB: Fix loss of connectivity after bonding failover on both sides
Fix bonding failover in the case both peers failover and the gratuitous ARP is lost. In that case, the sender side will create an ipoib_neigh and issue a path request with the old GID first. When skb->dst->neighbour->ha changes due to ARP refresh, this ipoib_neigh will not be added to the path->list of the path of the new GID, because the ipoib_neigh already exists. It will not have an AH either, because of sender-side failover. Therefore, it will not get an AH when the path is resolved. The solution here is to compare GIDs in ipoib_start_xmit() even if neigh->ah is invalid. Comparing with an uninitialized value of neigh->dgid should be fine, since a spurious match is harmless (and astronomically unlikely too). Signed-off-by: Moni Shoua <monis@voltaire.com> Signed-off-by: Yossi Etigin <yosefe@voltaire.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'mm')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud