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()
1002 qla2x00_sns_ga_nxt(scsi_qla_host_t *vha, fc_port_t *fcport) in qla2x00_sns_ga_nxt() argument
1014 sns_cmd->p.cmd.param[0] = fcport->d_id.b.al_pa; in qla2x00_sns_ga_nxt()
1015 sns_cmd->p.cmd.param[1] = fcport->d_id.b.area; in qla2x00_sns_ga_nxt()
1016 sns_cmd->p.cmd.param[2] = fcport->d_id.b.domain; in qla2x00_sns_ga_nxt()
1034 fcport->d_id.b.domain = sns_cmd->p.gan_data[17]; in qla2x00_sns_ga_nxt()
1035 fcport->d_id.b.area = sns_cmd->p.gan_data[18]; in qla2x00_sns_ga_nxt()
1036 fcport->d_id.b.al_pa = sns_cmd->p.gan_data[19]; in qla2x00_sns_ga_nxt()
1038 memcpy(fcport->node_name, &sns_cmd->p.gan_data[284], WWN_SIZE); in qla2x00_sns_ga_nxt()
1039 memcpy(fcport->port_name, &sns_cmd->p.gan_data[20], WWN_SIZE); in qla2x00_sns_ga_nxt()
1043 fcport->d_id.b.domain = 0xf0; in qla2x00_sns_ga_nxt()
1048 fcport->node_name, fcport->port_name, in qla2x00_sns_ga_nxt()
1049 fcport->d_id.b.domain, fcport->d_id.b.area, in qla2x00_sns_ga_nxt()
1050 fcport->d_id.b.al_pa); in qla2x00_sns_ga_nxt()
2800 int qla24xx_post_gpsc_work(struct scsi_qla_host *vha, fc_port_t *fcport) in qla24xx_post_gpsc_work() argument
2808 e->u.fcport.fcport = fcport; in qla24xx_post_gpsc_work()
2814 struct fc_port *fcport = ea->fcport; in qla24xx_handle_gpsc_event() local
2818 __func__, fcport->port_name, fcport->disc_state, in qla24xx_handle_gpsc_event()
2819 fcport->fw_login_state, ea->rc, ea->sp->gen2, fcport->login_gen, in qla24xx_handle_gpsc_event()
2820 ea->sp->gen2, fcport->rscn_gen|ea->sp->gen1, fcport->loop_id); in qla24xx_handle_gpsc_event()
2822 if (fcport->disc_state == DSC_DELETE_PEND) in qla24xx_handle_gpsc_event()
2825 if (ea->sp->gen2 != fcport->login_gen) { in qla24xx_handle_gpsc_event()
2829 __func__, fcport->port_name); in qla24xx_handle_gpsc_event()
2831 } else if (ea->sp->gen1 != fcport->rscn_gen) { in qla24xx_handle_gpsc_event()
2835 qla_post_iidma_work(vha, fcport); in qla24xx_handle_gpsc_event()
2842 fc_port_t *fcport = sp->fcport; in qla24xx_async_gpsc_sp_done() local
2846 ct_rsp = &fcport->ct_desc.ct_sns->p.rsp; in qla24xx_async_gpsc_sp_done()
2850 sp->name, res, fcport->port_name); in qla24xx_async_gpsc_sp_done()
2852 fcport->flags &= ~(FCF_ASYNC_SENT | FCF_ASYNC_ACTIVE); in qla24xx_async_gpsc_sp_done()
2871 fcport->fp_speed = qla2x00_port_speed_capability( in qla24xx_async_gpsc_sp_done()
2876 sp->name, fcport->fabric_port_name, in qla24xx_async_gpsc_sp_done()
2882 ea.fcport = fcport; in qla24xx_async_gpsc_sp_done()
2890 int qla24xx_async_gpsc(scsi_qla_host_t *vha, fc_port_t *fcport) in qla24xx_async_gpsc() argument
2896 if (!vha->flags.online || (fcport->flags & FCF_ASYNC_SENT)) in qla24xx_async_gpsc()
2899 sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); in qla24xx_async_gpsc()
2905 sp->gen1 = fcport->rscn_gen; in qla24xx_async_gpsc()
2906 sp->gen2 = fcport->login_gen; in qla24xx_async_gpsc()
2911 ct_req = qla24xx_prep_ct_fm_req(fcport->ct_desc.ct_sns, GPSC_CMD, in qla24xx_async_gpsc()
2915 memcpy(ct_req->req.gpsc.port_name, fcport->fabric_port_name, in qla24xx_async_gpsc()
2918 sp->u.iocb_cmd.u.ctarg.req = fcport->ct_desc.ct_sns; in qla24xx_async_gpsc()
2919 sp->u.iocb_cmd.u.ctarg.req_dma = fcport->ct_desc.ct_sns_dma; in qla24xx_async_gpsc()
2920 sp->u.iocb_cmd.u.ctarg.rsp = fcport->ct_desc.ct_sns; in qla24xx_async_gpsc()
2921 sp->u.iocb_cmd.u.ctarg.rsp_dma = fcport->ct_desc.ct_sns_dma; in qla24xx_async_gpsc()
2931 sp->name, fcport->port_name, sp->handle, in qla24xx_async_gpsc()
2932 fcport->loop_id, fcport->d_id.b.domain, in qla24xx_async_gpsc()
2933 fcport->d_id.b.area, fcport->d_id.b.al_pa); in qla24xx_async_gpsc()
2995 fc_port_t *fcport, *conflict, *t; in qla24xx_handle_gpnid_event() local
3004 list_for_each_entry_safe(fcport, t, &vha->vp_fcports, list) { in qla24xx_handle_gpnid_event()
3005 if (fcport->d_id.b24 == ea->id.b24) in qla24xx_handle_gpnid_event()
3006 fcport->scan_state = QLA_FCPORT_SCAN; in qla24xx_handle_gpnid_event()
3008 qlt_schedule_sess_for_deletion(fcport); in qla24xx_handle_gpnid_event()
3012 fcport = qla2x00_find_fcport_by_wwpn(vha, ea->port_name, 1); in qla24xx_handle_gpnid_event()
3013 if (fcport) { in qla24xx_handle_gpnid_event()
3017 (fcport != conflict)) in qla24xx_handle_gpnid_event()
3029 fcport->scan_needed = 0; in qla24xx_handle_gpnid_event()
3030 fcport->rscn_gen++; in qla24xx_handle_gpnid_event()
3031 fcport->scan_state = QLA_FCPORT_FOUND; in qla24xx_handle_gpnid_event()
3032 fcport->flags |= FCF_FABRIC_DEVICE; in qla24xx_handle_gpnid_event()
3033 if (fcport->login_retry == 0) { in qla24xx_handle_gpnid_event()
3034 fcport->login_retry = in qla24xx_handle_gpnid_event()
3038 fcport->port_name, fcport->loop_id, in qla24xx_handle_gpnid_event()
3039 fcport->login_retry); in qla24xx_handle_gpnid_event()
3041 switch (fcport->disc_state) { in qla24xx_handle_gpnid_event()
3046 __func__, __LINE__, fcport->port_name); in qla24xx_handle_gpnid_event()
3048 qla2x00_post_async_adisc_work(vha, fcport, in qla24xx_handle_gpnid_event()
3054 fcport->port_name); in qla24xx_handle_gpnid_event()
3055 fcport->d_id = ea->id; in qla24xx_handle_gpnid_event()
3056 qla24xx_fcport_handle_login(vha, fcport); in qla24xx_handle_gpnid_event()
3059 fcport->d_id = ea->id; in qla24xx_handle_gpnid_event()
3062 fcport->d_id = ea->id; in qla24xx_handle_gpnid_event()
3272 fc_port_t *fcport = ea->fcport; in qla24xx_handle_gffid_event() local
3274 qla24xx_post_gnl_work(vha, fcport); in qla24xx_handle_gffid_event()
3280 fc_port_t *fcport = sp->fcport; in qla24xx_async_gffid_sp_done() local
3288 sp->name, res, fcport->d_id.b24, fcport->port_name); in qla24xx_async_gffid_sp_done()
3290 fcport->flags &= ~FCF_ASYNC_SENT; in qla24xx_async_gffid_sp_done()
3291 ct_rsp = &fcport->ct_desc.ct_sns->p.rsp; in qla24xx_async_gffid_sp_done()
3303 fcport->fc4_type = FS_FC4TYPE_FCP; in qla24xx_async_gffid_sp_done()
3304 fcport->fc4_features = fc4_scsi_feat & 0xf; in qla24xx_async_gffid_sp_done()
3309 fcport->fc4_type |= FS_FC4TYPE_NVME; in qla24xx_async_gffid_sp_done()
3310 fcport->fc4_features = fc4_nvme_feat & 0xf; in qla24xx_async_gffid_sp_done()
3316 ea.fcport = sp->fcport; in qla24xx_async_gffid_sp_done()
3324 int qla24xx_async_gffid(scsi_qla_host_t *vha, fc_port_t *fcport) in qla24xx_async_gffid() argument
3330 if (!vha->flags.online || (fcport->flags & FCF_ASYNC_SENT)) in qla24xx_async_gffid()
3333 sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); in qla24xx_async_gffid()
3337 fcport->flags |= FCF_ASYNC_SENT; in qla24xx_async_gffid()
3340 sp->gen1 = fcport->rscn_gen; in qla24xx_async_gffid()
3341 sp->gen2 = fcport->login_gen; in qla24xx_async_gffid()
3347 ct_req = qla2x00_prep_ct_req(fcport->ct_desc.ct_sns, GFF_ID_CMD, in qla24xx_async_gffid()
3350 ct_req->req.gff_id.port_id[0] = fcport->d_id.b.domain; in qla24xx_async_gffid()
3351 ct_req->req.gff_id.port_id[1] = fcport->d_id.b.area; in qla24xx_async_gffid()
3352 ct_req->req.gff_id.port_id[2] = fcport->d_id.b.al_pa; in qla24xx_async_gffid()
3354 sp->u.iocb_cmd.u.ctarg.req = fcport->ct_desc.ct_sns; in qla24xx_async_gffid()
3355 sp->u.iocb_cmd.u.ctarg.req_dma = fcport->ct_desc.ct_sns_dma; in qla24xx_async_gffid()
3356 sp->u.iocb_cmd.u.ctarg.rsp = fcport->ct_desc.ct_sns; in qla24xx_async_gffid()
3357 sp->u.iocb_cmd.u.ctarg.rsp_dma = fcport->ct_desc.ct_sns_dma; in qla24xx_async_gffid()
3366 sp->handle, fcport->port_name); in qla24xx_async_gffid()
3375 fcport->flags &= ~FCF_ASYNC_SENT; in qla24xx_async_gffid()
3406 fc_port_t *fcport; in qla24xx_async_gnnft_done() local
3439 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla24xx_async_gnnft_done()
3440 if ((fcport->flags & FCF_FABRIC_DEVICE) != 0) { in qla24xx_async_gnnft_done()
3441 fcport->scan_state = QLA_FCPORT_SCAN; in qla24xx_async_gnnft_done()
3449 list_for_each_entry(fcport, &vha->vp_fcports, list) in qla24xx_async_gnnft_done()
3450 fcport->scan_state = QLA_FCPORT_SCAN; in qla24xx_async_gnnft_done()
3488 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla24xx_async_gnnft_done()
3489 if (memcmp(rp->port_name, fcport->port_name, WWN_SIZE)) in qla24xx_async_gnnft_done()
3491 fcport->scan_state = QLA_FCPORT_FOUND; in qla24xx_async_gnnft_done()
3492 fcport->last_rscn_gen = fcport->rscn_gen; in qla24xx_async_gnnft_done()
3497 if ((fcport->flags & FCF_FABRIC_DEVICE) == 0) { in qla24xx_async_gnnft_done()
3498 qla2x00_clear_loop_id(fcport); in qla24xx_async_gnnft_done()
3499 fcport->flags |= FCF_FABRIC_DEVICE; in qla24xx_async_gnnft_done()
3500 } else if (fcport->d_id.b24 != rp->id.b24 || in qla24xx_async_gnnft_done()
3501 (fcport->scan_needed && in qla24xx_async_gnnft_done()
3502 fcport->port_type != FCT_INITIATOR && in qla24xx_async_gnnft_done()
3503 fcport->port_type != FCT_NVME_INITIATOR)) { in qla24xx_async_gnnft_done()
3504 qlt_schedule_sess_for_deletion(fcport); in qla24xx_async_gnnft_done()
3506 fcport->d_id.b24 = rp->id.b24; in qla24xx_async_gnnft_done()
3507 fcport->scan_needed = 0; in qla24xx_async_gnnft_done()
3530 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla24xx_async_gnnft_done()
3531 if ((fcport->flags & FCF_FABRIC_DEVICE) == 0) { in qla24xx_async_gnnft_done()
3532 fcport->scan_needed = 0; in qla24xx_async_gnnft_done()
3536 if (fcport->scan_state != QLA_FCPORT_FOUND) { in qla24xx_async_gnnft_done()
3539 if (fcport->scan_needed && in qla24xx_async_gnnft_done()
3540 fcport->disc_state == DSC_LOGIN_PEND) { in qla24xx_async_gnnft_done()
3544 fcport->logout_on_delete = 1; in qla24xx_async_gnnft_done()
3548 fcport->scan_needed = 0; in qla24xx_async_gnnft_done()
3551 atomic_read(&fcport->state) == FCS_ONLINE) || in qla24xx_async_gnnft_done()
3553 if (fcport->loop_id != FC_NO_LOOP_ID) { in qla24xx_async_gnnft_done()
3554 if (fcport->flags & FCF_FCP2_DEVICE) in qla24xx_async_gnnft_done()
3560 fcport->port_name); in qla24xx_async_gnnft_done()
3562 qlt_schedule_sess_for_deletion(fcport); in qla24xx_async_gnnft_done()
3567 if (fcport->scan_needed || in qla24xx_async_gnnft_done()
3568 fcport->disc_state != DSC_LOGIN_COMPLETE) { in qla24xx_async_gnnft_done()
3569 if (fcport->login_retry == 0) { in qla24xx_async_gnnft_done()
3570 fcport->login_retry = in qla24xx_async_gnnft_done()
3574 fcport->port_name, fcport->loop_id, in qla24xx_async_gnnft_done()
3575 fcport->login_retry); in qla24xx_async_gnnft_done()
3577 fcport->scan_needed = 0; in qla24xx_async_gnnft_done()
3578 qla24xx_fcport_handle_login(vha, fcport); in qla24xx_async_gnnft_done()
3591 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla24xx_async_gnnft_done()
3592 if (fcport->scan_needed) { in qla24xx_async_gnnft_done()
4120 qla24xx_post_gnl_work(vha, ea->fcport); in qla24xx_handle_gnnid_event()
4126 fc_port_t *fcport = sp->fcport; in qla2x00_async_gnnid_sp_done() local
4127 u8 *node_name = fcport->ct_desc.ct_sns->p.rsp.rsp.gnn_id.node_name; in qla2x00_async_gnnid_sp_done()
4131 fcport->flags &= ~FCF_ASYNC_SENT; in qla2x00_async_gnnid_sp_done()
4134 memcpy(fcport->node_name, node_name, WWN_SIZE); in qla2x00_async_gnnid_sp_done()
4137 ea.fcport = fcport; in qla2x00_async_gnnid_sp_done()
4143 sp->name, res, fcport->port_name, fcport->node_name); in qla2x00_async_gnnid_sp_done()
4150 int qla24xx_async_gnnid(scsi_qla_host_t *vha, fc_port_t *fcport) in qla24xx_async_gnnid() argument
4156 if (!vha->flags.online || (fcport->flags & FCF_ASYNC_SENT)) in qla24xx_async_gnnid()
4159 qla2x00_set_fcport_disc_state(fcport, DSC_GNN_ID); in qla24xx_async_gnnid()
4160 sp = qla2x00_get_sp(vha, fcport, GFP_ATOMIC); in qla24xx_async_gnnid()
4164 fcport->flags |= FCF_ASYNC_SENT; in qla24xx_async_gnnid()
4167 sp->gen1 = fcport->rscn_gen; in qla24xx_async_gnnid()
4168 sp->gen2 = fcport->login_gen; in qla24xx_async_gnnid()
4174 ct_req = qla2x00_prep_ct_req(fcport->ct_desc.ct_sns, GNN_ID_CMD, in qla24xx_async_gnnid()
4178 ct_req->req.port_id.port_id = port_id_to_be_id(fcport->d_id); in qla24xx_async_gnnid()
4182 sp->u.iocb_cmd.u.ctarg.req = fcport->ct_desc.ct_sns; in qla24xx_async_gnnid()
4183 sp->u.iocb_cmd.u.ctarg.req_dma = fcport->ct_desc.ct_sns_dma; in qla24xx_async_gnnid()
4184 sp->u.iocb_cmd.u.ctarg.rsp = fcport->ct_desc.ct_sns; in qla24xx_async_gnnid()
4185 sp->u.iocb_cmd.u.ctarg.rsp_dma = fcport->ct_desc.ct_sns_dma; in qla24xx_async_gnnid()
4194 sp->name, fcport->port_name, in qla24xx_async_gnnid()
4195 sp->handle, fcport->loop_id, fcport->d_id.b24); in qla24xx_async_gnnid()
4204 fcport->flags &= ~FCF_ASYNC_SENT; in qla24xx_async_gnnid()
4209 int qla24xx_post_gnnid_work(struct scsi_qla_host *vha, fc_port_t *fcport) in qla24xx_post_gnnid_work() argument
4223 e->u.fcport.fcport = fcport; in qla24xx_post_gnnid_work()
4230 fc_port_t *fcport = ea->fcport; in qla24xx_handle_gfpnid_event() local
4234 __func__, fcport->port_name, fcport->disc_state, in qla24xx_handle_gfpnid_event()
4235 fcport->fw_login_state, ea->rc, fcport->login_gen, ea->sp->gen2, in qla24xx_handle_gfpnid_event()
4236 fcport->rscn_gen, ea->sp->gen1, vha->fcport_count); in qla24xx_handle_gfpnid_event()
4238 if (fcport->disc_state == DSC_DELETE_PEND) in qla24xx_handle_gfpnid_event()
4241 if (ea->sp->gen2 != fcport->login_gen) { in qla24xx_handle_gfpnid_event()
4245 __func__, fcport->port_name); in qla24xx_handle_gfpnid_event()
4247 } else if (ea->sp->gen1 != fcport->rscn_gen) { in qla24xx_handle_gfpnid_event()
4251 qla24xx_post_gpsc_work(vha, fcport); in qla24xx_handle_gfpnid_event()
4257 fc_port_t *fcport = sp->fcport; in qla2x00_async_gfpnid_sp_done() local
4258 u8 *fpn = fcport->ct_desc.ct_sns->p.rsp.rsp.gfpn_id.port_name; in qla2x00_async_gfpnid_sp_done()
4264 memcpy(fcport->fabric_port_name, fpn, WWN_SIZE); in qla2x00_async_gfpnid_sp_done()
4267 ea.fcport = fcport; in qla2x00_async_gfpnid_sp_done()
4273 sp->name, res, fcport->port_name, fcport->fabric_port_name); in qla2x00_async_gfpnid_sp_done()
4280 int qla24xx_async_gfpnid(scsi_qla_host_t *vha, fc_port_t *fcport) in qla24xx_async_gfpnid() argument
4286 if (!vha->flags.online || (fcport->flags & FCF_ASYNC_SENT)) in qla24xx_async_gfpnid()
4289 sp = qla2x00_get_sp(vha, fcport, GFP_ATOMIC); in qla24xx_async_gfpnid()
4295 sp->gen1 = fcport->rscn_gen; in qla24xx_async_gfpnid()
4296 sp->gen2 = fcport->login_gen; in qla24xx_async_gfpnid()
4302 ct_req = qla2x00_prep_ct_req(fcport->ct_desc.ct_sns, GFPN_ID_CMD, in qla24xx_async_gfpnid()
4306 ct_req->req.port_id.port_id = port_id_to_be_id(fcport->d_id); in qla24xx_async_gfpnid()
4310 sp->u.iocb_cmd.u.ctarg.req = fcport->ct_desc.ct_sns; in qla24xx_async_gfpnid()
4311 sp->u.iocb_cmd.u.ctarg.req_dma = fcport->ct_desc.ct_sns_dma; in qla24xx_async_gfpnid()
4312 sp->u.iocb_cmd.u.ctarg.rsp = fcport->ct_desc.ct_sns; in qla24xx_async_gfpnid()
4313 sp->u.iocb_cmd.u.ctarg.rsp_dma = fcport->ct_desc.ct_sns_dma; in qla24xx_async_gfpnid()
4322 sp->name, fcport->port_name, in qla24xx_async_gfpnid()
4323 sp->handle, fcport->loop_id, fcport->d_id.b24); in qla24xx_async_gfpnid()
4337 int qla24xx_post_gfpnid_work(struct scsi_qla_host *vha, fc_port_t *fcport) in qla24xx_post_gfpnid_work() argument
4351 e->u.fcport.fcport = fcport; in qla24xx_post_gfpnid_work()