• Roland Dreier's avatar
    IPoIB: Avoid using stale last_send counter when reaping AHs · 31c02e21
    Roland Dreier authored
    The comparisons of priv->tx_tail to ah->last_send in ipoib_free_ah()
    and ipoib_post_receive() are slightly unsafe, because priv->tx_lock is
    not held and hence a stale value of ah->last_send might be used, which
    would lead to freeing an AH before the driver was really done with it.
    The simple way to fix this is to the optimization of early free from
    ipoib_free_ah() and unconditionally queue AHs for reaping, and then
    take priv->tx_lock in __ipoib_reap_ah().
    Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
    31c02e21
ipoib_ib.c 17.9 KB