summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/core
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@mellanox.co.il>2006-03-02 11:07:47 -0800
committerRoland Dreier <rolandd@cisco.com>2006-03-20 10:08:20 -0800
commit9acf6a8570dcfc9f55724b8b71099fc8768e8c26 (patch)
tree5b265bf0474f321722d2690b5b5dc57cde80690e /drivers/infiniband/core
parent54d07e2a1ead2f093ce054cda2e0f5ec163c650c (diff)
downloadblackbird-op-linux-9acf6a8570dcfc9f55724b8b71099fc8768e8c26.tar.gz
blackbird-op-linux-9acf6a8570dcfc9f55724b8b71099fc8768e8c26.zip
IPoIB: Fix multicast race between canceling and completing
ipoib_mcast_stop_thread currently tests mcast->query and if it is NULL, does not perform wait_for_completion on the mcast and frees the mcast object directly. However, since both operations are done without locking, it is possible that ipoib_mcast_join_complete is in progress on this mcast object and has set mcast->query to NULL already. Solve this by: - taking priv->lock before we change mcast->query in ipoib_mcast_join_complete, and keeping it until we no longer need the mcast object - taking priv->lock around mcast->query test in ipoib_mcast_stop_thread Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/core')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud