linux/drivers/infiniband/ulp
Doug Ledford e135106fac IB/ipoib: factor out ah flushing
Create a an ipoib_flush_ah and ipoib_stop_ah routines to use at
appropriate times to flush out all remaining ah entries before we shut
the device down.

Because neighbors and mcast entries can each have a reference on any
given ah, we must make sure to free all of those first before our ah
will actually have a 0 refcount and be able to be reaped.

This factoring is needed in preparation for having per-device work
queues.  The original per-device workqueue code resulted in the following
error message:

<ibdev>: ib_dealloc_pd failed

That error was tracked down to this issue.  With the changes to which
workqueues were flushed when, there were no flushes of the per device
workqueue after the last ah's were freed, resulting in an attempt to
dealloc the pd with outstanding resources still allocated.  This code
puts the explicit flushes in the needed places to avoid that problem.

Signed-off-by: Doug Ledford <dledford@redhat.com>
2015-04-15 16:06:17 -04:00
..
ipoib IB/ipoib: factor out ah flushing 2015-04-15 16:06:17 -04:00
iser IB/iser: Release the iscsi endpoint if ep_disconnect wasn't called 2015-02-17 12:33:14 -08:00
isert iscsi/iser-target: Support multi-sequence sendtargets text response 2015-02-12 11:24:29 -08:00
srp SCSI for-linus on 20141220 2014-12-20 13:42:57 -08:00
srpt ib_srpt: wait_for_completion_timeout does not return negative status 2015-01-20 15:48:17 -08:00
Makefile IB: Allow build of hw/ and ulp/ subdirectories independently 2014-06-02 14:51:12 -07:00