diff options
| author | Roi Dayan <roid@mellanox.com> | 2014-07-31 06:27:45 -0400 |
|---|---|---|
| committer | Roland Dreier <roland@purestorage.com> | 2014-08-01 18:10:04 -0400 |
| commit | 9579d603502d0f24272c4dd70451d97c8d306b54 (patch) | |
| tree | 36456e8de954afaf08f139fd2a5402522c45815d | |
| parent | 96ed02d4be3c68527130decd3a7d18240da4bee5 (diff) | |
IB/iser: Add TIMEWAIT_EXIT event handling
In case the DISCONNECTED event is not delivered after rdma_disconnect
is called, the CM waits TIMEWAIT seconds and delivers the
TIMEWAIT_EXIT local event. We use this as the notification needed to
continue in the teardown and release sequence.
Signed-off-by: Ariel Nahum <arieln@mellanox.com>
Signed-off-by: Roi Dayan <roid@mellanox.com>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
| -rw-r--r-- | drivers/infiniband/ulp/iser/iser_verbs.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c index dc0c90f4c312..da6f3ddbb0ab 100644 --- a/drivers/infiniband/ulp/iser/iser_verbs.c +++ b/drivers/infiniband/ulp/iser/iser_verbs.c | |||
| @@ -785,6 +785,7 @@ static int iser_cma_handler(struct rdma_cm_id *cma_id, struct rdma_cm_event *eve | |||
| 785 | case RDMA_CM_EVENT_DISCONNECTED: | 785 | case RDMA_CM_EVENT_DISCONNECTED: |
| 786 | case RDMA_CM_EVENT_DEVICE_REMOVAL: | 786 | case RDMA_CM_EVENT_DEVICE_REMOVAL: |
| 787 | case RDMA_CM_EVENT_ADDR_CHANGE: | 787 | case RDMA_CM_EVENT_ADDR_CHANGE: |
| 788 | case RDMA_CM_EVENT_TIMEWAIT_EXIT: | ||
| 788 | iser_disconnected_handler(cma_id); | 789 | iser_disconnected_handler(cma_id); |
| 789 | break; | 790 | break; |
| 790 | default: | 791 | default: |
