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)
40 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x508d,
43 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x508e,
45 ql_dump_buffer(ql_dbg_init + ql_dbg_verbose, vha, 0x508f,
48 fc_host_fpin_rcv(vha->host, pkt_size, (char *)pkt, 0);
62 static inline void display_Laser_info(scsi_qla_host_t *vha,
66 ql_log(ql_log_warn, vha, 0xf0a2,
70 ql_log(ql_log_warn, vha, 0xf0a3,
76 qla24xx_process_abts(struct scsi_qla_host *vha, struct purex_item *pkt)
80 struct qla_hw_data *ha = vha->hw;
87 ql_dbg(ql_dbg_init, vha, 0x0286, "%s: entered.\n", __func__);
89 ql_log(ql_log_warn, vha, 0x0287,
93 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x0287,
95 ql_dump_buffer(ql_dbg_init + ql_dbg_verbose, vha, 0x0287,
101 ql_log(ql_log_warn, vha, 0x0287,
112 ql_dbg(ql_dbg_init, vha, 0x0283,
115 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x0283,
117 ql_dump_buffer(ql_dbg_init + ql_dbg_verbose, vha, 0x0283,
119 rval = qla2x00_issue_iocb(vha, rsp_els, dma, 0);
121 ql_log(ql_log_warn, vha, 0x0288,
124 ql_log(ql_log_warn, vha, 0x0289,
129 ql_dbg(ql_dbg_init, vha, 0x028a,
163 ql_dbg(ql_dbg_init, vha, 0x028b,
166 ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x028b,
168 ql_dump_buffer(ql_dbg_init + ql_dbg_verbose, vha, 0x028b,
170 rval = qla2x00_issue_iocb(vha, abts_rsp, dma, 0);
172 ql_log(ql_log_warn, vha, 0x028c,
175 ql_log(ql_log_warn, vha, 0x028d,
181 ql_dbg(ql_dbg_init, vha, 0x028ea,
192 * @vha: host adapter pointer
199 void __qla_consume_iocb(struct scsi_qla_host *vha,
230 * @vha: host adapter pointer
236 int __qla_copy_purex_to_buffer(struct scsi_qla_host *vha,
258 ql_dbg(ql_dbg_async, vha, 0x5084,
261 __qla_consume_iocb(vha, pkt, rsp);
284 ql_log(ql_log_warn, vha, 0x507a,
306 ql_log(ql_log_warn, vha, 0x5044,
319 ql_log(ql_log_fatal, vha, 0x508b,
343 scsi_qla_host_t *vha;
365 vha = pci_get_drvdata(ha->pdev);
368 if (qla2x00_check_reg16_for_disconnect(vha, hccr))
382 ha->isp_ops->fw_dump(vha);
383 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
395 qla2x00_mbx_completion(vha, mb[0]);
401 qla2x00_async_event(vha, rsp, mb);
404 ql_dbg(ql_dbg_async, vha, 0x5025,
425 qla2x00_check_reg32_for_disconnect(scsi_qla_host_t *vha, uint32_t reg)
428 if (reg == 0xffffffff && !pci_channel_offline(vha->hw->pdev)) {
429 if (!test_and_set_bit(PFLG_DISCONNECTED, &vha->pci_flags) &&
430 !test_bit(PFLG_DRIVER_REMOVING, &vha->pci_flags) &&
431 !test_bit(PFLG_DRIVER_PROBING, &vha->pci_flags)) {
432 qla_schedule_eeh_work(vha);
440 qla2x00_check_reg16_for_disconnect(scsi_qla_host_t *vha, uint16_t reg)
442 return qla2x00_check_reg32_for_disconnect(vha, 0xffff0000 | reg);
457 scsi_qla_host_t *vha;
480 vha = pci_get_drvdata(ha->pdev);
483 if (qla2x00_check_reg32_for_disconnect(vha, stat))
492 ql_log(ql_log_warn, vha, 0x5026,
496 ql_log(ql_log_warn, vha, 0x5027,
508 ha->isp_ops->fw_dump(vha);
509 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
519 qla2x00_mbx_completion(vha, MSW(stat));
530 qla2x00_async_event(vha, rsp, mb);
538 qla2x00_async_event(vha, rsp, mb);
544 qla2x00_async_event(vha, rsp, mb);
547 ql_dbg(ql_dbg_async, vha, 0x5028,
562 * @vha: SCSI driver HA context
566 qla2x00_mbx_completion(scsi_qla_host_t *vha, uint16_t mb0)
571 struct qla_hw_data *ha = vha->hw;
578 ql_dbg(ql_dbg_async, vha, 0x5001, "MBX pointer ERROR.\n");
602 qla81xx_idc_event(scsi_qla_host_t *vha, uint16_t aen, uint16_t descr)
607 struct device_reg_24xx __iomem *reg24 = &vha->hw->iobase->isp24;
608 struct device_reg_82xx __iomem *reg82 = &vha->hw->iobase->isp82;
613 if (IS_QLA81XX(vha->hw) || IS_QLA83XX(vha->hw))
615 else if (IS_QLA8044(vha->hw))
623 ql_dbg(ql_dbg_async, vha, 0x5021,
632 vha->hw->flags.idc_compl_status = 1;
633 if (vha->hw->notify_dcbx_comp && !vha->vp_idx)
634 complete(&vha->hw->dcbx_comp);
641 ql_dbg(ql_dbg_async, vha, 0x5022,
643 vha->host_no, event[aen & 0xff], timeout);
647 rval = qla2x00_post_idc_ack_work(vha, mb);
649 ql_log(ql_log_warn, vha, 0x5023,
653 vha->hw->idc_extend_tmo = descr;
654 ql_dbg(ql_dbg_async, vha, 0x5087,
657 vha->host_no, event[aen & 0xff], vha->hw->idc_extend_tmo);
682 qla83xx_handle_8200_aen(scsi_qla_host_t *vha, uint16_t *mb)
684 struct qla_hw_data *ha = vha->hw;
697 ql_dbg(ql_dbg_async, vha, 0x506b, "AEN Code: mb[0] = 0x%x AEN reason: "
700 ql_dbg(ql_dbg_async, vha, 0x506c, "PH-status2: mb[3] = 0x%x "
707 ql_log(ql_log_warn, vha, 0x5060,
730 ql_log(ql_log_warn, vha, 0x5061, "PegHalt Status-1 "
734 ql_log(ql_log_warn, vha, 0x5062, "PegHalt Status-2 "
737 ql_log(ql_log_warn, vha, 0x5063,
740 ql_log(ql_log_fatal, vha, 0x5064,
743 qla83xx_schedule_work(vha,
746 ql_log(ql_log_fatal, vha, 0x5065,
749 qla83xx_schedule_work(vha,
804 ql_log(ql_log_warn, vha, 0x5066,
811 ql_log(ql_log_warn, vha, 0x5067,
816 ql_log(ql_log_warn, vha, 0x5068,
821 qla83xx_schedule_work(vha, QLA83XX_NIC_CORE_RESET);
825 ql_log(ql_log_warn, vha, 0x5069,
829 qla83xx_schedule_work(vha, QLA83XX_NIC_CORE_RESET);
834 ql_log(ql_log_info, vha, 0x506a,
838 qla83xx_schedule_work(vha, MBA_IDC_AEN);
845 * @vha: SCSI driver HA context
853 qla27xx_copy_multiple_pkt(struct scsi_qla_host *vha, void **pkt,
884 ql_dbg(ql_dbg_async, vha, 0x509a,
888 item = qla24xx_alloc_purex_item(vha, total_bytes);
911 ql_dbg(ql_dbg_async, vha, 0x5084,
922 ql_log(ql_log_warn, vha, 0x507a,
944 ql_log(ql_log_warn, vha, 0x5044,
957 ql_log(ql_log_fatal, vha, 0x508b,
972 qla2x00_is_a_vp_did(scsi_qla_host_t *vha, uint32_t rscn_entry)
974 struct qla_hw_data *ha = vha->hw;
997 qla2x00_find_fcport_by_loopid(scsi_qla_host_t *vha, uint16_t loop_id)
1002 list_for_each_entry_safe(f, tf, &vha->vp_fcports, list)
1009 qla2x00_find_fcport_by_wwpn(scsi_qla_host_t *vha, u8 *wwpn, u8 incl_deleted)
1014 list_for_each_entry_safe(f, tf, &vha->vp_fcports, list) {
1026 qla2x00_find_fcport_by_nportid(scsi_qla_host_t *vha, port_id_t *id,
1032 list_for_each_entry_safe(f, tf, &vha->vp_fcports, list) {
1045 qla27xx_handle_8200_aen(scsi_qla_host_t *vha, uint16_t *mb)
1047 struct qla_hw_data *ha = vha->hw;
1050 ql_log(ql_log_warn, vha, 0x02f0,
1059 ql_log(ql_log_warn, vha, 0x02f1,
1063 ha->isp_ops->fw_dump(vha);
1067 ha->isp_ops->mpi_fw_dump(vha, 1);
1070 vha->hw->flags.fw_init_done = 0;
1071 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
1072 qla2xxx_wake_dpc(vha);
1077 qla24xx_alloc_purex_item(scsi_qla_host_t *vha, uint16_t size)
1086 if (atomic_inc_return(&vha->default_item.in_use) == 1) {
1087 item = &vha->default_item;
1094 ql_log(ql_log_warn, vha, 0x5092,
1101 item->vha = vha;
1107 qla24xx_queue_purex_item(scsi_qla_host_t *vha, struct purex_item *pkt,
1108 void (*process_item)(struct scsi_qla_host *vha,
1111 struct purex_list *list = &vha->purex_list;
1120 set_bit(PROCESS_PUREX_IOCB, &vha->dpc_flags);
1127 * @vha: SCSI driver HA context
1131 *qla24xx_copy_std_pkt(struct scsi_qla_host *vha, void *pkt)
1135 item = qla24xx_alloc_purex_item(vha,
1147 * @vha: SCSI driver HA context
1152 qla27xx_copy_fpin_pkt(struct scsi_qla_host *vha, void **pkt,
1170 ql_log(ql_log_info, vha, 0x509a,
1174 item = qla24xx_alloc_purex_item(vha, total_bytes);
1191 ql_dbg(ql_dbg_async, vha, 0x5084,
1202 ql_log(ql_log_warn, vha, 0x507a,
1225 ql_log(ql_log_warn, vha, 0x5044,
1238 ql_log(ql_log_fatal, vha, 0x508b,
1251 * @vha: SCSI driver HA context
1256 qla2x00_async_event(scsi_qla_host_t *vha, struct rsp_que *rsp, uint16_t *mb)
1261 struct qla_hw_data *ha = vha->hw;
1269 if (!vha->hw->flags.fw_started) {
1270 ql_log(ql_log_warn, vha, 0x50ff,
1333 if (!vha->flags.online)
1337 qla2x00_process_completed_request(vha, rsp->req,
1342 ql_dbg(ql_dbg_async, vha, 0x5002,
1345 set_bit(RESET_MARKER_NEEDED, &vha->dpc_flags);
1351 vha->hw_err_cnt++;
1362 ql_log(ql_log_warn, vha, 0x5003,
1366 ql_log(ql_log_warn, vha, 0x5003,
1372 ha->isp_ops->mpi_fw_dump(vha, 1);
1373 ha->isp_ops->fw_dump(vha);
1379 ql_log(ql_log_fatal, vha, 0x5004,
1382 vha->flags.online = 0;
1383 vha->device_flags |= DFLG_DEV_FAILED;
1388 &vha->dpc_flags);
1390 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
1393 ql_log(ql_log_fatal, vha, 0x5005,
1396 vha->flags.online = 0;
1397 vha->device_flags |= DFLG_DEV_FAILED;
1399 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
1403 ql_log(ql_log_warn, vha, 0x5006,
1406 vha->hw_err_cnt++;
1408 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
1412 ql_log(ql_log_warn, vha, 0x5007,
1415 vha->hw_err_cnt++;
1417 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
1421 ql_dbg(ql_dbg_async, vha, 0x5008,
1426 ql_log(ql_log_warn, vha, 0x5090,
1428 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
1434 ql_dbg(ql_dbg_async, vha, 0x5009,
1437 if (atomic_read(&vha->loop_state) != LOOP_DOWN) {
1438 atomic_set(&vha->loop_state, LOOP_DOWN);
1439 atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME);
1440 qla2x00_mark_all_devices_lost(vha);
1443 if (vha->vp_idx) {
1444 atomic_set(&vha->vp_state, VP_FAILED);
1445 fc_vport_set_state(vha->fc_vport, FC_VPORT_FAILED);
1448 set_bit(REGISTER_FC4_NEEDED, &vha->dpc_flags);
1449 set_bit(REGISTER_FDMI_NEEDED, &vha->dpc_flags);
1451 vha->flags.management_server_logged_in = 0;
1452 qla2x00_post_aen_work(vha, FCH_EVT_LIP, mb[1]);
1461 ql_log(ql_log_info, vha, 0x500a,
1467 ql_log(ql_log_info, vha, 0x11a0,
1471 vha->flags.management_server_logged_in = 0;
1472 qla2x00_post_aen_work(vha, FCH_EVT_LINKUP, ha->link_data_rate);
1474 if (vha->link_down_time < vha->hw->port_down_retry_count) {
1475 vha->short_link_down_cnt++;
1476 vha->link_down_time = QLA2XX_MAX_LINK_DOWN_TIME;
1485 vha->link_down_time = 0;
1491 ql_log(ql_log_info, vha, 0x500b,
1495 if (atomic_read(&vha->loop_state) != LOOP_DOWN) {
1496 atomic_set(&vha->loop_state, LOOP_DOWN);
1497 atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME);
1503 if (!vha->vp_idx) {
1506 memcpy(vha->port_name, ha->port_name, WWN_SIZE);
1507 fc_host_port_name(vha->host) =
1508 wwn_to_u64(vha->port_name);
1510 vha, 0x00d8, "LOOP DOWN detected,"
1512 wwn_to_u64(vha->port_name));
1515 clear_bit(VP_CONFIG_OK, &vha->vp_flags);
1518 vha->device_flags |= DFLG_NO_CABLE;
1519 qla2x00_mark_all_devices_lost(vha);
1522 if (vha->vp_idx) {
1523 atomic_set(&vha->vp_state, VP_FAILED);
1524 fc_vport_set_state(vha->fc_vport, FC_VPORT_FAILED);
1527 vha->flags.management_server_logged_in = 0;
1529 qla2x00_post_aen_work(vha, FCH_EVT_LINKDOWN, 0);
1533 ql_dbg(ql_dbg_async, vha, 0x500c,
1536 if (atomic_read(&vha->loop_state) != LOOP_DOWN) {
1537 atomic_set(&vha->loop_state, LOOP_DOWN);
1538 atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME);
1539 qla2x00_mark_all_devices_lost(vha);
1542 if (vha->vp_idx) {
1543 atomic_set(&vha->vp_state, VP_FAILED);
1544 fc_vport_set_state(vha->fc_vport, FC_VPORT_FAILED);
1547 set_bit(RESET_MARKER_NEEDED, &vha->dpc_flags);
1550 vha->flags.management_server_logged_in = 0;
1551 qla2x00_post_aen_work(vha, FCH_EVT_LIPRESET, mb[1]);
1562 ql_dbg(ql_dbg_async, vha, 0x500d,
1565 if (ha->notify_dcbx_comp && !vha->vp_idx)
1569 ql_dbg(ql_dbg_async, vha, 0x500e,
1576 if (atomic_read(&vha->loop_state) != LOOP_DOWN) {
1577 atomic_set(&vha->loop_state, LOOP_DOWN);
1578 if (!atomic_read(&vha->loop_down_timer))
1579 atomic_set(&vha->loop_down_timer,
1582 qla2x00_mark_all_devices_lost(vha);
1585 if (vha->vp_idx) {
1586 atomic_set(&vha->vp_state, VP_FAILED);
1587 fc_vport_set_state(vha->fc_vport, FC_VPORT_FAILED);
1590 if (!(test_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags)))
1591 set_bit(RESET_MARKER_NEEDED, &vha->dpc_flags);
1593 set_bit(REGISTER_FC4_NEEDED, &vha->dpc_flags);
1594 set_bit(REGISTER_FDMI_NEEDED, &vha->dpc_flags);
1596 vha->flags.management_server_logged_in = 0;
1603 ql_dbg(ql_dbg_async, vha, 0x500f,
1606 if (atomic_read(&vha->loop_state) != LOOP_DOWN) {
1607 atomic_set(&vha->loop_state, LOOP_DOWN);
1608 if (!atomic_read(&vha->loop_down_timer))
1609 atomic_set(&vha->loop_down_timer,
1611 qla2x00_mark_all_devices_lost(vha);
1614 if (vha->vp_idx) {
1615 atomic_set(&vha->vp_state, VP_FAILED);
1616 fc_vport_set_state(vha->fc_vport, FC_VPORT_FAILED);
1619 set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags);
1620 set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags);
1641 (mb[1] != 0xffff)) && vha->vp_idx != (mb[3] & 0xff))
1645 ql_dbg(ql_dbg_async, vha, 0x5010,
1654 set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags);
1655 set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags);
1665 set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags);
1666 set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags);
1671 fcport = qla2x00_find_fcport_by_loopid(vha, mb[1]);
1676 ql_dbg(ql_dbg_async, vha, 0x508a,
1679 if (qla_ini_mode_enabled(vha)) {
1686 if (atomic_read(&vha->loop_state) != LOOP_DOWN) {
1687 atomic_set(&vha->loop_state, LOOP_DOWN);
1688 atomic_set(&vha->loop_down_timer,
1690 vha->device_flags |= DFLG_NO_CABLE;
1691 qla2x00_mark_all_devices_lost(vha);
1694 if (vha->vp_idx) {
1695 atomic_set(&vha->vp_state, VP_FAILED);
1696 fc_vport_set_state(vha->fc_vport,
1698 qla2x00_mark_all_devices_lost(vha);
1701 vha->flags.management_server_logged_in = 0;
1711 atomic_set(&vha->loop_down_timer, 0);
1712 if (atomic_read(&vha->loop_state) != LOOP_DOWN &&
1714 atomic_read(&vha->loop_state) != LOOP_DEAD) {
1715 ql_dbg(ql_dbg_async, vha, 0x5011,
1721 ql_dbg(ql_dbg_async, vha, 0x5012,
1728 atomic_set(&vha->loop_state, LOOP_UP);
1729 vha->scan.scan_retry = 0;
1731 set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags);
1732 set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags);
1733 set_bit(VP_CONFIG_OK, &vha->vp_flags);
1738 if (vha->vp_idx && test_bit(VP_SCR_NEEDED, &vha->vp_flags))
1741 if (ha->flags.npiv_supported && vha->vp_idx != (mb[3] & 0xff))
1744 ql_log(ql_log_warn, vha, 0x5013,
1749 host_pid = (vha->d_id.b.domain << 16) | (vha->d_id.b.area << 8)
1750 | vha->d_id.b.al_pa;
1752 ql_dbg(ql_dbg_async, vha, 0x5014,
1762 if (qla2x00_is_a_vp_did(vha, rscn_entry))
1765 atomic_set(&vha->loop_down_timer, 0);
1766 vha->flags.management_server_logged_in = 0;
1773 qla2x00_handle_rscn(vha, &ea);
1774 qla2x00_post_aen_work(vha, FCH_EVT_RSCN, rscn_entry);
1783 ql_dbg(ql_dbg_async, vha, 0x509b,
1786 ql_log(ql_log_warn, vha, 0x509b,
1792 ql_dbg(ql_dbg_async, vha, 0x5015,
1796 qla24xx_process_response_queue(vha, rsp);
1802 ql_dbg(ql_dbg_async, vha, 0x5016,
1805 vha->interface_err_cnt++;
1809 ql_dbg(ql_dbg_async, vha, 0x5017,
1814 ql_dbg(ql_dbg_async, vha, 0x5018,
1821 ql_log(ql_log_info, vha, 0x5019,
1827 ql_log(ql_log_info, vha, 0x501a,
1833 ql_log(ql_log_info, vha, 0x501b,
1840 ql_log(ql_log_info, vha, 0x501c,
1845 ql_log(ql_log_warn, vha, 0x501d,
1852 ql_dbg(ql_dbg_async, vha, 0x501e,
1857 ql_dbg(ql_dbg_async, vha, 0x501f,
1862 ql_dbg(ql_dbg_async, vha, 0x5020,
1867 if (IS_QLA8031(vha->hw) || IS_QLA8044(ha)) {
1872 set_bit(ISP_QUIESCE_NEEDED, &vha->dpc_flags);
1876 if (atomic_read(&vha->loop_state) == LOOP_DOWN)
1877 atomic_set(&vha->loop_down_timer,
1879 qla2xxx_wake_dpc(vha);
1884 if (ha->notify_lb_portup_comp && !vha->vp_idx)
1888 if (IS_QLA81XX(vha->hw) || IS_QLA8031(vha->hw) ||
1890 qla81xx_idc_event(vha, mb[0], mb[1]);
1895 vha->hw_err_cnt++;
1896 qla27xx_handle_8200_aen(vha, mb);
1902 qla83xx_handle_8200_aen(vha, mb);
1904 ql_dbg(ql_dbg_async, vha, 0x5052,
1913 vha->dport_status &= ~DPORT_DIAG_IN_PROGRESS;
1914 ql_dbg(ql_dbg_async, vha, 0x5052,
1917 memcpy(vha->dport_data, mb, sizeof(vha->dport_data));
1926 ql_dbg(ql_dbg_async, vha, 0x5052,
1937 ql_dbg(ql_dbg_async, vha, 0x5052,
1947 display_Laser_info(vha, mb[1], mb[2], mb[3]);
1948 ql_dbg(ql_dbg_async, vha, 0x505e,
1953 ql_dbg(ql_dbg_async, vha, 0x5091,
1955 set_bit(DETECT_SFP_CHANGE, &vha->dpc_flags);
1959 ql_dbg(ql_dbg_async, vha, 0x5091, "Transceiver Removal\n");
1963 ql_dbg(ql_dbg_async, vha, 0x5057,
1968 qlt_async_event(mb[0], vha, mb);
1970 if (!vha->vp_idx && ha->num_vhosts)
1976 * @vha: SCSI driver HA context
1981 qla2x00_process_completed_request(struct scsi_qla_host *vha,
1985 struct qla_hw_data *ha = vha->hw;
1989 ql_log(ql_log_warn, vha, 0x3014,
1993 set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags);
1995 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
2007 ql_log(ql_log_warn, vha, 0x3016, "Invalid SCSI SRB.\n");
2010 set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags);
2012 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
2017 qla_get_sp_from_handle(scsi_qla_host_t *vha, const char *func,
2020 struct qla_hw_data *ha = vha->hw;
2030 ql_log(ql_log_warn, vha, 0x5031,
2034 set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags);
2036 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
2041 ql_log(ql_log_warn, vha, 0x5032,
2047 ql_log(ql_log_warn, vha, 0x5033,
2059 qla2x00_get_sp_from_handle(scsi_qla_host_t *vha, const char *func,
2065 sp = qla_get_sp_from_handle(vha, func, req, iocb, &index);
2073 qla2x00_mbx_iocb_entry(scsi_qla_host_t *vha, struct req_que *req,
2084 sp = qla2x00_get_sp_from_handle(vha, func, req, mbx);
2097 ql_dbg(ql_dbg_async, vha, 0x5043,
2106 ql_dump_buffer(ql_dbg_async + ql_dbg_buffer, vha, 0x5029,
2117 ql_dbg(ql_dbg_async, vha, 0x5045,
2146 ql_log(ql_log_warn, vha, 0x5046,
2159 qla24xx_mbx_iocb_entry(scsi_qla_host_t *vha, struct req_que *req,
2163 struct qla_hw_data *ha = vha->hw;
2169 sp = qla2x00_get_sp_from_handle(vha, func, req, pkt);
2176 ql_log(ql_log_warn, vha, 0x509d,
2179 set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags);
2181 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
2197 qla24xxx_nack_iocb_entry(scsi_qla_host_t *vha, struct req_que *req,
2204 sp = qla2x00_get_sp_from_handle(vha, func, req, pkt);
2215 qla2x00_ct_entry(scsi_qla_host_t *vha, struct req_que *req,
2226 sp = qla2x00_get_sp_from_handle(vha, func, req, pkt);
2252 ql_log(ql_log_warn, vha, 0x5048,
2257 ql_log(ql_log_warn, vha, 0x5049,
2263 ql_dump_buffer(ql_dbg_async + ql_dbg_buffer, vha, 0x5035,
2277 res = qla2x00_chk_ms_status(vha, (ms_iocb_entry_t *)pkt,
2301 scsi_qla_host_t *vha;
2308 vha = sp->vha;
2328 ql_dbg(ql_dbg_user, vha, 0x700f,
2340 ql_dbg(ql_dbg_user + ql_dbg_verbose, vha, 0x700e,
2344 ql_dbg(ql_dbg_user, vha, 0x700f,
2357 ql_dbg(ql_dbg_user, vha, 0x5047,
2368 res = qla2x00_chk_ms_status(sp->vha, (ms_iocb_entry_t *)pkt,
2374 ql_dbg(ql_dbg_user, vha, 0x503e,
2395 ql_dbg(ql_dbg_user, vha, 0x503f,
2403 ql_dbg(ql_dbg_disc, vha, 0x911e,
2418 ql_dbg(ql_dbg_user, vha, 0x503f,
2422 ql_dbg(ql_dbg_user, vha, 0x503f,
2432 ql_dbg(ql_dbg_edif, vha, 0x911e,
2437 ql_log(ql_log_info, vha, 0x503f,
2440 ql_log(ql_log_info, vha, 0x503f,
2466 ql_dbg(ql_dbg_user, vha, 0x503f,
2472 ql_dbg(ql_dbg_user, vha, 0x5040,
2483 ql_dump_buffer(ql_dbg_user + ql_dbg_buffer, vha, 0x5056,
2497 qla24xx_logio_entry(scsi_qla_host_t *vha, struct req_que *req,
2509 sp = qla2x00_get_sp_from_handle(vha, func, req, logio);
2522 ql_log(ql_log_warn, fcport->vha, 0x5034,
2528 ql_dump_buffer(ql_dbg_async + ql_dbg_buffer, vha, 0x504d,
2535 ql_dbg(ql_dbg_async, sp->vha, 0x5036,
2540 vha->hw->exch_starvation = 0;
2603 vha->hw->exch_starvation++;
2604 if (vha->hw->exch_starvation > 5) {
2605 ql_log(ql_log_warn, vha, 0xd046,
2608 vha->hw->exch_starvation = 0;
2610 if (IS_P3P_TYPE(vha->hw))
2611 set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags);
2613 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
2614 qla2xxx_wake_dpc(vha);
2623 ql_log(ql_log_warn, sp->vha, 0x5037, "Async-%s failed: "
2630 ql_dbg(ql_dbg_disc, sp->vha, 0x5037, "Async-%s failed: "
2642 qla24xx_tm_iocb_entry(scsi_qla_host_t *vha, struct req_que *req, void *tsk)
2652 sp = qla2x00_get_sp_from_handle(vha, func, req, tsk);
2663 ql_log(ql_log_warn, fcport->vha, 0x5038,
2668 ql_log(ql_log_warn, fcport->vha, 0x5039,
2676 ql_log(ql_log_warn, fcport->vha, 0x503b,
2680 ql_log(ql_log_warn, fcport->vha, 0x503c,
2695 ql_dbg(ql_dbg_disc, fcport->vha, 0x3021,
2711 ql_dump_buffer(ql_dbg_async + ql_dbg_buffer, sp->vha, 0x5055,
2717 static void qla24xx_nvme_iocb_entry(scsi_qla_host_t *vha, struct req_que *req,
2736 atomic_dec(&sp->vha->hw->nvme_active_aen_cnt);
2767 ql_dbg(ql_dbg_io, fcport->vha, 0x307a,
2782 ql_log(ql_log_warn, fcport->vha, 0x5100,
2800 ql_log(ql_log_warn, fcport->vha, 0x3079,
2814 ql_dbg(ql_dbg_io, fcport->vha, 0x5060,
2833 ql_dbg(ql_dbg_disc, fcport->vha, 0x3021,
2857 static void qla_ctrlvp_completed(scsi_qla_host_t *vha, struct req_que *req,
2864 sp = qla2x00_get_sp_from_handle(vha, func, req, vce);
2869 ql_dbg(ql_dbg_vport, vha, 0x10c4,
2874 ql_dbg(ql_dbg_vport, vha, 0x10c5,
2880 ql_dbg(ql_dbg_vport, vha, 0x10c6,
2889 static void qla2x00_process_response_entry(struct scsi_qla_host *vha,
2900 qla2x00_status_entry(vha, rsp, pkt);
2906 qla2x00_process_completed_request(vha, rsp->req,
2913 qla2x00_process_completed_request(vha, rsp->req,
2920 qla2x00_mbx_iocb_entry(vha, rsp->req, (struct mbx_entry *)pkt);
2923 qla2x00_ct_entry(vha, rsp->req, pkt, CT_IOCB_TYPE);
2927 ql_log(ql_log_warn, vha, 0x504a,
2941 struct scsi_qla_host *vha;
2946 vha = pci_get_drvdata(ha->pdev);
2948 if (!vha->flags.online)
2963 qla2x00_error_entry(vha, rsp, pkt);
2969 qla2x00_process_response_entry(vha, rsp, pkt);
2982 struct scsi_qla_host *vha = sp->vha;
3008 ql_dbg(ql_dbg_io + ql_dbg_buffer, vha, 0x301c,
3010 sp->vha->host_no, cp->device->id, cp->device->lun,
3012 ql_dump_buffer(ql_dbg_io + ql_dbg_buffer, vha, 0x302b,
3032 struct scsi_qla_host *vha = sp->vha;
3051 ql_dbg(ql_dbg_io, vha, 0x3023,
3054 ql_dbg(ql_dbg_io, vha, 0x3024,
3101 ql_log(ql_log_warn, vha, 0x302f,
3143 qla25xx_process_bidir_status_iocb(scsi_qla_host_t *vha, void *pkt,
3146 struct qla_hw_data *ha = vha->hw;
3160 ql_log(ql_log_warn, vha, 0x70af,
3162 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
3168 ql_log(ql_log_warn, vha, 0x70b0,
3172 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
3196 vha->qla_stats.input_bytes +=
3198 vha->qla_stats.input_requests++;
3204 ql_dbg(ql_dbg_user, vha, 0x70b1,
3211 ql_dbg(ql_dbg_user, vha, 0x70b2,
3217 ql_dbg(ql_dbg_user, vha, 0x70b3,
3224 ql_dbg(ql_dbg_user, vha, 0x70b4,
3231 ql_dbg(ql_dbg_user, vha, 0x70b5,
3238 ql_dbg(ql_dbg_user, vha, 0x70b6,
3245 ql_dbg(ql_dbg_user, vha, 0x70b7,
3252 ql_dbg(ql_dbg_user, vha, 0x70b8,
3259 ql_dbg(ql_dbg_user, vha, 0x70b9,
3266 ql_dbg(ql_dbg_user, vha, 0x70ba,
3272 ql_dbg(ql_dbg_user, vha, 0x70bb,
3292 * @vha: SCSI driver HA context
3297 qla2x00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt)
3312 struct qla_hw_data *ha = vha->hw;
3336 ql_dbg(ql_dbg_io, vha, 0x3059,
3346 ql_dbg(ql_dbg_io, vha, 0x3075,
3348 __func__, vha->host_no, sts->handle);
3352 ql_dbg(ql_dbg_io, vha, 0x3017,
3356 if (!test_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags)) {
3358 set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags);
3360 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
3361 qla2xxx_wake_dpc(vha);
3369 ql_dbg(ql_dbg_io, vha, 0x3015,
3378 qla24xx_nvme_iocb_entry(vha, req, pkt, sp);
3383 qla25xx_process_bidir_status_iocb(vha, pkt, req, handle);
3389 qla24xx_tm_iocb_entry(vha, req, pkt);
3394 qla_chk_edif_rx_sa_delete_pending(vha, sp, sts24);
3398 qla2x00_process_completed_request(vha, req, handle);
3405 ql_dbg(ql_dbg_io, vha, 0x3018,
3454 ql_dbg(ql_dbg_io, fcport->vha, 0x3019,
3493 ql_dbg(ql_dbg_io, fcport->vha, 0x301a,
3504 ql_dbg(ql_dbg_io, fcport->vha, 0x301b,
3526 ql_log(ql_log_warn, fcport->vha, 0x301d,
3537 ql_dbg(ql_dbg_io, fcport->vha, 0x301e,
3551 ql_log(ql_log_warn, fcport->vha, 0x301f,
3555 vha->interface_err_cnt++;
3560 ql_dbg(ql_dbg_io, fcport->vha, 0x3030,
3575 ql_dbg(ql_dbg_io, fcport->vha, 0x3020,
3617 ql_dbg(ql_dbg_disc, fcport->vha, 0x3021,
3640 vha->hw_err_cnt++;
3652 ql_log(ql_log_info, fcport->vha, 0x3022,
3654 comp_status, scsi_status, res, vha->host_no,
3658 ql_dump_buffer(ql_dbg_tgt + ql_dbg_verbose, vha, 0xe0ee,
3661 vha->hw_err_cnt++;
3670 ql_dbg(ql_dbg_io, fcport->vha, 0x3022,
3672 comp_status, scsi_status, res, vha->host_no,
3697 struct scsi_qla_host *vha = pci_get_drvdata(ha->pdev);
3711 ql_log(ql_log_warn, vha, 0x3025,
3727 ql_dump_buffer(ql_dbg_io + ql_dbg_buffer, vha, 0x302c,
3745 * @vha: SCSI driver HA context
3751 qla2x00_error_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, sts_entry_t *pkt)
3754 struct qla_hw_data *ha = vha->hw;
3761 ql_dbg(ql_dbg_async, vha, 0x502a,
3785 sp = qla2x00_get_sp_from_handle(vha, func, req, pkt);
3798 sp = qla_get_sp_from_handle(vha, func, req, pkt, &index);
3807 ql_log(ql_log_warn, vha, 0x5030,
3814 * @vha: SCSI driver HA context
3818 qla24xx_mbx_completion(scsi_qla_host_t *vha, uint16_t mb0)
3823 struct qla_hw_data *ha = vha->hw;
3830 ql_dbg(ql_dbg_async, vha, 0x504e, "MBX pointer ERROR.\n");
3850 qla24xx_abort_iocb_entry(scsi_qla_host_t *vha, struct req_que *req,
3858 sp = qla2x00_get_sp_from_handle(vha, func, req, pkt);
3872 void qla24xx_nvme_ls4_iocb(struct scsi_qla_host *vha,
3879 sp = qla2x00_get_sp_from_handle(vha, func, req, pkt);
3890 * @vha: host adapter pointer
3895 static int qla_chk_cont_iocb_avail(struct scsi_qla_host *vha,
3920 ql_dbg(ql_dbg_init, vha, 0x5091,
3927 static void qla_marker_iocb_entry(scsi_qla_host_t *vha, struct req_que *req,
3934 if (!IS_FWI2_CAPABLE(vha->hw))
3937 sp = qla2x00_get_sp_from_handle(vha, func, req, pkt);
3942 ql_dbg(ql_dbg_taskm, vha, 0x8025, "marker failure.\n");
3951 * @vha: SCSI driver HA context
3954 void qla24xx_process_response_queue(struct scsi_qla_host *vha,
3958 struct qla_hw_data *ha = vha->hw;
3999 if (qla2x00_error_entry(vha, rsp, (sts_entry_t *) pkt))
4010 qla2x00_status_entry(vha, rsp, pkt);
4016 qla24xx_report_id_acquisition(vha,
4020 qla24xx_logio_entry(vha, rsp->req,
4024 qla24xx_els_ct_entry(vha, rsp->req, pkt, CT_IOCB_TYPE);
4027 qla24xx_els_ct_entry(vha, rsp->req, pkt, ELS_IOCB_TYPE);
4030 if (qla_ini_mode_enabled(vha)) {
4031 pure_item = qla24xx_copy_std_pkt(vha, pkt);
4034 qla24xx_queue_purex_item(vha, pure_item,
4041 qlt_handle_abts_recv(vha, rsp,
4045 qlt_24xx_process_atio_queue(vha, 1);
4051 qlt_response_pkt_all_vps(vha, rsp, (response_t *)pkt);
4054 qla24xx_nvme_ls4_iocb(vha, (struct pt_ls4_request *)pkt,
4059 qlt_response_pkt_all_vps(vha, rsp,
4062 qla24xxx_nack_iocb_entry(vha, rsp->req,
4066 qla_marker_iocb_entry(vha, rsp->req, (struct mrk_entry_24xx *)pkt);
4069 qla24xx_abort_iocb_entry(vha, rsp->req,
4073 qla24xx_mbx_iocb_entry(vha, rsp->req,
4077 qla_ctrlvp_completed(vha, rsp->req,
4084 pure_item = qla24xx_copy_std_pkt(vha, pkt);
4087 qla24xx_queue_purex_item(vha, pure_item,
4091 if (!vha->hw->flags.scm_enabled) {
4092 ql_log(ql_log_warn, vha, 0x5094,
4096 pure_item = qla27xx_copy_fpin_pkt(vha,
4101 qla24xx_queue_purex_item(vha, pure_item,
4106 if (qla_chk_cont_iocb_avail(vha, rsp, (response_t *)pkt, rsp_in)) {
4117 ql_dbg(ql_dbg_init, vha, 0x5091,
4122 qla24xx_auth_els(vha, (void **)&pkt, &rsp);
4125 ql_log(ql_log_warn, vha, 0x509c,
4131 qla28xx_sa_update_iocb_entry(vha, rsp->req,
4136 if (qla_chk_cont_iocb_avail(vha, rsp, (response_t *)pkt, rsp_in)) {
4140 ql_dbg(ql_dbg_init, vha, 0x2124,
4149 ql_dbg(ql_dbg_async, vha, 0x5042,
4169 qla2xxx_check_risc_status(scsi_qla_host_t *vha)
4173 struct qla_hw_data *ha = vha->hw;
4210 ql_log(ql_log_info, vha, 0x504c,
4230 scsi_qla_host_t *vha;
4257 vha = pci_get_drvdata(ha->pdev);
4260 if (qla2x00_check_reg32_for_disconnect(vha, stat))
4268 ql_log(ql_log_warn, vha, 0x504b,
4272 qla2xxx_check_risc_status(vha);
4274 ha->isp_ops->fw_dump(vha);
4275 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
4285 qla24xx_mbx_completion(vha, MSW(stat));
4294 qla2x00_async_event(vha, rsp, mb);
4298 qla24xx_process_response_queue(vha, rsp);
4306 qla24xx_process_response_queue(vha, rsp);
4309 ql_dbg(ql_dbg_async, vha, 0x504f,
4323 qlt_24xx_process_atio_queue(vha, 0);
4336 struct scsi_qla_host *vha;
4350 vha = pci_get_drvdata(ha->pdev);
4351 qla24xx_process_response_queue(vha, rsp);
4364 scsi_qla_host_t *vha;
4386 vha = pci_get_drvdata(ha->pdev);
4389 if (qla2x00_check_reg32_for_disconnect(vha, stat))
4397 ql_log(ql_log_info, vha, 0x5050,
4401 qla2xxx_check_risc_status(vha);
4402 vha->hw_err_cnt++;
4404 ha->isp_ops->fw_dump(vha);
4405 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
4415 qla24xx_mbx_completion(vha, MSW(stat));
4424 qla2x00_async_event(vha, rsp, mb);
4428 qla24xx_process_response_queue(vha, rsp);
4436 qla24xx_process_response_queue(vha, rsp);
4439 ql_dbg(ql_dbg_async, vha, 0x5051,
4450 qlt_24xx_process_atio_queue(vha, 0);
4527 scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev);
4551 ql_log(ql_log_fatal, vha, 0x00c7,
4557 ql_log(ql_log_info, vha, 0x00c6,
4575 vha->irq_offset = desc.pre_vectors;
4580 ql_log(ql_log_fatal, vha, 0x00c8,
4603 "qla2xxx%lu_%s", vha->host_no, msix_entries[i].name);
4628 "qla2xxx%lu_%s", vha->host_no,
4639 ql_log(ql_log_fatal, vha, 0x00cb,
4642 qla2x00_free_irqs(vha);
4654 ql_dbg(ql_dbg_multiq, vha, 0xc005,
4657 ql_dbg(ql_dbg_init, vha, 0x0055,
4674 scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev);
4689 ql_log(ql_log_warn, vha, 0x0034,
4697 ql_log(ql_log_warn, vha, 0x0035,
4705 ql_dbg(ql_dbg_init, vha, 0x0036,
4713 ql_log(ql_log_info, vha, 0x0037,
4723 ql_dbg(ql_dbg_init, vha, 0x0038,
4727 ql_log(ql_log_warn, vha, 0x0039,
4739 ql_log(ql_log_warn, vha, 0x003a,
4744 ql_dbg(ql_dbg_init, vha, 0x0125,
4764 qla2x00_free_irqs(scsi_qla_host_t *vha)
4766 struct qla_hw_data *ha = vha->hw;
4790 ql_dbg(ql_dbg_init, vha, 0x0042,
4804 scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev);
4808 "qla2xxx%lu_qpair%d", vha->host_no, qpair->id);
4811 ql_log(ql_log_fatal, vha, 0x00e6,