mirror of
https://github.com/torvalds/linux.git
synced 2024-11-08 21:21:47 +00:00
IPoIB: Free ipoib neigh on path record failure so path rec queries are retried
If IPoIB fails to look up a path record (eg if it tries during an SM failover when one SM is dead but the new one hasn't taken over yet), the driver ends up with a neighbour structure but no address handle (AH). There's no mechanism to recover from this: any further packets sent to this destination will be silently dumped in ipoib_start_xmit(). Fix this by freeing the neighbour structures when a path rec query fails, so that the next packet queued to be sent will trigger a new path record query. Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:
parent
5a2815f03c
commit
f72dd56690
@ -510,6 +510,9 @@ static void path_rec_completion(int status,
|
||||
|
||||
spin_unlock_irqrestore(&priv->lock, flags);
|
||||
|
||||
if (IS_ERR_OR_NULL(ah))
|
||||
ipoib_del_neighs_by_gid(dev, path->pathrec.dgid.raw);
|
||||
|
||||
if (old_ah)
|
||||
ipoib_put_ah(old_ah);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user