Thread (1 message) 1 message, 1 author, 2016-08-02

Re: [PATCH 1/1] IB/iSER-Target: Release connection resources properly when receiving RDMA_CM_EVENT_DEVICE_REMOVAL

From: Doug Ledford <hidden>
Date: 2016-08-02 17:49:52

On Thu, 2016-07-28 at 00:45 +0530, Raju Rangoju wrote:
When the low level driver exercises the hot unplug they would call
rdma_cm cma_remove_one which would fire DEVICE_REMOVAL event to all
cma
consumers. Now, if consumer doesn't make sure they destroy all IB
objects created on that IB device instance prior to finalizing all
processing of DEVICE_REMOVAL callback, rdma_cm will let the lld to
de-register with IB core and destroy the IB device instance. And if
the
consumer calls (say) ib_dereg_mr(), it will crash since that dev
object
is NULL.

In the current implementation, iser-target just initiates the cleanup
and returns from DEVICE_REMOVAL callback. This deferred work creates
a
race between iser-target cleaning IB objects(say MR) and lld
destroying
IB device instance.

This patch includes the following fixes
  -> make sure that consumer frees all IB objects associated with
device
     instance
  -> return non-zero from the callback to destroy the rdma_cm id
This patch is missing a Signed-off-by: line and can not be accepted as
it is.  Please resubmit with the proper attribution.  Also please
reword your commit subject as it's too long.  I suggest something like:

IB/isert: Properly release resources on RDMA_CM_EVENT_DEVICE_REMOVAL

which is still too long, but not as bad as what you have now.

-- 
Doug Ledford [off-list ref]
              GPG KeyID: 0E572FDD

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help