[ofa-general] Re: [PATCH 2.6.24] rdma/cm: fix deadlock destroyinglisten requests

Sean Hefty sean.hefty at intel.com
Wed Oct 10 16:30:46 PDT 2007


>I don't understand your response. ucma.c for example can call
>rdma_create_id() and rdma_destroy_id(), correct? What says that when
>ucma.c does a rdma_destroy_id() on a nonwildcard listener, a device
>removal is not attempting to do the same on the listener? If this is
>possible, the code paths I mentioned above can still trigger a double
>destruct on a listener, correct?

Device removal only automatically destroys internal listens, and a non-wildcard
listen would never generate an internal listen.  Internal listens are used to
map wildcard listens across multiple RDMA devices.  Their creation and
destruction is contained to the cma.  From the viewpoint of the device removal
code, a nonwildcard listen is treated the same as a connected id.

The ucma only destroys id's from an event callback if the id is for a new
connection which it can't handle.

Hope this makes sense.

- Sean



More information about the general mailing list