Lines Matching refs:fcport

200 qla2x00_ga_nxt(scsi_qla_host_t *vha, fc_port_t *fcport)  in qla2x00_ga_nxt()  argument
211 return qla2x00_sns_ga_nxt(vha, fcport); in qla2x00_ga_nxt()
230 ct_req->req.port_id.port_id = port_id_to_be_id(fcport->d_id); in qla2x00_ga_nxt()
244 fcport->d_id = be_to_port_id(ct_rsp->rsp.ga_nxt.port_id); in qla2x00_ga_nxt()
246 memcpy(fcport->node_name, ct_rsp->rsp.ga_nxt.node_name, in qla2x00_ga_nxt()
248 memcpy(fcport->port_name, ct_rsp->rsp.ga_nxt.port_name, in qla2x00_ga_nxt()
251 fcport->fc4_type = (ct_rsp->rsp.ga_nxt.fc4_types[2] & BIT_0) ? in qla2x00_ga_nxt()
256 fcport->d_id.b.domain = 0xf0; in qla2x00_ga_nxt()
261 fcport->node_name, fcport->port_name, in qla2x00_ga_nxt()
262 fcport->d_id.b.domain, fcport->d_id.b.area, in qla2x00_ga_nxt()
263 fcport->d_id.b.al_pa); in qla2x00_ga_nxt()
1003 qla2x00_sns_ga_nxt(scsi_qla_host_t *vha, fc_port_t *fcport) in qla2x00_sns_ga_nxt() argument
1015 sns_cmd->p.cmd.param[0] = fcport->d_id.b.al_pa; in qla2x00_sns_ga_nxt()
1016 sns_cmd->p.cmd.param[1] = fcport->d_id.b.area; in qla2x00_sns_ga_nxt()
1017 sns_cmd->p.cmd.param[2] = fcport->d_id.b.domain; in qla2x00_sns_ga_nxt()
1035 fcport->d_id.b.domain = sns_cmd->p.gan_data[17]; in qla2x00_sns_ga_nxt()
1036 fcport->d_id.b.area = sns_cmd->p.gan_data[18]; in qla2x00_sns_ga_nxt()
1037 fcport->d_id.b.al_pa = sns_cmd->p.gan_data[19]; in qla2x00_sns_ga_nxt()
1039 memcpy(fcport->node_name, &sns_cmd->p.gan_data[284], WWN_SIZE); in qla2x00_sns_ga_nxt()
1040 memcpy(fcport->port_name, &sns_cmd->p.gan_data[20], WWN_SIZE); in qla2x00_sns_ga_nxt()
1044 fcport->d_id.b.domain = 0xf0; in qla2x00_sns_ga_nxt()
1049 fcport->node_name, fcport->port_name, in qla2x00_sns_ga_nxt()
1050 fcport->d_id.b.domain, fcport->d_id.b.area, in qla2x00_sns_ga_nxt()
1051 fcport->d_id.b.al_pa); in qla2x00_sns_ga_nxt()
2802 int qla24xx_post_gpsc_work(struct scsi_qla_host *vha, fc_port_t *fcport) in qla24xx_post_gpsc_work() argument
2810 e->u.fcport.fcport = fcport; in qla24xx_post_gpsc_work()
2816 struct fc_port *fcport = ea->fcport; in qla24xx_handle_gpsc_event() local
2820 __func__, fcport->port_name, fcport->disc_state, in qla24xx_handle_gpsc_event()
2821 fcport->fw_login_state, ea->rc, ea->sp->gen2, fcport->login_gen, in qla24xx_handle_gpsc_event()
2822 ea->sp->gen2, fcport->rscn_gen|ea->sp->gen1, fcport->loop_id); in qla24xx_handle_gpsc_event()
2824 if (fcport->disc_state == DSC_DELETE_PEND) in qla24xx_handle_gpsc_event()
2828 if (fcport->disc_state == DSC_LOGIN_AUTH_PEND) in qla24xx_handle_gpsc_event()
2831 if (ea->sp->gen2 != fcport->login_gen) { in qla24xx_handle_gpsc_event()
2835 __func__, fcport->port_name); in qla24xx_handle_gpsc_event()
2837 } else if (ea->sp->gen1 != fcport->rscn_gen) { in qla24xx_handle_gpsc_event()
2841 qla_post_iidma_work(vha, fcport); in qla24xx_handle_gpsc_event()
2848 fc_port_t *fcport = sp->fcport; in qla24xx_async_gpsc_sp_done() local
2852 ct_rsp = &fcport->ct_desc.ct_sns->p.rsp; in qla24xx_async_gpsc_sp_done()
2856 sp->name, res, fcport->port_name); in qla24xx_async_gpsc_sp_done()
2858 fcport->flags &= ~(FCF_ASYNC_SENT | FCF_ASYNC_ACTIVE); in qla24xx_async_gpsc_sp_done()
2877 fcport->fp_speed = qla2x00_port_speed_capability( in qla24xx_async_gpsc_sp_done()
2882 sp->name, fcport->fabric_port_name, in qla24xx_async_gpsc_sp_done()
2888 ea.fcport = fcport; in qla24xx_async_gpsc_sp_done()
2897 int qla24xx_async_gpsc(scsi_qla_host_t *vha, fc_port_t *fcport) in qla24xx_async_gpsc() argument
2903 if (!vha->flags.online || (fcport->flags & FCF_ASYNC_SENT)) in qla24xx_async_gpsc()
2907 sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); in qla24xx_async_gpsc()
2913 sp->gen1 = fcport->rscn_gen; in qla24xx_async_gpsc()
2914 sp->gen2 = fcport->login_gen; in qla24xx_async_gpsc()
2919 ct_req = qla24xx_prep_ct_fm_req(fcport->ct_desc.ct_sns, GPSC_CMD, in qla24xx_async_gpsc()
2923 memcpy(ct_req->req.gpsc.port_name, fcport->fabric_port_name, in qla24xx_async_gpsc()
2926 sp->u.iocb_cmd.u.ctarg.req = fcport->ct_desc.ct_sns; in qla24xx_async_gpsc()
2927 sp->u.iocb_cmd.u.ctarg.req_dma = fcport->ct_desc.ct_sns_dma; in qla24xx_async_gpsc()
2928 sp->u.iocb_cmd.u.ctarg.rsp = fcport->ct_desc.ct_sns; in qla24xx_async_gpsc()
2929 sp->u.iocb_cmd.u.ctarg.rsp_dma = fcport->ct_desc.ct_sns_dma; in qla24xx_async_gpsc()
2936 sp->name, fcport->port_name, sp->handle, in qla24xx_async_gpsc()
2937 fcport->loop_id, fcport->d_id.b.domain, in qla24xx_async_gpsc()
2938 fcport->d_id.b.area, fcport->d_id.b.al_pa); in qla24xx_async_gpsc()
2987 fc_port_t *fcport = sp->fcport; in qla24xx_async_gffid_sp_done() local
2994 sp->name, res, fcport->d_id.b24, fcport->port_name); in qla24xx_async_gffid_sp_done()
3009 fcport->fc4_type = FS_FC4TYPE_FCP; in qla24xx_async_gffid_sp_done()
3010 fcport->fc4_features = fc4_scsi_feat & 0xf; in qla24xx_async_gffid_sp_done()
3015 fcport->fc4_type |= FS_FC4TYPE_NVME; in qla24xx_async_gffid_sp_done()
3016 fcport->fc4_features = fc4_nvme_feat & 0xf; in qla24xx_async_gffid_sp_done()
3047 int qla24xx_async_gffid(scsi_qla_host_t *vha, fc_port_t *fcport, bool wait) in qla24xx_async_gffid() argument
3059 sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); in qla24xx_async_gffid()
3065 sp->gen1 = fcport->rscn_gen; in qla24xx_async_gffid()
3066 sp->gen2 = fcport->login_gen; in qla24xx_async_gffid()
3102 ct_req->req.gff_id.port_id[0] = fcport->d_id.b.domain; in qla24xx_async_gffid()
3103 ct_req->req.gff_id.port_id[1] = fcport->d_id.b.area; in qla24xx_async_gffid()
3104 ct_req->req.gff_id.port_id[2] = fcport->d_id.b.al_pa; in qla24xx_async_gffid()
3118 sp->name, sp->handle, fcport->d_id.b24); in qla24xx_async_gffid()
3173 fc_port_t *fcport; in qla24xx_async_gnnft_done() local
3206 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla24xx_async_gnnft_done()
3207 if ((fcport->flags & FCF_FABRIC_DEVICE) != 0) { in qla24xx_async_gnnft_done()
3208 fcport->scan_state = QLA_FCPORT_SCAN; in qla24xx_async_gnnft_done()
3209 if (fcport->loop_id == FC_NO_LOOP_ID) in qla24xx_async_gnnft_done()
3210 fcport->logout_on_delete = 0; in qla24xx_async_gnnft_done()
3212 fcport->logout_on_delete = 1; in qla24xx_async_gnnft_done()
3220 list_for_each_entry(fcport, &vha->vp_fcports, list) in qla24xx_async_gnnft_done()
3221 fcport->scan_state = QLA_FCPORT_SCAN; in qla24xx_async_gnnft_done()
3259 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla24xx_async_gnnft_done()
3260 if (memcmp(rp->port_name, fcport->port_name, WWN_SIZE)) in qla24xx_async_gnnft_done()
3262 fcport->scan_state = QLA_FCPORT_FOUND; in qla24xx_async_gnnft_done()
3263 fcport->last_rscn_gen = fcport->rscn_gen; in qla24xx_async_gnnft_done()
3264 fcport->fc4_type = rp->fc4type; in qla24xx_async_gnnft_done()
3267 if (fcport->scan_needed) { in qla24xx_async_gnnft_done()
3268 if (NVME_PRIORITY(vha->hw, fcport)) in qla24xx_async_gnnft_done()
3269 fcport->do_prli_nvme = 1; in qla24xx_async_gnnft_done()
3271 fcport->do_prli_nvme = 0; in qla24xx_async_gnnft_done()
3277 if ((fcport->flags & FCF_FABRIC_DEVICE) == 0) { in qla24xx_async_gnnft_done()
3278 qla2x00_clear_loop_id(fcport); in qla24xx_async_gnnft_done()
3279 fcport->flags |= FCF_FABRIC_DEVICE; in qla24xx_async_gnnft_done()
3280 } else if (fcport->d_id.b24 != rp->id.b24 || in qla24xx_async_gnnft_done()
3281 (fcport->scan_needed && in qla24xx_async_gnnft_done()
3282 fcport->port_type != FCT_INITIATOR && in qla24xx_async_gnnft_done()
3283 fcport->port_type != FCT_NVME_INITIATOR)) { in qla24xx_async_gnnft_done()
3284 qlt_schedule_sess_for_deletion(fcport); in qla24xx_async_gnnft_done()
3286 fcport->d_id.b24 = rp->id.b24; in qla24xx_async_gnnft_done()
3287 fcport->scan_needed = 0; in qla24xx_async_gnnft_done()
3310 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla24xx_async_gnnft_done()
3311 if ((fcport->flags & FCF_FABRIC_DEVICE) == 0) { in qla24xx_async_gnnft_done()
3312 fcport->scan_needed = 0; in qla24xx_async_gnnft_done()
3316 if (fcport->scan_state != QLA_FCPORT_FOUND) { in qla24xx_async_gnnft_done()
3319 if (fcport->scan_needed && in qla24xx_async_gnnft_done()
3320 fcport->disc_state == DSC_LOGIN_PEND) { in qla24xx_async_gnnft_done()
3324 fcport->logout_on_delete = 1; in qla24xx_async_gnnft_done()
3328 fcport->scan_needed = 0; in qla24xx_async_gnnft_done()
3331 atomic_read(&fcport->state) == FCS_ONLINE) || in qla24xx_async_gnnft_done()
3333 if (fcport->loop_id != FC_NO_LOOP_ID) { in qla24xx_async_gnnft_done()
3334 if (fcport->flags & FCF_FCP2_DEVICE) in qla24xx_async_gnnft_done()
3340 fcport->port_name); in qla24xx_async_gnnft_done()
3342 fcport->tgt_link_down_time = 0; in qla24xx_async_gnnft_done()
3343 qlt_schedule_sess_for_deletion(fcport); in qla24xx_async_gnnft_done()
3348 if (fcport->scan_needed || in qla24xx_async_gnnft_done()
3349 fcport->disc_state != DSC_LOGIN_COMPLETE) { in qla24xx_async_gnnft_done()
3350 if (fcport->login_retry == 0) { in qla24xx_async_gnnft_done()
3351 fcport->login_retry = in qla24xx_async_gnnft_done()
3355 fcport->port_name, fcport->loop_id, in qla24xx_async_gnnft_done()
3356 fcport->login_retry); in qla24xx_async_gnnft_done()
3358 fcport->scan_needed = 0; in qla24xx_async_gnnft_done()
3359 qla24xx_fcport_handle_login(vha, fcport); in qla24xx_async_gnnft_done()
3372 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla24xx_async_gnnft_done()
3373 if (fcport->scan_needed) { in qla24xx_async_gnnft_done()
3899 fc_port_t *fcport = ea->fcport; in qla24xx_handle_gfpnid_event() local
3903 __func__, fcport->port_name, fcport->disc_state, in qla24xx_handle_gfpnid_event()
3904 fcport->fw_login_state, ea->rc, fcport->login_gen, ea->sp->gen2, in qla24xx_handle_gfpnid_event()
3905 fcport->rscn_gen, ea->sp->gen1, vha->fcport_count); in qla24xx_handle_gfpnid_event()
3907 if (fcport->disc_state == DSC_DELETE_PEND) in qla24xx_handle_gfpnid_event()
3910 if (ea->sp->gen2 != fcport->login_gen) { in qla24xx_handle_gfpnid_event()
3914 __func__, fcport->port_name); in qla24xx_handle_gfpnid_event()
3916 } else if (ea->sp->gen1 != fcport->rscn_gen) { in qla24xx_handle_gfpnid_event()
3920 qla24xx_post_gpsc_work(vha, fcport); in qla24xx_handle_gfpnid_event()
3926 fc_port_t *fcport = sp->fcport; in qla2x00_async_gfpnid_sp_done() local
3927 u8 *fpn = fcport->ct_desc.ct_sns->p.rsp.rsp.gfpn_id.port_name; in qla2x00_async_gfpnid_sp_done()
3933 memcpy(fcport->fabric_port_name, fpn, WWN_SIZE); in qla2x00_async_gfpnid_sp_done()
3936 ea.fcport = fcport; in qla2x00_async_gfpnid_sp_done()
3942 sp->name, res, fcport->port_name, fcport->fabric_port_name); in qla2x00_async_gfpnid_sp_done()
3950 int qla24xx_async_gfpnid(scsi_qla_host_t *vha, fc_port_t *fcport) in qla24xx_async_gfpnid() argument
3956 if (!vha->flags.online || (fcport->flags & FCF_ASYNC_SENT)) in qla24xx_async_gfpnid()
3960 sp = qla2x00_get_sp(vha, fcport, GFP_ATOMIC); in qla24xx_async_gfpnid()
3966 sp->gen1 = fcport->rscn_gen; in qla24xx_async_gfpnid()
3967 sp->gen2 = fcport->login_gen; in qla24xx_async_gfpnid()
3972 ct_req = qla2x00_prep_ct_req(fcport->ct_desc.ct_sns, GFPN_ID_CMD, in qla24xx_async_gfpnid()
3976 ct_req->req.port_id.port_id = port_id_to_be_id(fcport->d_id); in qla24xx_async_gfpnid()
3980 sp->u.iocb_cmd.u.ctarg.req = fcport->ct_desc.ct_sns; in qla24xx_async_gfpnid()
3981 sp->u.iocb_cmd.u.ctarg.req_dma = fcport->ct_desc.ct_sns_dma; in qla24xx_async_gfpnid()
3982 sp->u.iocb_cmd.u.ctarg.rsp = fcport->ct_desc.ct_sns; in qla24xx_async_gfpnid()
3983 sp->u.iocb_cmd.u.ctarg.rsp_dma = fcport->ct_desc.ct_sns_dma; in qla24xx_async_gfpnid()
3990 sp->name, fcport->port_name, in qla24xx_async_gfpnid()
3991 sp->handle, fcport->loop_id, fcport->d_id.b24); in qla24xx_async_gfpnid()
4006 int qla24xx_post_gfpnid_work(struct scsi_qla_host *vha, fc_port_t *fcport) in qla24xx_post_gfpnid_work() argument
4020 e->u.fcport.fcport = fcport; in qla24xx_post_gfpnid_work()