diff options
-rw-r--r-- | drivers/infiniband/hw/nes/nes_cm.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c index b139806a9667..4acf04a03e1c 100644 --- a/drivers/infiniband/hw/nes/nes_cm.c +++ b/drivers/infiniband/hw/nes/nes_cm.c | |||
@@ -1354,13 +1354,20 @@ static void handle_fin_pkt(struct nes_cm_node *cm_node) | |||
1354 | case NES_CM_STATE_SYN_RCVD: | 1354 | case NES_CM_STATE_SYN_RCVD: |
1355 | case NES_CM_STATE_SYN_SENT: | 1355 | case NES_CM_STATE_SYN_SENT: |
1356 | case NES_CM_STATE_ESTABLISHED: | 1356 | case NES_CM_STATE_ESTABLISHED: |
1357 | case NES_CM_STATE_MPAREQ_SENT: | ||
1358 | case NES_CM_STATE_MPAREJ_RCVD: | 1357 | case NES_CM_STATE_MPAREJ_RCVD: |
1359 | cm_node->tcp_cntxt.rcv_nxt++; | 1358 | cm_node->tcp_cntxt.rcv_nxt++; |
1360 | cleanup_retrans_entry(cm_node); | 1359 | cleanup_retrans_entry(cm_node); |
1361 | cm_node->state = NES_CM_STATE_LAST_ACK; | 1360 | cm_node->state = NES_CM_STATE_LAST_ACK; |
1362 | send_fin(cm_node, NULL); | 1361 | send_fin(cm_node, NULL); |
1363 | break; | 1362 | break; |
1363 | case NES_CM_STATE_MPAREQ_SENT: | ||
1364 | create_event(cm_node, NES_CM_EVENT_ABORTED); | ||
1365 | cm_node->tcp_cntxt.rcv_nxt++; | ||
1366 | cleanup_retrans_entry(cm_node); | ||
1367 | cm_node->state = NES_CM_STATE_CLOSED; | ||
1368 | add_ref_cm_node(cm_node); | ||
1369 | send_reset(cm_node, NULL); | ||
1370 | break; | ||
1364 | case NES_CM_STATE_FIN_WAIT1: | 1371 | case NES_CM_STATE_FIN_WAIT1: |
1365 | cm_node->tcp_cntxt.rcv_nxt++; | 1372 | cm_node->tcp_cntxt.rcv_nxt++; |
1366 | cleanup_retrans_entry(cm_node); | 1373 | cleanup_retrans_entry(cm_node); |