]> git.baikalelectronics.ru Git - kernel.git/commit
RDMA/nes: Fix Xansation test crash on cm_node ref_count
authorFaisal Latif <faisal.latif@intel.com>
Wed, 9 Dec 2009 23:54:18 +0000 (15:54 -0800)
committerRoland Dreier <rolandd@cisco.com>
Wed, 9 Dec 2009 23:54:18 +0000 (15:54 -0800)
commit06a9572316f6050ae04a9373ed5a28fe45867123
treec0579b102cd6814f6aaa4f0bde6ba204bfeb03f1
parente7c05a03dc6026fb402f6ffc6c9a76ff68b5db10
RDMA/nes: Fix Xansation test crash on cm_node ref_count

While running a Xansation test, an active side node crashed.  The
problem started on the passive side, which generated an STtag that was
0.  The passive side sent a TERMINATE instead of an MPA REJECT msg.
The active side, receives TERMINATE and sends connect_err() and set
the cm_node state to CLOSED.  The passive side sends FIN + ACK after
TERMINATE.  Active side ends up in handle_ack_pkt() and send_reset().
send_reset() consumes 1 cm_node's ref_count.  Because the cm_node is
in CLOSED state, which means that cm_node will be destroyed after
completion of the connect_err() indication, CM will crash after
send_reset().

Signed-off-by: Faisal Latif <faisal.latif@intel.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/nes/nes_cm.c