diff options
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/nes/nes_cm.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c index 11c7d6642014..114b802771ad 100644 --- a/drivers/infiniband/hw/nes/nes_cm.c +++ b/drivers/infiniband/hw/nes/nes_cm.c | |||
@@ -472,6 +472,7 @@ int schedule_nes_timer(struct nes_cm_node *cm_node, struct sk_buff *skb, | |||
472 | 472 | ||
473 | static void nes_retrans_expired(struct nes_cm_node *cm_node) | 473 | static void nes_retrans_expired(struct nes_cm_node *cm_node) |
474 | { | 474 | { |
475 | struct iw_cm_id *cm_id = cm_node->cm_id; | ||
475 | switch (cm_node->state) { | 476 | switch (cm_node->state) { |
476 | case NES_CM_STATE_SYN_RCVD: | 477 | case NES_CM_STATE_SYN_RCVD: |
477 | case NES_CM_STATE_CLOSING: | 478 | case NES_CM_STATE_CLOSING: |
@@ -479,7 +480,9 @@ static void nes_retrans_expired(struct nes_cm_node *cm_node) | |||
479 | break; | 480 | break; |
480 | case NES_CM_STATE_LAST_ACK: | 481 | case NES_CM_STATE_LAST_ACK: |
481 | case NES_CM_STATE_FIN_WAIT1: | 482 | case NES_CM_STATE_FIN_WAIT1: |
482 | case NES_CM_STATE_MPAREJ_RCVD: | 483 | if (cm_node->cm_id) |
484 | cm_id->rem_ref(cm_id); | ||
485 | cm_node->state = NES_CM_STATE_CLOSED; | ||
483 | send_reset(cm_node, NULL); | 486 | send_reset(cm_node, NULL); |
484 | break; | 487 | break; |
485 | default: | 488 | default: |
@@ -1406,6 +1409,7 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb, | |||
1406 | case NES_CM_STATE_CLOSED: | 1409 | case NES_CM_STATE_CLOSED: |
1407 | drop_packet(skb); | 1410 | drop_packet(skb); |
1408 | break; | 1411 | break; |
1412 | case NES_CM_STATE_FIN_WAIT1: | ||
1409 | case NES_CM_STATE_LAST_ACK: | 1413 | case NES_CM_STATE_LAST_ACK: |
1410 | cm_node->cm_id->rem_ref(cm_node->cm_id); | 1414 | cm_node->cm_id->rem_ref(cm_node->cm_id); |
1411 | case NES_CM_STATE_TIME_WAIT: | 1415 | case NES_CM_STATE_TIME_WAIT: |
@@ -1413,8 +1417,6 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb, | |||
1413 | rem_ref_cm_node(cm_node->cm_core, cm_node); | 1417 | rem_ref_cm_node(cm_node->cm_core, cm_node); |
1414 | drop_packet(skb); | 1418 | drop_packet(skb); |
1415 | break; | 1419 | break; |
1416 | case NES_CM_STATE_FIN_WAIT1: | ||
1417 | nes_debug(NES_DBG_CM, "Bad state %s[%u]\n", __func__, __LINE__); | ||
1418 | default: | 1420 | default: |
1419 | drop_packet(skb); | 1421 | drop_packet(skb); |
1420 | break; | 1422 | break; |