diff options
author | Michael S. Tsirkin <mst@mellanox.co.il> | 2006-02-08 03:37:08 +0300 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2006-02-08 03:37:08 +0300 |
commit | 479a079663bd4c5f3d2714643b1b8c406aaba3e0 (patch) | |
tree | e484f9a2dce6ee68f1c328d54f18acbf137c1999 /drivers/infiniband/ulp/ipoib/ipoib.h | |
parent | 8cf3f04f45694db0699f608c0e3fb550c607cc88 (diff) | |
download | linux-479a079663bd4c5f3d2714643b1b8c406aaba3e0.tar.xz |
IPoIB: Don't start send-only joins while multicast thread is stopped
Fix the following race scenario:
- Device is up.
- Port event or set mcast list triggers ipoib_mcast_stop_thread,
this cancels the query and waits on mcast "done" completion.
- Completion is called and "done" is set.
- Meanwhile, ipoib_mcast_send arrives and starts a new query,
re-initializing "done".
Fix this by adding a "multicast started" bit and checking it before
starting a send-only join.
Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/ulp/ipoib/ipoib.h')
-rw-r--r-- | drivers/infiniband/ulp/ipoib/ipoib.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib.h b/drivers/infiniband/ulp/ipoib/ipoib.h index e0a5412b7e68..2f85a9a831b1 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib.h +++ b/drivers/infiniband/ulp/ipoib/ipoib.h @@ -78,6 +78,7 @@ enum { IPOIB_FLAG_SUBINTERFACE = 4, IPOIB_MCAST_RUN = 5, IPOIB_STOP_REAPER = 6, + IPOIB_MCAST_STARTED = 7, IPOIB_MAX_BACKOFF_SECONDS = 16, |