diff options
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/core/cm.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index ad63b79afac1..64e0903091a8 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c | |||
@@ -2409,10 +2409,12 @@ int ib_send_cm_mra(struct ib_cm_id *cm_id, | |||
2409 | msg_response = CM_MSG_RESPONSE_REP; | 2409 | msg_response = CM_MSG_RESPONSE_REP; |
2410 | break; | 2410 | break; |
2411 | case IB_CM_ESTABLISHED: | 2411 | case IB_CM_ESTABLISHED: |
2412 | cm_state = cm_id->state; | 2412 | if (cm_id->lap_state == IB_CM_LAP_RCVD) { |
2413 | lap_state = IB_CM_MRA_LAP_SENT; | 2413 | cm_state = cm_id->state; |
2414 | msg_response = CM_MSG_RESPONSE_OTHER; | 2414 | lap_state = IB_CM_MRA_LAP_SENT; |
2415 | break; | 2415 | msg_response = CM_MSG_RESPONSE_OTHER; |
2416 | break; | ||
2417 | } | ||
2416 | default: | 2418 | default: |
2417 | ret = -EINVAL; | 2419 | ret = -EINVAL; |
2418 | goto error1; | 2420 | goto error1; |