***SPAM*** Re: [ofa-general] [PATCH v2] ipiob: fix rtnl deadlock

Yossi Etigin yossi.openib at gmail.com
Fri Sep 12 08:25:26 PDT 2008


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.
> 



More information about the general mailing list