diff options
Diffstat (limited to 'net/rds/rdma_transport.c')
| -rw-r--r-- | net/rds/rdma_transport.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/net/rds/rdma_transport.c b/net/rds/rdma_transport.c index 9c1fed81bf0f..7220bebcf558 100644 --- a/net/rds/rdma_transport.c +++ b/net/rds/rdma_transport.c | |||
| @@ -49,9 +49,7 @@ int rds_rdma_cm_event_handler(struct rdma_cm_id *cm_id, | |||
| 49 | rdsdebug("conn %p id %p handling event %u (%s)\n", conn, cm_id, | 49 | rdsdebug("conn %p id %p handling event %u (%s)\n", conn, cm_id, |
| 50 | event->event, rdma_event_msg(event->event)); | 50 | event->event, rdma_event_msg(event->event)); |
| 51 | 51 | ||
| 52 | if (cm_id->device->node_type == RDMA_NODE_RNIC) | 52 | if (cm_id->device->node_type == RDMA_NODE_IB_CA) |
| 53 | trans = &rds_iw_transport; | ||
| 54 | else | ||
| 55 | trans = &rds_ib_transport; | 53 | trans = &rds_ib_transport; |
| 56 | 54 | ||
| 57 | /* Prevent shutdown from tearing down the connection | 55 | /* Prevent shutdown from tearing down the connection |
| @@ -119,6 +117,14 @@ int rds_rdma_cm_event_handler(struct rdma_cm_id *cm_id, | |||
| 119 | rds_conn_drop(conn); | 117 | rds_conn_drop(conn); |
| 120 | break; | 118 | break; |
| 121 | 119 | ||
| 120 | case RDMA_CM_EVENT_TIMEWAIT_EXIT: | ||
| 121 | if (conn) { | ||
| 122 | pr_info("RDS: RDMA_CM_EVENT_TIMEWAIT_EXIT event: dropping connection %pI4->%pI4\n", | ||
| 123 | &conn->c_laddr, &conn->c_faddr); | ||
| 124 | rds_conn_drop(conn); | ||
| 125 | } | ||
| 126 | break; | ||
| 127 | |||
| 122 | default: | 128 | default: |
| 123 | /* things like device disconnect? */ | 129 | /* things like device disconnect? */ |
| 124 | printk(KERN_ERR "RDS: unknown event %u (%s)!\n", | 130 | printk(KERN_ERR "RDS: unknown event %u (%s)!\n", |
| @@ -200,10 +206,6 @@ static int rds_rdma_init(void) | |||
| 200 | if (ret) | 206 | if (ret) |
| 201 | goto out; | 207 | goto out; |
| 202 | 208 | ||
| 203 | ret = rds_iw_init(); | ||
| 204 | if (ret) | ||
| 205 | goto err_iw_init; | ||
| 206 | |||
| 207 | ret = rds_ib_init(); | 209 | ret = rds_ib_init(); |
| 208 | if (ret) | 210 | if (ret) |
| 209 | goto err_ib_init; | 211 | goto err_ib_init; |
| @@ -211,8 +213,6 @@ static int rds_rdma_init(void) | |||
| 211 | goto out; | 213 | goto out; |
| 212 | 214 | ||
| 213 | err_ib_init: | 215 | err_ib_init: |
| 214 | rds_iw_exit(); | ||
| 215 | err_iw_init: | ||
| 216 | rds_rdma_listen_stop(); | 216 | rds_rdma_listen_stop(); |
| 217 | out: | 217 | out: |
| 218 | return ret; | 218 | return ret; |
| @@ -224,11 +224,10 @@ static void rds_rdma_exit(void) | |||
| 224 | /* stop listening first to ensure no new connections are attempted */ | 224 | /* stop listening first to ensure no new connections are attempted */ |
| 225 | rds_rdma_listen_stop(); | 225 | rds_rdma_listen_stop(); |
| 226 | rds_ib_exit(); | 226 | rds_ib_exit(); |
| 227 | rds_iw_exit(); | ||
| 228 | } | 227 | } |
| 229 | module_exit(rds_rdma_exit); | 228 | module_exit(rds_rdma_exit); |
| 230 | 229 | ||
| 231 | MODULE_AUTHOR("Oracle Corporation <rds-devel@oss.oracle.com>"); | 230 | MODULE_AUTHOR("Oracle Corporation <rds-devel@oss.oracle.com>"); |
| 232 | MODULE_DESCRIPTION("RDS: IB/iWARP transport"); | 231 | MODULE_DESCRIPTION("RDS: IB transport"); |
| 233 | MODULE_LICENSE("Dual BSD/GPL"); | 232 | MODULE_LICENSE("Dual BSD/GPL"); |
| 234 | 233 | ||
