• Home
  • Raw
  • Download

Lines Matching refs:vha

25 static void qla27xx_process_purex_fpin(struct scsi_qla_host *vha,
27 static struct purex_item *qla24xx_alloc_purex_item(scsi_qla_host_t *vha,
29 static struct purex_item *qla24xx_copy_std_pkt(struct scsi_qla_host *vha,
31 static struct purex_item *qla27xx_copy_fpin_pkt(struct scsi_qla_host *vha,
35 qla27xx_process_purex_fpin(struct scsi_qla_host *vha, struct purex_item *item) in qla27xx_process_purex_fpin() argument
40 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x508d, in qla27xx_process_purex_fpin()
43 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x508e, in qla27xx_process_purex_fpin()
45 ql_dump_buffer(ql_dbg_init + ql_dbg_verbose, vha, 0x508f, in qla27xx_process_purex_fpin()
48 fc_host_fpin_rcv(vha->host, pkt_size, (char *)pkt); in qla27xx_process_purex_fpin()
60 qla24xx_process_abts(struct scsi_qla_host *vha, struct purex_item *pkt) in qla24xx_process_abts() argument
64 struct qla_hw_data *ha = vha->hw; in qla24xx_process_abts()
71 ql_dbg(ql_dbg_init, vha, 0x0286, "%s: entered.\n", __func__); in qla24xx_process_abts()
73 ql_log(ql_log_warn, vha, 0x0287, in qla24xx_process_abts()
77 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x0287, in qla24xx_process_abts()
79 ql_dump_buffer(ql_dbg_init + ql_dbg_verbose, vha, 0x0287, in qla24xx_process_abts()
85 ql_log(ql_log_warn, vha, 0x0287, in qla24xx_process_abts()
96 ql_dbg(ql_dbg_init, vha, 0x0283, in qla24xx_process_abts()
99 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x0283, in qla24xx_process_abts()
101 ql_dump_buffer(ql_dbg_init + ql_dbg_verbose, vha, 0x0283, in qla24xx_process_abts()
103 rval = qla2x00_issue_iocb(vha, rsp_els, dma, 0); in qla24xx_process_abts()
105 ql_log(ql_log_warn, vha, 0x0288, in qla24xx_process_abts()
108 ql_log(ql_log_warn, vha, 0x0289, in qla24xx_process_abts()
113 ql_dbg(ql_dbg_init, vha, 0x028a, in qla24xx_process_abts()
147 ql_dbg(ql_dbg_init, vha, 0x028b, in qla24xx_process_abts()
150 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x028b, in qla24xx_process_abts()
152 ql_dump_buffer(ql_dbg_init + ql_dbg_verbose, vha, 0x028b, in qla24xx_process_abts()
154 rval = qla2x00_issue_iocb(vha, abts_rsp, dma, 0); in qla24xx_process_abts()
156 ql_log(ql_log_warn, vha, 0x028c, in qla24xx_process_abts()
159 ql_log(ql_log_warn, vha, 0x028d, in qla24xx_process_abts()
165 ql_dbg(ql_dbg_init, vha, 0x028ea, in qla24xx_process_abts()
183 void __qla_consume_iocb(struct scsi_qla_host *vha, in __qla_consume_iocb() argument
220 int __qla_copy_purex_to_buffer(struct scsi_qla_host *vha, in __qla_copy_purex_to_buffer() argument
242 ql_dbg(ql_dbg_async, vha, 0x5084, in __qla_copy_purex_to_buffer()
245 __qla_consume_iocb(vha, pkt, rsp); in __qla_copy_purex_to_buffer()
268 ql_log(ql_log_warn, vha, 0x507a, in __qla_copy_purex_to_buffer()
290 ql_log(ql_log_warn, vha, 0x5044, in __qla_copy_purex_to_buffer()
303 ql_log(ql_log_fatal, vha, 0x508b, in __qla_copy_purex_to_buffer()
327 scsi_qla_host_t *vha; in qla2100_intr_handler() local
349 vha = pci_get_drvdata(ha->pdev); in qla2100_intr_handler()
352 if (qla2x00_check_reg16_for_disconnect(vha, hccr)) in qla2100_intr_handler()
366 ha->isp_ops->fw_dump(vha); in qla2100_intr_handler()
367 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla2100_intr_handler()
379 qla2x00_mbx_completion(vha, mb[0]); in qla2100_intr_handler()
385 qla2x00_async_event(vha, rsp, mb); in qla2100_intr_handler()
388 ql_dbg(ql_dbg_async, vha, 0x5025, in qla2100_intr_handler()
409 qla2x00_check_reg32_for_disconnect(scsi_qla_host_t *vha, uint32_t reg) in qla2x00_check_reg32_for_disconnect() argument
412 if (reg == 0xffffffff && !pci_channel_offline(vha->hw->pdev)) { in qla2x00_check_reg32_for_disconnect()
413 if (!test_and_set_bit(PFLG_DISCONNECTED, &vha->pci_flags) && in qla2x00_check_reg32_for_disconnect()
414 !test_bit(PFLG_DRIVER_REMOVING, &vha->pci_flags) && in qla2x00_check_reg32_for_disconnect()
415 !test_bit(PFLG_DRIVER_PROBING, &vha->pci_flags)) { in qla2x00_check_reg32_for_disconnect()
416 qla_schedule_eeh_work(vha); in qla2x00_check_reg32_for_disconnect()
424 qla2x00_check_reg16_for_disconnect(scsi_qla_host_t *vha, uint16_t reg) in qla2x00_check_reg16_for_disconnect() argument
426 return qla2x00_check_reg32_for_disconnect(vha, 0xffff0000 | reg); in qla2x00_check_reg16_for_disconnect()
441 scsi_qla_host_t *vha; in qla2300_intr_handler() local
464 vha = pci_get_drvdata(ha->pdev); in qla2300_intr_handler()
467 if (qla2x00_check_reg32_for_disconnect(vha, stat)) in qla2300_intr_handler()
476 ql_log(ql_log_warn, vha, 0x5026, in qla2300_intr_handler()
480 ql_log(ql_log_warn, vha, 0x5027, in qla2300_intr_handler()
492 ha->isp_ops->fw_dump(vha); in qla2300_intr_handler()
493 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla2300_intr_handler()
503 qla2x00_mbx_completion(vha, MSW(stat)); in qla2300_intr_handler()
514 qla2x00_async_event(vha, rsp, mb); in qla2300_intr_handler()
522 qla2x00_async_event(vha, rsp, mb); in qla2300_intr_handler()
528 qla2x00_async_event(vha, rsp, mb); in qla2300_intr_handler()
531 ql_dbg(ql_dbg_async, vha, 0x5028, in qla2300_intr_handler()
550 qla2x00_mbx_completion(scsi_qla_host_t *vha, uint16_t mb0) in qla2x00_mbx_completion() argument
555 struct qla_hw_data *ha = vha->hw; in qla2x00_mbx_completion()
562 ql_dbg(ql_dbg_async, vha, 0x5001, "MBX pointer ERROR.\n"); in qla2x00_mbx_completion()
586 qla81xx_idc_event(scsi_qla_host_t *vha, uint16_t aen, uint16_t descr) in qla81xx_idc_event() argument
591 struct device_reg_24xx __iomem *reg24 = &vha->hw->iobase->isp24; in qla81xx_idc_event()
592 struct device_reg_82xx __iomem *reg82 = &vha->hw->iobase->isp82; in qla81xx_idc_event()
597 if (IS_QLA81XX(vha->hw) || IS_QLA83XX(vha->hw)) in qla81xx_idc_event()
599 else if (IS_QLA8044(vha->hw)) in qla81xx_idc_event()
607 ql_dbg(ql_dbg_async, vha, 0x5021, in qla81xx_idc_event()
616 vha->hw->flags.idc_compl_status = 1; in qla81xx_idc_event()
617 if (vha->hw->notify_dcbx_comp && !vha->vp_idx) in qla81xx_idc_event()
618 complete(&vha->hw->dcbx_comp); in qla81xx_idc_event()
625 ql_dbg(ql_dbg_async, vha, 0x5022, in qla81xx_idc_event()
627 vha->host_no, event[aen & 0xff], timeout); in qla81xx_idc_event()
631 rval = qla2x00_post_idc_ack_work(vha, mb); in qla81xx_idc_event()
633 ql_log(ql_log_warn, vha, 0x5023, in qla81xx_idc_event()
637 vha->hw->idc_extend_tmo = descr; in qla81xx_idc_event()
638 ql_dbg(ql_dbg_async, vha, 0x5087, in qla81xx_idc_event()
641 vha->host_no, event[aen & 0xff], vha->hw->idc_extend_tmo); in qla81xx_idc_event()
666 qla83xx_handle_8200_aen(scsi_qla_host_t *vha, uint16_t *mb) in qla83xx_handle_8200_aen() argument
668 struct qla_hw_data *ha = vha->hw; in qla83xx_handle_8200_aen()
681 ql_dbg(ql_dbg_async, vha, 0x506b, "AEN Code: mb[0] = 0x%x AEN reason: " in qla83xx_handle_8200_aen()
684 ql_dbg(ql_dbg_async, vha, 0x506c, "PH-status2: mb[3] = 0x%x " in qla83xx_handle_8200_aen()
691 ql_log(ql_log_warn, vha, 0x5060, in qla83xx_handle_8200_aen()
714 ql_log(ql_log_warn, vha, 0x5061, "PegHalt Status-1 " in qla83xx_handle_8200_aen()
718 ql_log(ql_log_warn, vha, 0x5062, "PegHalt Status-2 " in qla83xx_handle_8200_aen()
721 ql_log(ql_log_warn, vha, 0x5063, in qla83xx_handle_8200_aen()
724 ql_log(ql_log_fatal, vha, 0x5064, in qla83xx_handle_8200_aen()
727 qla83xx_schedule_work(vha, in qla83xx_handle_8200_aen()
730 ql_log(ql_log_fatal, vha, 0x5065, in qla83xx_handle_8200_aen()
733 qla83xx_schedule_work(vha, in qla83xx_handle_8200_aen()
788 ql_log(ql_log_warn, vha, 0x5066, in qla83xx_handle_8200_aen()
795 ql_log(ql_log_warn, vha, 0x5067, in qla83xx_handle_8200_aen()
800 ql_log(ql_log_warn, vha, 0x5068, in qla83xx_handle_8200_aen()
805 qla83xx_schedule_work(vha, QLA83XX_NIC_CORE_RESET); in qla83xx_handle_8200_aen()
809 ql_log(ql_log_warn, vha, 0x5069, in qla83xx_handle_8200_aen()
813 qla83xx_schedule_work(vha, QLA83XX_NIC_CORE_RESET); in qla83xx_handle_8200_aen()
818 ql_log(ql_log_info, vha, 0x506a, in qla83xx_handle_8200_aen()
822 qla83xx_schedule_work(vha, MBA_IDC_AEN); in qla83xx_handle_8200_aen()
827 qla2x00_is_a_vp_did(scsi_qla_host_t *vha, uint32_t rscn_entry) in qla2x00_is_a_vp_did() argument
829 struct qla_hw_data *ha = vha->hw; in qla2x00_is_a_vp_did()
852 qla2x00_find_fcport_by_loopid(scsi_qla_host_t *vha, uint16_t loop_id) in qla2x00_find_fcport_by_loopid() argument
857 list_for_each_entry_safe(f, tf, &vha->vp_fcports, list) in qla2x00_find_fcport_by_loopid()
864 qla2x00_find_fcport_by_wwpn(scsi_qla_host_t *vha, u8 *wwpn, u8 incl_deleted) in qla2x00_find_fcport_by_wwpn() argument
869 list_for_each_entry_safe(f, tf, &vha->vp_fcports, list) { in qla2x00_find_fcport_by_wwpn()
881 qla2x00_find_fcport_by_nportid(scsi_qla_host_t *vha, port_id_t *id, in qla2x00_find_fcport_by_nportid() argument
887 list_for_each_entry_safe(f, tf, &vha->vp_fcports, list) { in qla2x00_find_fcport_by_nportid()
900 qla27xx_handle_8200_aen(scsi_qla_host_t *vha, uint16_t *mb) in qla27xx_handle_8200_aen() argument
902 struct qla_hw_data *ha = vha->hw; in qla27xx_handle_8200_aen()
905 ql_log(ql_log_warn, vha, 0x02f0, in qla27xx_handle_8200_aen()
914 ql_log(ql_log_warn, vha, 0x02f1, in qla27xx_handle_8200_aen()
918 ha->isp_ops->fw_dump(vha); in qla27xx_handle_8200_aen()
922 ha->isp_ops->mpi_fw_dump(vha, 1); in qla27xx_handle_8200_aen()
925 vha->hw->flags.fw_init_done = 0; in qla27xx_handle_8200_aen()
926 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla27xx_handle_8200_aen()
927 qla2xxx_wake_dpc(vha); in qla27xx_handle_8200_aen()
932 qla24xx_alloc_purex_item(scsi_qla_host_t *vha, uint16_t size) in qla24xx_alloc_purex_item() argument
941 if (atomic_inc_return(&vha->default_item.in_use) == 1) { in qla24xx_alloc_purex_item()
942 item = &vha->default_item; in qla24xx_alloc_purex_item()
949 ql_log(ql_log_warn, vha, 0x5092, in qla24xx_alloc_purex_item()
956 item->vha = vha; in qla24xx_alloc_purex_item()
962 qla24xx_queue_purex_item(scsi_qla_host_t *vha, struct purex_item *pkt, in qla24xx_queue_purex_item() argument
963 void (*process_item)(struct scsi_qla_host *vha, in qla24xx_queue_purex_item() argument
966 struct purex_list *list = &vha->purex_list; in qla24xx_queue_purex_item()
975 set_bit(PROCESS_PUREX_IOCB, &vha->dpc_flags); in qla24xx_queue_purex_item()
986 *qla24xx_copy_std_pkt(struct scsi_qla_host *vha, void *pkt) in qla24xx_copy_std_pkt() argument
990 item = qla24xx_alloc_purex_item(vha, in qla24xx_copy_std_pkt()
1007 qla27xx_copy_fpin_pkt(struct scsi_qla_host *vha, void **pkt, in qla27xx_copy_fpin_pkt() argument
1025 ql_log(ql_log_info, vha, 0x509a, in qla27xx_copy_fpin_pkt()
1029 item = qla24xx_alloc_purex_item(vha, total_bytes); in qla27xx_copy_fpin_pkt()
1046 ql_dbg(ql_dbg_async, vha, 0x5084, in qla27xx_copy_fpin_pkt()
1057 ql_log(ql_log_warn, vha, 0x507a, in qla27xx_copy_fpin_pkt()
1080 ql_log(ql_log_warn, vha, 0x5044, in qla27xx_copy_fpin_pkt()
1093 ql_log(ql_log_fatal, vha, 0x508b, in qla27xx_copy_fpin_pkt()
1111 qla2x00_async_event(scsi_qla_host_t *vha, struct rsp_que *rsp, uint16_t *mb) in qla2x00_async_event() argument
1116 struct qla_hw_data *ha = vha->hw; in qla2x00_async_event()
1124 if (!vha->hw->flags.fw_started) { in qla2x00_async_event()
1125 ql_log(ql_log_warn, vha, 0x50ff, in qla2x00_async_event()
1188 if (!vha->flags.online) in qla2x00_async_event()
1192 qla2x00_process_completed_request(vha, rsp->req, in qla2x00_async_event()
1197 ql_dbg(ql_dbg_async, vha, 0x5002, in qla2x00_async_event()
1200 set_bit(RESET_MARKER_NEEDED, &vha->dpc_flags); in qla2x00_async_event()
1206 vha->hw_err_cnt++; in qla2x00_async_event()
1217 ql_log(ql_log_warn, vha, 0x5003, in qla2x00_async_event()
1221 ql_log(ql_log_warn, vha, 0x5003, in qla2x00_async_event()
1227 ha->isp_ops->mpi_fw_dump(vha, 1); in qla2x00_async_event()
1228 ha->isp_ops->fw_dump(vha); in qla2x00_async_event()
1234 ql_log(ql_log_fatal, vha, 0x5004, in qla2x00_async_event()
1237 vha->flags.online = 0; in qla2x00_async_event()
1238 vha->device_flags |= DFLG_DEV_FAILED; in qla2x00_async_event()
1243 &vha->dpc_flags); in qla2x00_async_event()
1245 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla2x00_async_event()
1248 ql_log(ql_log_fatal, vha, 0x5005, in qla2x00_async_event()
1251 vha->flags.online = 0; in qla2x00_async_event()
1252 vha->device_flags |= DFLG_DEV_FAILED; in qla2x00_async_event()
1254 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla2x00_async_event()
1258 ql_log(ql_log_warn, vha, 0x5006, in qla2x00_async_event()
1261 vha->hw_err_cnt++; in qla2x00_async_event()
1263 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla2x00_async_event()
1267 ql_log(ql_log_warn, vha, 0x5007, in qla2x00_async_event()
1270 vha->hw_err_cnt++; in qla2x00_async_event()
1272 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla2x00_async_event()
1276 ql_dbg(ql_dbg_async, vha, 0x5008, in qla2x00_async_event()
1281 ql_log(ql_log_warn, vha, 0x5090, in qla2x00_async_event()
1283 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla2x00_async_event()
1289 ql_dbg(ql_dbg_async, vha, 0x5009, in qla2x00_async_event()
1292 if (atomic_read(&vha->loop_state) != LOOP_DOWN) { in qla2x00_async_event()
1293 atomic_set(&vha->loop_state, LOOP_DOWN); in qla2x00_async_event()
1294 atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME); in qla2x00_async_event()
1295 qla2x00_mark_all_devices_lost(vha); in qla2x00_async_event()
1298 if (vha->vp_idx) { in qla2x00_async_event()
1299 atomic_set(&vha->vp_state, VP_FAILED); in qla2x00_async_event()
1300 fc_vport_set_state(vha->fc_vport, FC_VPORT_FAILED); in qla2x00_async_event()
1303 set_bit(REGISTER_FC4_NEEDED, &vha->dpc_flags); in qla2x00_async_event()
1304 set_bit(REGISTER_FDMI_NEEDED, &vha->dpc_flags); in qla2x00_async_event()
1306 vha->flags.management_server_logged_in = 0; in qla2x00_async_event()
1307 qla2x00_post_aen_work(vha, FCH_EVT_LIP, mb[1]); in qla2x00_async_event()
1316 ql_log(ql_log_info, vha, 0x500a, in qla2x00_async_event()
1322 ql_log(ql_log_info, vha, 0x11a0, in qla2x00_async_event()
1326 vha->flags.management_server_logged_in = 0; in qla2x00_async_event()
1327 qla2x00_post_aen_work(vha, FCH_EVT_LINKUP, ha->link_data_rate); in qla2x00_async_event()
1329 if (vha->link_down_time < vha->hw->port_down_retry_count) { in qla2x00_async_event()
1330 vha->short_link_down_cnt++; in qla2x00_async_event()
1331 vha->link_down_time = QLA2XX_MAX_LINK_DOWN_TIME; in qla2x00_async_event()
1340 vha->link_down_time = 0; in qla2x00_async_event()
1346 ql_log(ql_log_info, vha, 0x500b, in qla2x00_async_event()
1350 if (atomic_read(&vha->loop_state) != LOOP_DOWN) { in qla2x00_async_event()
1351 atomic_set(&vha->loop_state, LOOP_DOWN); in qla2x00_async_event()
1352 atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME); in qla2x00_async_event()
1358 if (!vha->vp_idx) { in qla2x00_async_event()
1361 memcpy(vha->port_name, ha->port_name, WWN_SIZE); in qla2x00_async_event()
1362 fc_host_port_name(vha->host) = in qla2x00_async_event()
1363 wwn_to_u64(vha->port_name); in qla2x00_async_event()
1365 vha, 0x00d8, "LOOP DOWN detected," in qla2x00_async_event()
1367 wwn_to_u64(vha->port_name)); in qla2x00_async_event()
1370 clear_bit(VP_CONFIG_OK, &vha->vp_flags); in qla2x00_async_event()
1373 vha->device_flags |= DFLG_NO_CABLE; in qla2x00_async_event()
1374 qla2x00_mark_all_devices_lost(vha); in qla2x00_async_event()
1377 if (vha->vp_idx) { in qla2x00_async_event()
1378 atomic_set(&vha->vp_state, VP_FAILED); in qla2x00_async_event()
1379 fc_vport_set_state(vha->fc_vport, FC_VPORT_FAILED); in qla2x00_async_event()
1382 vha->flags.management_server_logged_in = 0; in qla2x00_async_event()
1384 qla2x00_post_aen_work(vha, FCH_EVT_LINKDOWN, 0); in qla2x00_async_event()
1388 ql_dbg(ql_dbg_async, vha, 0x500c, in qla2x00_async_event()
1391 if (atomic_read(&vha->loop_state) != LOOP_DOWN) { in qla2x00_async_event()
1392 atomic_set(&vha->loop_state, LOOP_DOWN); in qla2x00_async_event()
1393 atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME); in qla2x00_async_event()
1394 qla2x00_mark_all_devices_lost(vha); in qla2x00_async_event()
1397 if (vha->vp_idx) { in qla2x00_async_event()
1398 atomic_set(&vha->vp_state, VP_FAILED); in qla2x00_async_event()
1399 fc_vport_set_state(vha->fc_vport, FC_VPORT_FAILED); in qla2x00_async_event()
1402 set_bit(RESET_MARKER_NEEDED, &vha->dpc_flags); in qla2x00_async_event()
1405 vha->flags.management_server_logged_in = 0; in qla2x00_async_event()
1406 qla2x00_post_aen_work(vha, FCH_EVT_LIPRESET, mb[1]); in qla2x00_async_event()
1417 ql_dbg(ql_dbg_async, vha, 0x500d, in qla2x00_async_event()
1420 if (ha->notify_dcbx_comp && !vha->vp_idx) in qla2x00_async_event()
1424 ql_dbg(ql_dbg_async, vha, 0x500e, in qla2x00_async_event()
1431 if (atomic_read(&vha->loop_state) != LOOP_DOWN) { in qla2x00_async_event()
1432 atomic_set(&vha->loop_state, LOOP_DOWN); in qla2x00_async_event()
1433 if (!atomic_read(&vha->loop_down_timer)) in qla2x00_async_event()
1434 atomic_set(&vha->loop_down_timer, in qla2x00_async_event()
1437 qla2x00_mark_all_devices_lost(vha); in qla2x00_async_event()
1440 if (vha->vp_idx) { in qla2x00_async_event()
1441 atomic_set(&vha->vp_state, VP_FAILED); in qla2x00_async_event()
1442 fc_vport_set_state(vha->fc_vport, FC_VPORT_FAILED); in qla2x00_async_event()
1445 if (!(test_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags))) in qla2x00_async_event()
1446 set_bit(RESET_MARKER_NEEDED, &vha->dpc_flags); in qla2x00_async_event()
1448 set_bit(REGISTER_FC4_NEEDED, &vha->dpc_flags); in qla2x00_async_event()
1449 set_bit(REGISTER_FDMI_NEEDED, &vha->dpc_flags); in qla2x00_async_event()
1451 vha->flags.management_server_logged_in = 0; in qla2x00_async_event()
1458 ql_dbg(ql_dbg_async, vha, 0x500f, in qla2x00_async_event()
1461 if (atomic_read(&vha->loop_state) != LOOP_DOWN) { in qla2x00_async_event()
1462 atomic_set(&vha->loop_state, LOOP_DOWN); in qla2x00_async_event()
1463 if (!atomic_read(&vha->loop_down_timer)) in qla2x00_async_event()
1464 atomic_set(&vha->loop_down_timer, in qla2x00_async_event()
1466 qla2x00_mark_all_devices_lost(vha); in qla2x00_async_event()
1469 if (vha->vp_idx) { in qla2x00_async_event()
1470 atomic_set(&vha->vp_state, VP_FAILED); in qla2x00_async_event()
1471 fc_vport_set_state(vha->fc_vport, FC_VPORT_FAILED); in qla2x00_async_event()
1474 set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); in qla2x00_async_event()
1475 set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); in qla2x00_async_event()
1496 (mb[1] != 0xffff)) && vha->vp_idx != (mb[3] & 0xff)) in qla2x00_async_event()
1500 ql_dbg(ql_dbg_async, vha, 0x5010, in qla2x00_async_event()
1509 set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); in qla2x00_async_event()
1510 set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); in qla2x00_async_event()
1520 set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); in qla2x00_async_event()
1521 set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); in qla2x00_async_event()
1526 fcport = qla2x00_find_fcport_by_loopid(vha, mb[1]); in qla2x00_async_event()
1531 ql_dbg(ql_dbg_async, vha, 0x508a, in qla2x00_async_event()
1534 if (qla_ini_mode_enabled(vha)) { in qla2x00_async_event()
1541 if (atomic_read(&vha->loop_state) != LOOP_DOWN) { in qla2x00_async_event()
1542 atomic_set(&vha->loop_state, LOOP_DOWN); in qla2x00_async_event()
1543 atomic_set(&vha->loop_down_timer, in qla2x00_async_event()
1545 vha->device_flags |= DFLG_NO_CABLE; in qla2x00_async_event()
1546 qla2x00_mark_all_devices_lost(vha); in qla2x00_async_event()
1549 if (vha->vp_idx) { in qla2x00_async_event()
1550 atomic_set(&vha->vp_state, VP_FAILED); in qla2x00_async_event()
1551 fc_vport_set_state(vha->fc_vport, in qla2x00_async_event()
1553 qla2x00_mark_all_devices_lost(vha); in qla2x00_async_event()
1556 vha->flags.management_server_logged_in = 0; in qla2x00_async_event()
1566 atomic_set(&vha->loop_down_timer, 0); in qla2x00_async_event()
1567 if (atomic_read(&vha->loop_state) != LOOP_DOWN && in qla2x00_async_event()
1569 atomic_read(&vha->loop_state) != LOOP_DEAD) { in qla2x00_async_event()
1570 ql_dbg(ql_dbg_async, vha, 0x5011, in qla2x00_async_event()
1576 ql_dbg(ql_dbg_async, vha, 0x5012, in qla2x00_async_event()
1583 atomic_set(&vha->loop_state, LOOP_UP); in qla2x00_async_event()
1584 vha->scan.scan_retry = 0; in qla2x00_async_event()
1586 set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); in qla2x00_async_event()
1587 set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); in qla2x00_async_event()
1588 set_bit(VP_CONFIG_OK, &vha->vp_flags); in qla2x00_async_event()
1593 if (vha->vp_idx && test_bit(VP_SCR_NEEDED, &vha->vp_flags)) in qla2x00_async_event()
1596 if (ha->flags.npiv_supported && vha->vp_idx != (mb[3] & 0xff)) in qla2x00_async_event()
1599 ql_log(ql_log_warn, vha, 0x5013, in qla2x00_async_event()
1604 host_pid = (vha->d_id.b.domain << 16) | (vha->d_id.b.area << 8) in qla2x00_async_event()
1605 | vha->d_id.b.al_pa; in qla2x00_async_event()
1607 ql_dbg(ql_dbg_async, vha, 0x5014, in qla2x00_async_event()
1617 if (qla2x00_is_a_vp_did(vha, rscn_entry)) in qla2x00_async_event()
1620 atomic_set(&vha->loop_down_timer, 0); in qla2x00_async_event()
1621 vha->flags.management_server_logged_in = 0; in qla2x00_async_event()
1628 qla2x00_handle_rscn(vha, &ea); in qla2x00_async_event()
1629 qla2x00_post_aen_work(vha, FCH_EVT_RSCN, rscn_entry); in qla2x00_async_event()
1638 ql_dbg(ql_dbg_async, vha, 0x509b, in qla2x00_async_event()
1641 ql_log(ql_log_warn, vha, 0x509b, in qla2x00_async_event()
1647 ql_dbg(ql_dbg_async, vha, 0x5015, in qla2x00_async_event()
1651 qla24xx_process_response_queue(vha, rsp); in qla2x00_async_event()
1657 ql_dbg(ql_dbg_async, vha, 0x5016, in qla2x00_async_event()
1660 vha->interface_err_cnt++; in qla2x00_async_event()
1664 ql_dbg(ql_dbg_async, vha, 0x5017, in qla2x00_async_event()
1669 ql_dbg(ql_dbg_async, vha, 0x5018, in qla2x00_async_event()
1676 ql_log(ql_log_info, vha, 0x5019, in qla2x00_async_event()
1682 ql_log(ql_log_info, vha, 0x501a, in qla2x00_async_event()
1688 ql_log(ql_log_info, vha, 0x501b, in qla2x00_async_event()
1695 ql_log(ql_log_info, vha, 0x501c, in qla2x00_async_event()
1700 ql_log(ql_log_warn, vha, 0x501d, in qla2x00_async_event()
1707 ql_dbg(ql_dbg_async, vha, 0x501e, in qla2x00_async_event()
1712 ql_dbg(ql_dbg_async, vha, 0x501f, in qla2x00_async_event()
1717 ql_dbg(ql_dbg_async, vha, 0x5020, in qla2x00_async_event()
1722 if (IS_QLA8031(vha->hw) || IS_QLA8044(ha)) { in qla2x00_async_event()
1727 set_bit(ISP_QUIESCE_NEEDED, &vha->dpc_flags); in qla2x00_async_event()
1731 if (atomic_read(&vha->loop_state) == LOOP_DOWN) in qla2x00_async_event()
1732 atomic_set(&vha->loop_down_timer, in qla2x00_async_event()
1734 qla2xxx_wake_dpc(vha); in qla2x00_async_event()
1739 if (ha->notify_lb_portup_comp && !vha->vp_idx) in qla2x00_async_event()
1743 if (IS_QLA81XX(vha->hw) || IS_QLA8031(vha->hw) || in qla2x00_async_event()
1745 qla81xx_idc_event(vha, mb[0], mb[1]); in qla2x00_async_event()
1750 vha->hw_err_cnt++; in qla2x00_async_event()
1751 qla27xx_handle_8200_aen(vha, mb); in qla2x00_async_event()
1757 qla83xx_handle_8200_aen(vha, mb); in qla2x00_async_event()
1759 ql_dbg(ql_dbg_async, vha, 0x5052, in qla2x00_async_event()
1766 ql_dbg(ql_dbg_async, vha, 0x5052, in qla2x00_async_event()
1769 memcpy(vha->dport_data, mb, sizeof(vha->dport_data)); in qla2x00_async_event()
1778 ql_dbg(ql_dbg_async, vha, 0x5052, in qla2x00_async_event()
1789 ql_dbg(ql_dbg_async, vha, 0x5052, in qla2x00_async_event()
1798 ql_dbg(ql_dbg_async, vha, 0x505e, in qla2x00_async_event()
1803 ql_dbg(ql_dbg_async, vha, 0x5091, in qla2x00_async_event()
1805 set_bit(DETECT_SFP_CHANGE, &vha->dpc_flags); in qla2x00_async_event()
1809 ql_dbg(ql_dbg_async, vha, 0x5091, "Transceiver Removal\n"); in qla2x00_async_event()
1813 ql_dbg(ql_dbg_async, vha, 0x5057, in qla2x00_async_event()
1818 qlt_async_event(mb[0], vha, mb); in qla2x00_async_event()
1820 if (!vha->vp_idx && ha->num_vhosts) in qla2x00_async_event()
1831 qla2x00_process_completed_request(struct scsi_qla_host *vha, in qla2x00_process_completed_request() argument
1835 struct qla_hw_data *ha = vha->hw; in qla2x00_process_completed_request()
1839 ql_log(ql_log_warn, vha, 0x3014, in qla2x00_process_completed_request()
1843 set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); in qla2x00_process_completed_request()
1845 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla2x00_process_completed_request()
1857 ql_log(ql_log_warn, vha, 0x3016, "Invalid SCSI SRB.\n"); in qla2x00_process_completed_request()
1860 set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); in qla2x00_process_completed_request()
1862 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla2x00_process_completed_request()
1867 qla2x00_get_sp_from_handle(scsi_qla_host_t *vha, const char *func, in qla2x00_get_sp_from_handle() argument
1870 struct qla_hw_data *ha = vha->hw; in qla2x00_get_sp_from_handle()
1880 ql_log(ql_log_warn, vha, 0x5031, in qla2x00_get_sp_from_handle()
1884 set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); in qla2x00_get_sp_from_handle()
1886 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla2x00_get_sp_from_handle()
1891 ql_log(ql_log_warn, vha, 0x5032, in qla2x00_get_sp_from_handle()
1897 ql_log(ql_log_warn, vha, 0x5033, in qla2x00_get_sp_from_handle()
1910 qla2x00_mbx_iocb_entry(scsi_qla_host_t *vha, struct req_que *req, in qla2x00_mbx_iocb_entry() argument
1921 sp = qla2x00_get_sp_from_handle(vha, func, req, mbx); in qla2x00_mbx_iocb_entry()
1934 ql_dbg(ql_dbg_async, vha, 0x5043, in qla2x00_mbx_iocb_entry()
1943 ql_dump_buffer(ql_dbg_async + ql_dbg_buffer, vha, 0x5029, in qla2x00_mbx_iocb_entry()
1954 ql_dbg(ql_dbg_async, vha, 0x5045, in qla2x00_mbx_iocb_entry()
1983 ql_log(ql_log_warn, vha, 0x5046, in qla2x00_mbx_iocb_entry()
1996 qla24xx_mbx_iocb_entry(scsi_qla_host_t *vha, struct req_que *req, in qla24xx_mbx_iocb_entry() argument
2000 struct qla_hw_data *ha = vha->hw; in qla24xx_mbx_iocb_entry()
2006 sp = qla2x00_get_sp_from_handle(vha, func, req, pkt); in qla24xx_mbx_iocb_entry()
2013 ql_log(ql_log_warn, vha, 0x509d, in qla24xx_mbx_iocb_entry()
2016 set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); in qla24xx_mbx_iocb_entry()
2018 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla24xx_mbx_iocb_entry()
2034 qla24xxx_nack_iocb_entry(scsi_qla_host_t *vha, struct req_que *req, in qla24xxx_nack_iocb_entry() argument
2041 sp = qla2x00_get_sp_from_handle(vha, func, req, pkt); in qla24xxx_nack_iocb_entry()
2052 qla2x00_ct_entry(scsi_qla_host_t *vha, struct req_que *req, in qla2x00_ct_entry() argument
2063 sp = qla2x00_get_sp_from_handle(vha, func, req, pkt); in qla2x00_ct_entry()
2089 ql_log(ql_log_warn, vha, 0x5048, in qla2x00_ct_entry()
2094 ql_log(ql_log_warn, vha, 0x5049, in qla2x00_ct_entry()
2100 ql_dump_buffer(ql_dbg_async + ql_dbg_buffer, vha, 0x5035, in qla2x00_ct_entry()
2114 res = qla2x00_chk_ms_status(vha, (ms_iocb_entry_t *)pkt, in qla2x00_ct_entry()
2138 scsi_qla_host_t *vha; in qla24xx_els_ct_entry() local
2145 vha = sp->vha; in qla24xx_els_ct_entry()
2165 ql_dbg(ql_dbg_user, vha, 0x700f, in qla24xx_els_ct_entry()
2177 ql_dbg(ql_dbg_user + ql_dbg_verbose, vha, 0x700e, in qla24xx_els_ct_entry()
2181 ql_dbg(ql_dbg_user, vha, 0x700f, in qla24xx_els_ct_entry()
2194 ql_dbg(ql_dbg_user, vha, 0x5047, in qla24xx_els_ct_entry()
2205 res = qla2x00_chk_ms_status(sp->vha, (ms_iocb_entry_t *)pkt, in qla24xx_els_ct_entry()
2211 ql_dbg(ql_dbg_user, vha, 0x503e, in qla24xx_els_ct_entry()
2232 ql_dbg(ql_dbg_user, vha, 0x503f, in qla24xx_els_ct_entry()
2251 ql_dbg(ql_dbg_user, vha, 0x503f, in qla24xx_els_ct_entry()
2255 ql_dbg(ql_dbg_user, vha, 0x503f, in qla24xx_els_ct_entry()
2263 ql_log(ql_log_info, vha, 0x503f, in qla24xx_els_ct_entry()
2266 ql_log(ql_log_info, vha, 0x503f, in qla24xx_els_ct_entry()
2293 ql_dbg(ql_dbg_user, vha, 0x503f, in qla24xx_els_ct_entry()
2299 ql_dbg(ql_dbg_user, vha, 0x5040, in qla24xx_els_ct_entry()
2310 ql_dump_buffer(ql_dbg_user + ql_dbg_buffer, vha, 0x5056, in qla24xx_els_ct_entry()
2324 qla24xx_logio_entry(scsi_qla_host_t *vha, struct req_que *req, in qla24xx_logio_entry() argument
2336 sp = qla2x00_get_sp_from_handle(vha, func, req, logio); in qla24xx_logio_entry()
2349 ql_log(ql_log_warn, fcport->vha, 0x5034, in qla24xx_logio_entry()
2355 ql_dump_buffer(ql_dbg_async + ql_dbg_buffer, vha, 0x504d, in qla24xx_logio_entry()
2362 ql_dbg(ql_dbg_async, sp->vha, 0x5036, in qla24xx_logio_entry()
2367 vha->hw->exch_starvation = 0; in qla24xx_logio_entry()
2430 vha->hw->exch_starvation++; in qla24xx_logio_entry()
2431 if (vha->hw->exch_starvation > 5) { in qla24xx_logio_entry()
2432 ql_log(ql_log_warn, vha, 0xd046, in qla24xx_logio_entry()
2435 vha->hw->exch_starvation = 0; in qla24xx_logio_entry()
2437 if (IS_P3P_TYPE(vha->hw)) in qla24xx_logio_entry()
2438 set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); in qla24xx_logio_entry()
2440 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla24xx_logio_entry()
2441 qla2xxx_wake_dpc(vha); in qla24xx_logio_entry()
2450 ql_log(ql_log_warn, sp->vha, 0x5037, "Async-%s failed: " in qla24xx_logio_entry()
2457 ql_dbg(ql_dbg_disc, sp->vha, 0x5037, "Async-%s failed: " in qla24xx_logio_entry()
2469 qla24xx_tm_iocb_entry(scsi_qla_host_t *vha, struct req_que *req, void *tsk) in qla24xx_tm_iocb_entry() argument
2479 sp = qla2x00_get_sp_from_handle(vha, func, req, tsk); in qla24xx_tm_iocb_entry()
2490 ql_log(ql_log_warn, fcport->vha, 0x5038, in qla24xx_tm_iocb_entry()
2495 ql_log(ql_log_warn, fcport->vha, 0x5039, in qla24xx_tm_iocb_entry()
2503 ql_log(ql_log_warn, fcport->vha, 0x503b, in qla24xx_tm_iocb_entry()
2507 ql_log(ql_log_warn, fcport->vha, 0x503c, in qla24xx_tm_iocb_entry()
2522 ql_dbg(ql_dbg_disc, fcport->vha, 0x3021, in qla24xx_tm_iocb_entry()
2538 ql_dump_buffer(ql_dbg_async + ql_dbg_buffer, sp->vha, 0x5055, in qla24xx_tm_iocb_entry()
2544 static void qla24xx_nvme_iocb_entry(scsi_qla_host_t *vha, struct req_que *req, in qla24xx_nvme_iocb_entry() argument
2563 atomic_dec(&sp->vha->hw->nvme_active_aen_cnt); in qla24xx_nvme_iocb_entry()
2594 ql_dbg(ql_dbg_io, fcport->vha, 0x307a, in qla24xx_nvme_iocb_entry()
2609 ql_log(ql_log_warn, fcport->vha, 0x5100, in qla24xx_nvme_iocb_entry()
2627 ql_log(ql_log_warn, fcport->vha, 0x3079, in qla24xx_nvme_iocb_entry()
2641 ql_dbg(ql_dbg_io, fcport->vha, 0x5060, in qla24xx_nvme_iocb_entry()
2660 ql_dbg(ql_dbg_disc, fcport->vha, 0x3021, in qla24xx_nvme_iocb_entry()
2684 static void qla_ctrlvp_completed(scsi_qla_host_t *vha, struct req_que *req, in qla_ctrlvp_completed() argument
2691 sp = qla2x00_get_sp_from_handle(vha, func, req, vce); in qla_ctrlvp_completed()
2696 ql_dbg(ql_dbg_vport, vha, 0x10c4, in qla_ctrlvp_completed()
2701 ql_dbg(ql_dbg_vport, vha, 0x10c5, in qla_ctrlvp_completed()
2707 ql_dbg(ql_dbg_vport, vha, 0x10c6, in qla_ctrlvp_completed()
2716 static void qla2x00_process_response_entry(struct scsi_qla_host *vha, in qla2x00_process_response_entry() argument
2727 qla2x00_status_entry(vha, rsp, pkt); in qla2x00_process_response_entry()
2733 qla2x00_process_completed_request(vha, rsp->req, in qla2x00_process_response_entry()
2740 qla2x00_process_completed_request(vha, rsp->req, in qla2x00_process_response_entry()
2747 qla2x00_mbx_iocb_entry(vha, rsp->req, (struct mbx_entry *)pkt); in qla2x00_process_response_entry()
2750 qla2x00_ct_entry(vha, rsp->req, pkt, CT_IOCB_TYPE); in qla2x00_process_response_entry()
2754 ql_log(ql_log_warn, vha, 0x504a, in qla2x00_process_response_entry()
2768 struct scsi_qla_host *vha; in qla2x00_process_response_queue() local
2773 vha = pci_get_drvdata(ha->pdev); in qla2x00_process_response_queue()
2775 if (!vha->flags.online) in qla2x00_process_response_queue()
2790 qla2x00_error_entry(vha, rsp, pkt); in qla2x00_process_response_queue()
2796 qla2x00_process_response_entry(vha, rsp, pkt); in qla2x00_process_response_queue()
2809 struct scsi_qla_host *vha = sp->vha; in qla2x00_handle_sense() local
2835 ql_dbg(ql_dbg_io + ql_dbg_buffer, vha, 0x301c, in qla2x00_handle_sense()
2837 sp->vha->host_no, cp->device->id, cp->device->lun, in qla2x00_handle_sense()
2839 ql_dump_buffer(ql_dbg_io + ql_dbg_buffer, vha, 0x302b, in qla2x00_handle_sense()
2859 struct scsi_qla_host *vha = sp->vha; in qla2x00_handle_dif_error() local
2878 ql_dbg(ql_dbg_io, vha, 0x3023, in qla2x00_handle_dif_error()
2881 ql_dbg(ql_dbg_io, vha, 0x3024, in qla2x00_handle_dif_error()
2928 ql_log(ql_log_warn, vha, 0x302f, in qla2x00_handle_dif_error()
2970 qla25xx_process_bidir_status_iocb(scsi_qla_host_t *vha, void *pkt, in qla25xx_process_bidir_status_iocb() argument
2973 struct qla_hw_data *ha = vha->hw; in qla25xx_process_bidir_status_iocb()
2987 ql_log(ql_log_warn, vha, 0x70af, in qla25xx_process_bidir_status_iocb()
2989 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla25xx_process_bidir_status_iocb()
2995 ql_log(ql_log_warn, vha, 0x70b0, in qla25xx_process_bidir_status_iocb()
2999 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla25xx_process_bidir_status_iocb()
3023 vha->qla_stats.input_bytes += in qla25xx_process_bidir_status_iocb()
3025 vha->qla_stats.input_requests++; in qla25xx_process_bidir_status_iocb()
3031 ql_dbg(ql_dbg_user, vha, 0x70b1, in qla25xx_process_bidir_status_iocb()
3038 ql_dbg(ql_dbg_user, vha, 0x70b2, in qla25xx_process_bidir_status_iocb()
3044 ql_dbg(ql_dbg_user, vha, 0x70b3, in qla25xx_process_bidir_status_iocb()
3051 ql_dbg(ql_dbg_user, vha, 0x70b4, in qla25xx_process_bidir_status_iocb()
3058 ql_dbg(ql_dbg_user, vha, 0x70b5, in qla25xx_process_bidir_status_iocb()
3065 ql_dbg(ql_dbg_user, vha, 0x70b6, in qla25xx_process_bidir_status_iocb()
3072 ql_dbg(ql_dbg_user, vha, 0x70b7, in qla25xx_process_bidir_status_iocb()
3079 ql_dbg(ql_dbg_user, vha, 0x70b8, in qla25xx_process_bidir_status_iocb()
3086 ql_dbg(ql_dbg_user, vha, 0x70b9, in qla25xx_process_bidir_status_iocb()
3093 ql_dbg(ql_dbg_user, vha, 0x70ba, in qla25xx_process_bidir_status_iocb()
3099 ql_dbg(ql_dbg_user, vha, 0x70bb, in qla25xx_process_bidir_status_iocb()
3124 qla2x00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt) in qla2x00_status_entry() argument
3139 struct qla_hw_data *ha = vha->hw; in qla2x00_status_entry()
3163 ql_dbg(ql_dbg_io, vha, 0x3059, in qla2x00_status_entry()
3173 ql_dbg(ql_dbg_io, vha, 0x3075, in qla2x00_status_entry()
3175 __func__, vha->host_no, sts->handle); in qla2x00_status_entry()
3179 ql_dbg(ql_dbg_io, vha, 0x3017, in qla2x00_status_entry()
3183 if (!test_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags)) { in qla2x00_status_entry()
3185 set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags); in qla2x00_status_entry()
3187 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla2x00_status_entry()
3188 qla2xxx_wake_dpc(vha); in qla2x00_status_entry()
3196 ql_dbg(ql_dbg_io, vha, 0x3015, in qla2x00_status_entry()
3205 qla24xx_nvme_iocb_entry(vha, req, pkt, sp); in qla2x00_status_entry()
3210 qla25xx_process_bidir_status_iocb(vha, pkt, req, handle); in qla2x00_status_entry()
3216 qla24xx_tm_iocb_entry(vha, req, pkt); in qla2x00_status_entry()
3221 qla_chk_edif_rx_sa_delete_pending(vha, sp, sts24); in qla2x00_status_entry()
3225 qla2x00_process_completed_request(vha, req, handle); in qla2x00_status_entry()
3233 ql_dbg(ql_dbg_io, vha, 0x3018, in qla2x00_status_entry()
3281 ql_dbg(ql_dbg_io, fcport->vha, 0x3019, in qla2x00_status_entry()
3320 ql_dbg(ql_dbg_io, fcport->vha, 0x301a, in qla2x00_status_entry()
3331 ql_dbg(ql_dbg_io, fcport->vha, 0x301b, in qla2x00_status_entry()
3353 ql_log(ql_log_warn, fcport->vha, 0x301d, in qla2x00_status_entry()
3364 ql_dbg(ql_dbg_io, fcport->vha, 0x301e, in qla2x00_status_entry()
3378 ql_log(ql_log_warn, fcport->vha, 0x301f, in qla2x00_status_entry()
3382 vha->interface_err_cnt++; in qla2x00_status_entry()
3387 ql_dbg(ql_dbg_io, fcport->vha, 0x3030, in qla2x00_status_entry()
3402 ql_dbg(ql_dbg_io, fcport->vha, 0x3020, in qla2x00_status_entry()
3444 ql_dbg(ql_dbg_disc, fcport->vha, 0x3021, in qla2x00_status_entry()
3467 vha->hw_err_cnt++; in qla2x00_status_entry()
3479 ql_log(ql_log_info, fcport->vha, 0x3022, in qla2x00_status_entry()
3481 comp_status, scsi_status, res, vha->host_no, in qla2x00_status_entry()
3485 ql_dump_buffer(ql_dbg_tgt + ql_dbg_verbose, vha, 0xe0ee, in qla2x00_status_entry()
3488 vha->hw_err_cnt++; in qla2x00_status_entry()
3497 ql_dbg(ql_dbg_io, fcport->vha, 0x3022, in qla2x00_status_entry()
3499 comp_status, scsi_status, res, vha->host_no, in qla2x00_status_entry()
3521 struct scsi_qla_host *vha = pci_get_drvdata(ha->pdev); in qla2x00_status_cont_entry() local
3535 ql_log(ql_log_warn, vha, 0x3025, in qla2x00_status_cont_entry()
3551 ql_dump_buffer(ql_dbg_io + ql_dbg_buffer, vha, 0x302c, in qla2x00_status_cont_entry()
3575 qla2x00_error_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, sts_entry_t *pkt) in qla2x00_error_entry() argument
3578 struct qla_hw_data *ha = vha->hw; in qla2x00_error_entry()
3584 ql_dbg(ql_dbg_async, vha, 0x502a, in qla2x00_error_entry()
3609 sp = qla2x00_get_sp_from_handle(vha, func, req, pkt); in qla2x00_error_entry()
3623 ql_log(ql_log_warn, vha, 0x5030, in qla2x00_error_entry()
3634 qla24xx_mbx_completion(scsi_qla_host_t *vha, uint16_t mb0) in qla24xx_mbx_completion() argument
3639 struct qla_hw_data *ha = vha->hw; in qla24xx_mbx_completion()
3646 ql_dbg(ql_dbg_async, vha, 0x504e, "MBX pointer ERROR.\n"); in qla24xx_mbx_completion()
3666 qla24xx_abort_iocb_entry(scsi_qla_host_t *vha, struct req_que *req, in qla24xx_abort_iocb_entry() argument
3674 sp = qla2x00_get_sp_from_handle(vha, func, req, pkt); in qla24xx_abort_iocb_entry()
3688 void qla24xx_nvme_ls4_iocb(struct scsi_qla_host *vha, in qla24xx_nvme_ls4_iocb() argument
3695 sp = qla2x00_get_sp_from_handle(vha, func, req, pkt); in qla24xx_nvme_ls4_iocb()
3711 static int qla_chk_cont_iocb_avail(struct scsi_qla_host *vha, in qla_chk_cont_iocb_avail() argument
3736 ql_dbg(ql_dbg_init, vha, 0x5091, in qla_chk_cont_iocb_avail()
3743 static void qla_marker_iocb_entry(scsi_qla_host_t *vha, struct req_que *req, in qla_marker_iocb_entry() argument
3750 if (!IS_FWI2_CAPABLE(vha->hw)) in qla_marker_iocb_entry()
3753 sp = qla2x00_get_sp_from_handle(vha, func, req, pkt); in qla_marker_iocb_entry()
3758 ql_dbg(ql_dbg_taskm, vha, 0x8025, "marker failure.\n"); in qla_marker_iocb_entry()
3770 void qla24xx_process_response_queue(struct scsi_qla_host *vha, in qla24xx_process_response_queue() argument
3774 struct qla_hw_data *ha = vha->hw; in qla24xx_process_response_queue()
3821 if (qla2x00_error_entry(vha, rsp, (sts_entry_t *) pkt)) in qla24xx_process_response_queue()
3832 qla2x00_status_entry(vha, rsp, pkt); in qla24xx_process_response_queue()
3838 qla24xx_report_id_acquisition(vha, in qla24xx_process_response_queue()
3842 qla24xx_logio_entry(vha, rsp->req, in qla24xx_process_response_queue()
3846 qla24xx_els_ct_entry(vha, rsp->req, pkt, CT_IOCB_TYPE); in qla24xx_process_response_queue()
3849 qla24xx_els_ct_entry(vha, rsp->req, pkt, ELS_IOCB_TYPE); in qla24xx_process_response_queue()
3852 if (qla_ini_mode_enabled(vha)) { in qla24xx_process_response_queue()
3853 pure_item = qla24xx_copy_std_pkt(vha, pkt); in qla24xx_process_response_queue()
3856 qla24xx_queue_purex_item(vha, pure_item, in qla24xx_process_response_queue()
3863 qlt_handle_abts_recv(vha, rsp, in qla24xx_process_response_queue()
3867 qlt_24xx_process_atio_queue(vha, 1); in qla24xx_process_response_queue()
3873 qlt_response_pkt_all_vps(vha, rsp, (response_t *)pkt); in qla24xx_process_response_queue()
3876 qla24xx_nvme_ls4_iocb(vha, (struct pt_ls4_request *)pkt, in qla24xx_process_response_queue()
3881 qlt_response_pkt_all_vps(vha, rsp, in qla24xx_process_response_queue()
3884 qla24xxx_nack_iocb_entry(vha, rsp->req, in qla24xx_process_response_queue()
3888 qla_marker_iocb_entry(vha, rsp->req, (struct mrk_entry_24xx *)pkt); in qla24xx_process_response_queue()
3891 qla24xx_abort_iocb_entry(vha, rsp->req, in qla24xx_process_response_queue()
3895 qla24xx_mbx_iocb_entry(vha, rsp->req, in qla24xx_process_response_queue()
3899 qla_ctrlvp_completed(vha, rsp->req, in qla24xx_process_response_queue()
3906 pure_item = qla24xx_copy_std_pkt(vha, pkt); in qla24xx_process_response_queue()
3909 qla24xx_queue_purex_item(vha, pure_item, in qla24xx_process_response_queue()
3913 if (!vha->hw->flags.scm_enabled) { in qla24xx_process_response_queue()
3914 ql_log(ql_log_warn, vha, 0x5094, in qla24xx_process_response_queue()
3918 pure_item = qla27xx_copy_fpin_pkt(vha, in qla24xx_process_response_queue()
3924 qla24xx_queue_purex_item(vha, pure_item, in qla24xx_process_response_queue()
3929 if (qla_chk_cont_iocb_avail(vha, rsp, (response_t *)pkt, rsp_in)) { in qla24xx_process_response_queue()
3940 ql_dbg(ql_dbg_init, vha, 0x5091, in qla24xx_process_response_queue()
3945 qla24xx_auth_els(vha, (void **)&pkt, &rsp); in qla24xx_process_response_queue()
3948 ql_log(ql_log_warn, vha, 0x509c, in qla24xx_process_response_queue()
3954 qla28xx_sa_update_iocb_entry(vha, rsp->req, in qla24xx_process_response_queue()
3960 ql_dbg(ql_dbg_async, vha, 0x5042, in qla24xx_process_response_queue()
3980 qla2xxx_check_risc_status(scsi_qla_host_t *vha) in qla2xxx_check_risc_status() argument
3984 struct qla_hw_data *ha = vha->hw; in qla2xxx_check_risc_status()
4021 ql_log(ql_log_info, vha, 0x504c, in qla2xxx_check_risc_status()
4041 scsi_qla_host_t *vha; in qla24xx_intr_handler() local
4068 vha = pci_get_drvdata(ha->pdev); in qla24xx_intr_handler()
4071 if (qla2x00_check_reg32_for_disconnect(vha, stat)) in qla24xx_intr_handler()
4079 ql_log(ql_log_warn, vha, 0x504b, in qla24xx_intr_handler()
4083 qla2xxx_check_risc_status(vha); in qla24xx_intr_handler()
4085 ha->isp_ops->fw_dump(vha); in qla24xx_intr_handler()
4086 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla24xx_intr_handler()
4096 qla24xx_mbx_completion(vha, MSW(stat)); in qla24xx_intr_handler()
4105 qla2x00_async_event(vha, rsp, mb); in qla24xx_intr_handler()
4109 qla24xx_process_response_queue(vha, rsp); in qla24xx_intr_handler()
4117 qla24xx_process_response_queue(vha, rsp); in qla24xx_intr_handler()
4120 ql_dbg(ql_dbg_async, vha, 0x504f, in qla24xx_intr_handler()
4134 qlt_24xx_process_atio_queue(vha, 0); in qla24xx_intr_handler()
4147 struct scsi_qla_host *vha; in qla24xx_msix_rsp_q() local
4161 vha = pci_get_drvdata(ha->pdev); in qla24xx_msix_rsp_q()
4162 qla24xx_process_response_queue(vha, rsp); in qla24xx_msix_rsp_q()
4175 scsi_qla_host_t *vha; in qla24xx_msix_default() local
4197 vha = pci_get_drvdata(ha->pdev); in qla24xx_msix_default()
4200 if (qla2x00_check_reg32_for_disconnect(vha, stat)) in qla24xx_msix_default()
4208 ql_log(ql_log_info, vha, 0x5050, in qla24xx_msix_default()
4212 qla2xxx_check_risc_status(vha); in qla24xx_msix_default()
4213 vha->hw_err_cnt++; in qla24xx_msix_default()
4215 ha->isp_ops->fw_dump(vha); in qla24xx_msix_default()
4216 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); in qla24xx_msix_default()
4226 qla24xx_mbx_completion(vha, MSW(stat)); in qla24xx_msix_default()
4235 qla2x00_async_event(vha, rsp, mb); in qla24xx_msix_default()
4239 qla24xx_process_response_queue(vha, rsp); in qla24xx_msix_default()
4247 qla24xx_process_response_queue(vha, rsp); in qla24xx_msix_default()
4250 ql_dbg(ql_dbg_async, vha, 0x5051, in qla24xx_msix_default()
4261 qlt_24xx_process_atio_queue(vha, 0); in qla24xx_msix_default()
4338 scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev); in qla24xx_enable_msix() local
4362 ql_log(ql_log_fatal, vha, 0x00c7, in qla24xx_enable_msix()
4368 ql_log(ql_log_info, vha, 0x00c6, in qla24xx_enable_msix()
4386 vha->irq_offset = desc.pre_vectors; in qla24xx_enable_msix()
4391 ql_log(ql_log_fatal, vha, 0x00c8, in qla24xx_enable_msix()
4414 "qla2xxx%lu_%s", vha->host_no, msix_entries[i].name); in qla24xx_enable_msix()
4439 "qla2xxx%lu_%s", vha->host_no, in qla24xx_enable_msix()
4450 ql_log(ql_log_fatal, vha, 0x00cb, in qla24xx_enable_msix()
4453 qla2x00_free_irqs(vha); in qla24xx_enable_msix()
4465 ql_dbg(ql_dbg_multiq, vha, 0xc005, in qla24xx_enable_msix()
4468 ql_dbg(ql_dbg_init, vha, 0x0055, in qla24xx_enable_msix()
4485 scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev); in qla2x00_request_irqs() local
4500 ql_log(ql_log_warn, vha, 0x0034, in qla2x00_request_irqs()
4508 ql_log(ql_log_warn, vha, 0x0035, in qla2x00_request_irqs()
4516 ql_dbg(ql_dbg_init, vha, 0x0036, in qla2x00_request_irqs()
4524 ql_log(ql_log_info, vha, 0x0037, in qla2x00_request_irqs()
4534 ql_dbg(ql_dbg_init, vha, 0x0038, in qla2x00_request_irqs()
4538 ql_log(ql_log_warn, vha, 0x0039, in qla2x00_request_irqs()
4550 ql_log(ql_log_warn, vha, 0x003a, in qla2x00_request_irqs()
4555 ql_dbg(ql_dbg_init, vha, 0x0125, in qla2x00_request_irqs()
4575 qla2x00_free_irqs(scsi_qla_host_t *vha) in qla2x00_free_irqs() argument
4577 struct qla_hw_data *ha = vha->hw; in qla2x00_free_irqs()
4601 ql_dbg(ql_dbg_init, vha, 0x0042, in qla2x00_free_irqs()
4615 scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev); in qla25xx_request_irq() local
4619 "qla2xxx%lu_qpair%d", vha->host_no, qpair->id); in qla25xx_request_irq()
4622 ql_log(ql_log_fatal, vha, 0x00e6, in qla25xx_request_irq()