Lines Matching refs:port

848 	fc_local_port_t *port = port_handle;  in fc_ulp_init_packet()  local
856 rval = port->fp_fca_tran->fca_init_pkt(port->fp_fca_handle, pkt, sleep); in fc_ulp_init_packet()
886 fc_local_port_t *port = port_handle; in fc_ulp_uninit_packet() local
894 rval = port->fp_fca_tran->fca_un_init_pkt(port->fp_fca_handle, pkt); in fc_ulp_uninit_packet()
920 if ((fctl_destroy_remote_port(port, pd) == 0) && in fc_ulp_uninit_packet()
939 fc_local_port_t *port; in fc_ulp_getportmap() local
946 port = port_handle; in fc_ulp_getportmap()
948 mutex_enter(&port->fp_mutex); in fc_ulp_getportmap()
949 if (port->fp_statec_busy) { in fc_ulp_getportmap()
950 mutex_exit(&port->fp_mutex); in fc_ulp_getportmap()
954 if (FC_PORT_STATE_MASK(port->fp_state) == FC_STATE_OFFLINE) { in fc_ulp_getportmap()
955 mutex_exit(&port->fp_mutex); in fc_ulp_getportmap()
959 if (port->fp_dev_count && (port->fp_dev_count == in fc_ulp_getportmap()
960 port->fp_total_devices)) { in fc_ulp_getportmap()
961 mutex_exit(&port->fp_mutex); in fc_ulp_getportmap()
962 fctl_fillout_map(port, &change_list, &listlen, 1, 1, 0); in fc_ulp_getportmap()
981 mutex_exit(&port->fp_mutex); in fc_ulp_getportmap()
1002 fctl_enque_job(port, job); in fc_ulp_getportmap()
1047 fc_local_port_t *port = port_handle; in fc_ulp_login() local
1056 mutex_enter(&port->fp_mutex); in fc_ulp_login()
1057 if (port->fp_statec_busy) { in fc_ulp_login()
1058 mutex_exit(&port->fp_mutex); in fc_ulp_login()
1062 if ((FC_PORT_STATE_MASK(port->fp_state) == FC_STATE_OFFLINE) || in fc_ulp_login()
1063 (port->fp_soft_state & in fc_ulp_login()
1065 mutex_exit(&port->fp_mutex); in fc_ulp_login()
1075 (rscnp->ulp_rscn_count != port->fp_rscn_count)) { in fc_ulp_login()
1076 mutex_exit(&port->fp_mutex); in fc_ulp_login()
1080 mutex_exit(&port->fp_mutex); in fc_ulp_login()
1143 fctl_enque_job(port, job); in fc_ulp_login()
1159 fc_local_port_t *port; in fc_ulp_get_remote_port() local
1163 port = port_handle; in fc_ulp_get_remote_port()
1164 pd = fctl_get_remote_port_by_pwwn(port, pwwn); in fc_ulp_get_remote_port()
1177 mutex_enter(&port->fp_mutex); in fc_ulp_get_remote_port()
1178 if (FC_IS_TOP_SWITCH(port->fp_topology) && create) { in fc_ulp_get_remote_port()
1182 mutex_exit(&port->fp_mutex); in fc_ulp_get_remote_port()
1206 fctl_enque_job(port, job); in fc_ulp_get_remote_port()
1232 fctl_enque_job(port, job); in fc_ulp_get_remote_port()
1246 pd = fctl_get_remote_port_by_pwwn(port, pwwn); in fc_ulp_get_remote_port()
1261 mutex_exit(&port->fp_mutex); in fc_ulp_get_remote_port()
1282 fc_local_port_t *port = port_handle; in fc_ulp_port_ns() local
1284 mutex_enter(&port->fp_mutex); in fc_ulp_port_ns()
1285 fabric = FC_IS_TOP_SWITCH(port->fp_topology) ? 1 : 0; in fc_ulp_port_ns()
1286 mutex_exit(&port->fp_mutex); in fc_ulp_port_ns()
1297 rval = fctl_update_host_ns_values(port, ns_req); in fc_ulp_port_ns()
1327 return (fctl_retrieve_host_ns_values(port, ns_req)); in fc_ulp_port_ns()
1341 fctl_enque_job(port, job); in fc_ulp_port_ns()
1363 fc_local_port_t *port; in fc_ulp_transport() local
1368 port = port_handle; in fc_ulp_transport()
1371 return (port->fp_fca_tran->fca_transport( in fc_ulp_transport()
1372 port->fp_fca_handle, pkt)); in fc_ulp_transport()
1375 mutex_enter(&port->fp_mutex); in fc_ulp_transport()
1376 if (port->fp_statec_busy) { in fc_ulp_transport()
1377 mutex_exit(&port->fp_mutex); in fc_ulp_transport()
1382 if (((FC_PORT_STATE_MASK(port->fp_state)) == FC_STATE_OFFLINE) || in fc_ulp_transport()
1383 (port->fp_soft_state & in fc_ulp_transport()
1385 mutex_exit(&port->fp_mutex); in fc_ulp_transport()
1395 (rscnp->ulp_rscn_count != port->fp_rscn_count)) { in fc_ulp_transport()
1396 mutex_exit(&port->fp_mutex); in fc_ulp_transport()
1405 newpd = fctl_get_remote_port_by_pwwn_mutex_held(port, in fc_ulp_transport()
1435 mutex_exit(&port->fp_mutex); in fc_ulp_transport()
1442 if ((fctl_destroy_remote_port(port, pd) in fc_ulp_transport()
1446 mutex_enter(&port->fp_mutex); in fc_ulp_transport()
1457 mutex_exit(&port->fp_mutex); in fc_ulp_transport()
1462 mutex_exit(&port->fp_mutex); in fc_ulp_transport()
1468 mutex_exit(&port->fp_mutex); in fc_ulp_transport()
1473 mutex_exit(&port->fp_mutex); in fc_ulp_transport()
1476 mutex_exit(&port->fp_mutex); in fc_ulp_transport()
1478 return (port->fp_fca_tran->fca_transport(port->fp_fca_handle, pkt)); in fc_ulp_transport()
1486 fc_local_port_t *port = port_handle; in fc_ulp_issue_els() local
1496 mutex_enter(&port->fp_mutex); in fc_ulp_issue_els()
1497 if ((FC_PORT_STATE_MASK(port->fp_state) == FC_STATE_OFFLINE) || in fc_ulp_issue_els()
1498 (port->fp_soft_state & in fc_ulp_issue_els()
1500 mutex_exit(&port->fp_mutex); in fc_ulp_issue_els()
1504 if (port->fp_statec_busy) { in fc_ulp_issue_els()
1505 mutex_exit(&port->fp_mutex); in fc_ulp_issue_els()
1515 (rscnp->ulp_rscn_count != port->fp_rscn_count)) { in fc_ulp_issue_els()
1516 mutex_exit(&port->fp_mutex); in fc_ulp_issue_els()
1520 mutex_exit(&port->fp_mutex); in fc_ulp_issue_els()
1543 return (port->fp_fca_tran->fca_els_send(port->fp_fca_handle, pkt)); in fc_ulp_issue_els()
1551 fc_local_port_t *port = port_handle; in fc_ulp_uballoc() local
1553 return (port->fp_fca_tran->fca_ub_alloc(port->fp_fca_handle, in fc_ulp_uballoc()
1561 fc_local_port_t *port = port_handle; in fc_ulp_ubfree() local
1563 return (port->fp_fca_tran->fca_ub_free(port->fp_fca_handle, in fc_ulp_ubfree()
1571 fc_local_port_t *port = port_handle; in fc_ulp_ubrelease() local
1573 return (port->fp_fca_tran->fca_ub_release(port->fp_fca_handle, in fc_ulp_ubrelease()
1581 fc_local_port_t *port = port_handle; in fc_ulp_abort() local
1583 return (port->fp_fca_tran->fca_abort(port->fp_fca_handle, pkt, flags)); in fc_ulp_abort()
1600 fc_local_port_t *port; in fc_ulp_linkreset() local
1603 port = port_handle; in fc_ulp_linkreset()
1610 mutex_enter(&port->fp_mutex); in fc_ulp_linkreset()
1611 if (port->fp_soft_state & FP_SOFT_IN_LINK_RESET) { in fc_ulp_linkreset()
1612 mutex_exit(&port->fp_mutex); in fc_ulp_linkreset()
1619 if (port->fp_statec_busy) { in fc_ulp_linkreset()
1620 mutex_exit(&port->fp_mutex); in fc_ulp_linkreset()
1623 port->fp_soft_state |= FP_SOFT_IN_LINK_RESET; in fc_ulp_linkreset()
1624 mutex_exit(&port->fp_mutex); in fc_ulp_linkreset()
1626 if (fctl_busy_port(port) != 0) { in fc_ulp_linkreset()
1627 mutex_enter(&port->fp_mutex); in fc_ulp_linkreset()
1628 port->fp_soft_state &= ~FP_SOFT_IN_LINK_RESET; in fc_ulp_linkreset()
1629 mutex_exit(&port->fp_mutex); in fc_ulp_linkreset()
1639 fctl_enque_job(port, job); in fc_ulp_linkreset()
1642 mutex_enter(&port->fp_mutex); in fc_ulp_linkreset()
1643 port->fp_soft_state &= ~FP_SOFT_IN_LINK_RESET; in fc_ulp_linkreset()
1644 mutex_exit(&port->fp_mutex); in fc_ulp_linkreset()
1646 fctl_idle_port(port); in fc_ulp_linkreset()
1652 fctl_link_reset_done, port, sleep); in fc_ulp_linkreset()
1654 mutex_enter(&port->fp_mutex); in fc_ulp_linkreset()
1655 port->fp_soft_state &= ~FP_SOFT_IN_LINK_RESET; in fc_ulp_linkreset()
1656 mutex_exit(&port->fp_mutex); in fc_ulp_linkreset()
1657 fctl_idle_port(port); in fc_ulp_linkreset()
1662 fctl_priority_enque_job(port, job); in fc_ulp_linkreset()
1674 fc_local_port_t *port = port_handle; in fc_ulp_port_reset() local
1678 rval = port->fp_fca_tran->fca_reset( in fc_ulp_port_reset()
1679 port->fp_fca_handle, FC_FCA_LINK_RESET); in fc_ulp_port_reset()
1683 rval = port->fp_fca_tran->fca_reset( in fc_ulp_port_reset()
1684 port->fp_fca_handle, FC_FCA_RESET); in fc_ulp_port_reset()
1688 rval = port->fp_fca_tran->fca_reset( in fc_ulp_port_reset()
1689 port->fp_fca_handle, FC_FCA_CORE); in fc_ulp_port_reset()
1693 rval = port->fp_fca_tran->fca_reset( in fc_ulp_port_reset()
1694 port->fp_fca_handle, FC_FCA_RESET_CORE); in fc_ulp_port_reset()
1708 fc_local_port_t *port = port_handle; in fc_ulp_get_port_login_params() local
1711 *login_params = port->fp_service_params; in fc_ulp_get_port_login_params()
1719 fc_local_port_t *port = port_handle; in fc_ulp_get_port_instance() local
1721 return (port->fp_instance); in fc_ulp_get_port_instance()
1789 fc_local_port_t *port = port_handle; in fc_ulp_get_pwwn_by_did() local
1791 pd = fctl_get_remote_port_by_did(port, d_id.port_id); in fc_ulp_get_pwwn_by_did()
1809 fc_local_port_t *port = port_handle; in fc_ulp_pwwn_to_portmap() local
1813 pd = fctl_get_remote_port_by_pwwn(port, bytes); in fc_ulp_pwwn_to_portmap()
1847 fc_local_port_t *port = port_handle; in fc_ulp_get_fca_device() local
1849 if (port->fp_fca_tran->fca_get_device == NULL) { in fc_ulp_get_fca_device()
1853 return (port->fp_fca_tran->fca_get_device(port->fp_fca_handle, d_id)); in fc_ulp_get_fca_device()
1861 fc_local_port_t *port = port_handle; in fc_ulp_port_notify() local
1863 if (port->fp_fca_tran->fca_notify) { in fc_ulp_port_notify()
1864 mutex_enter(&port->fp_mutex); in fc_ulp_port_notify()
1867 port->fp_options |= FP_TARGET_MODE; in fc_ulp_port_notify()
1870 port->fp_options &= ~FP_TARGET_MODE; in fc_ulp_port_notify()
1873 mutex_exit(&port->fp_mutex); in fc_ulp_port_notify()
1874 rval = port->fp_fca_tran->fca_notify(port->fp_fca_handle, cmd); in fc_ulp_port_notify()
2252 fc_local_port_t *port; in fctl_check_npiv_portindex() local
2255 port = (fc_local_port_t *)fc_ulp_get_port_handle(instance); in fctl_check_npiv_portindex()
2256 if ((!port) || (vindex <= 0) || (vindex >= FC_NPIV_MAX_PORT)) { in fctl_check_npiv_portindex()
2261 mutex_enter(&port->fp_mutex); in fctl_check_npiv_portindex()
2262 if (port->fp_npiv_portindex[i] == 0) { in fctl_check_npiv_portindex()
2263 mutex_exit(&port->fp_mutex); in fctl_check_npiv_portindex()
2266 mutex_exit(&port->fp_mutex); in fctl_check_npiv_portindex()
2274 fc_local_port_t *port; in fctl_get_npiv_portindex() local
2277 port = (fc_local_port_t *)fc_ulp_get_port_handle(instance); in fctl_get_npiv_portindex()
2278 if (!port) { in fctl_get_npiv_portindex()
2282 mutex_enter(&port->fp_mutex); in fctl_get_npiv_portindex()
2284 if (port->fp_npiv_portindex[i] == 0) { in fctl_get_npiv_portindex()
2285 mutex_exit(&port->fp_mutex); in fctl_get_npiv_portindex()
2289 mutex_exit(&port->fp_mutex); in fctl_get_npiv_portindex()
2298 fc_local_port_t *port; in fctl_set_npiv_portindex() local
2301 port = (fc_local_port_t *)fc_ulp_get_port_handle(instance); in fctl_set_npiv_portindex()
2302 if (!port) { in fctl_set_npiv_portindex()
2305 mutex_enter(&port->fp_mutex); in fctl_set_npiv_portindex()
2306 port->fp_npiv_portindex[index - 1] = 1; in fctl_set_npiv_portindex()
2307 mutex_exit(&port->fp_mutex); in fctl_set_npiv_portindex()
2416 fctl_add_port(fc_local_port_t *port) in fctl_add_port() argument
2423 new->port_handle = port; in fctl_add_port()
2431 fctl_remove_port(fc_local_port_t *port) in fctl_remove_port() argument
2442 ulp_port = fctl_get_ulp_port(mod, port); in fctl_remove_port()
2451 (void) fctl_remove_ulp_port(mod, port); in fctl_remove_port()
2462 if (list->port_handle == port) { in fctl_remove_port()
2479 fctl_attach_ulps(fc_local_port_t *port, fc_attach_cmd_t cmd, in fctl_attach_ulps() argument
2489 ASSERT(!MUTEX_HELD(&port->fp_mutex)); in fctl_attach_ulps()
2492 info.port_dip = port->fp_port_dip; in fctl_attach_ulps()
2493 info.port_handle = (opaque_t)port; in fctl_attach_ulps()
2494 info.port_dma_behavior = port->fp_dma_behavior; in fctl_attach_ulps()
2495 info.port_fcp_dma = port->fp_fcp_dma; in fctl_attach_ulps()
2496 info.port_acc_attr = port->fp_fca_tran->fca_acc_attr; in fctl_attach_ulps()
2497 info.port_fca_pkt_size = port->fp_fca_tran->fca_pkt_size; in fctl_attach_ulps()
2498 info.port_reset_action = port->fp_reset_action; in fctl_attach_ulps()
2500 mutex_enter(&port->fp_mutex); in fctl_attach_ulps()
2506 if (port->fp_soft_state & FP_SOFT_IN_DETACH) { in fctl_attach_ulps()
2507 mutex_exit(&port->fp_mutex); in fctl_attach_ulps()
2511 s_id = port->fp_port_id.port_id; in fctl_attach_ulps()
2512 if (port->fp_statec_busy) { in fctl_attach_ulps()
2513 info.port_state = port->fp_bind_state; in fctl_attach_ulps()
2515 info.port_state = port->fp_state; in fctl_attach_ulps()
2530 info.port_flags = port->fp_topology; in fctl_attach_ulps()
2531 info.port_pwwn = port->fp_service_params.nport_ww_name; in fctl_attach_ulps()
2532 info.port_nwwn = port->fp_service_params.node_ww_name; in fctl_attach_ulps()
2533 mutex_exit(&port->fp_mutex); in fctl_attach_ulps()
2539 if ((port->fp_soft_state & FP_SOFT_FCA_IS_NODMA) && in fctl_attach_ulps()
2547 if ((ulp_port = fctl_get_ulp_port(mod, port)) == NULL) { in fctl_attach_ulps()
2548 ulp_port = fctl_add_ulp_port(mod, port, KM_SLEEP); in fctl_attach_ulps()
2562 if ((port->fp_soft_state & FP_SOFT_FCA_IS_NODMA) && in fctl_attach_ulps()
2570 ulp_port = fctl_get_ulp_port(mod, port); in fctl_attach_ulps()
2577 fctl_init_dma_attr(port, mod, &info); in fctl_attach_ulps()
2650 fc_local_port_t *port = ulp_port->port_handle; in fctl_post_attach() local
2670 port->fp_instance, op, mod->mod_info->ulp_name); in fctl_post_attach()
2694 fctl_detach_ulps(fc_local_port_t *port, fc_detach_cmd_t cmd, in fctl_detach_ulps() argument
2702 ASSERT(!MUTEX_HELD(&port->fp_mutex)); in fctl_detach_ulps()
2705 info.port_dip = port->fp_port_dip; in fctl_detach_ulps()
2706 info.port_handle = (opaque_t)port; in fctl_detach_ulps()
2707 info.port_acc_attr = port->fp_fca_tran->fca_acc_attr; in fctl_detach_ulps()
2708 info.port_fca_pkt_size = port->fp_fca_tran->fca_pkt_size; in fctl_detach_ulps()
2714 if ((ulp_port = fctl_get_ulp_port(mod, port)) == NULL) { in fctl_detach_ulps()
2722 fctl_init_dma_attr(port, mod, &info); in fctl_detach_ulps()
2750 fctl_init_dma_attr(fc_local_port_t *port, fc_ulp_module_t *mod, in fctl_init_dma_attr() argument
2757 port->fp_fca_tran->fca_dma_fcp_cmd_attr; in fctl_init_dma_attr()
2759 port->fp_fca_tran->fca_dma_fcp_data_attr; in fctl_init_dma_attr()
2761 port->fp_fca_tran->fca_dma_fcp_rsp_attr; in fctl_init_dma_attr()
2764 port->fp_fca_tran->fca_dma_fcsm_cmd_attr; in fctl_init_dma_attr()
2766 port->fp_fca_tran->fca_dma_attr; in fctl_init_dma_attr()
2768 port->fp_fca_tran->fca_dma_fcsm_rsp_attr; in fctl_init_dma_attr()
2771 port->fp_fca_tran->fca_dma_fcip_cmd_attr; in fctl_init_dma_attr()
2773 port->fp_fca_tran->fca_dma_attr; in fctl_init_dma_attr()
2775 port->fp_fca_tran->fca_dma_fcip_rsp_attr; in fctl_init_dma_attr()
2779 port->fp_fca_tran->fca_dma_attr; /* default */ in fctl_init_dma_attr()
2833 fc_local_port_t *port = ulp_port->port_handle; in fctl_post_detach() local
2852 port->fp_instance, op, mod->mod_info->ulp_name); in fctl_post_detach()
3006 fc_local_port_t *port; in fctl_ulp_statec_cb() local
3013 port = clist->clist_port; in fctl_ulp_statec_cb()
3015 mutex_enter(&port->fp_mutex); in fctl_ulp_statec_cb()
3016 s_id = port->fp_port_id.port_id; in fctl_ulp_statec_cb()
3017 mutex_exit(&port->fp_mutex); in fctl_ulp_statec_cb()
3059 pd = fctl_get_remote_port_by_pwwn(port, in fctl_ulp_statec_cb()
3065 pd = fctl_get_remote_port_by_did(port, in fctl_ulp_statec_cb()
3113 ulp_port = fctl_get_ulp_port(mod, port); in fctl_ulp_statec_cb()
3157 mod->mod_info->ulp_handle, (opaque_t)port, in fctl_ulp_statec_cb()
3198 if ((fctl_destroy_remote_port(port, pd) == 0) && in fctl_ulp_statec_cb()
3455 fctl_alloc_remote_port(fc_local_port_t *port, la_wwn_t *port_wwn, in fctl_alloc_remote_port() argument
3460 ASSERT(MUTEX_HELD(&port->fp_mutex)); in fctl_alloc_remote_port()
3473 pd->pd_port = port; in fctl_alloc_remote_port()
3620 fctl_enlist_did_table(fc_local_port_t *port, fc_remote_port_t *pd) in fctl_enlist_did_table() argument
3624 ASSERT(MUTEX_HELD(&port->fp_mutex)); in fctl_enlist_did_table()
3631 head = &port->fp_did_table[D_ID_HASH_FUNC(pd->pd_port_id.port_id, in fctl_enlist_did_table()
3647 tmp_head = &port->fp_did_table[index]; in fctl_enlist_did_table()
3684 fctl_delist_did_table(fc_local_port_t *port, fc_remote_port_t *pd) in fctl_delist_did_table() argument
3691 ASSERT(MUTEX_HELD(&port->fp_mutex)); in fctl_delist_did_table()
3695 head = &port->fp_did_table[D_ID_HASH_FUNC(d_id, did_table_size)]; in fctl_delist_did_table()
3732 fctl_enlist_pwwn_table(fc_local_port_t *port, fc_remote_port_t *pd) in fctl_enlist_pwwn_table() argument
3737 ASSERT(MUTEX_HELD(&port->fp_mutex)); in fctl_enlist_pwwn_table()
3745 head = &port->fp_pwwn_table[index]; in fctl_enlist_pwwn_table()
3759 tmp_head = &port->fp_pwwn_table[index]; in fctl_enlist_pwwn_table()
3789 port->fp_dev_count++; in fctl_enlist_pwwn_table()
3801 fctl_delist_pwwn_table(fc_local_port_t *port, fc_remote_port_t *pd) in fctl_delist_pwwn_table() argument
3809 ASSERT(MUTEX_HELD(&port->fp_mutex)); in fctl_delist_pwwn_table()
3815 head = &port->fp_pwwn_table[index]; in fctl_delist_pwwn_table()
3837 port->fp_dev_count--; in fctl_delist_pwwn_table()
3857 fctl_get_remote_port_by_did(fc_local_port_t *port, uint32_t d_id) in fctl_get_remote_port_by_did() argument
3862 ASSERT(!MUTEX_HELD(&port->fp_mutex)); in fctl_get_remote_port_by_did()
3864 mutex_enter(&port->fp_mutex); in fctl_get_remote_port_by_did()
3866 head = &port->fp_did_table[D_ID_HASH_FUNC(d_id, did_table_size)]; in fctl_get_remote_port_by_did()
3880 mutex_exit(&port->fp_mutex); in fctl_get_remote_port_by_did()
3910 fctl_hold_remote_port_by_did(fc_local_port_t *port, uint32_t d_id) in fctl_hold_remote_port_by_did() argument
3915 ASSERT(!MUTEX_HELD(&port->fp_mutex)); in fctl_hold_remote_port_by_did()
3917 mutex_enter(&port->fp_mutex); in fctl_hold_remote_port_by_did()
3919 head = &port->fp_did_table[D_ID_HASH_FUNC(d_id, did_table_size)]; in fctl_hold_remote_port_by_did()
3935 mutex_exit(&port->fp_mutex); in fctl_hold_remote_port_by_did()
3950 fctl_get_remote_port_by_pwwn(fc_local_port_t *port, la_wwn_t *pwwn) in fctl_get_remote_port_by_pwwn() argument
3956 ASSERT(!MUTEX_HELD(&port->fp_mutex)); in fctl_get_remote_port_by_pwwn()
3958 mutex_enter(&port->fp_mutex); in fctl_get_remote_port_by_pwwn()
3961 head = &port->fp_pwwn_table[index]; in fctl_get_remote_port_by_pwwn()
3974 mutex_exit(&port->fp_mutex); in fctl_get_remote_port_by_pwwn()
3985 fctl_get_remote_port_by_pwwn_mutex_held(fc_local_port_t *port, la_wwn_t *pwwn) in fctl_get_remote_port_by_pwwn_mutex_held() argument
3991 ASSERT(MUTEX_HELD(&port->fp_mutex)); in fctl_get_remote_port_by_pwwn_mutex_held()
3994 head = &port->fp_pwwn_table[index]; in fctl_get_remote_port_by_pwwn_mutex_held()
4023 fctl_hold_remote_port_by_pwwn(fc_local_port_t *port, la_wwn_t *pwwn) in fctl_hold_remote_port_by_pwwn() argument
4029 ASSERT(!MUTEX_HELD(&port->fp_mutex)); in fctl_hold_remote_port_by_pwwn()
4031 mutex_enter(&port->fp_mutex); in fctl_hold_remote_port_by_pwwn()
4034 head = &port->fp_pwwn_table[index]; in fctl_hold_remote_port_by_pwwn()
4051 mutex_exit(&port->fp_mutex); in fctl_hold_remote_port_by_pwwn()
4075 fc_local_port_t *port; in fctl_release_remote_port() local
4078 port = pd->pd_port; in fctl_release_remote_port()
4100 if (fctl_destroy_remote_port(port, pd) == 0) { in fctl_release_remote_port()
4115 fctl_fillout_map(fc_local_port_t *port, fc_portmap_t **map, uint32_t *len, in fctl_fillout_map() argument
4129 ASSERT(!MUTEX_HELD(&port->fp_mutex)); in fctl_fillout_map()
4131 mutex_enter(&port->fp_mutex); in fctl_fillout_map()
4133 topology = port->fp_topology; in fctl_fillout_map()
4141 head = &port->fp_pwwn_table[index]; in fctl_fillout_map()
4158 mutex_exit(&port->fp_mutex); in fctl_fillout_map()
4165 mutex_exit(&port->fp_mutex); in fctl_fillout_map()
4190 mutex_exit(&port->fp_mutex); in fctl_fillout_map()
4198 head = &port->fp_pwwn_table[index]; in fctl_fillout_map()
4246 port->fp_dev_count--; in fctl_fillout_map()
4249 if (port->fp_topology == FC_TOP_PRIVATE_LOOP && in fctl_fillout_map()
4250 port->fp_statec_busy && !orphan) { in fctl_fillout_map()
4251 fctl_check_alpa_list(port, old_pd); in fctl_fillout_map()
4258 fctl_delist_did_table(port, old_pd); in fctl_fillout_map()
4266 mutex_exit(&port->fp_mutex); in fctl_fillout_map()
4269 fctl_print_if_not_orphan(port, old_pd); in fctl_fillout_map()
4271 (void) fctl_add_orphan(port, old_pd, in fctl_fillout_map()
4276 (void) fctl_add_orphan(port, old_pd, in fctl_fillout_map()
4279 mutex_enter(&port->fp_mutex); in fctl_fillout_map()
4290 mutex_exit(&port->fp_mutex); in fctl_fillout_map()
4328 fctl_enque_job(fc_local_port_t *port, job_request_t *job) in fctl_enque_job() argument
4330 ASSERT(!MUTEX_HELD(&port->fp_mutex)); in fctl_enque_job()
4332 mutex_enter(&port->fp_mutex); in fctl_enque_job()
4334 if (port->fp_job_tail == NULL) { in fctl_enque_job()
4335 ASSERT(port->fp_job_head == NULL); in fctl_enque_job()
4336 port->fp_job_head = port->fp_job_tail = job; in fctl_enque_job()
4338 port->fp_job_tail->job_next = job; in fctl_enque_job()
4339 port->fp_job_tail = job; in fctl_enque_job()
4343 cv_signal(&port->fp_cv); in fctl_enque_job()
4344 mutex_exit(&port->fp_mutex); in fctl_enque_job()
4349 fctl_deque_job(fc_local_port_t *port) in fctl_deque_job() argument
4353 ASSERT(MUTEX_HELD(&port->fp_mutex)); in fctl_deque_job()
4355 if (port->fp_job_head == NULL) { in fctl_deque_job()
4356 ASSERT(port->fp_job_tail == NULL); in fctl_deque_job()
4359 job = port->fp_job_head; in fctl_deque_job()
4361 ASSERT(job == port->fp_job_tail); in fctl_deque_job()
4362 port->fp_job_tail = NULL; in fctl_deque_job()
4364 port->fp_job_head = job->job_next; in fctl_deque_job()
4372 fctl_priority_enque_job(fc_local_port_t *port, job_request_t *job) in fctl_priority_enque_job() argument
4374 ASSERT(!MUTEX_HELD(&port->fp_mutex)); in fctl_priority_enque_job()
4376 mutex_enter(&port->fp_mutex); in fctl_priority_enque_job()
4377 if (port->fp_job_tail == NULL) { in fctl_priority_enque_job()
4378 ASSERT(port->fp_job_head == NULL); in fctl_priority_enque_job()
4379 port->fp_job_head = port->fp_job_tail = job; in fctl_priority_enque_job()
4382 job->job_next = port->fp_job_head; in fctl_priority_enque_job()
4383 port->fp_job_head = job; in fctl_priority_enque_job()
4385 cv_signal(&port->fp_cv); in fctl_priority_enque_job()
4386 mutex_exit(&port->fp_mutex); in fctl_priority_enque_job()
4519 fctl_create_remote_port(fc_local_port_t *port, la_wwn_t *node_wwn, in fctl_create_remote_port() argument
4547 mutex_enter(&port->fp_mutex); in fctl_create_remote_port()
4555 pd = fctl_get_remote_port_by_pwwn_mutex_held(port, port_wwn); in fctl_create_remote_port()
4575 if ((pd = fctl_alloc_remote_port(port, port_wwn, d_id, in fctl_create_remote_port()
4578 mutex_exit(&port->fp_mutex); in fctl_create_remote_port()
4589 fctl_enlist_did_table(port, pd); in fctl_create_remote_port()
4590 fctl_enlist_pwwn_table(port, pd); in fctl_create_remote_port()
4592 mutex_exit(&port->fp_mutex); in fctl_create_remote_port()
4630 fctl_delist_did_table(port, pd); in fctl_create_remote_port()
4634 " OLD D_ID = %x", port->fp_instance, string, in fctl_create_remote_port()
4648 fctl_enlist_did_table(port, pd); in fctl_create_remote_port()
4661 fctl_enlist_did_table(port, pd); in fctl_create_remote_port()
4677 mutex_exit(&port->fp_mutex); in fctl_create_remote_port()
4700 "Expected %s Got %s", port->fp_instance, in fctl_create_remote_port()
4737 fctl_destroy_remote_port(fc_local_port_t *port, fc_remote_port_t *pd) in fctl_destroy_remote_port() argument
4775 mutex_enter(&port->fp_mutex); in fctl_destroy_remote_port()
4778 fctl_delist_did_table(port, pd); in fctl_destroy_remote_port()
4779 fctl_delist_pwwn_table(port, pd); in fctl_destroy_remote_port()
4789 mutex_exit(&port->fp_mutex); in fctl_destroy_remote_port()
4813 fctl_destroy_all_remote_ports(fc_local_port_t *port) in fctl_destroy_all_remote_ports() argument
4820 mutex_enter(&port->fp_mutex); in fctl_destroy_all_remote_ports()
4824 head = &port->fp_did_table[index]; in fctl_destroy_all_remote_ports()
4870 fctl_delist_pwwn_table(port, pd); in fctl_destroy_all_remote_ports()
4888 mutex_exit(&port->fp_mutex); in fctl_destroy_all_remote_ports()
4908 fctl_ulp_unsol_cb(fc_local_port_t *port, fc_unsol_buf_t *buf, uchar_t type) in fctl_ulp_unsol_cb() argument
4934 mutex_enter(&port->fp_mutex); in fctl_ulp_unsol_cb()
4935 ASSERT(port->fp_active_ubs > 0); in fctl_ulp_unsol_cb()
4936 if (--(port->fp_active_ubs) == 0) { in fctl_ulp_unsol_cb()
4937 port->fp_soft_state &= ~FP_SOFT_IN_UNSOL_CB; in fctl_ulp_unsol_cb()
4939 mutex_exit(&port->fp_mutex); in fctl_ulp_unsol_cb()
4940 port->fp_fca_tran->fca_ub_release(port->fp_fca_handle, in fctl_ulp_unsol_cb()
4952 ulp_port = fctl_get_ulp_port(mod, port); in fctl_ulp_unsol_cb()
4969 (opaque_t)port, buf, claimed); in fctl_ulp_unsol_cb()
4973 (opaque_t)port, buf, claimed); in fctl_ulp_unsol_cb()
4986 mutex_enter(&port->fp_mutex); in fctl_ulp_unsol_cb()
4987 ASSERT(port->fp_active_ubs > 0); in fctl_ulp_unsol_cb()
4988 if (--(port->fp_active_ubs) == 0) { in fctl_ulp_unsol_cb()
4989 port->fp_soft_state &= ~FP_SOFT_IN_UNSOL_CB; in fctl_ulp_unsol_cb()
4991 mutex_exit(&port->fp_mutex); in fctl_ulp_unsol_cb()
4992 port->fp_fca_tran->fca_ub_release(port->fp_fca_handle, in fctl_ulp_unsol_cb()
4996 mutex_enter(&port->fp_mutex); in fctl_ulp_unsol_cb()
4997 if (--port->fp_active_ubs == 0) { in fctl_ulp_unsol_cb()
4998 port->fp_soft_state &= ~FP_SOFT_IN_UNSOL_CB; in fctl_ulp_unsol_cb()
5000 mutex_exit(&port->fp_mutex); in fctl_ulp_unsol_cb()
5071 fctl_update_host_ns_values(fc_local_port_t *port, fc_ns_cmd_t *ns_req) in fctl_update_host_ns_values() argument
5084 mutex_enter(&port->fp_mutex); in fctl_update_host_ns_values()
5085 src = (uint32_t *)port->fp_fc4_types; in fctl_update_host_ns_values()
5091 mutex_exit(&port->fp_mutex); in fctl_update_host_ns_values()
5101 mutex_enter(&port->fp_mutex); in fctl_update_host_ns_values()
5102 port->fp_sym_port_namelen = spn->spn_len; in fctl_update_host_ns_values()
5105 port->fp_sym_port_name, spn->spn_len); in fctl_update_host_ns_values()
5107 mutex_exit(&port->fp_mutex); in fctl_update_host_ns_values()
5117 mutex_enter(&port->fp_mutex); in fctl_update_host_ns_values()
5118 port->fp_sym_node_namelen = snn->snn_len; in fctl_update_host_ns_values()
5121 port->fp_sym_node_name, snn->snn_len); in fctl_update_host_ns_values()
5123 mutex_exit(&port->fp_mutex); in fctl_update_host_ns_values()
5133 mutex_enter(&port->fp_mutex); in fctl_update_host_ns_values()
5134 bcopy(rip->rip_ip_addr, port->fp_ip_addr, in fctl_update_host_ns_values()
5136 mutex_exit(&port->fp_mutex); in fctl_update_host_ns_values()
5146 mutex_enter(&port->fp_mutex); in fctl_update_host_ns_values()
5147 bcopy(ipa->ipa_value, port->fp_ipa, sizeof (ipa->ipa_value)); in fctl_update_host_ns_values()
5148 mutex_exit(&port->fp_mutex); in fctl_update_host_ns_values()
5163 fctl_retrieve_host_ns_values(fc_local_port_t *port, fc_ns_cmd_t *ns_req) in fctl_retrieve_host_ns_values() argument
5173 mutex_enter(&port->fp_mutex); in fctl_retrieve_host_ns_values()
5174 bcopy(port->fp_fc4_types, rfc->rfc_types, in fctl_retrieve_host_ns_values()
5176 mutex_exit(&port->fp_mutex); in fctl_retrieve_host_ns_values()
5185 mutex_enter(&port->fp_mutex); in fctl_retrieve_host_ns_values()
5186 spn->spn_len = port->fp_sym_port_namelen; in fctl_retrieve_host_ns_values()
5188 bcopy(port->fp_sym_port_name, (caddr_t)spn + in fctl_retrieve_host_ns_values()
5191 mutex_exit(&port->fp_mutex); in fctl_retrieve_host_ns_values()
5201 mutex_enter(&port->fp_mutex); in fctl_retrieve_host_ns_values()
5202 snn->snn_len = port->fp_sym_node_namelen; in fctl_retrieve_host_ns_values()
5204 bcopy(port->fp_sym_node_name, (caddr_t)snn + in fctl_retrieve_host_ns_values()
5207 mutex_exit(&port->fp_mutex); in fctl_retrieve_host_ns_values()
5217 mutex_enter(&port->fp_mutex); in fctl_retrieve_host_ns_values()
5218 bcopy(port->fp_ip_addr, rip->rip_ip_addr, in fctl_retrieve_host_ns_values()
5220 mutex_exit(&port->fp_mutex); in fctl_retrieve_host_ns_values()
5230 mutex_enter(&port->fp_mutex); in fctl_retrieve_host_ns_values()
5231 bcopy(port->fp_ipa, ipa->ipa_value, sizeof (ipa->ipa_value)); in fctl_retrieve_host_ns_values()
5232 mutex_exit(&port->fp_mutex); in fctl_retrieve_host_ns_values()
5299 fctl_ulp_port_ioctl(fc_local_port_t *port, dev_t dev, int cmd, in fctl_ulp_port_ioctl() argument
5314 ulp_port = fctl_get_ulp_port(mod, port); in fctl_ulp_port_ioctl()
5330 mod->mod_info->ulp_handle, (opaque_t)port, in fctl_ulp_port_ioctl()
5354 fc_local_port_t *port = port_handle; in fc_ulp_busy_port() local
5356 return (fctl_busy_port(port)); in fc_ulp_busy_port()
5362 fc_local_port_t *port = port_handle; in fc_ulp_idle_port() local
5363 fctl_idle_port(port); in fc_ulp_idle_port()
5377 fc_local_port_t *port = port_handle; in fc_ulp_get_npiv_port_num() local
5380 mutex_enter(&port->fp_mutex); in fc_ulp_get_npiv_port_num()
5381 tmpport = port->fp_port_next; in fc_ulp_get_npiv_port_num()
5383 mutex_exit(&port->fp_mutex); in fc_ulp_get_npiv_port_num()
5386 while (tmpport != port) { in fc_ulp_get_npiv_port_num()
5390 mutex_exit(&port->fp_mutex); in fc_ulp_get_npiv_port_num()
5427 fc_local_port_t *port = port_handle; in fc_ulp_get_npiv_port_list() local
5430 mutex_enter(&port->fp_mutex); in fc_ulp_get_npiv_port_list()
5431 tmpport = port->fp_port_next; in fc_ulp_get_npiv_port_list()
5432 if (!tmpport || (port->fp_npiv_type == FC_NPIV_PORT)) { in fc_ulp_get_npiv_port_list()
5433 mutex_exit(&port->fp_mutex); in fc_ulp_get_npiv_port_list()
5437 while (tmpport != port) { in fc_ulp_get_npiv_port_list()
5443 mutex_exit(&port->fp_mutex); in fc_ulp_get_npiv_port_list()
5450 fc_delete_npiv_port(fc_local_port_t *port, la_wwn_t *pwwn) in fc_delete_npiv_port() argument
5454 mutex_enter(&port->fp_mutex); in fc_delete_npiv_port()
5455 tmpport = port->fp_port_next; in fc_delete_npiv_port()
5456 if (!tmpport || (port->fp_npiv_type == FC_NPIV_PORT)) { in fc_delete_npiv_port()
5457 mutex_exit(&port->fp_mutex); in fc_delete_npiv_port()
5461 while (tmpport != port) { in fc_delete_npiv_port()
5466 mutex_exit(&port->fp_mutex); in fc_delete_npiv_port()
5472 mutex_exit(&port->fp_mutex); in fc_delete_npiv_port()
5600 fc_local_port_t *port; in fc_ulp_get_rscn_count() local
5602 port = (fc_local_port_t *)port_handle; in fc_ulp_get_rscn_count()
5603 mutex_enter(&port->fp_mutex); in fc_ulp_get_rscn_count()
5604 count = port->fp_rscn_count; in fc_ulp_get_rscn_count()
5605 mutex_exit(&port->fp_mutex); in fc_ulp_get_rscn_count()
5620 fctl_add_orphan_held(fc_local_port_t *port, fc_remote_port_t *pd) in fctl_add_orphan_held() argument
5627 ASSERT(MUTEX_HELD(&port->fp_mutex)); in fctl_add_orphan_held()
5632 for (orp = port->fp_orphan_list; orp != NULL; orp = orp->orp_next) { in fctl_add_orphan_held()
5643 if (port->fp_orphan_list) { in fctl_add_orphan_held()
5644 ASSERT(port->fp_orphan_count > 0); in fctl_add_orphan_held()
5645 orphan->orp_next = port->fp_orphan_list; in fctl_add_orphan_held()
5647 port->fp_orphan_list = orphan; in fctl_add_orphan_held()
5648 port->fp_orphan_count++; in fctl_add_orphan_held()
5657 fctl_add_orphan(fc_local_port_t *port, fc_remote_port_t *pd, int sleep) in fctl_add_orphan() argument
5664 mutex_enter(&port->fp_mutex); in fctl_add_orphan()
5670 for (orp = port->fp_orphan_list; orp != NULL; orp = orp->orp_next) { in fctl_add_orphan()
5672 mutex_exit(&port->fp_mutex); in fctl_add_orphan()
5676 mutex_exit(&port->fp_mutex); in fctl_add_orphan()
5680 mutex_enter(&port->fp_mutex); in fctl_add_orphan()
5685 if (port->fp_orphan_list) { in fctl_add_orphan()
5686 ASSERT(port->fp_orphan_count > 0); in fctl_add_orphan()
5687 orphan->orp_next = port->fp_orphan_list; in fctl_add_orphan()
5689 port->fp_orphan_list = orphan; in fctl_add_orphan()
5690 port->fp_orphan_count++; in fctl_add_orphan()
5691 mutex_exit(&port->fp_mutex); in fctl_add_orphan()
5701 fctl_remove_if_orphan(fc_local_port_t *port, la_wwn_t *pwwn) in fctl_remove_if_orphan() argument
5707 mutex_enter(&port->fp_mutex); in fctl_remove_if_orphan()
5708 for (orp = port->fp_orphan_list; orp != NULL; orp = orp->orp_next) { in fctl_remove_if_orphan()
5713 ASSERT(port->fp_orphan_list == orp); in fctl_remove_if_orphan()
5714 port->fp_orphan_list = orp->orp_next; in fctl_remove_if_orphan()
5716 port->fp_orphan_count--; in fctl_remove_if_orphan()
5722 mutex_exit(&port->fp_mutex); in fctl_remove_if_orphan()
5733 fctl_print_if_not_orphan(fc_local_port_t *port, fc_remote_port_t *pd) in fctl_print_if_not_orphan() argument
5739 mutex_enter(&port->fp_mutex); in fctl_print_if_not_orphan()
5745 for (orp = port->fp_orphan_list; orp != NULL; orp = orp->orp_next) { in fctl_print_if_not_orphan()
5747 mutex_exit(&port->fp_mutex); in fctl_print_if_not_orphan()
5751 mutex_exit(&port->fp_mutex); in fctl_print_if_not_orphan()
5756 " disappeared from fabric", port->fp_instance, in fctl_print_if_not_orphan()
5765 fc_local_port_t *port = port_handle; in fctl_link_reset_done() local
5767 mutex_enter(&port->fp_mutex); in fctl_link_reset_done()
5768 port->fp_soft_state &= ~FP_SOFT_IN_LINK_RESET; in fctl_link_reset_done()
5769 mutex_exit(&port->fp_mutex); in fctl_link_reset_done()
5771 fctl_idle_port(port); in fctl_link_reset_done()
5871 fctl_remove_oldies(fc_local_port_t *port) in fctl_remove_oldies() argument
5884 mutex_enter(&port->fp_mutex); in fctl_remove_oldies()
5887 head = &port->fp_pwwn_table[index]; in fctl_remove_oldies()
5917 port->fp_dev_count--; in fctl_remove_oldies()
5920 fctl_delist_did_table(port, old_pd); in fctl_remove_oldies()
5929 if (FC_IS_TOP_SWITCH(port->fp_topology) && initiator) { in fctl_remove_oldies()
5930 mutex_exit(&port->fp_mutex); in fctl_remove_oldies()
5932 (void) fctl_add_orphan(port, old_pd, in fctl_remove_oldies()
5935 mutex_exit(&port->fp_mutex); in fctl_remove_oldies()
5938 if (fctl_destroy_remote_port(port, old_pd) == 0) { in fctl_remove_oldies()
5944 mutex_enter(&port->fp_mutex); in fctl_remove_oldies()
5948 mutex_exit(&port->fp_mutex); in fctl_remove_oldies()
5953 fctl_check_alpa_list(fc_local_port_t *port, fc_remote_port_t *pd) in fctl_check_alpa_list() argument
5955 ASSERT(MUTEX_HELD(&port->fp_mutex)); in fctl_check_alpa_list()
5956 ASSERT(port->fp_topology == FC_TOP_PRIVATE_LOOP); in fctl_check_alpa_list()
5958 if (fctl_is_alpa_present(port, pd->pd_port_id.port_id) == FC_SUCCESS) { in fctl_check_alpa_list()
5963 port->fp_instance, pd->pd_port_id.port_id); in fctl_check_alpa_list()
5968 fctl_is_alpa_present(fc_local_port_t *port, uchar_t alpa) in fctl_is_alpa_present() argument
5972 ASSERT(MUTEX_HELD(&port->fp_mutex)); in fctl_is_alpa_present()
5973 ASSERT(port->fp_topology == FC_TOP_PRIVATE_LOOP); in fctl_is_alpa_present()
5975 for (index = 0; index < port->fp_lilp_map.lilp_length; index++) { in fctl_is_alpa_present()
5976 if (port->fp_lilp_map.lilp_alpalist[index] == alpa) { in fctl_is_alpa_present()
5986 fctl_lookup_pd_by_did(fc_local_port_t *port, uint32_t d_id) in fctl_lookup_pd_by_did() argument
5992 ASSERT(MUTEX_HELD(&port->fp_mutex)); in fctl_lookup_pd_by_did()
5995 head = &port->fp_pwwn_table[index]; in fctl_lookup_pd_by_did()
6206 fctl_lookup_pd_by_index(fc_local_port_t *port, uint32_t index) in fctl_lookup_pd_by_index() argument
6213 ASSERT(MUTEX_HELD(&port->fp_mutex)); in fctl_lookup_pd_by_index()
6218 head = &port->fp_pwwn_table[outer]; in fctl_lookup_pd_by_index()
6235 fctl_lookup_pd_by_wwn(fc_local_port_t *port, la_wwn_t wwn) in fctl_lookup_pd_by_wwn() argument
6241 ASSERT(MUTEX_HELD(&port->fp_mutex)); in fctl_lookup_pd_by_wwn()
6244 head = &port->fp_pwwn_table[index]; in fctl_lookup_pd_by_wwn()
6277 fctl_count_fru_ports(fc_local_port_t *port, int npivflag) in fctl_count_fru_ports() argument
6286 mutex_enter(&port->fp_mutex); in fctl_count_fru_ports()
6287 fru = &port->fp_hba_port_attrs.hba_fru_details; in fctl_count_fru_ports()
6291 mutex_exit(&port->fp_mutex); in fctl_count_fru_ports()
6299 if (tmpPort == port) { in fctl_count_fru_ports()
6316 if (strncmp(port->fp_hba_port_attrs.driver_name, in fctl_count_fru_ports()
6328 mutex_exit(&port->fp_mutex); in fctl_count_fru_ports()
6335 fctl_local_port_list_add(fc_fca_port_t *list, fc_local_port_t *port) in fctl_local_port_list_add() argument
6343 newentry->port_handle = port; in fctl_local_port_list_add()
6377 fctl_get_adapter_port_by_index(fc_local_port_t *port, uint32_t port_index) in fctl_get_adapter_port_by_index() argument
6388 mutex_enter(&port->fp_mutex); in fctl_get_adapter_port_by_index()
6389 fru = &port->fp_hba_port_attrs.hba_fru_details; in fctl_get_adapter_port_by_index()
6393 mutex_exit(&port->fp_mutex); in fctl_get_adapter_port_by_index()
6395 return (port); in fctl_get_adapter_port_by_index()
6400 mutex_exit(&port->fp_mutex); in fctl_get_adapter_port_by_index()
6405 list = fctl_local_port_list_add(list, port); in fctl_get_adapter_port_by_index()
6411 if (tmpPort == port) { in fctl_get_adapter_port_by_index()
6423 if (strncmp(port->fp_hba_port_attrs.driver_name, in fctl_get_adapter_port_by_index()
6434 mutex_exit(&port->fp_mutex); in fctl_get_adapter_port_by_index()
6475 mutex_exit(&port->fp_mutex); in fctl_get_adapter_port_by_index()
6486 fctl_busy_port(fc_local_port_t *port) in fctl_busy_port() argument
6488 ASSERT(!MUTEX_HELD(&port->fp_mutex)); in fctl_busy_port()
6490 mutex_enter(&port->fp_mutex); in fctl_busy_port()
6491 if (port->fp_soft_state & FP_SOFT_NO_PMCOMP) { in fctl_busy_port()
6502 port->fp_pm_busy_nocomp++; in fctl_busy_port()
6503 mutex_exit(&port->fp_mutex); in fctl_busy_port()
6506 port->fp_pm_busy++; in fctl_busy_port()
6507 mutex_exit(&port->fp_mutex); in fctl_busy_port()
6509 if (pm_busy_component(port->fp_port_dip, in fctl_busy_port()
6511 mutex_enter(&port->fp_mutex); in fctl_busy_port()
6512 port->fp_pm_busy--; in fctl_busy_port()
6513 mutex_exit(&port->fp_mutex); in fctl_busy_port()
6517 mutex_enter(&port->fp_mutex); in fctl_busy_port()
6518 if (port->fp_pm_level == FP_PM_PORT_DOWN) { in fctl_busy_port()
6519 mutex_exit(&port->fp_mutex); in fctl_busy_port()
6520 if (pm_raise_power(port->fp_port_dip, FP_PM_COMPONENT, in fctl_busy_port()
6523 mutex_enter(&port->fp_mutex); in fctl_busy_port()
6524 port->fp_pm_busy--; in fctl_busy_port()
6525 mutex_exit(&port->fp_mutex); in fctl_busy_port()
6527 (void) pm_idle_component(port->fp_port_dip, in fctl_busy_port()
6533 mutex_exit(&port->fp_mutex); in fctl_busy_port()
6538 fctl_idle_port(fc_local_port_t *port) in fctl_idle_port() argument
6540 ASSERT(!MUTEX_HELD(&port->fp_mutex)); in fctl_idle_port()
6542 mutex_enter(&port->fp_mutex); in fctl_idle_port()
6550 if (port->fp_pm_busy_nocomp > 0) { in fctl_idle_port()
6551 port->fp_pm_busy_nocomp--; in fctl_idle_port()
6552 mutex_exit(&port->fp_mutex); in fctl_idle_port()
6556 port->fp_pm_busy--; in fctl_idle_port()
6557 mutex_exit(&port->fp_mutex); in fctl_idle_port()
6559 (void) pm_idle_component(port->fp_port_dip, FP_PM_COMPONENT); in fctl_idle_port()
6718 fc_local_port_t *port = port_handle; in fc_ulp_log_device_event() local
6727 port->fp_instance) != DDI_SUCCESS) { in fc_ulp_log_device_event()
6732 port->fp_service_params.nport_ww_name.raw_wwn, in fc_ulp_log_device_event()
6737 (void) ddi_log_sysevent(port->fp_port_dip, DDI_VENDOR_SUNW, EC_SUNFC, in fc_ulp_log_device_event()