linux/drivers/infiniband/ulp
Doug Ledford 67d7209e1f IPoIB: Make the carrier_on_task race aware
We blindly assume that we can just take the rtnl lock and that will
prevent races with downing this interface.  Unfortunately, that's not
the case.  In ipoib_mcast_stop_thread() we will call flush_workqueue()
in an attempt to clear out all remaining instances of ipoib_join_task.
But, since this task is put on the same workqueue as the join task,
the flush_workqueue waits on this thread too.  But this thread is
deadlocked on the rtnl lock.  The better thing here is to use trylock
and loop on that until we either get the lock or we see that
FLAG_ADMIN_UP has been cleared, in which case we don't need to do
anything anyway and we just return.

Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2014-12-15 18:11:14 -08:00
..
ipoib IPoIB: Make the carrier_on_task race aware 2014-12-15 18:11:14 -08:00
iser scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
isert IB/isert: Adjust CQ size to HW limits 2014-11-19 22:28:42 -08:00
srp scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
srpt srp-target: Retry when QP creation fails with ENOMEM 2014-10-28 13:55:08 -07:00
Makefile IB: Allow build of hw/ and ulp/ subdirectories independently 2014-06-02 14:51:12 -07:00