RDMA/cxgb3: Release dependent resources only when endpoint memory is freed.
authorSteve Wise <swise@opengridcomputing.com>
Mon, 30 Mar 2009 15:37:59 +0000 (08:37 -0700)
committerRoland Dreier <rolandd@cisco.com>
Mon, 30 Mar 2009 15:37:59 +0000 (08:37 -0700)
commit874d8df5ed6e36fed07b524c266f6a96dd6d10d9
tree22fe735a0a00fda013e8514bdc00a5a31e612b77
parent04b5d028f50ff05a8f9ae049ee71f8fdfcf1f5de
RDMA/cxgb3: Release dependent resources only when endpoint memory is freed.

The cxgb3 l2t entry, hwtid, and dst entry were being released before
all the iwch_ep references were released.  This can cause a crash in
t3_l2t_send_slow() and other places where the l2t entry is used.

The fix is to defer releasing these resources until all endpoint
references are gone.

Details:

- move flags field to the iwch_ep_common struct.
- add a flag indicating resources are to be released.
- release resources at endpoint free time instead of close/abort time.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/cxgb3/iwch_cm.c
drivers/infiniband/hw/cxgb3/iwch_cm.h