Lines Matching refs:vha

31 qla2x00_prep_ms_iocb(scsi_qla_host_t *vha, struct ct_arg *arg)  in qla2x00_prep_ms_iocb()  argument
33 struct qla_hw_data *ha = vha->hw; in qla2x00_prep_ms_iocb()
55 vha->qla_stats.control_requests++; in qla2x00_prep_ms_iocb()
68 qla24xx_prep_ms_iocb(scsi_qla_host_t *vha, struct ct_arg *arg) in qla24xx_prep_ms_iocb() argument
70 struct qla_hw_data *ha = vha->hw; in qla24xx_prep_ms_iocb()
90 ct_pkt->vp_index = vha->vp_idx; in qla24xx_prep_ms_iocb()
92 vha->qla_stats.control_requests++; in qla24xx_prep_ms_iocb()
120 qla2x00_chk_ms_status(scsi_qla_host_t *vha, ms_iocb_entry_t *ms_pkt, in qla2x00_chk_ms_status() argument
125 struct qla_hw_data *ha = vha->hw; in qla2x00_chk_ms_status()
130 ql_dbg(ql_dbg_disc, vha, 0x2031, in qla2x00_chk_ms_status()
132 routine, ms_pkt->entry_status, vha->d_id.b.domain, in qla2x00_chk_ms_status()
133 vha->d_id.b.area, vha->d_id.b.al_pa); in qla2x00_chk_ms_status()
146 ql_dbg(ql_dbg_disc + ql_dbg_buffer, vha, 0x2077, in qla2x00_chk_ms_status()
148 routine, vha->d_id.b.domain, in qla2x00_chk_ms_status()
149 vha->d_id.b.area, vha->d_id.b.al_pa, in qla2x00_chk_ms_status()
151 ql_dump_buffer(ql_dbg_disc + ql_dbg_buffer, vha, in qla2x00_chk_ms_status()
169 ql_dbg(ql_dbg_async, vha, 0x502b, in qla2x00_chk_ms_status()
173 set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); in qla2x00_chk_ms_status()
174 set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); in qla2x00_chk_ms_status()
181 ql_dbg(ql_dbg_disc, vha, 0x2033, in qla2x00_chk_ms_status()
184 vha->d_id.b.domain, vha->d_id.b.area, in qla2x00_chk_ms_status()
185 vha->d_id.b.al_pa); in qla2x00_chk_ms_status()
200 qla2x00_ga_nxt(scsi_qla_host_t *vha, fc_port_t *fcport) in qla2x00_ga_nxt() argument
207 struct qla_hw_data *ha = vha->hw; in qla2x00_ga_nxt()
211 return qla2x00_sns_ga_nxt(vha, fcport); in qla2x00_ga_nxt()
222 ms_pkt = ha->isp_ops->prep_ms_iocb(vha, &arg); in qla2x00_ga_nxt()
233 rval = qla2x00_issue_iocb(vha, ha->ms_iocb, ha->ms_iocb_dma, in qla2x00_ga_nxt()
237 ql_dbg(ql_dbg_disc, vha, 0x2062, in qla2x00_ga_nxt()
239 } else if (qla2x00_chk_ms_status(vha, ms_pkt, ct_rsp, "GA_NXT") != in qla2x00_ga_nxt()
258 ql_dbg(ql_dbg_disc, vha, 0x2063, in qla2x00_ga_nxt()
270 qla2x00_gid_pt_rsp_size(scsi_qla_host_t *vha) in qla2x00_gid_pt_rsp_size() argument
272 return vha->hw->max_fibre_devices * 4 + 16; in qla2x00_gid_pt_rsp_size()
285 qla2x00_gid_pt(scsi_qla_host_t *vha, sw_info_t *list) in qla2x00_gid_pt() argument
295 struct qla_hw_data *ha = vha->hw; in qla2x00_gid_pt()
300 return qla2x00_sns_gid_pt(vha, list); in qla2x00_gid_pt()
303 gid_pt_rsp_size = qla2x00_gid_pt_rsp_size(vha); in qla2x00_gid_pt()
314 ms_pkt = ha->isp_ops->prep_ms_iocb(vha, &arg); in qla2x00_gid_pt()
324 rval = qla2x00_issue_iocb(vha, ha->ms_iocb, ha->ms_iocb_dma, in qla2x00_gid_pt()
328 ql_dbg(ql_dbg_disc, vha, 0x2055, in qla2x00_gid_pt()
330 } else if (qla2x00_chk_ms_status(vha, ms_pkt, ct_rsp, "GID_PT") != in qla2x00_gid_pt()
369 qla2x00_gpn_id(scsi_qla_host_t *vha, sw_info_t *list) in qla2x00_gpn_id() argument
377 struct qla_hw_data *ha = vha->hw; in qla2x00_gpn_id()
381 return qla2x00_sns_gpn_id(vha, list); in qla2x00_gpn_id()
393 ms_pkt = ha->isp_ops->prep_ms_iocb(vha, &arg); in qla2x00_gpn_id()
404 rval = qla2x00_issue_iocb(vha, ha->ms_iocb, ha->ms_iocb_dma, in qla2x00_gpn_id()
408 ql_dbg(ql_dbg_disc, vha, 0x2056, in qla2x00_gpn_id()
411 } else if (qla2x00_chk_ms_status(vha, ms_pkt, ct_rsp, in qla2x00_gpn_id()
437 qla2x00_gnn_id(scsi_qla_host_t *vha, sw_info_t *list) in qla2x00_gnn_id() argument
441 struct qla_hw_data *ha = vha->hw; in qla2x00_gnn_id()
448 return qla2x00_sns_gnn_id(vha, list); in qla2x00_gnn_id()
460 ms_pkt = ha->isp_ops->prep_ms_iocb(vha, &arg); in qla2x00_gnn_id()
471 rval = qla2x00_issue_iocb(vha, ha->ms_iocb, ha->ms_iocb_dma, in qla2x00_gnn_id()
475 ql_dbg(ql_dbg_disc, vha, 0x2057, in qla2x00_gnn_id()
478 } else if (qla2x00_chk_ms_status(vha, ms_pkt, ct_rsp, in qla2x00_gnn_id()
487 ql_dbg(ql_dbg_disc, vha, 0x2058, in qla2x00_gnn_id()
505 struct scsi_qla_host *vha = sp->vha; in qla2x00_async_sns_sp_done() local
511 ql_dbg(ql_dbg_disc, vha, 0x204f, in qla2x00_async_sns_sp_done()
515 ql_dbg(ql_dbg_disc, vha, 0x204f, in qla2x00_async_sns_sp_done()
524 ql_dbg(ql_dbg_disc, vha, 0x204f, in qla2x00_async_sns_sp_done()
528 e = qla2x00_alloc_work(vha, QLA_EVT_SP_RETRY); in qla2x00_async_sns_sp_done()
534 qla2x00_post_work(vha, e); in qla2x00_async_sns_sp_done()
539 e = qla2x00_alloc_work(vha, QLA_EVT_UNMAP); in qla2x00_async_sns_sp_done()
544 dma_free_coherent(&vha->hw->pdev->dev, in qla2x00_async_sns_sp_done()
552 dma_free_coherent(&vha->hw->pdev->dev, in qla2x00_async_sns_sp_done()
565 qla2x00_post_work(vha, e); in qla2x00_async_sns_sp_done()
575 qla2x00_rft_id(scsi_qla_host_t *vha) in qla2x00_rft_id() argument
577 struct qla_hw_data *ha = vha->hw; in qla2x00_rft_id()
580 return qla2x00_sns_rft_id(vha); in qla2x00_rft_id()
582 return qla_async_rftid(vha, &vha->d_id); in qla2x00_rft_id()
585 static int qla_async_rftid(scsi_qla_host_t *vha, port_id_t *d_id) in qla_async_rftid() argument
592 if (!vha->flags.online) in qla_async_rftid()
595 sp = qla2x00_get_sp(vha, NULL, GFP_KERNEL); in qla_async_rftid()
601 qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2); in qla_async_rftid()
603 sp->u.iocb_cmd.u.ctarg.req = dma_alloc_coherent(&vha->hw->pdev->dev, in qla_async_rftid()
608 ql_log(ql_log_warn, vha, 0xd041, in qla_async_rftid()
614 sp->u.iocb_cmd.u.ctarg.rsp = dma_alloc_coherent(&vha->hw->pdev->dev, in qla_async_rftid()
619 ql_log(ql_log_warn, vha, 0xd042, in qla_async_rftid()
632 ct_req->req.rft_id.port_id = port_id_to_be_id(vha->d_id); in qla_async_rftid()
635 if (vha->flags.nvme_enabled) in qla_async_rftid()
644 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla_async_rftid()
650 ql_dbg(ql_dbg_disc, vha, 0x2043, in qla_async_rftid()
669 qla2x00_rff_id(scsi_qla_host_t *vha, u8 type) in qla2x00_rff_id() argument
671 struct qla_hw_data *ha = vha->hw; in qla2x00_rff_id()
674 ql_dbg(ql_dbg_disc, vha, 0x2046, in qla2x00_rff_id()
679 return qla_async_rffid(vha, &vha->d_id, qlt_rff_id(vha), type); in qla2x00_rff_id()
682 static int qla_async_rffid(scsi_qla_host_t *vha, port_id_t *d_id, in qla_async_rffid() argument
690 sp = qla2x00_get_sp(vha, NULL, GFP_KERNEL); in qla_async_rffid()
696 qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2); in qla_async_rffid()
698 sp->u.iocb_cmd.u.ctarg.req = dma_alloc_coherent(&vha->hw->pdev->dev, in qla_async_rffid()
703 ql_log(ql_log_warn, vha, 0xd041, in qla_async_rffid()
709 sp->u.iocb_cmd.u.ctarg.rsp = dma_alloc_coherent(&vha->hw->pdev->dev, in qla_async_rffid()
714 ql_log(ql_log_warn, vha, 0xd042, in qla_async_rffid()
737 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla_async_rffid()
743 ql_dbg(ql_dbg_disc, vha, 0x2047, in qla_async_rffid()
763 qla2x00_rnn_id(scsi_qla_host_t *vha) in qla2x00_rnn_id() argument
765 struct qla_hw_data *ha = vha->hw; in qla2x00_rnn_id()
768 return qla2x00_sns_rnn_id(vha); in qla2x00_rnn_id()
770 return qla_async_rnnid(vha, &vha->d_id, vha->node_name); in qla2x00_rnn_id()
773 static int qla_async_rnnid(scsi_qla_host_t *vha, port_id_t *d_id, in qla_async_rnnid() argument
781 sp = qla2x00_get_sp(vha, NULL, GFP_KERNEL); in qla_async_rnnid()
787 qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2); in qla_async_rnnid()
789 sp->u.iocb_cmd.u.ctarg.req = dma_alloc_coherent(&vha->hw->pdev->dev, in qla_async_rnnid()
794 ql_log(ql_log_warn, vha, 0xd041, in qla_async_rnnid()
800 sp->u.iocb_cmd.u.ctarg.rsp = dma_alloc_coherent(&vha->hw->pdev->dev, in qla_async_rnnid()
805 ql_log(ql_log_warn, vha, 0xd042, in qla_async_rnnid()
818 ct_req->req.rnn_id.port_id = port_id_to_be_id(vha->d_id); in qla_async_rnnid()
819 memcpy(ct_req->req.rnn_id.node_name, vha->node_name, WWN_SIZE); in qla_async_rnnid()
828 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla_async_rnnid()
834 ql_dbg(ql_dbg_disc, vha, 0x204d, in qla_async_rnnid()
848 qla2x00_get_sym_node_name(scsi_qla_host_t *vha, uint8_t *snn, size_t size) in qla2x00_get_sym_node_name() argument
850 struct qla_hw_data *ha = vha->hw; in qla2x00_get_sym_node_name()
868 qla2x00_rsnn_nn(scsi_qla_host_t *vha) in qla2x00_rsnn_nn() argument
870 struct qla_hw_data *ha = vha->hw; in qla2x00_rsnn_nn()
873 ql_dbg(ql_dbg_disc, vha, 0x2050, in qla2x00_rsnn_nn()
878 return qla_async_rsnn_nn(vha); in qla2x00_rsnn_nn()
881 static int qla_async_rsnn_nn(scsi_qla_host_t *vha) in qla_async_rsnn_nn() argument
888 sp = qla2x00_get_sp(vha, NULL, GFP_KERNEL); in qla_async_rsnn_nn()
894 qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2); in qla_async_rsnn_nn()
896 sp->u.iocb_cmd.u.ctarg.req = dma_alloc_coherent(&vha->hw->pdev->dev, in qla_async_rsnn_nn()
901 ql_log(ql_log_warn, vha, 0xd041, in qla_async_rsnn_nn()
907 sp->u.iocb_cmd.u.ctarg.rsp = dma_alloc_coherent(&vha->hw->pdev->dev, in qla_async_rsnn_nn()
912 ql_log(ql_log_warn, vha, 0xd042, in qla_async_rsnn_nn()
925 memcpy(ct_req->req.rsnn_nn.node_name, vha->node_name, WWN_SIZE); in qla_async_rsnn_nn()
928 qla2x00_get_sym_node_name(vha, ct_req->req.rsnn_nn.sym_node_name, in qla_async_rsnn_nn()
941 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla_async_rsnn_nn()
947 ql_dbg(ql_dbg_disc, vha, 0x2043, in qla_async_rsnn_nn()
970 qla2x00_prep_sns_cmd(scsi_qla_host_t *vha, uint16_t cmd, uint16_t scmd_len, in qla2x00_prep_sns_cmd() argument
975 struct qla_hw_data *ha = vha->hw; in qla2x00_prep_sns_cmd()
987 vha->qla_stats.control_requests++; in qla2x00_prep_sns_cmd()
1002 qla2x00_sns_ga_nxt(scsi_qla_host_t *vha, fc_port_t *fcport) in qla2x00_sns_ga_nxt() argument
1005 struct qla_hw_data *ha = vha->hw; in qla2x00_sns_ga_nxt()
1010 sns_cmd = qla2x00_prep_sns_cmd(vha, GA_NXT_CMD, GA_NXT_SNS_SCMD_LEN, in qla2x00_sns_ga_nxt()
1019 rval = qla2x00_send_sns(vha, ha->sns_cmd_dma, GA_NXT_SNS_CMD_SIZE / 2, in qla2x00_sns_ga_nxt()
1023 ql_dbg(ql_dbg_disc, vha, 0x205f, in qla2x00_sns_ga_nxt()
1027 ql_dbg(ql_dbg_disc + ql_dbg_buffer, vha, 0x2084, in qla2x00_sns_ga_nxt()
1029 ql_dump_buffer(ql_dbg_disc + ql_dbg_buffer, vha, 0x2074, in qla2x00_sns_ga_nxt()
1045 ql_dbg(ql_dbg_disc, vha, 0x2061, in qla2x00_sns_ga_nxt()
1068 qla2x00_sns_gid_pt(scsi_qla_host_t *vha, sw_info_t *list) in qla2x00_sns_gid_pt() argument
1071 struct qla_hw_data *ha = vha->hw; in qla2x00_sns_gid_pt()
1077 gid_pt_sns_data_size = qla2x00_gid_pt_rsp_size(vha); in qla2x00_sns_gid_pt()
1081 sns_cmd = qla2x00_prep_sns_cmd(vha, GID_PT_CMD, GID_PT_SNS_SCMD_LEN, in qla2x00_sns_gid_pt()
1088 rval = qla2x00_send_sns(vha, ha->sns_cmd_dma, GID_PT_SNS_CMD_SIZE / 2, in qla2x00_sns_gid_pt()
1092 ql_dbg(ql_dbg_disc, vha, 0x206d, in qla2x00_sns_gid_pt()
1096 ql_dbg(ql_dbg_disc, vha, 0x202f, in qla2x00_sns_gid_pt()
1098 ql_dump_buffer(ql_dbg_disc + ql_dbg_buffer, vha, 0x2081, in qla2x00_sns_gid_pt()
1139 qla2x00_sns_gpn_id(scsi_qla_host_t *vha, sw_info_t *list) in qla2x00_sns_gpn_id() argument
1142 struct qla_hw_data *ha = vha->hw; in qla2x00_sns_gpn_id()
1149 sns_cmd = qla2x00_prep_sns_cmd(vha, GPN_ID_CMD, in qla2x00_sns_gpn_id()
1158 rval = qla2x00_send_sns(vha, ha->sns_cmd_dma, in qla2x00_sns_gpn_id()
1162 ql_dbg(ql_dbg_disc, vha, 0x2032, in qla2x00_sns_gpn_id()
1166 ql_dbg(ql_dbg_disc + ql_dbg_buffer, vha, 0x207e, in qla2x00_sns_gpn_id()
1168 ql_dump_buffer(ql_dbg_disc + ql_dbg_buffer, vha, 0x207f, in qla2x00_sns_gpn_id()
1195 qla2x00_sns_gnn_id(scsi_qla_host_t *vha, sw_info_t *list) in qla2x00_sns_gnn_id() argument
1198 struct qla_hw_data *ha = vha->hw; in qla2x00_sns_gnn_id()
1205 sns_cmd = qla2x00_prep_sns_cmd(vha, GNN_ID_CMD, in qla2x00_sns_gnn_id()
1214 rval = qla2x00_send_sns(vha, ha->sns_cmd_dma, in qla2x00_sns_gnn_id()
1218 ql_dbg(ql_dbg_disc, vha, 0x203f, in qla2x00_sns_gnn_id()
1222 ql_dbg(ql_dbg_disc + ql_dbg_buffer, vha, 0x2082, in qla2x00_sns_gnn_id()
1224 ql_dump_buffer(ql_dbg_disc + ql_dbg_buffer, vha, 0x207a, in qla2x00_sns_gnn_id()
1232 ql_dbg(ql_dbg_disc, vha, 0x206e, in qla2x00_sns_gnn_id()
1257 qla2x00_sns_rft_id(scsi_qla_host_t *vha) in qla2x00_sns_rft_id() argument
1260 struct qla_hw_data *ha = vha->hw; in qla2x00_sns_rft_id()
1265 sns_cmd = qla2x00_prep_sns_cmd(vha, RFT_ID_CMD, RFT_ID_SNS_SCMD_LEN, in qla2x00_sns_rft_id()
1269 sns_cmd->p.cmd.param[0] = vha->d_id.b.al_pa; in qla2x00_sns_rft_id()
1270 sns_cmd->p.cmd.param[1] = vha->d_id.b.area; in qla2x00_sns_rft_id()
1271 sns_cmd->p.cmd.param[2] = vha->d_id.b.domain; in qla2x00_sns_rft_id()
1276 rval = qla2x00_send_sns(vha, ha->sns_cmd_dma, RFT_ID_SNS_CMD_SIZE / 2, in qla2x00_sns_rft_id()
1280 ql_dbg(ql_dbg_disc, vha, 0x2060, in qla2x00_sns_rft_id()
1284 ql_dbg(ql_dbg_disc + ql_dbg_buffer, vha, 0x2083, in qla2x00_sns_rft_id()
1286 ql_dump_buffer(ql_dbg_disc + ql_dbg_buffer, vha, 0x2080, in qla2x00_sns_rft_id()
1290 ql_dbg(ql_dbg_disc, vha, 0x2073, in qla2x00_sns_rft_id()
1306 qla2x00_sns_rnn_id(scsi_qla_host_t *vha) in qla2x00_sns_rnn_id() argument
1309 struct qla_hw_data *ha = vha->hw; in qla2x00_sns_rnn_id()
1314 sns_cmd = qla2x00_prep_sns_cmd(vha, RNN_ID_CMD, RNN_ID_SNS_SCMD_LEN, in qla2x00_sns_rnn_id()
1318 sns_cmd->p.cmd.param[0] = vha->d_id.b.al_pa; in qla2x00_sns_rnn_id()
1319 sns_cmd->p.cmd.param[1] = vha->d_id.b.area; in qla2x00_sns_rnn_id()
1320 sns_cmd->p.cmd.param[2] = vha->d_id.b.domain; in qla2x00_sns_rnn_id()
1322 sns_cmd->p.cmd.param[4] = vha->node_name[7]; in qla2x00_sns_rnn_id()
1323 sns_cmd->p.cmd.param[5] = vha->node_name[6]; in qla2x00_sns_rnn_id()
1324 sns_cmd->p.cmd.param[6] = vha->node_name[5]; in qla2x00_sns_rnn_id()
1325 sns_cmd->p.cmd.param[7] = vha->node_name[4]; in qla2x00_sns_rnn_id()
1326 sns_cmd->p.cmd.param[8] = vha->node_name[3]; in qla2x00_sns_rnn_id()
1327 sns_cmd->p.cmd.param[9] = vha->node_name[2]; in qla2x00_sns_rnn_id()
1328 sns_cmd->p.cmd.param[10] = vha->node_name[1]; in qla2x00_sns_rnn_id()
1329 sns_cmd->p.cmd.param[11] = vha->node_name[0]; in qla2x00_sns_rnn_id()
1332 rval = qla2x00_send_sns(vha, ha->sns_cmd_dma, RNN_ID_SNS_CMD_SIZE / 2, in qla2x00_sns_rnn_id()
1336 ql_dbg(ql_dbg_disc, vha, 0x204a, in qla2x00_sns_rnn_id()
1340 ql_dbg(ql_dbg_disc + ql_dbg_buffer, vha, 0x207b, in qla2x00_sns_rnn_id()
1342 ql_dump_buffer(ql_dbg_disc + ql_dbg_buffer, vha, 0x207c, in qla2x00_sns_rnn_id()
1346 ql_dbg(ql_dbg_disc, vha, 0x204c, in qla2x00_sns_rnn_id()
1360 qla2x00_mgmt_svr_login(scsi_qla_host_t *vha) in qla2x00_mgmt_svr_login() argument
1364 struct qla_hw_data *ha = vha->hw; in qla2x00_mgmt_svr_login()
1367 if (vha->flags.management_server_logged_in) in qla2x00_mgmt_svr_login()
1370 rval = ha->isp_ops->fabric_login(vha, vha->mgmt_svr_loop_id, 0xff, 0xff, in qla2x00_mgmt_svr_login()
1374 ql_dbg(ql_dbg_disc, vha, 0x2085, in qla2x00_mgmt_svr_login()
1376 "rval=%d\n", vha->mgmt_svr_loop_id, rval); in qla2x00_mgmt_svr_login()
1378 ql_dbg(ql_dbg_disc, vha, 0x2024, in qla2x00_mgmt_svr_login()
1381 vha->mgmt_svr_loop_id, mb[0], mb[1], mb[2], mb[6], in qla2x00_mgmt_svr_login()
1385 vha->flags.management_server_logged_in = 1; in qla2x00_mgmt_svr_login()
1399 qla2x00_prep_ms_fdmi_iocb(scsi_qla_host_t *vha, uint32_t req_size, in qla2x00_prep_ms_fdmi_iocb() argument
1403 struct qla_hw_data *ha = vha->hw; in qla2x00_prep_ms_fdmi_iocb()
1410 SET_TARGET_ID(ha, ms_pkt->loop_id, vha->mgmt_svr_loop_id); in qla2x00_prep_ms_fdmi_iocb()
1436 qla24xx_prep_ms_fdmi_iocb(scsi_qla_host_t *vha, uint32_t req_size, in qla24xx_prep_ms_fdmi_iocb() argument
1440 struct qla_hw_data *ha = vha->hw; in qla24xx_prep_ms_fdmi_iocb()
1447 ct_pkt->nport_handle = cpu_to_le16(vha->mgmt_svr_loop_id); in qla24xx_prep_ms_fdmi_iocb()
1459 ct_pkt->vp_index = vha->vp_idx; in qla24xx_prep_ms_fdmi_iocb()
1465 qla2x00_update_ms_fdmi_iocb(scsi_qla_host_t *vha, uint32_t req_size) in qla2x00_update_ms_fdmi_iocb() argument
1467 struct qla_hw_data *ha = vha->hw; in qla2x00_update_ms_fdmi_iocb()
1593 qla2x00_hba_attributes(scsi_qla_host_t *vha, void *entries, in qla2x00_hba_attributes() argument
1596 struct qla_hw_data *ha = vha->hw; in qla2x00_hba_attributes()
1605 memcpy(eiter->a.node_name, vha->node_name, sizeof(eiter->a.node_name)); in qla2x00_hba_attributes()
1610 ql_dbg(ql_dbg_disc, vha, 0x20a0, in qla2x00_hba_attributes()
1622 ql_dbg(ql_dbg_disc, vha, 0x20a1, in qla2x00_hba_attributes()
1629 alen = qla2xxx_get_vpd_field(vha, "SN", in qla2x00_hba_attributes()
1643 ql_dbg(ql_dbg_disc, vha, 0x20a2, in qla2x00_hba_attributes()
1655 ql_dbg(ql_dbg_disc, vha, 0x20a3, in qla2x00_hba_attributes()
1667 ql_dbg(ql_dbg_disc, vha, 0x20a4, in qla2x00_hba_attributes()
1675 alen = qla2xxx_get_vpd_field(vha, "MN", in qla2x00_hba_attributes()
1679 alen = qla2xxx_get_vpd_field(vha, "EC", in qla2x00_hba_attributes()
1692 ql_dbg(ql_dbg_disc, vha, 0x20a5, in qla2x00_hba_attributes()
1704 ql_dbg(ql_dbg_disc, vha, 0x20a6, in qla2x00_hba_attributes()
1717 ql_dbg(ql_dbg_disc, vha, 0x20a7, in qla2x00_hba_attributes()
1723 ha->isp_ops->fw_version_str(vha, eiter->a.fw_version, in qla2x00_hba_attributes()
1729 ql_dbg(ql_dbg_disc, vha, 0x20a8, in qla2x00_hba_attributes()
1747 "Linux", fc_host_system_hostname(vha->host)); in qla2x00_hba_attributes()
1753 ql_dbg(ql_dbg_disc, vha, 0x20a9, in qla2x00_hba_attributes()
1764 ql_dbg(ql_dbg_disc, vha, 0x20aa, in qla2x00_hba_attributes()
1769 alen = qla2x00_get_sym_node_name(vha, eiter->a.sym_name, in qla2x00_hba_attributes()
1775 ql_dbg(ql_dbg_disc, vha, 0x20ab, in qla2x00_hba_attributes()
1785 ql_dbg(ql_dbg_disc, vha, 0x20ac, in qla2x00_hba_attributes()
1796 ql_dbg(ql_dbg_disc, vha, 0x20ad, in qla2x00_hba_attributes()
1801 memcpy(eiter->a.fabric_name, vha->fabric_node_name, in qla2x00_hba_attributes()
1807 ql_dbg(ql_dbg_disc, vha, 0x20ae, in qla2x00_hba_attributes()
1819 ql_dbg(ql_dbg_disc, vha, 0x20af, in qla2x00_hba_attributes()
1831 ql_dbg(ql_dbg_disc, vha, 0x20b0, in qla2x00_hba_attributes()
1847 qla2x00_port_attributes(scsi_qla_host_t *vha, void *entries, in qla2x00_port_attributes() argument
1850 struct qla_hw_data *ha = vha->hw; in qla2x00_port_attributes()
1853 p_sysid->nodename : fc_host_system_hostname(vha->host); in qla2x00_port_attributes()
1869 ql_dbg(ql_dbg_disc, vha, 0x20c0, in qla2x00_port_attributes()
1871 if (vha->flags.nvme_enabled) { in qla2x00_port_attributes()
1873 ql_dbg(ql_dbg_disc, vha, 0x211f, in qla2x00_port_attributes()
1886 ql_dbg(ql_dbg_disc, vha, 0x20c1, in qla2x00_port_attributes()
1897 ql_dbg(ql_dbg_disc, vha, 0x20c2, in qla2x00_port_attributes()
1907 ql_dbg(ql_dbg_disc, vha, 0x20c3, in qla2x00_port_attributes()
1914 "%s:host%lu", QLA2XXX_DRIVER_NAME, vha->host_no); in qla2x00_port_attributes()
1919 ql_dbg(ql_dbg_disc, vha, 0x20c4, in qla2x00_port_attributes()
1933 ql_dbg(ql_dbg_disc, vha, 0x20c5, in qla2x00_port_attributes()
1942 memcpy(eiter->a.node_name, vha->node_name, sizeof(eiter->a.node_name)); in qla2x00_port_attributes()
1947 ql_dbg(ql_dbg_disc, vha, 0x20c6, in qla2x00_port_attributes()
1953 memcpy(eiter->a.port_name, vha->port_name, sizeof(eiter->a.port_name)); in qla2x00_port_attributes()
1958 ql_dbg(ql_dbg_disc, vha, 0x20c7, in qla2x00_port_attributes()
1964 alen = qla2x00_get_sym_node_name(vha, eiter->a.port_sym_name, in qla2x00_port_attributes()
1970 ql_dbg(ql_dbg_disc, vha, 0x20c8, in qla2x00_port_attributes()
1981 ql_dbg(ql_dbg_disc, vha, 0x20c9, in qla2x00_port_attributes()
1992 ql_dbg(ql_dbg_disc, vha, 0x20ca, in qla2x00_port_attributes()
1998 memcpy(eiter->a.fabric_name, vha->fabric_node_name, in qla2x00_port_attributes()
2004 ql_dbg(ql_dbg_disc, vha, 0x20cb, in qla2x00_port_attributes()
2018 ql_dbg(ql_dbg_disc, vha, 0x20cc, in qla2x00_port_attributes()
2030 ql_dbg(ql_dbg_disc, vha, 0x20cd, in qla2x00_port_attributes()
2041 ql_dbg(ql_dbg_disc, vha, 0x20ce, in qla2x00_port_attributes()
2047 eiter->a.port_id = cpu_to_be32(vha->d_id.b24); in qla2x00_port_attributes()
2052 ql_dbg(ql_dbg_disc, vha, 0x20cf, in qla2x00_port_attributes()
2068 ql_dbg(ql_dbg_disc, vha, 0x20d0, in qla2x00_port_attributes()
2074 memcpy(eiter->a.smartsan_guid, vha->node_name, WWN_SIZE); in qla2x00_port_attributes()
2075 memcpy(eiter->a.smartsan_guid + WWN_SIZE, vha->port_name, WWN_SIZE); in qla2x00_port_attributes()
2080 ql_dbg(ql_dbg_disc, vha, 0x20d1, in qla2x00_port_attributes()
2095 ql_dbg(ql_dbg_disc, vha, 0x20d2, in qla2x00_port_attributes()
2108 ql_dbg(ql_dbg_disc, vha, 0x20d3, in qla2x00_port_attributes()
2114 eiter->a.smartsan_port_info = cpu_to_be32(vha->vp_idx ? 2 : 1); in qla2x00_port_attributes()
2119 ql_dbg(ql_dbg_disc, vha, 0x20d4, in qla2x00_port_attributes()
2130 ql_dbg(ql_dbg_disc, vha, 0x20d6, in qla2x00_port_attributes()
2146 qla2x00_fdmi_rhba(scsi_qla_host_t *vha, unsigned int callopt) in qla2x00_fdmi_rhba() argument
2148 struct qla_hw_data *ha = vha->hw; in qla2x00_fdmi_rhba()
2161 ql_dbg(ql_dbg_disc, vha, 0x20e0, in qla2x00_fdmi_rhba()
2165 ms_pkt = ha->isp_ops->prep_ms_fdmi_iocb(vha, 0, size); in qla2x00_fdmi_rhba()
2172 memcpy(ct_req->req.rhba.hba_identifier, vha->port_name, in qla2x00_fdmi_rhba()
2179 memcpy(ct_req->req.rhba.port_name, vha->port_name, in qla2x00_fdmi_rhba()
2190 size += qla2x00_hba_attributes(vha, entries, callopt); in qla2x00_fdmi_rhba()
2193 qla2x00_update_ms_fdmi_iocb(vha, size + 16); in qla2x00_fdmi_rhba()
2195 ql_dbg(ql_dbg_disc, vha, 0x20e1, in qla2x00_fdmi_rhba()
2200 ql_dump_buffer(ql_dbg_disc + ql_dbg_buffer, vha, 0x20e2, in qla2x00_fdmi_rhba()
2204 rval = qla2x00_issue_iocb(vha, ha->ms_iocb, ha->ms_iocb_dma, in qla2x00_fdmi_rhba()
2207 ql_dbg(ql_dbg_disc, vha, 0x20e3, in qla2x00_fdmi_rhba()
2212 rval = qla2x00_chk_ms_status(vha, ms_pkt, ct_rsp, "RHBA"); in qla2x00_fdmi_rhba()
2217 ql_dbg(ql_dbg_disc, vha, 0x20e4, in qla2x00_fdmi_rhba()
2222 ql_dbg(ql_dbg_disc, vha, 0x20e5, in qla2x00_fdmi_rhba()
2229 ql_dbg(ql_dbg_disc, vha, 0x20e6, "RHBA exiting normally.\n"); in qla2x00_fdmi_rhba()
2235 qla2x00_fdmi_dhba(scsi_qla_host_t *vha) in qla2x00_fdmi_dhba() argument
2238 struct qla_hw_data *ha = vha->hw; in qla2x00_fdmi_dhba()
2244 ms_pkt = ha->isp_ops->prep_ms_fdmi_iocb(vha, DHBA_REQ_SIZE, in qla2x00_fdmi_dhba()
2250 memcpy(ct_req->req.dhba.port_name, vha->port_name, WWN_SIZE); in qla2x00_fdmi_dhba()
2251 ql_dbg(ql_dbg_disc, vha, 0x2036, in qla2x00_fdmi_dhba()
2254 rval = qla2x00_issue_iocb(vha, ha->ms_iocb, ha->ms_iocb_dma, in qla2x00_fdmi_dhba()
2258 ql_dbg(ql_dbg_disc, vha, 0x2037, in qla2x00_fdmi_dhba()
2260 } else if (qla2x00_chk_ms_status(vha, ms_pkt, ct_rsp, "DHBA") != in qla2x00_fdmi_dhba()
2264 ql_dbg(ql_dbg_disc, vha, 0x2038, in qla2x00_fdmi_dhba()
2279 qla2x00_fdmi_rprt(scsi_qla_host_t *vha, int callopt) in qla2x00_fdmi_rprt() argument
2281 struct scsi_qla_host *base_vha = pci_get_drvdata(vha->hw->pdev); in qla2x00_fdmi_rprt()
2282 struct qla_hw_data *ha = vha->hw; in qla2x00_fdmi_rprt()
2295 ql_dbg(ql_dbg_disc, vha, 0x20e8, in qla2x00_fdmi_rprt()
2298 ms_pkt = ha->isp_ops->prep_ms_fdmi_iocb(vha, 0, size); in qla2x00_fdmi_rprt()
2306 memcpy(ct_req->req.rprt.port_name, vha->port_name, in qla2x00_fdmi_rprt()
2314 size += qla2x00_port_attributes(vha, entries, callopt); in qla2x00_fdmi_rprt()
2316 qla2x00_update_ms_fdmi_iocb(vha, size + 16); in qla2x00_fdmi_rprt()
2317 ql_dbg(ql_dbg_disc, vha, 0x20e9, in qla2x00_fdmi_rprt()
2321 ql_dump_buffer(ql_dbg_disc + ql_dbg_buffer, vha, 0x20ea, in qla2x00_fdmi_rprt()
2324 rval = qla2x00_issue_iocb(vha, ha->ms_iocb, ha->ms_iocb_dma, in qla2x00_fdmi_rprt()
2327 ql_dbg(ql_dbg_disc, vha, 0x20eb, in qla2x00_fdmi_rprt()
2331 rval = qla2x00_chk_ms_status(vha, ms_pkt, ct_rsp, "RPRT"); in qla2x00_fdmi_rprt()
2336 ql_dbg(ql_dbg_disc, vha, 0x20ec, in qla2x00_fdmi_rprt()
2341 ql_dbg(ql_dbg_disc, vha, 0x20ed, in qla2x00_fdmi_rprt()
2347 ql_dbg(ql_dbg_disc, vha, 0x20ee, "RPRT exiting normally.\n"); in qla2x00_fdmi_rprt()
2359 qla2x00_fdmi_rpa(scsi_qla_host_t *vha, uint callopt) in qla2x00_fdmi_rpa() argument
2361 struct qla_hw_data *ha = vha->hw; in qla2x00_fdmi_rpa()
2379 ql_dbg(ql_dbg_disc, vha, 0x20f0, in qla2x00_fdmi_rpa()
2383 ms_pkt = ha->isp_ops->prep_ms_fdmi_iocb(vha, 0, size); in qla2x00_fdmi_rpa()
2390 memcpy(ct_req->req.rpa.port_name, vha->port_name, in qla2x00_fdmi_rpa()
2401 size += qla2x00_port_attributes(vha, entries, callopt); in qla2x00_fdmi_rpa()
2404 qla2x00_update_ms_fdmi_iocb(vha, size + 16); in qla2x00_fdmi_rpa()
2406 ql_dbg(ql_dbg_disc, vha, 0x20f1, in qla2x00_fdmi_rpa()
2409 ql_dump_buffer(ql_dbg_disc + ql_dbg_buffer, vha, 0x20f2, in qla2x00_fdmi_rpa()
2413 rval = qla2x00_issue_iocb(vha, ha->ms_iocb, ha->ms_iocb_dma, in qla2x00_fdmi_rpa()
2416 ql_dbg(ql_dbg_disc, vha, 0x20f3, in qla2x00_fdmi_rpa()
2421 rval = qla2x00_chk_ms_status(vha, ms_pkt, ct_rsp, "RPA"); in qla2x00_fdmi_rpa()
2426 ql_dbg(ql_dbg_disc, vha, 0x20f4, in qla2x00_fdmi_rpa()
2431 ql_dbg(ql_dbg_disc, vha, 0x20f5, in qla2x00_fdmi_rpa()
2438 ql_dbg(ql_dbg_disc, vha, 0x20f6, "RPA exiting normally.\n"); in qla2x00_fdmi_rpa()
2449 qla2x00_fdmi_register(scsi_qla_host_t *vha) in qla2x00_fdmi_register() argument
2452 struct qla_hw_data *ha = vha->hw; in qla2x00_fdmi_register()
2458 rval = qla2x00_mgmt_svr_login(vha); in qla2x00_fdmi_register()
2463 if (vha->vp_idx) { in qla2x00_fdmi_register()
2465 rval = qla2x00_fdmi_rprt(vha, CALLOPT_FDMI2_SMARTSAN); in qla2x00_fdmi_register()
2467 rval = qla2x00_fdmi_rprt(vha, CALLOPT_FDMI2); in qla2x00_fdmi_register()
2469 rval = qla2x00_fdmi_rprt(vha, CALLOPT_FDMI1); in qla2x00_fdmi_register()
2475 rval = qla2x00_fdmi_rhba(vha, CALLOPT_FDMI2); in qla2x00_fdmi_register()
2480 rval = qla2x00_fdmi_dhba(vha); in qla2x00_fdmi_register()
2484 rval = qla2x00_fdmi_rhba(vha, CALLOPT_FDMI2); in qla2x00_fdmi_register()
2490 rval = qla2x00_fdmi_rpa(vha, CALLOPT_FDMI2_SMARTSAN); in qla2x00_fdmi_register()
2492 rval = qla2x00_fdmi_rpa(vha, CALLOPT_FDMI2); in qla2x00_fdmi_register()
2499 rval = qla2x00_fdmi_rhba(vha, CALLOPT_FDMI1); in qla2x00_fdmi_register()
2504 rval = qla2x00_fdmi_dhba(vha); in qla2x00_fdmi_register()
2508 rval = qla2x00_fdmi_rhba(vha, CALLOPT_FDMI1); in qla2x00_fdmi_register()
2513 rval = qla2x00_fdmi_rpa(vha, CALLOPT_FDMI1); in qla2x00_fdmi_register()
2526 qla2x00_gfpn_id(scsi_qla_host_t *vha, sw_info_t *list) in qla2x00_gfpn_id() argument
2530 struct qla_hw_data *ha = vha->hw; in qla2x00_gfpn_id()
2549 ms_pkt = ha->isp_ops->prep_ms_iocb(vha, &arg); in qla2x00_gfpn_id()
2560 rval = qla2x00_issue_iocb(vha, ha->ms_iocb, ha->ms_iocb_dma, in qla2x00_gfpn_id()
2564 ql_dbg(ql_dbg_disc, vha, 0x2023, in qla2x00_gfpn_id()
2567 } else if (qla2x00_chk_ms_status(vha, ms_pkt, ct_rsp, in qla2x00_gfpn_id()
2634 qla2x00_gpsc(scsi_qla_host_t *vha, sw_info_t *list) in qla2x00_gpsc() argument
2638 struct qla_hw_data *ha = vha->hw; in qla2x00_gpsc()
2649 rval = qla2x00_mgmt_svr_login(vha); in qla2x00_gpsc()
2658 arg.nport_handle = vha->mgmt_svr_loop_id; in qla2x00_gpsc()
2663 ms_pkt = qla24xx_prep_ms_iocb(vha, &arg); in qla2x00_gpsc()
2675 rval = qla2x00_issue_iocb(vha, ha->ms_iocb, ha->ms_iocb_dma, in qla2x00_gpsc()
2679 ql_dbg(ql_dbg_disc, vha, 0x2059, in qla2x00_gpsc()
2681 } else if ((rval = qla2x00_chk_ms_status(vha, ms_pkt, ct_rsp, in qla2x00_gpsc()
2689 ql_dbg(ql_dbg_disc, vha, 0x205a, in qla2x00_gpsc()
2700 ql_dbg(ql_dbg_disc, vha, 0x205b, in qla2x00_gpsc()
2724 qla2x00_gff_id(scsi_qla_host_t *vha, sw_info_t *list) in qla2x00_gff_id() argument
2732 struct qla_hw_data *ha = vha->hw; in qla2x00_gff_id()
2753 ms_pkt = ha->isp_ops->prep_ms_iocb(vha, &arg); in qla2x00_gff_id()
2764 rval = qla2x00_issue_iocb(vha, ha->ms_iocb, ha->ms_iocb_dma, in qla2x00_gff_id()
2768 ql_dbg(ql_dbg_disc, vha, 0x205c, in qla2x00_gff_id()
2770 } else if (qla2x00_chk_ms_status(vha, ms_pkt, ct_rsp, in qla2x00_gff_id()
2772 ql_dbg(ql_dbg_disc, vha, 0x205d, in qla2x00_gff_id()
2800 int qla24xx_post_gpsc_work(struct scsi_qla_host *vha, fc_port_t *fcport) in qla24xx_post_gpsc_work() argument
2804 e = qla2x00_alloc_work(vha, QLA_EVT_GPSC); in qla24xx_post_gpsc_work()
2809 return qla2x00_post_work(vha, e); in qla24xx_post_gpsc_work()
2812 void qla24xx_handle_gpsc_event(scsi_qla_host_t *vha, struct event_arg *ea) in qla24xx_handle_gpsc_event() argument
2816 ql_dbg(ql_dbg_disc, vha, 0x20d8, in qla24xx_handle_gpsc_event()
2827 ql_dbg(ql_dbg_disc, vha, 0x20d3, in qla24xx_handle_gpsc_event()
2835 qla_post_iidma_work(vha, fcport); in qla24xx_handle_gpsc_event()
2840 struct scsi_qla_host *vha = sp->vha; in qla24xx_async_gpsc_sp_done() local
2841 struct qla_hw_data *ha = vha->hw; in qla24xx_async_gpsc_sp_done()
2848 ql_dbg(ql_dbg_disc, vha, 0x2053, in qla24xx_async_gpsc_sp_done()
2865 ql_dbg(ql_dbg_disc, vha, 0x2019, in qla24xx_async_gpsc_sp_done()
2874 ql_dbg(ql_dbg_disc, vha, 0x2054, in qla24xx_async_gpsc_sp_done()
2884 qla24xx_handle_gpsc_event(vha, &ea); 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()
2908 qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2); in qla24xx_async_gpsc()
2924 sp->u.iocb_cmd.u.ctarg.nport_handle = vha->mgmt_svr_loop_id; in qla24xx_async_gpsc()
2929 ql_dbg(ql_dbg_disc, vha, 0x205e, in qla24xx_async_gpsc()
2946 int qla24xx_post_gpnid_work(struct scsi_qla_host *vha, port_id_t *id) in qla24xx_post_gpnid_work() argument
2950 if (test_bit(UNLOADING, &vha->dpc_flags) || in qla24xx_post_gpnid_work()
2951 (vha->vp_idx && test_bit(VPORT_DELETE, &vha->dpc_flags))) in qla24xx_post_gpnid_work()
2954 e = qla2x00_alloc_work(vha, QLA_EVT_GPNID); in qla24xx_post_gpnid_work()
2959 return qla2x00_post_work(vha, e); in qla24xx_post_gpnid_work()
2962 void qla24xx_sp_unmap(scsi_qla_host_t *vha, srb_t *sp) in qla24xx_sp_unmap() argument
2968 qla2x00_els_dcmd2_free(vha, &c->u.els_plogi); in qla24xx_sp_unmap()
2973 dma_free_coherent(&vha->hw->pdev->dev, in qla24xx_sp_unmap()
2981 dma_free_coherent(&vha->hw->pdev->dev, in qla24xx_sp_unmap()
2993 void qla24xx_handle_gpnid_event(scsi_qla_host_t *vha, struct event_arg *ea) in qla24xx_handle_gpnid_event() argument
2998 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_handle_gpnid_event()
3004 list_for_each_entry_safe(fcport, t, &vha->vp_fcports, list) { in qla24xx_handle_gpnid_event()
3012 fcport = qla2x00_find_fcport_by_wwpn(vha, ea->port_name, 1); in qla24xx_handle_gpnid_event()
3014 list_for_each_entry_safe(conflict, t, &vha->vp_fcports, in qla24xx_handle_gpnid_event()
3035 vha->hw->login_retry_count; in qla24xx_handle_gpnid_event()
3036 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_handle_gpnid_event()
3044 ql_dbg(ql_dbg_disc, vha, 0x210d, in qla24xx_handle_gpnid_event()
3048 qla2x00_post_async_adisc_work(vha, fcport, in qla24xx_handle_gpnid_event()
3052 ql_dbg(ql_dbg_disc, vha, 0x210d, in qla24xx_handle_gpnid_event()
3056 qla24xx_fcport_handle_login(vha, fcport); in qla24xx_handle_gpnid_event()
3066 list_for_each_entry_safe(conflict, t, &vha->vp_fcports, in qla24xx_handle_gpnid_event()
3073 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_handle_gpnid_event()
3085 ql_dbg(ql_dbg_disc, vha, 0x2065, in qla24xx_handle_gpnid_event()
3088 qla24xx_post_newsess_work(vha, &ea->id, in qla24xx_handle_gpnid_event()
3096 struct scsi_qla_host *vha = sp->vha; in qla2x00_async_gpnid_sp_done() local
3106 ql_dbg(ql_dbg_disc, vha, 0x2066, in qla2x00_async_gpnid_sp_done()
3111 ql_dbg(ql_dbg_disc, vha, 0x2066, in qla2x00_async_gpnid_sp_done()
3122 spin_lock_irqsave(&vha->hw->tgt.sess_lock, flags); in qla2x00_async_gpnid_sp_done()
3124 spin_unlock_irqrestore(&vha->hw->tgt.sess_lock, flags); in qla2x00_async_gpnid_sp_done()
3128 qla24xx_post_gpnid_work(sp->vha, &ea.id); in qla2x00_async_gpnid_sp_done()
3134 qla24xx_post_gpnid_work(sp->vha, &ea.id); in qla2x00_async_gpnid_sp_done()
3139 qla24xx_handle_gpnid_event(vha, &ea); in qla2x00_async_gpnid_sp_done()
3141 e = qla2x00_alloc_work(vha, QLA_EVT_UNMAP); in qla2x00_async_gpnid_sp_done()
3144 dma_free_coherent(&vha->hw->pdev->dev, in qla2x00_async_gpnid_sp_done()
3150 dma_free_coherent(&vha->hw->pdev->dev, in qla2x00_async_gpnid_sp_done()
3161 qla2x00_post_work(vha, e); in qla2x00_async_gpnid_sp_done()
3165 int qla24xx_async_gpnid(scsi_qla_host_t *vha, port_id_t *id) in qla24xx_async_gpnid() argument
3173 if (!vha->flags.online) in qla24xx_async_gpnid()
3176 sp = qla2x00_get_sp(vha, NULL, GFP_KERNEL); in qla24xx_async_gpnid()
3184 qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2); in qla24xx_async_gpnid()
3186 spin_lock_irqsave(&vha->hw->tgt.sess_lock, flags); in qla24xx_async_gpnid()
3187 list_for_each_entry(tsp, &vha->gpnid_list, elem) { in qla24xx_async_gpnid()
3190 spin_unlock_irqrestore(&vha->hw->tgt.sess_lock, flags); in qla24xx_async_gpnid()
3195 list_add_tail(&sp->elem, &vha->gpnid_list); in qla24xx_async_gpnid()
3196 spin_unlock_irqrestore(&vha->hw->tgt.sess_lock, flags); in qla24xx_async_gpnid()
3198 sp->u.iocb_cmd.u.ctarg.req = dma_alloc_coherent(&vha->hw->pdev->dev, in qla24xx_async_gpnid()
3203 ql_log(ql_log_warn, vha, 0xd041, in qla24xx_async_gpnid()
3208 sp->u.iocb_cmd.u.ctarg.rsp = dma_alloc_coherent(&vha->hw->pdev->dev, in qla24xx_async_gpnid()
3213 ql_log(ql_log_warn, vha, 0xd042, in qla24xx_async_gpnid()
3235 ql_dbg(ql_dbg_disc, vha, 0x2067, in qla24xx_async_gpnid()
3246 spin_lock_irqsave(&vha->hw->vport_slock, flags); in qla24xx_async_gpnid()
3248 spin_unlock_irqrestore(&vha->hw->vport_slock, flags); in qla24xx_async_gpnid()
3251 dma_free_coherent(&vha->hw->pdev->dev, in qla24xx_async_gpnid()
3258 dma_free_coherent(&vha->hw->pdev->dev, in qla24xx_async_gpnid()
3270 void qla24xx_handle_gffid_event(scsi_qla_host_t *vha, struct event_arg *ea) in qla24xx_handle_gffid_event() argument
3274 qla24xx_post_gnl_work(vha, fcport); in qla24xx_handle_gffid_event()
3279 struct scsi_qla_host *vha = sp->vha; in qla24xx_async_gffid_sp_done() local
3286 ql_dbg(ql_dbg_disc, vha, 0x2133, in qla24xx_async_gffid_sp_done()
3319 qla24xx_handle_gffid_event(vha, &ea); 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()
3344 qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2); in qla24xx_async_gffid()
3364 ql_dbg(ql_dbg_disc, vha, 0x2132, in qla24xx_async_gffid()
3380 static int qla2x00_is_a_vp(scsi_qla_host_t *vha, u64 wwn) in qla2x00_is_a_vp() argument
3382 struct qla_hw_data *ha = vha->hw; in qla2x00_is_a_vp()
3404 void qla24xx_async_gnnft_done(scsi_qla_host_t *vha, srb_t *sp) in qla24xx_async_gnnft_done() argument
3414 ql_dbg(ql_dbg_disc + ql_dbg_verbose, vha, 0xffff, in qla24xx_async_gnnft_done()
3417 if (sp->gen1 != vha->hw->base_qpair->chip_reset) { in qla24xx_async_gnnft_done()
3418 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_async_gnnft_done()
3420 sp->name, sp->gen1, vha->hw->base_qpair->chip_reset); in qla24xx_async_gnnft_done()
3426 vha->scan.scan_retry++; in qla24xx_async_gnnft_done()
3427 if (vha->scan.scan_retry < MAX_SCAN_RETRIES) { in qla24xx_async_gnnft_done()
3428 set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); in qla24xx_async_gnnft_done()
3429 set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); in qla24xx_async_gnnft_done()
3432 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_async_gnnft_done()
3434 __func__, vha->scan.scan_retry); in qla24xx_async_gnnft_done()
3439 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla24xx_async_gnnft_done()
3447 vha->scan.scan_retry = 0; in qla24xx_async_gnnft_done()
3449 list_for_each_entry(fcport, &vha->vp_fcports, list) in qla24xx_async_gnnft_done()
3452 for (i = 0; i < vha->hw->max_fibre_devices; i++) { in qla24xx_async_gnnft_done()
3456 rp = &vha->scan.l[i]; in qla24xx_async_gnnft_done()
3464 for (k = i + 1; k < vha->hw->max_fibre_devices; k++) { in qla24xx_async_gnnft_done()
3465 trp = &vha->scan.l[k]; in qla24xx_async_gnnft_done()
3470 vha, 0xffff, in qla24xx_async_gnnft_done()
3477 if (!memcmp(rp->port_name, vha->port_name, WWN_SIZE)) in qla24xx_async_gnnft_done()
3485 if (qla2x00_is_a_vp(vha, wwn)) in qla24xx_async_gnnft_done()
3488 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla24xx_async_gnnft_done()
3512 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_async_gnnft_done()
3515 qla24xx_post_newsess_work(vha, &rp->id, rp->port_name, in qla24xx_async_gnnft_done()
3521 ql_log(ql_log_warn, vha, 0xffff, in qla24xx_async_gnnft_done()
3530 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla24xx_async_gnnft_done()
3549 if (((qla_dual_mode_enabled(vha) || in qla24xx_async_gnnft_done()
3550 qla_ini_mode_enabled(vha)) && in qla24xx_async_gnnft_done()
3557 ql_dbg(ql_dbg_disc, vha, 0x20f0, in qla24xx_async_gnnft_done()
3571 vha->hw->login_retry_count; in qla24xx_async_gnnft_done()
3572 ql_dbg(ql_dbg_disc, vha, 0x20a3, in qla24xx_async_gnnft_done()
3578 qla24xx_fcport_handle_login(vha, fcport); in qla24xx_async_gnnft_done()
3585 qla24xx_sp_unmap(vha, sp); in qla24xx_async_gnnft_done()
3586 spin_lock_irqsave(&vha->work_lock, flags); in qla24xx_async_gnnft_done()
3587 vha->scan.scan_flags &= ~SF_SCANNING; in qla24xx_async_gnnft_done()
3588 spin_unlock_irqrestore(&vha->work_lock, flags); in qla24xx_async_gnnft_done()
3591 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla24xx_async_gnnft_done()
3593 set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); in qla24xx_async_gnnft_done()
3594 set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); in qla24xx_async_gnnft_done()
3601 static int qla2x00_post_gnnft_gpnft_done_work(struct scsi_qla_host *vha, in qla2x00_post_gnnft_gpnft_done_work() argument
3609 e = qla2x00_alloc_work(vha, cmd); in qla2x00_post_gnnft_gpnft_done_work()
3615 return qla2x00_post_work(vha, e); in qla2x00_post_gnnft_gpnft_done_work()
3618 static int qla2x00_post_nvme_gpnft_work(struct scsi_qla_host *vha, in qla2x00_post_nvme_gpnft_work() argument
3626 e = qla2x00_alloc_work(vha, cmd); in qla2x00_post_nvme_gpnft_work()
3633 return qla2x00_post_work(vha, e); in qla2x00_post_nvme_gpnft_work()
3636 static void qla2x00_find_free_fcp_nvme_slot(struct scsi_qla_host *vha, in qla2x00_find_free_fcp_nvme_slot() argument
3639 struct qla_hw_data *ha = vha->hw; in qla2x00_find_free_fcp_nvme_slot()
3669 rp = &vha->scan.l[j]; in qla2x00_find_free_fcp_nvme_slot()
3676 rp = &vha->scan.l[k]; in qla2x00_find_free_fcp_nvme_slot()
3690 rp = &vha->scan.l[k]; in qla2x00_find_free_fcp_nvme_slot()
3705 rp = &vha->scan.l[k]; in qla2x00_find_free_fcp_nvme_slot()
3720 rp = &vha->scan.l[k]; in qla2x00_find_free_fcp_nvme_slot()
3734 struct scsi_qla_host *vha = sp->vha; in qla2x00_async_gpnft_gnnft_sp_done() local
3743 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla2x00_async_gpnft_gnnft_sp_done()
3759 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla2x00_async_gpnft_gnnft_sp_done()
3762 qla2x00_mark_all_devices_lost(vha); in qla2x00_async_gpnft_gnnft_sp_done()
3770 rc = qla2x00_post_gnnft_gpnft_done_work(vha, sp, in qla2x00_async_gpnft_gnnft_sp_done()
3774 qla24xx_sp_unmap(vha, sp); in qla2x00_async_gpnft_gnnft_sp_done()
3776 spin_lock_irqsave(&vha->work_lock, flags); in qla2x00_async_gpnft_gnnft_sp_done()
3777 vha->scan.scan_flags &= ~SF_SCANNING; in qla2x00_async_gpnft_gnnft_sp_done()
3778 vha->scan.scan_retry++; in qla2x00_async_gpnft_gnnft_sp_done()
3779 spin_unlock_irqrestore(&vha->work_lock, flags); in qla2x00_async_gpnft_gnnft_sp_done()
3781 if (vha->scan.scan_retry < MAX_SCAN_RETRIES) { in qla2x00_async_gpnft_gnnft_sp_done()
3782 set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); in qla2x00_async_gpnft_gnnft_sp_done()
3783 set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); in qla2x00_async_gpnft_gnnft_sp_done()
3784 qla2xxx_wake_dpc(vha); in qla2x00_async_gpnft_gnnft_sp_done()
3786 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla2x00_async_gpnft_gnnft_sp_done()
3794 qla2x00_find_free_fcp_nvme_slot(vha, sp); in qla2x00_async_gpnft_gnnft_sp_done()
3796 if ((fc4_type == FC4_TYPE_FCP_SCSI) && vha->flags.nvme_enabled && in qla2x00_async_gpnft_gnnft_sp_done()
3798 spin_lock_irqsave(&vha->work_lock, flags); in qla2x00_async_gpnft_gnnft_sp_done()
3799 vha->scan.scan_flags &= ~SF_SCANNING; in qla2x00_async_gpnft_gnnft_sp_done()
3800 spin_unlock_irqrestore(&vha->work_lock, flags); in qla2x00_async_gpnft_gnnft_sp_done()
3803 rc = qla2x00_post_nvme_gpnft_work(vha, sp, QLA_EVT_GPNFT); in qla2x00_async_gpnft_gnnft_sp_done()
3805 qla24xx_sp_unmap(vha, sp); in qla2x00_async_gpnft_gnnft_sp_done()
3806 set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); in qla2x00_async_gpnft_gnnft_sp_done()
3807 set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); in qla2x00_async_gpnft_gnnft_sp_done()
3813 rc = qla2x00_post_gnnft_gpnft_done_work(vha, sp, in qla2x00_async_gpnft_gnnft_sp_done()
3816 rc = qla2x00_post_gnnft_gpnft_done_work(vha, sp, in qla2x00_async_gpnft_gnnft_sp_done()
3821 qla24xx_sp_unmap(vha, sp); in qla2x00_async_gpnft_gnnft_sp_done()
3822 set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); in qla2x00_async_gpnft_gnnft_sp_done()
3823 set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); in qla2x00_async_gpnft_gnnft_sp_done()
3834 static int qla24xx_async_gnnft(scsi_qla_host_t *vha, struct srb *sp, in qla24xx_async_gnnft() argument
3842 if (!vha->flags.online) { in qla24xx_async_gnnft()
3843 spin_lock_irqsave(&vha->work_lock, flags); in qla24xx_async_gnnft()
3844 vha->scan.scan_flags &= ~SF_SCANNING; in qla24xx_async_gnnft()
3845 spin_unlock_irqrestore(&vha->work_lock, flags); in qla24xx_async_gnnft()
3850 ql_log(ql_log_warn, vha, 0xffff, in qla24xx_async_gnnft()
3854 spin_lock_irqsave(&vha->work_lock, flags); in qla24xx_async_gnnft()
3855 vha->scan.scan_flags &= ~SF_SCANNING; in qla24xx_async_gnnft()
3856 spin_unlock_irqrestore(&vha->work_lock, flags); in qla24xx_async_gnnft()
3858 set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); in qla24xx_async_gnnft()
3859 set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); in qla24xx_async_gnnft()
3863 ql_dbg(ql_dbg_disc, vha, 0xfffff, in qla24xx_async_gnnft()
3870 sp->gen1 = vha->hw->base_qpair->chip_reset; in qla24xx_async_gnnft()
3874 qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2); in qla24xx_async_gnnft()
3892 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_async_gnnft()
3905 dma_free_coherent(&vha->hw->pdev->dev, in qla24xx_async_gnnft()
3912 dma_free_coherent(&vha->hw->pdev->dev, in qla24xx_async_gnnft()
3921 spin_lock_irqsave(&vha->work_lock, flags); in qla24xx_async_gnnft()
3922 vha->scan.scan_flags &= ~SF_SCANNING; in qla24xx_async_gnnft()
3923 if (vha->scan.scan_flags == 0) { in qla24xx_async_gnnft()
3924 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_async_gnnft()
3926 vha->scan.scan_flags |= SF_QUEUED; in qla24xx_async_gnnft()
3927 schedule_delayed_work(&vha->scan.scan_work, 5); in qla24xx_async_gnnft()
3929 spin_unlock_irqrestore(&vha->work_lock, flags); in qla24xx_async_gnnft()
3935 void qla24xx_async_gpnft_done(scsi_qla_host_t *vha, srb_t *sp) in qla24xx_async_gpnft_done() argument
3937 ql_dbg(ql_dbg_disc + ql_dbg_verbose, vha, 0xffff, in qla24xx_async_gpnft_done()
3939 qla24xx_async_gnnft(vha, sp, sp->gen2); in qla24xx_async_gpnft_done()
3943 int qla24xx_async_gpnft(scsi_qla_host_t *vha, u8 fc4_type, srb_t *sp) in qla24xx_async_gpnft() argument
3951 ql_dbg(ql_dbg_disc + ql_dbg_verbose, vha, 0xffff, in qla24xx_async_gpnft()
3954 if (!vha->flags.online) in qla24xx_async_gpnft()
3957 spin_lock_irqsave(&vha->work_lock, flags); in qla24xx_async_gpnft()
3958 if (vha->scan.scan_flags & SF_SCANNING) { in qla24xx_async_gpnft()
3959 spin_unlock_irqrestore(&vha->work_lock, flags); in qla24xx_async_gpnft()
3960 ql_dbg(ql_dbg_disc + ql_dbg_verbose, vha, 0xffff, in qla24xx_async_gpnft()
3964 vha->scan.scan_flags |= SF_SCANNING; in qla24xx_async_gpnft()
3965 spin_unlock_irqrestore(&vha->work_lock, flags); in qla24xx_async_gpnft()
3968 ql_dbg(ql_dbg_disc + ql_dbg_verbose, vha, 0xffff, in qla24xx_async_gpnft()
3974 sp = qla2x00_get_sp(vha, NULL, GFP_KERNEL); in qla24xx_async_gpnft()
3976 spin_lock_irqsave(&vha->work_lock, flags); in qla24xx_async_gpnft()
3977 vha->scan.scan_flags &= ~SF_SCANNING; in qla24xx_async_gpnft()
3978 spin_unlock_irqrestore(&vha->work_lock, flags); in qla24xx_async_gpnft()
3982 sp->u.iocb_cmd.u.ctarg.req = dma_alloc_coherent(&vha->hw->pdev->dev, in qla24xx_async_gpnft()
3988 ql_log(ql_log_warn, vha, 0xffff, in qla24xx_async_gpnft()
3990 spin_lock_irqsave(&vha->work_lock, flags); in qla24xx_async_gpnft()
3991 vha->scan.scan_flags &= ~SF_SCANNING; in qla24xx_async_gpnft()
3992 spin_unlock_irqrestore(&vha->work_lock, flags); in qla24xx_async_gpnft()
3999 ((vha->hw->max_fibre_devices - 1) * in qla24xx_async_gpnft()
4002 sp->u.iocb_cmd.u.ctarg.rsp = dma_alloc_coherent(&vha->hw->pdev->dev, in qla24xx_async_gpnft()
4008 ql_log(ql_log_warn, vha, 0xffff, in qla24xx_async_gpnft()
4010 spin_lock_irqsave(&vha->work_lock, flags); in qla24xx_async_gpnft()
4011 vha->scan.scan_flags &= ~SF_SCANNING; in qla24xx_async_gpnft()
4012 spin_unlock_irqrestore(&vha->work_lock, flags); in qla24xx_async_gpnft()
4013 dma_free_coherent(&vha->hw->pdev->dev, in qla24xx_async_gpnft()
4023 ql_dbg(ql_dbg_disc + ql_dbg_verbose, vha, 0xffff, in qla24xx_async_gpnft()
4024 "%s scan list size %d\n", __func__, vha->scan.size); in qla24xx_async_gpnft()
4026 memset(vha->scan.l, 0, vha->scan.size); in qla24xx_async_gpnft()
4028 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_async_gpnft()
4035 sp->gen1 = vha->hw->base_qpair->chip_reset; in qla24xx_async_gpnft()
4039 qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2); in qla24xx_async_gpnft()
4056 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_async_gpnft()
4069 dma_free_coherent(&vha->hw->pdev->dev, in qla24xx_async_gpnft()
4076 dma_free_coherent(&vha->hw->pdev->dev, in qla24xx_async_gpnft()
4085 spin_lock_irqsave(&vha->work_lock, flags); in qla24xx_async_gpnft()
4086 vha->scan.scan_flags &= ~SF_SCANNING; in qla24xx_async_gpnft()
4087 if (vha->scan.scan_flags == 0) { in qla24xx_async_gpnft()
4088 ql_dbg(ql_dbg_disc + ql_dbg_verbose, vha, 0xffff, in qla24xx_async_gpnft()
4090 vha->scan.scan_flags |= SF_QUEUED; in qla24xx_async_gpnft()
4091 schedule_delayed_work(&vha->scan.scan_work, 5); in qla24xx_async_gpnft()
4093 spin_unlock_irqrestore(&vha->work_lock, flags); in qla24xx_async_gpnft()
4103 struct scsi_qla_host *vha = container_of(s, struct scsi_qla_host, in qla_scan_work_fn() local
4107 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla_scan_work_fn()
4109 set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); in qla_scan_work_fn()
4110 set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); in qla_scan_work_fn()
4111 qla2xxx_wake_dpc(vha); in qla_scan_work_fn()
4112 spin_lock_irqsave(&vha->work_lock, flags); in qla_scan_work_fn()
4113 vha->scan.scan_flags &= ~SF_QUEUED; in qla_scan_work_fn()
4114 spin_unlock_irqrestore(&vha->work_lock, flags); in qla_scan_work_fn()
4118 void qla24xx_handle_gnnid_event(scsi_qla_host_t *vha, struct event_arg *ea) in qla24xx_handle_gnnid_event() argument
4120 qla24xx_post_gnl_work(vha, ea->fcport); in qla24xx_handle_gnnid_event()
4125 struct scsi_qla_host *vha = sp->vha; in qla2x00_async_gnnid_sp_done() local
4141 ql_dbg(ql_dbg_disc, vha, 0x204f, in qla2x00_async_gnnid_sp_done()
4145 qla24xx_handle_gnnid_event(vha, &ea); 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()
4160 sp = qla2x00_get_sp(vha, fcport, GFP_ATOMIC); in qla24xx_async_gnnid()
4171 qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2); in qla24xx_async_gnnid()
4192 ql_dbg(ql_dbg_disc, vha, 0xffff, 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
4214 ls = atomic_read(&vha->loop_state); in qla24xx_post_gnnid_work()
4216 test_bit(UNLOADING, &vha->dpc_flags)) in qla24xx_post_gnnid_work()
4219 e = qla2x00_alloc_work(vha, QLA_EVT_GNNID); in qla24xx_post_gnnid_work()
4224 return qla2x00_post_work(vha, e); in qla24xx_post_gnnid_work()
4228 void qla24xx_handle_gfpnid_event(scsi_qla_host_t *vha, struct event_arg *ea) in qla24xx_handle_gfpnid_event() argument
4232 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_handle_gfpnid_event()
4236 fcport->rscn_gen, ea->sp->gen1, vha->fcport_count); in qla24xx_handle_gfpnid_event()
4243 ql_dbg(ql_dbg_disc, vha, 0x20d3, in qla24xx_handle_gfpnid_event()
4251 qla24xx_post_gpsc_work(vha, fcport); in qla24xx_handle_gfpnid_event()
4256 struct scsi_qla_host *vha = sp->vha; in qla2x00_async_gfpnid_sp_done() local
4271 ql_dbg(ql_dbg_disc, vha, 0x204f, in qla2x00_async_gfpnid_sp_done()
4275 qla24xx_handle_gfpnid_event(vha, &ea); 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()
4299 qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2); in qla24xx_async_gfpnid()
4320 ql_dbg(ql_dbg_disc, vha, 0xffff, 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
4342 ls = atomic_read(&vha->loop_state); in qla24xx_post_gfpnid_work()
4344 test_bit(UNLOADING, &vha->dpc_flags)) in qla24xx_post_gfpnid_work()
4347 e = qla2x00_alloc_work(vha, QLA_EVT_GFPNID); in qla24xx_post_gfpnid_work()
4352 return qla2x00_post_work(vha, e); in qla24xx_post_gfpnid_work()