Lines Matching refs:bnx2i_ep
384 struct bnx2i_endpoint *bnx2i_ep; in bnx2i_alloc_ep() local
387 ep = iscsi_create_endpoint(sizeof(*bnx2i_ep)); in bnx2i_alloc_ep()
393 bnx2i_ep = ep->dd_data; in bnx2i_alloc_ep()
394 bnx2i_ep->cls_ep = ep; in bnx2i_alloc_ep()
395 INIT_LIST_HEAD(&bnx2i_ep->link); in bnx2i_alloc_ep()
396 bnx2i_ep->state = EP_STATE_IDLE; in bnx2i_alloc_ep()
397 bnx2i_ep->ep_iscsi_cid = (u16) -1; in bnx2i_alloc_ep()
398 bnx2i_ep->hba = hba; in bnx2i_alloc_ep()
399 bnx2i_ep->hba_age = hba->age; in bnx2i_alloc_ep()
403 bnx2i_ep->ec_shift += 1; in bnx2i_alloc_ep()
406 init_waitqueue_head(&bnx2i_ep->ofld_wait); in bnx2i_alloc_ep()
417 struct bnx2i_endpoint *bnx2i_ep = ep->dd_data; in bnx2i_free_ep() local
421 bnx2i_ep->state = EP_STATE_IDLE; in bnx2i_free_ep()
422 bnx2i_ep->hba->ofld_conns_active--; in bnx2i_free_ep()
424 if (bnx2i_ep->ep_iscsi_cid != (u16) -1) in bnx2i_free_ep()
425 bnx2i_free_iscsi_cid(bnx2i_ep->hba, bnx2i_ep->ep_iscsi_cid); in bnx2i_free_ep()
427 if (bnx2i_ep->conn) { in bnx2i_free_ep()
428 bnx2i_ep->conn->ep = NULL; in bnx2i_free_ep()
429 bnx2i_ep->conn = NULL; in bnx2i_free_ep()
432 bnx2i_ep->hba = NULL; in bnx2i_free_ep()
1294 struct bnx2i_endpoint *bnx2i_ep; in bnx2i_session_create() local
1301 bnx2i_ep = ep->dd_data; in bnx2i_session_create()
1302 shost = bnx2i_ep->hba->shost; in bnx2i_session_create()
1415 struct bnx2i_endpoint *bnx2i_ep; in bnx2i_conn_bind() local
1429 bnx2i_ep = ep->dd_data; in bnx2i_conn_bind()
1430 if ((bnx2i_ep->state == EP_STATE_TCP_FIN_RCVD) || in bnx2i_conn_bind()
1431 (bnx2i_ep->state == EP_STATE_TCP_RST_RCVD)) in bnx2i_conn_bind()
1438 if (bnx2i_ep->hba != hba) { in bnx2i_conn_bind()
1443 bnx2i_ep, bnx2i_ep->hba->netdev->name); in bnx2i_conn_bind()
1449 bnx2i_ep->conn = bnx2i_conn; in bnx2i_conn_bind()
1450 bnx2i_conn->ep = bnx2i_ep; in bnx2i_conn_bind()
1451 bnx2i_conn->iscsi_conn_cid = bnx2i_ep->ep_iscsi_cid; in bnx2i_conn_bind()
1452 bnx2i_conn->fw_cid = bnx2i_ep->ep_cid; in bnx2i_conn_bind()
1455 bnx2i_ep->ep_iscsi_cid); in bnx2i_conn_bind()
1460 if (test_bit(BNX2I_NX2_DEV_57710, &bnx2i_ep->hba->cnic_dev_type)) in bnx2i_conn_bind()
1524 struct bnx2i_endpoint *bnx2i_ep = ep->dd_data; in bnx2i_ep_get_param() local
1525 struct bnx2i_hba *hba = bnx2i_ep->hba; in bnx2i_ep_get_param()
1534 if (bnx2i_ep->cm_sk) in bnx2i_ep_get_param()
1535 len = sprintf(buf, "%hu\n", bnx2i_ep->cm_sk->dst_port); in bnx2i_ep_get_param()
1540 if (bnx2i_ep->cm_sk) in bnx2i_ep_get_param()
1541 len = sprintf(buf, "%pI4\n", &bnx2i_ep->cm_sk->dst_ip); in bnx2i_ep_get_param()
1575 struct bnx2i_endpoint *bnx2i_ep; in bnx2i_host_get_param() local
1578 bnx2i_ep = list_first_entry(active_list, in bnx2i_host_get_param()
1581 csk = bnx2i_ep->cm_sk; in bnx2i_host_get_param()
1777 struct bnx2i_endpoint *bnx2i_ep; in bnx2i_ep_connect() local
1810 bnx2i_ep = ep->dd_data; in bnx2i_ep_connect()
1812 atomic_set(&bnx2i_ep->num_active_cmds, 0); in bnx2i_ep_connect()
1821 bnx2i_ep->hba_age = hba->age; in bnx2i_ep_connect()
1823 rc = bnx2i_alloc_qp_resc(hba, bnx2i_ep); in bnx2i_ep_connect()
1831 bnx2i_ep->ep_iscsi_cid = (u16)iscsi_cid; in bnx2i_ep_connect()
1832 bnx2i_ep->state = EP_STATE_OFLD_START; in bnx2i_ep_connect()
1833 bnx2i_ep_ofld_list_add(hba, bnx2i_ep); in bnx2i_ep_connect()
1835 timer_setup(&bnx2i_ep->ofld_timer, bnx2i_ep_ofld_timer, 0); in bnx2i_ep_connect()
1836 bnx2i_ep->ofld_timer.expires = 2 * HZ + jiffies; in bnx2i_ep_connect()
1837 add_timer(&bnx2i_ep->ofld_timer); in bnx2i_ep_connect()
1839 if (bnx2i_send_conn_ofld_req(hba, bnx2i_ep)) { in bnx2i_ep_connect()
1840 if (bnx2i_ep->state == EP_STATE_OFLD_FAILED_CID_BUSY) { in bnx2i_ep_connect()
1842 hba->netdev->name, bnx2i_ep->ep_iscsi_cid); in bnx2i_ep_connect()
1848 bnx2i_ep_ofld_list_del(hba, bnx2i_ep); in bnx2i_ep_connect()
1853 wait_event_interruptible(bnx2i_ep->ofld_wait, in bnx2i_ep_connect()
1854 bnx2i_ep->state != EP_STATE_OFLD_START); in bnx2i_ep_connect()
1858 del_timer_sync(&bnx2i_ep->ofld_timer); in bnx2i_ep_connect()
1860 bnx2i_ep_ofld_list_del(hba, bnx2i_ep); in bnx2i_ep_connect()
1862 if (bnx2i_ep->state != EP_STATE_OFLD_COMPL) { in bnx2i_ep_connect()
1863 if (bnx2i_ep->state == EP_STATE_OFLD_FAILED_CID_BUSY) { in bnx2i_ep_connect()
1865 hba->netdev->name, bnx2i_ep->ep_iscsi_cid); in bnx2i_ep_connect()
1872 rc = cnic->cm_create(cnic, CNIC_ULP_ISCSI, bnx2i_ep->ep_cid, in bnx2i_ep_connect()
1873 iscsi_cid, &bnx2i_ep->cm_sk, bnx2i_ep); in bnx2i_ep_connect()
1880 bnx2i_ep->cm_sk->rcv_buf = 256 * 1024; in bnx2i_ep_connect()
1881 bnx2i_ep->cm_sk->snd_buf = 256 * 1024; in bnx2i_ep_connect()
1882 clear_bit(SK_TCP_TIMESTAMP, &bnx2i_ep->cm_sk->tcp_flags); in bnx2i_ep_connect()
1895 bnx2i_ep->timestamp = jiffies; in bnx2i_ep_connect()
1896 bnx2i_ep->state = EP_STATE_CONNECT_START; in bnx2i_ep_connect()
1901 rc = cnic->cm_connect(bnx2i_ep->cm_sk, &saddr); in bnx2i_ep_connect()
1905 bnx2i_ep_active_list_add(hba, bnx2i_ep); in bnx2i_ep_connect()
1907 rc = bnx2i_map_ep_dbell_regs(bnx2i_ep); in bnx2i_ep_connect()
1915 bnx2i_ep_active_list_del(hba, bnx2i_ep); in bnx2i_ep_connect()
1917 if (bnx2i_tear_down_conn(hba, bnx2i_ep)) { in bnx2i_ep_connect()
1922 bnx2i_free_qp_resc(hba, bnx2i_ep); in bnx2i_ep_connect()
1941 struct bnx2i_endpoint *bnx2i_ep; in bnx2i_ep_poll() local
1944 bnx2i_ep = ep->dd_data; in bnx2i_ep_poll()
1945 if ((bnx2i_ep->state == EP_STATE_IDLE) || in bnx2i_ep_poll()
1946 (bnx2i_ep->state == EP_STATE_CONNECT_FAILED) || in bnx2i_ep_poll()
1947 (bnx2i_ep->state == EP_STATE_OFLD_FAILED)) in bnx2i_ep_poll()
1949 if (bnx2i_ep->state == EP_STATE_CONNECT_COMPL) in bnx2i_ep_poll()
1952 rc = wait_event_interruptible_timeout(bnx2i_ep->ofld_wait, in bnx2i_ep_poll()
1953 ((bnx2i_ep->state == in bnx2i_ep_poll()
1955 (bnx2i_ep->state == in bnx2i_ep_poll()
1957 (bnx2i_ep->state == in bnx2i_ep_poll()
1960 if (bnx2i_ep->state == EP_STATE_OFLD_FAILED) in bnx2i_ep_poll()
1978 static int bnx2i_ep_tcp_conn_active(struct bnx2i_endpoint *bnx2i_ep) in bnx2i_ep_tcp_conn_active() argument
1983 if (test_bit(BNX2I_NX2_DEV_57710, &bnx2i_ep->hba->cnic_dev_type)) in bnx2i_ep_tcp_conn_active()
1986 switch (bnx2i_ep->state) { in bnx2i_ep_tcp_conn_active()
2023 int bnx2i_hw_ep_disconnect(struct bnx2i_endpoint *bnx2i_ep) in bnx2i_hw_ep_disconnect() argument
2025 struct bnx2i_hba *hba = bnx2i_ep->hba; in bnx2i_hw_ep_disconnect()
2040 if (bnx2i_ep->state == EP_STATE_IDLE || in bnx2i_hw_ep_disconnect()
2041 bnx2i_ep->state == EP_STATE_DISCONN_TIMEDOUT) in bnx2i_hw_ep_disconnect()
2044 if (!bnx2i_ep_tcp_conn_active(bnx2i_ep)) in bnx2i_hw_ep_disconnect()
2047 if (bnx2i_ep->conn) { in bnx2i_hw_ep_disconnect()
2048 conn = bnx2i_ep->conn->cls_conn->dd_data; in bnx2i_hw_ep_disconnect()
2052 timer_setup(&bnx2i_ep->ofld_timer, bnx2i_ep_ofld_timer, 0); in bnx2i_hw_ep_disconnect()
2053 bnx2i_ep->ofld_timer.expires = hba->conn_teardown_tmo + jiffies; in bnx2i_hw_ep_disconnect()
2054 add_timer(&bnx2i_ep->ofld_timer); in bnx2i_hw_ep_disconnect()
2061 if (bnx2i_ep->state != EP_STATE_TCP_FIN_RCVD) { in bnx2i_hw_ep_disconnect()
2063 if (bnx2i_ep->state == EP_STATE_LOGOUT_SENT) { in bnx2i_hw_ep_disconnect()
2068 bnx2i_ep->hba->netdev->name); in bnx2i_hw_ep_disconnect()
2069 } else if (bnx2i_ep->state == in bnx2i_hw_ep_disconnect()
2079 bnx2i_ep->state = EP_STATE_DISCONN_START; in bnx2i_hw_ep_disconnect()
2082 close_ret = cnic->cm_close(bnx2i_ep->cm_sk); in bnx2i_hw_ep_disconnect()
2084 close_ret = cnic->cm_abort(bnx2i_ep->cm_sk); in bnx2i_hw_ep_disconnect()
2088 bnx2i_ep->hba->netdev->name, close, close_ret); in bnx2i_hw_ep_disconnect()
2091 wait_event_interruptible(bnx2i_ep->ofld_wait, in bnx2i_hw_ep_disconnect()
2092 ((bnx2i_ep->state != EP_STATE_DISCONN_START) in bnx2i_hw_ep_disconnect()
2093 && (bnx2i_ep->state != EP_STATE_TCP_FIN_RCVD))); in bnx2i_hw_ep_disconnect()
2097 del_timer_sync(&bnx2i_ep->ofld_timer); in bnx2i_hw_ep_disconnect()
2100 bnx2i_ep_active_list_del(hba, bnx2i_ep); in bnx2i_hw_ep_disconnect()
2101 if (bnx2i_tear_down_conn(hba, bnx2i_ep)) in bnx2i_hw_ep_disconnect()
2104 bnx2i_ep->state = EP_STATE_IDLE; in bnx2i_hw_ep_disconnect()
2117 struct bnx2i_endpoint *bnx2i_ep; in bnx2i_ep_disconnect() local
2122 bnx2i_ep = ep->dd_data; in bnx2i_ep_disconnect()
2128 while ((bnx2i_ep->state == EP_STATE_CONNECT_START) && in bnx2i_ep_disconnect()
2129 !time_after(jiffies, bnx2i_ep->timestamp + (12 * HZ))) in bnx2i_ep_disconnect()
2132 if (bnx2i_ep->conn) { in bnx2i_ep_disconnect()
2133 bnx2i_conn = bnx2i_ep->conn; in bnx2i_ep_disconnect()
2137 hba = bnx2i_ep->hba; in bnx2i_ep_disconnect()
2141 if (bnx2i_ep->state == EP_STATE_DISCONN_TIMEDOUT) in bnx2i_ep_disconnect()
2144 if (bnx2i_ep->state == EP_STATE_IDLE) in bnx2i_ep_disconnect()
2148 (bnx2i_ep->hba_age != hba->age)) { in bnx2i_ep_disconnect()
2149 bnx2i_ep_active_list_del(hba, bnx2i_ep); in bnx2i_ep_disconnect()
2154 if (bnx2i_hw_ep_disconnect(bnx2i_ep)) { in bnx2i_ep_disconnect()
2159 bnx2i_free_qp_resc(hba, bnx2i_ep); in bnx2i_ep_disconnect()