|
@@ -824,14 +824,15 @@ struct kib_conn *kiblnd_create_conn(struct kib_peer *peer, struct rdma_cm_id *cm
|
|
|
return conn;
|
|
|
|
|
|
failed_2:
|
|
|
- kiblnd_destroy_conn(conn, true);
|
|
|
+ kiblnd_destroy_conn(conn);
|
|
|
+ kfree(conn);
|
|
|
failed_1:
|
|
|
kfree(init_qp_attr);
|
|
|
failed_0:
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
|
-void kiblnd_destroy_conn(struct kib_conn *conn, bool free_conn)
|
|
|
+void kiblnd_destroy_conn(struct kib_conn *conn)
|
|
|
{
|
|
|
struct rdma_cm_id *cmid = conn->ibc_cmid;
|
|
|
struct kib_peer *peer = conn->ibc_peer;
|
|
@@ -889,8 +890,6 @@ void kiblnd_destroy_conn(struct kib_conn *conn, bool free_conn)
|
|
|
rdma_destroy_id(cmid);
|
|
|
atomic_dec(&net->ibn_nconns);
|
|
|
}
|
|
|
-
|
|
|
- kfree(conn);
|
|
|
}
|
|
|
|
|
|
int kiblnd_close_peer_conns_locked(struct kib_peer *peer, int why)
|