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()
2712 int qla24xx_post_gpsc_work(struct scsi_qla_host *vha, fc_port_t *fcport) in qla24xx_post_gpsc_work() argument
2720 e->u.fcport.fcport = fcport; in qla24xx_post_gpsc_work()
2726 struct fc_port *fcport = ea->fcport; in qla24xx_handle_gpsc_event() local
2730 __func__, fcport->port_name, fcport->disc_state, in qla24xx_handle_gpsc_event()
2731 fcport->fw_login_state, ea->rc, ea->sp->gen2, fcport->login_gen, in qla24xx_handle_gpsc_event()
2732 ea->sp->gen2, fcport->rscn_gen|ea->sp->gen1, fcport->loop_id); in qla24xx_handle_gpsc_event()
2734 if (fcport->disc_state == DSC_DELETE_PEND) in qla24xx_handle_gpsc_event()
2738 if (fcport->disc_state == DSC_LOGIN_AUTH_PEND) in qla24xx_handle_gpsc_event()
2741 if (ea->sp->gen2 != fcport->login_gen) { in qla24xx_handle_gpsc_event()
2745 __func__, fcport->port_name); in qla24xx_handle_gpsc_event()
2747 } else if (ea->sp->gen1 != fcport->rscn_gen) { in qla24xx_handle_gpsc_event()
2751 qla_post_iidma_work(vha, fcport); in qla24xx_handle_gpsc_event()
2758 fc_port_t *fcport = sp->fcport; in qla24xx_async_gpsc_sp_done() local
2762 ct_rsp = &fcport->ct_desc.ct_sns->p.rsp; in qla24xx_async_gpsc_sp_done()
2766 sp->name, res, fcport->port_name); in qla24xx_async_gpsc_sp_done()
2768 fcport->flags &= ~(FCF_ASYNC_SENT | FCF_ASYNC_ACTIVE); in qla24xx_async_gpsc_sp_done()
2787 fcport->fp_speed = qla2x00_port_speed_capability( in qla24xx_async_gpsc_sp_done()
2792 sp->name, fcport->fabric_port_name, in qla24xx_async_gpsc_sp_done()
2798 ea.fcport = fcport; in qla24xx_async_gpsc_sp_done()
2807 int qla24xx_async_gpsc(scsi_qla_host_t *vha, fc_port_t *fcport) in qla24xx_async_gpsc() argument
2813 if (!vha->flags.online || (fcport->flags & FCF_ASYNC_SENT)) in qla24xx_async_gpsc()
2817 sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); in qla24xx_async_gpsc()
2823 sp->gen1 = fcport->rscn_gen; in qla24xx_async_gpsc()
2824 sp->gen2 = fcport->login_gen; in qla24xx_async_gpsc()
2829 ct_req = qla24xx_prep_ct_fm_req(fcport->ct_desc.ct_sns, GPSC_CMD, in qla24xx_async_gpsc()
2833 memcpy(ct_req->req.gpsc.port_name, fcport->fabric_port_name, in qla24xx_async_gpsc()
2836 sp->u.iocb_cmd.u.ctarg.req = fcport->ct_desc.ct_sns; in qla24xx_async_gpsc()
2837 sp->u.iocb_cmd.u.ctarg.req_dma = fcport->ct_desc.ct_sns_dma; in qla24xx_async_gpsc()
2838 sp->u.iocb_cmd.u.ctarg.rsp = fcport->ct_desc.ct_sns; in qla24xx_async_gpsc()
2839 sp->u.iocb_cmd.u.ctarg.rsp_dma = fcport->ct_desc.ct_sns_dma; in qla24xx_async_gpsc()
2846 sp->name, fcport->port_name, sp->handle, in qla24xx_async_gpsc()
2847 fcport->loop_id, fcport->d_id.b.domain, in qla24xx_async_gpsc()
2848 fcport->d_id.b.area, fcport->d_id.b.al_pa); in qla24xx_async_gpsc()
2897 fc_port_t *fcport = sp->fcport; in qla24xx_async_gffid_sp_done() local
2904 sp->name, res, fcport->d_id.b24, fcport->port_name); in qla24xx_async_gffid_sp_done()
2919 fcport->fc4_type = FS_FC4TYPE_FCP; in qla24xx_async_gffid_sp_done()
2920 fcport->fc4_features = fc4_scsi_feat & 0xf; in qla24xx_async_gffid_sp_done()
2925 fcport->fc4_type |= FS_FC4TYPE_NVME; in qla24xx_async_gffid_sp_done()
2926 fcport->fc4_features = fc4_nvme_feat & 0xf; in qla24xx_async_gffid_sp_done()
2957 int qla24xx_async_gffid(scsi_qla_host_t *vha, fc_port_t *fcport, bool wait) in qla24xx_async_gffid() argument
2969 sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); in qla24xx_async_gffid()
2975 sp->gen1 = fcport->rscn_gen; in qla24xx_async_gffid()
2976 sp->gen2 = fcport->login_gen; in qla24xx_async_gffid()
3012 ct_req->req.gff_id.port_id[0] = fcport->d_id.b.domain; in qla24xx_async_gffid()
3013 ct_req->req.gff_id.port_id[1] = fcport->d_id.b.area; in qla24xx_async_gffid()
3014 ct_req->req.gff_id.port_id[2] = fcport->d_id.b.al_pa; in qla24xx_async_gffid()
3028 sp->name, sp->handle, fcport->d_id.b24); in qla24xx_async_gffid()
3081 static bool qla_ok_to_clear_rscn(scsi_qla_host_t *vha, fc_port_t *fcport) in qla_ok_to_clear_rscn() argument
3088 __func__, __LINE__, fcport->port_name, fcport->rscn_gen, in qla_ok_to_clear_rscn()
3091 if (val_is_in_range(fcport->rscn_gen, vha->scan.rscn_gen_start, in qla_ok_to_clear_rscn()
3096 if (val_is_in_range(fcport->rscn_gen, vha->scan.rscn_gen_end, rscn_gen)) in qla_ok_to_clear_rscn()
3106 fc_port_t *fcport; in qla_fab_scan_finish() local
3139 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla_fab_scan_finish()
3140 if ((fcport->flags & FCF_FABRIC_DEVICE) != 0) { in qla_fab_scan_finish()
3141 fcport->scan_state = QLA_FCPORT_SCAN; in qla_fab_scan_finish()
3142 if (fcport->loop_id == FC_NO_LOOP_ID) in qla_fab_scan_finish()
3143 fcport->logout_on_delete = 0; in qla_fab_scan_finish()
3145 fcport->logout_on_delete = 1; in qla_fab_scan_finish()
3153 list_for_each_entry(fcport, &vha->vp_fcports, list) in qla_fab_scan_finish()
3154 fcport->scan_state = QLA_FCPORT_SCAN; in qla_fab_scan_finish()
3192 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla_fab_scan_finish()
3193 if (memcmp(rp->port_name, fcport->port_name, WWN_SIZE)) in qla_fab_scan_finish()
3195 fcport->scan_state = QLA_FCPORT_FOUND; in qla_fab_scan_finish()
3196 fcport->last_rscn_gen = fcport->rscn_gen; in qla_fab_scan_finish()
3197 fcport->fc4_type = rp->fc4type; in qla_fab_scan_finish()
3200 if (fcport->scan_needed) { in qla_fab_scan_finish()
3201 if (NVME_PRIORITY(vha->hw, fcport)) in qla_fab_scan_finish()
3202 fcport->do_prli_nvme = 1; in qla_fab_scan_finish()
3204 fcport->do_prli_nvme = 0; in qla_fab_scan_finish()
3210 if ((fcport->flags & FCF_FABRIC_DEVICE) == 0) { in qla_fab_scan_finish()
3211 qla2x00_clear_loop_id(fcport); in qla_fab_scan_finish()
3212 fcport->flags |= FCF_FABRIC_DEVICE; in qla_fab_scan_finish()
3213 } else if (fcport->d_id.b24 != rp->id.b24 || in qla_fab_scan_finish()
3214 (fcport->scan_needed && in qla_fab_scan_finish()
3215 fcport->port_type != FCT_INITIATOR && in qla_fab_scan_finish()
3216 fcport->port_type != FCT_NVME_INITIATOR)) { in qla_fab_scan_finish()
3217 fcport->scan_needed = 0; in qla_fab_scan_finish()
3218 qlt_schedule_sess_for_deletion(fcport); in qla_fab_scan_finish()
3220 fcport->d_id.b24 = rp->id.b24; in qla_fab_scan_finish()
3243 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla_fab_scan_finish()
3244 if ((fcport->flags & FCF_FABRIC_DEVICE) == 0) { in qla_fab_scan_finish()
3245 fcport->scan_needed = 0; in qla_fab_scan_finish()
3249 if (fcport->scan_state != QLA_FCPORT_FOUND) { in qla_fab_scan_finish()
3252 if (fcport->scan_needed && in qla_fab_scan_finish()
3253 fcport->disc_state == DSC_LOGIN_PEND) { in qla_fab_scan_finish()
3257 fcport->logout_on_delete = 1; in qla_fab_scan_finish()
3261 if (qla_ok_to_clear_rscn(vha, fcport)) in qla_fab_scan_finish()
3262 fcport->scan_needed = 0; in qla_fab_scan_finish()
3266 atomic_read(&fcport->state) == FCS_ONLINE) || in qla_fab_scan_finish()
3268 if (fcport->loop_id != FC_NO_LOOP_ID) { in qla_fab_scan_finish()
3269 if (fcport->flags & FCF_FCP2_DEVICE) in qla_fab_scan_finish()
3275 fcport->port_name); in qla_fab_scan_finish()
3277 fcport->tgt_link_down_time = 0; in qla_fab_scan_finish()
3278 qlt_schedule_sess_for_deletion(fcport); in qla_fab_scan_finish()
3283 if (fcport->scan_needed || in qla_fab_scan_finish()
3284 fcport->disc_state != DSC_LOGIN_COMPLETE) { in qla_fab_scan_finish()
3285 if (fcport->login_retry == 0) { in qla_fab_scan_finish()
3286 fcport->login_retry = in qla_fab_scan_finish()
3290 fcport->port_name, fcport->loop_id, in qla_fab_scan_finish()
3291 fcport->login_retry); in qla_fab_scan_finish()
3294 if (qla_ok_to_clear_rscn(vha, fcport)) in qla_fab_scan_finish()
3295 fcport->scan_needed = 0; in qla_fab_scan_finish()
3296 qla24xx_fcport_handle_login(vha, fcport); in qla_fab_scan_finish()
3309 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla_fab_scan_finish()
3310 if (fcport->scan_needed) { in qla_fab_scan_finish()
3766 fc_port_t *fcport = ea->fcport; in qla24xx_handle_gfpnid_event() local
3770 __func__, fcport->port_name, fcport->disc_state, in qla24xx_handle_gfpnid_event()
3771 fcport->fw_login_state, ea->rc, fcport->login_gen, ea->sp->gen2, in qla24xx_handle_gfpnid_event()
3772 fcport->rscn_gen, ea->sp->gen1, vha->fcport_count); in qla24xx_handle_gfpnid_event()
3774 if (fcport->disc_state == DSC_DELETE_PEND) in qla24xx_handle_gfpnid_event()
3777 if (ea->sp->gen2 != fcport->login_gen) { in qla24xx_handle_gfpnid_event()
3781 __func__, fcport->port_name); in qla24xx_handle_gfpnid_event()
3783 } else if (ea->sp->gen1 != fcport->rscn_gen) { in qla24xx_handle_gfpnid_event()
3787 qla24xx_post_gpsc_work(vha, fcport); in qla24xx_handle_gfpnid_event()
3793 fc_port_t *fcport = sp->fcport; in qla2x00_async_gfpnid_sp_done() local
3794 u8 *fpn = fcport->ct_desc.ct_sns->p.rsp.rsp.gfpn_id.port_name; in qla2x00_async_gfpnid_sp_done()
3800 memcpy(fcport->fabric_port_name, fpn, WWN_SIZE); in qla2x00_async_gfpnid_sp_done()
3803 ea.fcport = fcport; in qla2x00_async_gfpnid_sp_done()
3809 sp->name, res, fcport->port_name, fcport->fabric_port_name); in qla2x00_async_gfpnid_sp_done()
3817 int qla24xx_async_gfpnid(scsi_qla_host_t *vha, fc_port_t *fcport) in qla24xx_async_gfpnid() argument
3823 if (!vha->flags.online || (fcport->flags & FCF_ASYNC_SENT)) in qla24xx_async_gfpnid()
3827 sp = qla2x00_get_sp(vha, fcport, GFP_ATOMIC); in qla24xx_async_gfpnid()
3833 sp->gen1 = fcport->rscn_gen; in qla24xx_async_gfpnid()
3834 sp->gen2 = fcport->login_gen; in qla24xx_async_gfpnid()
3839 ct_req = qla2x00_prep_ct_req(fcport->ct_desc.ct_sns, GFPN_ID_CMD, in qla24xx_async_gfpnid()
3843 ct_req->req.port_id.port_id = port_id_to_be_id(fcport->d_id); in qla24xx_async_gfpnid()
3847 sp->u.iocb_cmd.u.ctarg.req = fcport->ct_desc.ct_sns; in qla24xx_async_gfpnid()
3848 sp->u.iocb_cmd.u.ctarg.req_dma = fcport->ct_desc.ct_sns_dma; in qla24xx_async_gfpnid()
3849 sp->u.iocb_cmd.u.ctarg.rsp = fcport->ct_desc.ct_sns; in qla24xx_async_gfpnid()
3850 sp->u.iocb_cmd.u.ctarg.rsp_dma = fcport->ct_desc.ct_sns_dma; in qla24xx_async_gfpnid()
3857 sp->name, fcport->port_name, in qla24xx_async_gfpnid()
3858 sp->handle, fcport->loop_id, fcport->d_id.b24); in qla24xx_async_gfpnid()
3873 int qla24xx_post_gfpnid_work(struct scsi_qla_host *vha, fc_port_t *fcport) in qla24xx_post_gfpnid_work() argument
3887 e->u.fcport.fcport = fcport; in qla24xx_post_gfpnid_work()