Lines Matching refs:conn

60 rdsv3_ib_set_protocol(struct rdsv3_connection *conn, unsigned int version)  in rdsv3_ib_set_protocol()  argument
63 conn, version); in rdsv3_ib_set_protocol()
64 conn->c_version = version; in rdsv3_ib_set_protocol()
71 rdsv3_ib_set_flow_control(struct rdsv3_connection *conn, uint32_t credits) in rdsv3_ib_set_flow_control() argument
73 struct rdsv3_ib_connection *ic = conn->c_transport_data; in rdsv3_ib_set_flow_control()
76 "Enter: conn: %p credits: %d", conn, credits); in rdsv3_ib_set_flow_control()
81 rdsv3_ib_send_add_credits(conn, credits); in rdsv3_ib_set_flow_control()
88 conn, credits); in rdsv3_ib_set_flow_control()
125 rdsv3_ib_cm_connect_complete(struct rdsv3_connection *conn, in rdsv3_ib_cm_connect_complete() argument
129 struct rdsv3_ib_connection *ic = conn->c_transport_data; in rdsv3_ib_cm_connect_complete()
136 "Enter conn: %p event: %p", conn, event); in rdsv3_ib_cm_connect_complete()
138 if (event->param.conn.private_data_len >= sizeof (*dp)) { in rdsv3_ib_cm_connect_complete()
139 dp = event->param.conn.private_data; in rdsv3_ib_cm_connect_complete()
143 rdsv3_ib_set_protocol(conn, in rdsv3_ib_cm_connect_complete()
146 rdsv3_ib_set_flow_control(conn, in rdsv3_ib_cm_connect_complete()
151 if (conn->c_version < RDS_PROTOCOL(3, 1)) { in rdsv3_ib_cm_connect_complete()
154 NIPQUAD(conn->c_faddr), in rdsv3_ib_cm_connect_complete()
155 RDS_PROTOCOL_MAJOR(conn->c_version), in rdsv3_ib_cm_connect_complete()
156 RDS_PROTOCOL_MINOR(conn->c_version)); in rdsv3_ib_cm_connect_complete()
157 rdsv3_conn_destroy(conn); in rdsv3_ib_cm_connect_complete()
162 NIPQUAD(conn->c_faddr), in rdsv3_ib_cm_connect_complete()
163 RDS_PROTOCOL_MAJOR(conn->c_version), in rdsv3_ib_cm_connect_complete()
164 RDS_PROTOCOL_MINOR(conn->c_version), in rdsv3_ib_cm_connect_complete()
180 ic->i_refill_rq = rdsv3_af_thr_create(rdsv3_ib_refill_fn, (void *)conn, in rdsv3_ib_cm_connect_complete()
200 (void) rdsv3_ib_recv_refill(conn, 1); in rdsv3_ib_cm_connect_complete()
212 err = rdsv3_ib_update_ipaddr(rds_ibdev, conn->c_laddr); in rdsv3_ib_cm_connect_complete()
216 rdsv3_ib_add_conn(rds_ibdev, conn); in rdsv3_ib_cm_connect_complete()
223 rdsv3_send_drop_acked(conn, ntohll(dp->dp_ack_seq), NULL); in rdsv3_ib_cm_connect_complete()
225 rdsv3_connect_complete(conn); in rdsv3_ib_cm_connect_complete()
229 conn, event); in rdsv3_ib_cm_connect_complete()
233 rdsv3_ib_cm_fill_conn_param(struct rdsv3_connection *conn, in rdsv3_ib_cm_fill_conn_param() argument
240 struct rdsv3_ib_connection *ic = conn->c_transport_data; in rdsv3_ib_cm_fill_conn_param()
245 conn, conn_param, dp, protocol_version); in rdsv3_ib_cm_fill_conn_param()
260 dp->dp_saddr = conn->c_laddr; in rdsv3_ib_cm_fill_conn_param()
261 dp->dp_daddr = conn->c_faddr; in rdsv3_ib_cm_fill_conn_param()
285 conn, conn_param, dp, protocol_version); in rdsv3_ib_cm_fill_conn_param()
298 struct rdsv3_connection *conn = context; in rdsv3_ib_snd_cq_comp_handler() local
299 struct rdsv3_ib_connection *ic = conn->c_transport_data; in rdsv3_ib_snd_cq_comp_handler()
302 "Enter(conn: %p ic: %p cq: %p)", conn, ic, cq); in rdsv3_ib_snd_cq_comp_handler()
311 struct rdsv3_connection *conn = ic->conn; in rdsv3_ib_snd_tasklet_fn() local
317 "Enter(conn: %p ic: %p)", conn, ic); in rdsv3_ib_snd_tasklet_fn()
349 struct rdsv3_connection *conn = context; in rdsv3_ib_cq_comp_handler() local
350 struct rdsv3_ib_connection *ic = conn->c_transport_data; in rdsv3_ib_cq_comp_handler()
353 "Enter(conn: %p cq: %p)", conn, cq); in rdsv3_ib_cq_comp_handler()
363 struct rdsv3_connection *conn = (struct rdsv3_connection *)data; in rdsv3_ib_refill_fn() local
365 (void) rdsv3_ib_recv_refill(conn, 0); in rdsv3_ib_refill_fn()
372 struct rdsv3_connection *conn = ic->conn; in rdsv3_ib_tasklet_fn() local
379 "Enter(conn: %p ic: %p)", conn, ic); in rdsv3_ib_tasklet_fn()
430 rdsv3_send_drop_acked(conn, ack_state.ack_recv, NULL); in rdsv3_ib_tasklet_fn()
433 if (rdsv3_conn_up(conn)) { in rdsv3_ib_tasklet_fn()
434 if (!test_bit(RDSV3_LL_SEND_FULL, &conn->c_flags)) in rdsv3_ib_tasklet_fn()
435 (void) rdsv3_send_xmit(ic->conn); in rdsv3_ib_tasklet_fn()
443 struct rdsv3_connection *conn = data; in rdsv3_ib_qp_event_handler() local
444 struct rdsv3_ib_connection *ic = conn->c_transport_data; in rdsv3_ib_qp_event_handler()
447 conn, ic, event->event); in rdsv3_ib_qp_event_handler()
454 if (conn) { in rdsv3_ib_qp_event_handler()
459 event->event, NIPQUAD(conn->c_laddr), in rdsv3_ib_qp_event_handler()
460 NIPQUAD(conn->c_faddr)); in rdsv3_ib_qp_event_handler()
461 rdsv3_conn_drop(conn); in rdsv3_ib_qp_event_handler()
471 conn, event); in rdsv3_ib_qp_event_handler()
484 rdsv3_ib_setup_qp(struct rdsv3_connection *conn) in rdsv3_ib_setup_qp() argument
486 struct rdsv3_ib_connection *ic = conn->c_transport_data; in rdsv3_ib_setup_qp()
494 RDSV3_DPRINTF2("rdsv3_ib_setup_qp", "Enter conn: %p", conn); in rdsv3_ib_setup_qp()
524 rdsv3_ib_cq_event_handler, conn, in rdsv3_ib_setup_qp()
536 rdsv3_ib_cq_event_handler, conn, ic->i_send_ring.w_nr + 1, in rdsv3_ib_setup_qp()
552 attr.qp_context = conn; in rdsv3_ib_setup_qp()
637 conn, ic->i_pd, ic->i_mr, ic->i_cq); in rdsv3_ib_setup_qp()
647 event->param.conn.private_data; in rdsv3_ib_protocol_compatible()
668 if (!event->param.conn.private_data_len) { in rdsv3_ib_protocol_compatible()
675 if (event->param.conn.private_data_len < sizeof (*dp) || in rdsv3_ib_protocol_compatible()
707 event->param.conn.private_data; in rdsv3_ib_cm_handle_connect()
709 struct rdsv3_connection *conn = NULL; in rdsv3_ib_cm_handle_connect() local
734 conn = rdsv3_conn_create(dp->dp_daddr, dp->dp_saddr, in rdsv3_ib_cm_handle_connect()
736 if (IS_ERR(conn)) { in rdsv3_ib_cm_handle_connect()
738 "rdsv3_conn_create failed (%ld)", PTR_ERR(conn)); in rdsv3_ib_cm_handle_connect()
739 conn = NULL; in rdsv3_ib_cm_handle_connect()
750 mutex_enter(&conn->c_cm_lock); in rdsv3_ib_cm_handle_connect()
751 if (!rdsv3_conn_transition(conn, RDSV3_CONN_DOWN, in rdsv3_ib_cm_handle_connect()
753 if (rdsv3_conn_state(conn) == RDSV3_CONN_UP) { in rdsv3_ib_cm_handle_connect()
756 conn); in rdsv3_ib_cm_handle_connect()
757 rdsv3_conn_drop(conn); in rdsv3_ib_cm_handle_connect()
759 mutex_exit(&conn->c_cm_lock); in rdsv3_ib_cm_handle_connect()
761 } else if (rdsv3_conn_state(conn) == RDSV3_CONN_CONNECTING) { in rdsv3_ib_cm_handle_connect()
766 conn, lguid, fguid); in rdsv3_ib_cm_handle_connect()
769 mutex_exit(&conn->c_cm_lock); in rdsv3_ib_cm_handle_connect()
773 ic = conn->c_transport_data; in rdsv3_ib_cm_handle_connect()
775 rdsv3_ib_set_protocol(conn, version); in rdsv3_ib_cm_handle_connect()
776 rdsv3_ib_set_flow_control(conn, ntohl(dp->dp_credit)); in rdsv3_ib_cm_handle_connect()
783 rdsv3_send_drop_acked(conn, ntohll(dp->dp_ack_seq), NULL); in rdsv3_ib_cm_handle_connect()
792 cm_id->context = conn; in rdsv3_ib_cm_handle_connect()
800 err = rdsv3_ib_setup_qp(conn); in rdsv3_ib_cm_handle_connect()
804 mutex_exit(&conn->c_cm_lock); in rdsv3_ib_cm_handle_connect()
805 rdsv3_conn_drop(conn); in rdsv3_ib_cm_handle_connect()
809 rdsv3_ib_cm_fill_conn_param(conn, &conn_param, &dp_rep, version, in rdsv3_ib_cm_handle_connect()
810 event->param.conn.responder_resources, in rdsv3_ib_cm_handle_connect()
811 event->param.conn.initiator_depth); in rdsv3_ib_cm_handle_connect()
815 mutex_exit(&conn->c_cm_lock); in rdsv3_ib_cm_handle_connect()
819 rdsv3_conn_drop(conn); in rdsv3_ib_cm_handle_connect()
837 struct rdsv3_connection *conn = cm_id->context; in rdsv3_ib_cm_initiate_connect() local
838 struct rdsv3_ib_connection *ic = conn->c_transport_data; in rdsv3_ib_cm_initiate_connect()
850 rdsv3_ib_set_protocol(conn, RDS_PROTOCOL_3_0); in rdsv3_ib_cm_initiate_connect()
854 ret = rdsv3_ib_setup_qp(conn); in rdsv3_ib_cm_initiate_connect()
858 rdsv3_conn_drop(conn); in rdsv3_ib_cm_initiate_connect()
862 rdsv3_ib_cm_fill_conn_param(conn, &conn_param, &dp, in rdsv3_ib_cm_initiate_connect()
869 rdsv3_conn_drop(conn); in rdsv3_ib_cm_initiate_connect()
889 rdsv3_ib_conn_connect(struct rdsv3_connection *conn) in rdsv3_ib_conn_connect() argument
891 struct rdsv3_ib_connection *ic = conn->c_transport_data; in rdsv3_ib_conn_connect()
896 RDSV3_DPRINTF2("rdsv3_ib_conn_connect", "Enter: conn: %p", conn); in rdsv3_ib_conn_connect()
902 ic->i_cm_id = rdma_create_id(rdsv3_rdma_cm_event_handler, conn, in rdsv3_ib_conn_connect()
913 "created cm id %p for conn %p", ic->i_cm_id, conn); in rdsv3_ib_conn_connect()
916 laddr = conn->c_laddr; in rdsv3_ib_conn_connect()
917 faddr = conn->c_faddr; in rdsv3_ib_conn_connect()
942 RDSV3_DPRINTF2("rdsv3_ib_conn_connect", "Return: conn: %p", conn); in rdsv3_ib_conn_connect()
954 rdsv3_ib_conn_shutdown(struct rdsv3_connection *conn) in rdsv3_ib_conn_shutdown() argument
956 struct rdsv3_ib_connection *ic = conn->c_transport_data; in rdsv3_ib_conn_shutdown()
1029 rdsv3_ib_remove_conn(ic->rds_ibdev, conn); in rdsv3_ib_conn_shutdown()
1087 RDSV3_DPRINTF2("rdsv3_ib_conn_shutdown", "Return conn: %p", conn); in rdsv3_ib_conn_shutdown()
1092 rdsv3_ib_conn_alloc(struct rdsv3_connection *conn, int gfp) in rdsv3_ib_conn_alloc() argument
1096 RDSV3_DPRINTF2("rdsv3_ib_conn_alloc", "conn: %p", conn); in rdsv3_ib_conn_alloc()
1115 ic->conn = conn; in rdsv3_ib_conn_alloc()
1116 conn->c_transport_data = ic; in rdsv3_ib_conn_alloc()
1123 conn, conn->c_transport_data); in rdsv3_ib_conn_alloc()
1158 __rdsv3_ib_conn_error(struct rdsv3_connection *conn) in __rdsv3_ib_conn_error() argument
1160 rdsv3_conn_drop(conn); in __rdsv3_ib_conn_error()