[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