ipoib_stop() calls ipoib_ib_dev_down() which calls ipoib_mcast_dev_flush()
which calls ipoib_mcast_free(), which calls ipoib_mcast_leave(). The latter
calls ib_sa_free_multicast(), and this wait until the multicast completion
handler finishes. This happens to be ipoib_mcast_join_complete(), which
waits for the rtnl_lock(), whcih was already taken by ipoib_stop().
Roland Dreier wrote:
> Seems like taking rtnl_lock in ipoib_mcast_join_complete() also causes a
deadlock.
> See bug #1186.
I have to admit the deadlock isn't obvious to
me... ipoib_mcast_join_complete() runs in the ib_mad1 thread, so I'm not
sure how that thread is getting flushed. Can you reproduce this
deadlock with lockdep enabled and get the output from that?
- R.
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general