aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDoug Ledford <dledford@redhat.com>2015-02-21 19:27:07 -0500
committerDoug Ledford <dledford@redhat.com>2015-04-15 16:06:18 -0400
commit1c0453d64a341909bbf89cb68c9edaa6cff93850 (patch)
treec287b5518d572e6be2b634fcf32084f8837f0dab /include
parentIB/ipoib: deserialize multicast joins (diff)
downloadlinux-dev-1c0453d64a341909bbf89cb68c9edaa6cff93850.tar.xz
linux-dev-1c0453d64a341909bbf89cb68c9edaa6cff93850.zip
IB/ipoib: drop mcast_mutex usage
We needed the mcast_mutex when we had to prevent the join completion callback from having the value it stored in mcast->mc overwritten by a delayed return from ib_sa_join_multicast. By storing the return of ib_sa_join_multicast in an intermediate variable, we prevent a delayed return from ib_sa_join_multicast overwriting the valid contents of mcast->mc, and we no longer need a mutex to force the join callback to run after the return of ib_sa_join_multicast. This allows us to do away with the mutex entirely and protect our critical sections with a just a spinlock instead. This is highly desirable as there were some places where we couldn't use a mutex because the code was not allowed to sleep, and so we were currently using a mix of mutex and spinlock to protect what we needed to protect. Now we only have a spin lock and the locking complexity is greatly reduced. Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions