Lines Matching refs:qedi_ep

244 	struct qedi_endpoint *qedi_ep;  in qedi_session_create()  local
249 qedi_ep = ep->dd_data; in qedi_session_create()
250 shost = qedi_ep->qedi->shost; in qedi_session_create()
263 "Failed to setup session for ep=%p\n", qedi_ep); in qedi_session_create()
269 "Failed to setup cmd pool for ep=%p\n", qedi_ep); in qedi_session_create()
388 struct qedi_endpoint *qedi_ep; in qedi_conn_bind() local
396 qedi_ep = ep->dd_data; in qedi_conn_bind()
397 if ((qedi_ep->state == EP_STATE_TCP_FIN_RCVD) || in qedi_conn_bind()
398 (qedi_ep->state == EP_STATE_TCP_RST_RCVD)) { in qedi_conn_bind()
409 qedi_ep->conn = qedi_conn; in qedi_conn_bind()
410 qedi_conn->ep = qedi_ep; in qedi_conn_bind()
412 qedi_conn->iscsi_conn_id = qedi_ep->iscsi_cid; in qedi_conn_bind()
413 qedi_conn->fw_cid = qedi_ep->fw_cid; in qedi_conn_bind()
437 struct qedi_endpoint *qedi_ep; in qedi_iscsi_update_conn() local
440 qedi_ep = qedi_conn->ep; in qedi_iscsi_update_conn()
471 rval = qedi_ops->update_conn(qedi->cdev, qedi_ep->handle, in qedi_iscsi_update_conn()
500 static int qedi_iscsi_offload_conn(struct qedi_endpoint *qedi_ep) in qedi_iscsi_offload_conn() argument
502 struct qedi_ctx *qedi = qedi_ep->qedi; in qedi_iscsi_offload_conn()
510 "Failed to allocate memory ep=%p\n", qedi_ep); in qedi_iscsi_offload_conn()
514 ether_addr_copy(conn_info->src.mac, qedi_ep->src_mac); in qedi_iscsi_offload_conn()
515 ether_addr_copy(conn_info->dst.mac, qedi_ep->dst_mac); in qedi_iscsi_offload_conn()
517 conn_info->src.ip[0] = ntohl(qedi_ep->src_addr[0]); in qedi_iscsi_offload_conn()
518 conn_info->dst.ip[0] = ntohl(qedi_ep->dst_addr[0]); in qedi_iscsi_offload_conn()
520 if (qedi_ep->ip_type == TCP_IPV4) { in qedi_iscsi_offload_conn()
524 qedi_ep->src_addr, qedi_ep->dst_addr); in qedi_iscsi_offload_conn()
527 conn_info->src.ip[i] = ntohl(qedi_ep->src_addr[i]); in qedi_iscsi_offload_conn()
528 conn_info->dst.ip[i] = ntohl(qedi_ep->dst_addr[i]); in qedi_iscsi_offload_conn()
534 qedi_ep->src_addr, qedi_ep->dst_addr); in qedi_iscsi_offload_conn()
537 conn_info->src.port = qedi_ep->src_port; in qedi_iscsi_offload_conn()
538 conn_info->dst.port = qedi_ep->dst_port; in qedi_iscsi_offload_conn()
541 conn_info->sq_pbl_addr = qedi_ep->sq_pbl_dma; in qedi_iscsi_offload_conn()
542 conn_info->vlan_id = qedi_ep->vlan_id; in qedi_iscsi_offload_conn()
549 conn_info->default_cq = (qedi_ep->fw_cid % qedi->num_queues); in qedi_iscsi_offload_conn()
564 conn_info->remote_port = qedi_ep->dst_port; in qedi_iscsi_offload_conn()
565 conn_info->local_port = qedi_ep->src_port; in qedi_iscsi_offload_conn()
567 conn_info->mss = qedi_calc_mss(qedi_ep->pmtu, in qedi_iscsi_offload_conn()
568 (qedi_ep->ip_type == TCP_IPV6), in qedi_iscsi_offload_conn()
569 1, (qedi_ep->vlan_id != 0)); in qedi_iscsi_offload_conn()
580 rval = qedi_ops->offload_conn(qedi->cdev, qedi_ep->handle, conn_info); in qedi_iscsi_offload_conn()
583 rval, qedi_ep); in qedi_iscsi_offload_conn()
636 struct qedi_endpoint *qedi_ep = ep->dd_data; in qedi_ep_get_param() local
639 if (!qedi_ep) in qedi_ep_get_param()
644 len = sprintf(buf, "%hu\n", qedi_ep->dst_port); in qedi_ep_get_param()
647 if (qedi_ep->ip_type == TCP_IPV4) in qedi_ep_get_param()
648 len = sprintf(buf, "%pI4\n", qedi_ep->dst_addr); in qedi_ep_get_param()
650 len = sprintf(buf, "%pI6\n", qedi_ep->dst_addr); in qedi_ep_get_param()
833 struct qedi_endpoint *qedi_ep = in qedi_offload_work() local
839 qedi = qedi_ep->qedi; in qedi_offload_work()
841 ret = qedi_iscsi_offload_conn(qedi_ep); in qedi_offload_work()
845 qedi_ep->iscsi_cid, qedi_ep, ret); in qedi_offload_work()
846 qedi_ep->state = EP_STATE_OFLDCONN_FAILED; in qedi_offload_work()
850 ret = wait_event_interruptible_timeout(qedi_ep->tcp_ofld_wait, in qedi_offload_work()
851 (qedi_ep->state == in qedi_offload_work()
854 if (ret <= 0 || qedi_ep->state != EP_STATE_OFLDCONN_COMPL) { in qedi_offload_work()
855 qedi_ep->state = EP_STATE_OFLDCONN_FAILED; in qedi_offload_work()
858 qedi_ep->iscsi_cid, qedi_ep); in qedi_offload_work()
868 struct qedi_endpoint *qedi_ep; in qedi_ep_connect() local
908 qedi_ep = ep->dd_data; in qedi_ep_connect()
909 memset(qedi_ep, 0, sizeof(struct qedi_endpoint)); in qedi_ep_connect()
910 INIT_WORK(&qedi_ep->offload_work, qedi_offload_work); in qedi_ep_connect()
911 qedi_ep->state = EP_STATE_IDLE; in qedi_ep_connect()
912 qedi_ep->iscsi_cid = (u32)-1; in qedi_ep_connect()
913 qedi_ep->qedi = qedi; in qedi_ep_connect()
917 memcpy(qedi_ep->dst_addr, &addr->sin_addr.s_addr, in qedi_ep_connect()
919 qedi_ep->dst_port = ntohs(addr->sin_port); in qedi_ep_connect()
920 qedi_ep->ip_type = TCP_IPV4; in qedi_ep_connect()
923 qedi_ep->dst_addr, qedi_ep->dst_port); in qedi_ep_connect()
926 memcpy(qedi_ep->dst_addr, &addr6->sin6_addr, in qedi_ep_connect()
928 qedi_ep->dst_port = ntohs(addr6->sin6_port); in qedi_ep_connect()
929 qedi_ep->ip_type = TCP_IPV6; in qedi_ep_connect()
932 qedi_ep->dst_addr, qedi_ep->dst_port); in qedi_ep_connect()
937 ret = qedi_alloc_sq(qedi, qedi_ep); in qedi_ep_connect()
941 ret = qedi_ops->acquire_conn(qedi->cdev, &qedi_ep->handle, in qedi_ep_connect()
942 &qedi_ep->fw_cid, &qedi_ep->p_doorbell); in qedi_ep_connect()
950 iscsi_cid = qedi_ep->handle; in qedi_ep_connect()
951 qedi_ep->iscsi_cid = iscsi_cid; in qedi_ep_connect()
953 init_waitqueue_head(&qedi_ep->ofld_wait); in qedi_ep_connect()
954 init_waitqueue_head(&qedi_ep->tcp_ofld_wait); in qedi_ep_connect()
955 qedi_ep->state = EP_STATE_OFLDCONN_START; in qedi_ep_connect()
956 qedi->ep_tbl[iscsi_cid] = qedi_ep; in qedi_ep_connect()
963 path_req.handle = (u64)qedi_ep->iscsi_cid; in qedi_ep_connect()
965 qedi_ep->pmtu = qedi->ll2_mtu; in qedi_ep_connect()
966 if (qedi_ep->ip_type == TCP_IPV4) { in qedi_ep_connect()
967 memcpy(&path_req.dst.v4_addr, &qedi_ep->dst_addr, in qedi_ep_connect()
971 memcpy(&path_req.dst.v6_addr, &qedi_ep->dst_addr, in qedi_ep_connect()
990 tmp = qedi_ops->release_conn(qedi->cdev, qedi_ep->handle); in qedi_ep_connect()
995 qedi_free_sq(qedi, qedi_ep); in qedi_ep_connect()
1003 struct qedi_endpoint *qedi_ep; in qedi_ep_poll() local
1009 qedi_ep = ep->dd_data; in qedi_ep_poll()
1010 if (qedi_ep->state == EP_STATE_IDLE || in qedi_ep_poll()
1011 qedi_ep->state == EP_STATE_OFLDCONN_NONE || in qedi_ep_poll()
1012 qedi_ep->state == EP_STATE_OFLDCONN_FAILED) in qedi_ep_poll()
1015 if (qedi_ep->state == EP_STATE_OFLDCONN_COMPL) in qedi_ep_poll()
1018 ret = wait_event_interruptible_timeout(qedi_ep->ofld_wait, in qedi_ep_poll()
1019 QEDI_OFLD_WAIT_STATE(qedi_ep), in qedi_ep_poll()
1022 if (qedi_ep->state == EP_STATE_OFLDCONN_FAILED) in qedi_ep_poll()
1048 struct qedi_endpoint *qedi_ep; in qedi_ep_disconnect() local
1058 qedi_ep = ep->dd_data; in qedi_ep_disconnect()
1059 qedi = qedi_ep->qedi; in qedi_ep_disconnect()
1061 flush_work(&qedi_ep->offload_work); in qedi_ep_disconnect()
1063 if (qedi_ep->state == EP_STATE_OFLDCONN_START) in qedi_ep_disconnect()
1066 if (qedi_ep->conn) { in qedi_ep_disconnect()
1067 qedi_conn = qedi_ep->conn; in qedi_ep_disconnect()
1084 qedi_ep->iscsi_cid); in qedi_ep_disconnect()
1089 qedi_ep->iscsi_cid, qedi_ep, qedi_ep->state); in qedi_ep_disconnect()
1098 switch (qedi_ep->state) { in qedi_ep_disconnect()
1111 qedi_ep->state, in qedi_ep_disconnect()
1112 qedi_ep->iscsi_cid, in qedi_ep_disconnect()
1113 qedi_ep->conn in qedi_ep_disconnect()
1131 qedi_ep->state = EP_STATE_DISCONN_START; in qedi_ep_disconnect()
1137 ret = qedi_ops->destroy_conn(qedi->cdev, qedi_ep->handle, abrt_conn); in qedi_ep_disconnect()
1143 qedi_ep->tcp_ofld_wait, in qedi_ep_disconnect()
1144 (qedi_ep->state != in qedi_ep_disconnect()
1147 if ((ret <= 0) || (qedi_ep->state == EP_STATE_DISCONN_START)) { in qedi_ep_disconnect()
1150 ret, wait_delay, qedi_ep->iscsi_cid); in qedi_ep_disconnect()
1155 ret = qedi_ops->release_conn(qedi->cdev, qedi_ep->handle); in qedi_ep_disconnect()
1159 ret, qedi_ep->iscsi_cid); in qedi_ep_disconnect()
1161 qedi_ep->state = EP_STATE_IDLE; in qedi_ep_disconnect()
1162 qedi->ep_tbl[qedi_ep->iscsi_cid] = NULL; in qedi_ep_disconnect()
1163 qedi->cid_que.conn_cid_tbl[qedi_ep->iscsi_cid] = NULL; in qedi_ep_disconnect()
1164 qedi_free_id(&qedi->lcl_port_tbl, qedi_ep->src_port); in qedi_ep_disconnect()
1165 qedi_free_sq(qedi, qedi_ep); in qedi_ep_disconnect()
1170 qedi_ep->conn = NULL; in qedi_ep_disconnect()
1171 qedi_ep->qedi = NULL; in qedi_ep_disconnect()
1233 struct qedi_endpoint *qedi_ep; in qedi_set_path() local
1262 qedi_ep = qedi->ep_tbl[iscsi_cid]; in qedi_set_path()
1264 "iscsi_cid=0x%x, qedi_ep=%p\n", iscsi_cid, qedi_ep); in qedi_set_path()
1265 if (!qedi_ep) { in qedi_set_path()
1272 qedi_ep->state = EP_STATE_OFLDCONN_NONE; in qedi_set_path()
1277 ether_addr_copy(&qedi_ep->src_mac[0], &qedi->mac[0]); in qedi_set_path()
1278 ether_addr_copy(&qedi_ep->dst_mac[0], &path_data->mac_addr[0]); in qedi_set_path()
1280 qedi_ep->vlan_id = path_data->vlan_id; in qedi_set_path()
1282 qedi_ep->pmtu = qedi->ll2_mtu; in qedi_set_path()
1285 path_data->pmtu, qedi_ep->pmtu); in qedi_set_path()
1296 qedi_ep->pmtu = qedi->ll2_mtu; in qedi_set_path()
1299 port_id = qedi_ep->src_port; in qedi_set_path()
1319 qedi_ep->src_port = port_id; in qedi_set_path()
1321 if (qedi_ep->ip_type == TCP_IPV4) { in qedi_set_path()
1322 memcpy(&qedi_ep->src_addr[0], &path_data->src.v4_addr, in qedi_set_path()
1330 qedi_ep->src_addr, qedi_ep->src_port, in qedi_set_path()
1331 qedi_ep->dst_addr, qedi_ep->dst_port); in qedi_set_path()
1333 memcpy(&qedi_ep->src_addr[0], &path_data->src.v6_addr, in qedi_set_path()
1341 qedi_ep->src_addr, qedi_ep->src_port, in qedi_set_path()
1342 qedi_ep->dst_addr, qedi_ep->dst_port); in qedi_set_path()
1345 queue_work(qedi->offload_thread, &qedi_ep->offload_work); in qedi_set_path()