Lines Matching refs:vha

348 qla2x00_start_timer(scsi_qla_host_t *vha, unsigned long interval)  in qla2x00_start_timer()  argument
350 timer_setup(&vha->timer, qla2x00_timer, 0); in qla2x00_start_timer()
351 vha->timer.expires = jiffies + interval * HZ; in qla2x00_start_timer()
352 add_timer(&vha->timer); in qla2x00_start_timer()
353 vha->timer_active = 1; in qla2x00_start_timer()
357 qla2x00_restart_timer(scsi_qla_host_t *vha, unsigned long interval) in qla2x00_restart_timer() argument
360 if (vha->device_flags & DFLG_DEV_FAILED) { in qla2x00_restart_timer()
361 ql_dbg(ql_dbg_timer, vha, 0x600d, in qla2x00_restart_timer()
366 mod_timer(&vha->timer, jiffies + interval * HZ); in qla2x00_restart_timer()
370 qla2x00_stop_timer(scsi_qla_host_t *vha) in qla2x00_stop_timer() argument
372 del_timer_sync(&vha->timer); in qla2x00_stop_timer()
373 vha->timer_active = 0; in qla2x00_stop_timer()
388 static void qla_init_base_qpair(struct scsi_qla_host *vha, struct req_que *req, in qla_init_base_qpair() argument
391 struct qla_hw_data *ha = vha->hw; in qla_init_base_qpair()
396 ha->base_qpair->vha = vha; in qla_init_base_qpair()
413 scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev); in qla2x00_alloc_queues() local
417 ql_log(ql_log_fatal, vha, 0x003b, in qla2x00_alloc_queues()
425 ql_log(ql_log_fatal, vha, 0x003c, in qla2x00_alloc_queues()
432 ql_log(ql_log_warn, vha, 0x00e0, in qla2x00_alloc_queues()
437 qla_init_base_qpair(vha, req, rsp); in qla2x00_alloc_queues()
443 ql_log(ql_log_fatal, vha, 0x0180, in qla2x00_alloc_queues()
559 qla2x00_pci_info_str(struct scsi_qla_host *vha, char *str) in qla2x00_pci_info_str() argument
561 struct qla_hw_data *ha = vha->hw; in qla2x00_pci_info_str()
583 qla24xx_pci_info_str(struct scsi_qla_host *vha, char *str) in qla24xx_pci_info_str() argument
586 struct qla_hw_data *ha = vha->hw; in qla24xx_pci_info_str()
638 qla2x00_fw_version_str(struct scsi_qla_host *vha, char *str, size_t size) in qla2x00_fw_version_str() argument
641 struct qla_hw_data *ha = vha->hw; in qla2x00_fw_version_str()
676 qla24xx_fw_version_str(struct scsi_qla_host *vha, char *str, size_t size) in qla24xx_fw_version_str() argument
678 struct qla_hw_data *ha = vha->hw; in qla24xx_fw_version_str()
689 struct qla_hw_data *ha = sp->vha->hw; in qla2x00_sp_free_dma()
747 ql_dbg(ql_dbg_io, sp->vha, 0x3015, in qla2x00_sp_compl()
766 struct qla_hw_data *ha = sp->fcport->vha->hw; in qla2xxx_qpair_sp_free_dma()
819 ql_dbg(ql_dbg_io, sp->fcport->vha, 0x3079, in qla2xxx_qpair_sp_compl()
839 scsi_qla_host_t *vha = shost_priv(host); in qla2xxx_queuecommand() local
842 struct qla_hw_data *ha = vha->hw; in qla2xxx_queuecommand()
856 if (shost_use_blk_mq(vha->host)) { in qla2xxx_queuecommand()
860 } else if (vha->vp_idx && vha->qpair) { in qla2xxx_queuecommand()
861 qpair = vha->qpair; in qla2xxx_queuecommand()
870 ql_dbg(ql_dbg_aer, vha, 0x9010, in qla2xxx_queuecommand()
875 ql_dbg(ql_dbg_aer, vha, 0x9011, in qla2xxx_queuecommand()
885 ql_dbg(ql_dbg_io + ql_dbg_verbose, vha, 0x3003, in qla2xxx_queuecommand()
891 if (!vha->flags.difdix_supported && in qla2xxx_queuecommand()
893 ql_dbg(ql_dbg_io, vha, 0x3004, in qla2xxx_queuecommand()
908 ql_dbg(ql_dbg_io, vha, 0x3005, in qla2xxx_queuecommand()
929 sp = qla2x00_get_sp(vha, fcport, GFP_ATOMIC); in qla2xxx_queuecommand()
942 ql_dbg(ql_dbg_io + ql_dbg_verbose, vha, 0x3013, in qla2xxx_queuecommand()
969 scsi_qla_host_t *vha = shost_priv(host); in qla2xxx_mqueuecommand() local
972 struct qla_hw_data *ha = vha->hw; in qla2xxx_mqueuecommand()
980 ql_dbg(ql_dbg_io + ql_dbg_verbose, vha, 0x3076, in qla2xxx_mqueuecommand()
994 ql_dbg(ql_dbg_io, vha, 0x3077, in qla2xxx_mqueuecommand()
1029 ql_dbg(ql_dbg_io + ql_dbg_verbose, vha, 0x3078, in qla2xxx_mqueuecommand()
1071 scsi_qla_host_t *vha = shost_priv(cmd->device->host); in qla2x00_eh_wait_on_command() local
1072 struct qla_hw_data *ha = vha->hw; in qla2x00_eh_wait_on_command()
1076 ql_dbg(ql_dbg_taskm, vha, 0x8005, in qla2x00_eh_wait_on_command()
1108 qla2x00_wait_for_hba_online(scsi_qla_host_t *vha) in qla2x00_wait_for_hba_online() argument
1112 struct qla_hw_data *ha = vha->hw; in qla2x00_wait_for_hba_online()
1131 static inline int test_fcport_count(scsi_qla_host_t *vha) in test_fcport_count() argument
1133 struct qla_hw_data *ha = vha->hw; in test_fcport_count()
1138 ql_dbg(ql_dbg_init, vha, 0x00ec, in test_fcport_count()
1140 vha, vha->fcport_count); in test_fcport_count()
1141 res = (vha->fcport_count == 0); in test_fcport_count()
1152 qla2x00_wait_for_sess_deletion(scsi_qla_host_t *vha) in qla2x00_wait_for_sess_deletion() argument
1154 qla2x00_mark_all_devices_lost(vha, 0); in qla2x00_wait_for_sess_deletion()
1156 wait_event_timeout(vha->fcport_waitQ, test_fcport_count(vha), 10*HZ); in qla2x00_wait_for_sess_deletion()
1172 qla2x00_wait_for_hba_ready(scsi_qla_host_t *vha) in qla2x00_wait_for_hba_ready() argument
1174 struct qla_hw_data *ha = vha->hw; in qla2x00_wait_for_hba_ready()
1177 while ((qla2x00_reset_active(vha) || ha->dpc_active || in qla2x00_wait_for_hba_ready()
1179 test_bit(FX00_RESET_RECOVERY, &vha->dpc_flags) || in qla2x00_wait_for_hba_ready()
1180 test_bit(FX00_TARGET_SCAN, &vha->dpc_flags)) { in qla2x00_wait_for_hba_ready()
1188 qla2x00_wait_for_chip_reset(scsi_qla_host_t *vha) in qla2x00_wait_for_chip_reset() argument
1192 struct qla_hw_data *ha = vha->hw; in qla2x00_wait_for_chip_reset()
1268 scsi_qla_host_t *vha = shost_priv(cmd->device->host); in qla2xxx_eh_abort() local
1275 struct qla_hw_data *ha = vha->hw; in qla2xxx_eh_abort()
1278 ql_log(ql_log_info, vha, 0x8042, in qla2xxx_eh_abort()
1300 ql_dbg(ql_dbg_taskm, vha, 0x8002, in qla2xxx_eh_abort()
1302 vha->host_no, id, lun, sp, cmd, sp->handle); in qla2xxx_eh_abort()
1315 ql_dbg(ql_dbg_taskm, vha, 0x8003, in qla2xxx_eh_abort()
1318 ql_dbg(ql_dbg_taskm, vha, 0x8004, in qla2xxx_eh_abort()
1334 ql_log(ql_log_warn, vha, 0x8006, in qla2xxx_eh_abort()
1340 ql_log(ql_log_info, vha, 0x801c, in qla2xxx_eh_abort()
1342 vha->host_no, id, lun, wait, ret); in qla2xxx_eh_abort()
1348 qla2x00_eh_wait_for_pending_commands(scsi_qla_host_t *vha, unsigned int t, in qla2x00_eh_wait_for_pending_commands() argument
1353 struct qla_hw_data *ha = vha->hw; in qla2x00_eh_wait_for_pending_commands()
1361 req = vha->req; in qla2x00_eh_wait_for_pending_commands()
1369 if (vha->vp_idx != sp->vha->vp_idx) in qla2x00_eh_wait_for_pending_commands()
1408 scsi_qla_host_t *vha = shost_priv(cmd->device->host); in __qla2xxx_eh_generic_reset() local
1420 ql_log(ql_log_info, vha, 0x8009, in __qla2xxx_eh_generic_reset()
1421 "%s RESET ISSUED nexus=%ld:%d:%llu cmd=%p.\n", name, vha->host_no, in __qla2xxx_eh_generic_reset()
1425 if (qla2x00_wait_for_hba_online(vha) != QLA_SUCCESS) { in __qla2xxx_eh_generic_reset()
1426 ql_log(ql_log_warn, vha, 0x800a, in __qla2xxx_eh_generic_reset()
1433 ql_log(ql_log_warn, vha, 0x800c, in __qla2xxx_eh_generic_reset()
1438 if (qla2x00_eh_wait_for_pending_commands(vha, cmd->device->id, in __qla2xxx_eh_generic_reset()
1440 ql_log(ql_log_warn, vha, 0x800d, in __qla2xxx_eh_generic_reset()
1445 ql_log(ql_log_info, vha, 0x800e, in __qla2xxx_eh_generic_reset()
1447 vha->host_no, cmd->device->id, cmd->device->lun, cmd); in __qla2xxx_eh_generic_reset()
1452 ql_log(ql_log_info, vha, 0x800f, in __qla2xxx_eh_generic_reset()
1454 reset_errors[err], vha->host_no, cmd->device->id, cmd->device->lun, in __qla2xxx_eh_generic_reset()
1462 scsi_qla_host_t *vha = shost_priv(cmd->device->host); in qla2xxx_eh_device_reset() local
1463 struct qla_hw_data *ha = vha->hw; in qla2xxx_eh_device_reset()
1466 ql_log(ql_log_info, vha, 0x803e, in qla2xxx_eh_device_reset()
1478 scsi_qla_host_t *vha = shost_priv(cmd->device->host); in qla2xxx_eh_target_reset() local
1479 struct qla_hw_data *ha = vha->hw; in qla2xxx_eh_target_reset()
1482 ql_log(ql_log_info, vha, 0x803f, in qla2xxx_eh_target_reset()
1509 scsi_qla_host_t *vha = shost_priv(cmd->device->host); in qla2xxx_eh_bus_reset() local
1514 struct qla_hw_data *ha = vha->hw; in qla2xxx_eh_bus_reset()
1517 ql_log(ql_log_info, vha, 0x8040, in qla2xxx_eh_bus_reset()
1534 ql_log(ql_log_info, vha, 0x8012, in qla2xxx_eh_bus_reset()
1535 "BUS RESET ISSUED nexus=%ld:%d:%llu.\n", vha->host_no, id, lun); in qla2xxx_eh_bus_reset()
1537 if (qla2x00_wait_for_hba_online(vha) != QLA_SUCCESS) { in qla2xxx_eh_bus_reset()
1538 ql_log(ql_log_fatal, vha, 0x8013, in qla2xxx_eh_bus_reset()
1543 if (qla2x00_loop_reset(vha) == QLA_SUCCESS) in qla2xxx_eh_bus_reset()
1550 if (qla2x00_eh_wait_for_pending_commands(vha, 0, 0, WAIT_HOST) != in qla2xxx_eh_bus_reset()
1552 ql_log(ql_log_warn, vha, 0x8014, in qla2xxx_eh_bus_reset()
1558 ql_log(ql_log_warn, vha, 0x802b, in qla2xxx_eh_bus_reset()
1560 (ret == FAILED) ? "FAILED" : "SUCCEEDED", vha->host_no, id, lun); in qla2xxx_eh_bus_reset()
1583 scsi_qla_host_t *vha = shost_priv(cmd->device->host); in qla2xxx_eh_host_reset() local
1584 struct qla_hw_data *ha = vha->hw; in qla2xxx_eh_host_reset()
1591 ql_log(ql_log_info, vha, 0x8041, in qla2xxx_eh_host_reset()
1600 ql_log(ql_log_info, vha, 0x8018, in qla2xxx_eh_host_reset()
1601 "ADAPTER RESET ISSUED nexus=%ld:%d:%llu.\n", vha->host_no, id, lun); in qla2xxx_eh_host_reset()
1607 if (qla2x00_reset_active(vha) || ha->optrom_state != QLA_SWAITING) in qla2xxx_eh_host_reset()
1610 if (vha != base_vha) { in qla2xxx_eh_host_reset()
1611 if (qla2x00_vp_abort_isp(vha)) in qla2xxx_eh_host_reset()
1614 if (IS_P3P_TYPE(vha->hw)) { in qla2xxx_eh_host_reset()
1615 if (!qla82xx_fcoe_ctx_reset(vha)) { in qla2xxx_eh_host_reset()
1631 if (qla2x00_wait_for_hba_online(vha) != QLA_SUCCESS) { in qla2xxx_eh_host_reset()
1632 ql_log(ql_log_warn, vha, 0x802a, in qla2xxx_eh_host_reset()
1641 if (qla2x00_eh_wait_for_pending_commands(vha, 0, 0, WAIT_HOST) == in qla2xxx_eh_host_reset()
1646 ql_log(ql_log_info, vha, 0x8017, in qla2xxx_eh_host_reset()
1648 (ret == FAILED) ? "FAILED" : "SUCCEEDED", vha->host_no, id, lun); in qla2xxx_eh_host_reset()
1664 qla2x00_loop_reset(scsi_qla_host_t *vha) in qla2x00_loop_reset() argument
1668 struct qla_hw_data *ha = vha->hw; in qla2x00_loop_reset()
1671 return qlafx00_loop_reset(vha); in qla2x00_loop_reset()
1675 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla2x00_loop_reset()
1681 ql_dbg(ql_dbg_taskm, vha, 0x802c, in qla2x00_loop_reset()
1690 atomic_set(&vha->loop_state, LOOP_DOWN); in qla2x00_loop_reset()
1691 atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME); in qla2x00_loop_reset()
1692 qla2x00_mark_all_devices_lost(vha, 0); in qla2x00_loop_reset()
1693 ret = qla2x00_full_login_lip(vha); in qla2x00_loop_reset()
1695 ql_dbg(ql_dbg_taskm, vha, 0x802d, in qla2x00_loop_reset()
1701 ret = qla2x00_lip_reset(vha); in qla2x00_loop_reset()
1703 ql_dbg(ql_dbg_taskm, vha, 0x802e, in qla2x00_loop_reset()
1708 vha->marker_needed = 1; in qla2x00_loop_reset()
1719 scsi_qla_host_t *vha = qp->vha; in __qla2x00_abort_all_cmds() local
1720 struct qla_hw_data *ha = vha->hw; in __qla2x00_abort_all_cmds()
1722 struct qla_tgt *tgt = vha->vha_tgt.qla_tgt; in __qla2x00_abort_all_cmds()
1746 &vha->dpc_flags)) && in __qla2x00_abort_all_cmds()
1781 if (!vha->hw->tgt.tgt_ops || !tgt || in __qla2x00_abort_all_cmds()
1782 qla_ini_mode_enabled(vha)) { in __qla2x00_abort_all_cmds()
1785 vha, 0xf003, in __qla2x00_abort_all_cmds()
1787 vha->dpc_flags); in __qla2x00_abort_all_cmds()
1791 qlt_abort_cmd_on_host_reset(cmd->vha, cmd); in __qla2x00_abort_all_cmds()
1799 qla2x00_abort_all_cmds(scsi_qla_host_t *vha, int res) in qla2x00_abort_all_cmds() argument
1802 struct qla_hw_data *ha = vha->hw; in qla2x00_abort_all_cmds()
1830 scsi_qla_host_t *vha = shost_priv(sdev->host); in qla2xxx_slave_configure() local
1831 struct req_que *req = vha->req; in qla2xxx_slave_configure()
1833 if (IS_T10_PI_CAPABLE(vha->hw)) in qla2xxx_slave_configure()
2679 scsi_qla_host_t *vha = shost_priv(shost); in qla2xxx_scan_start() local
2681 if (vha->hw->flags.running_gold_fw) in qla2xxx_scan_start()
2684 set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); in qla2xxx_scan_start()
2685 set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); in qla2xxx_scan_start()
2686 set_bit(RSCN_UPDATE, &vha->dpc_flags); in qla2xxx_scan_start()
2687 set_bit(NPIV_CONFIG_NEEDED, &vha->dpc_flags); in qla2xxx_scan_start()
2693 scsi_qla_host_t *vha = shost_priv(shost); in qla2xxx_scan_finished() local
2695 if (test_bit(UNLOADING, &vha->dpc_flags)) in qla2xxx_scan_finished()
2697 if (!vha->host) in qla2xxx_scan_finished()
2699 if (time > vha->hw->loop_reset_delay * HZ) in qla2xxx_scan_finished()
2702 return atomic_read(&vha->loop_state) == LOOP_READY; in qla2xxx_scan_finished()
2707 struct scsi_qla_host *vha = container_of(work, in qla2x00_iocb_work_fn() local
2709 struct qla_hw_data *ha = vha->hw; in qla2x00_iocb_work_fn()
2717 while (!list_empty(&vha->work_list) && i > 0) { in qla2x00_iocb_work_fn()
2718 qla2x00_do_work(vha); in qla2x00_iocb_work_fn()
2722 spin_lock_irqsave(&vha->work_lock, flags); in qla2x00_iocb_work_fn()
2723 clear_bit(IOCB_WORK_ACTIVE, &vha->dpc_flags); in qla2x00_iocb_work_fn()
2724 spin_unlock_irqrestore(&vha->work_lock, flags); in qla2x00_iocb_work_fn()
3059 ha->mr.fcport.vha = base_vha; in qla2x00_probe_one()
3448 scsi_qla_host_t *vha; in qla2x00_shutdown() local
3451 vha = pci_get_drvdata(pdev); in qla2x00_shutdown()
3452 ha = vha->hw; in qla2x00_shutdown()
3454 ql_log(ql_log_info, vha, 0xfffa, in qla2x00_shutdown()
3461 set_bit(PFLG_DRIVER_REMOVING, &vha->pci_flags); in qla2x00_shutdown()
3469 qlafx00_driver_shutdown(vha, 20); in qla2x00_shutdown()
3473 qla2x00_disable_fce_trace(vha, NULL, NULL); in qla2x00_shutdown()
3479 qla2x00_disable_eft_trace(vha); in qla2x00_shutdown()
3483 qla2x00_abort_isp_cleanup(vha); in qla2x00_shutdown()
3486 qla2x00_try_to_stop_firmware(vha); in qla2x00_shutdown()
3490 vha->flags.online = 0; in qla2x00_shutdown()
3494 vha->flags.init_done = 0; in qla2x00_shutdown()
3498 qla2x00_free_irqs(vha); in qla2x00_shutdown()
3503 ql_log(ql_log_info, vha, 0xfffe, in qla2x00_shutdown()
3511 scsi_qla_host_t *vha; in qla2x00_delete_all_vps() local
3520 vha = list_first_entry(&base_vha->list, scsi_qla_host_t, list); in qla2x00_delete_all_vps()
3521 scsi_host_get(vha->host); in qla2x00_delete_all_vps()
3526 fc_vport_terminate(vha->fc_vport); in qla2x00_delete_all_vps()
3527 scsi_host_put(vha->host); in qla2x00_delete_all_vps()
3721 qla2x00_free_device(scsi_qla_host_t *vha) in qla2x00_free_device() argument
3723 struct qla_hw_data *ha = vha->hw; in qla2x00_free_device()
3725 qla2x00_abort_all_cmds(vha, DID_NO_CONNECT << 16); in qla2x00_free_device()
3728 if (vha->timer_active) in qla2x00_free_device()
3729 qla2x00_stop_timer(vha); in qla2x00_free_device()
3731 qla25xx_delete_queues(vha); in qla2x00_free_device()
3732 vha->flags.online = 0; in qla2x00_free_device()
3736 vha->flags.init_done = 0; in qla2x00_free_device()
3740 qla2x00_free_fcports(vha); in qla2x00_free_device()
3742 qla2x00_free_irqs(vha); in qla2x00_free_device()
3754 qla82xx_md_free(vha); in qla2x00_free_device()
3759 void qla2x00_free_fcports(struct scsi_qla_host *vha) in qla2x00_free_fcports() argument
3763 list_for_each_entry_safe(fcport, tfcport, &vha->vp_fcports, list) { in qla2x00_free_fcports()
3771 qla2x00_schedule_rport_del(struct scsi_qla_host *vha, fc_port_t *fcport, in qla2x00_schedule_rport_del() argument
3783 base_vha = pci_get_drvdata(vha->hw->pdev); in qla2x00_schedule_rport_del()
3784 spin_lock_irqsave(vha->host->host_lock, flags); in qla2x00_schedule_rport_del()
3786 spin_unlock_irqrestore(vha->host->host_lock, flags); in qla2x00_schedule_rport_del()
3787 qlt_do_generation_tick(vha, &base_vha->total_fcport_update_gen); in qla2x00_schedule_rport_del()
3793 ql_dbg(ql_dbg_disc, fcport->vha, 0x2109, in qla2x00_schedule_rport_del()
3799 qlt_do_generation_tick(vha, &now); in qla2x00_schedule_rport_del()
3812 void qla2x00_mark_device_lost(scsi_qla_host_t *vha, fc_port_t *fcport, in qla2x00_mark_device_lost() argument
3815 if (IS_QLAFX00(vha->hw)) { in qla2x00_mark_device_lost()
3817 qla2x00_schedule_rport_del(vha, fcport, defer); in qla2x00_mark_device_lost()
3822 vha->vp_idx == fcport->vha->vp_idx) { in qla2x00_mark_device_lost()
3824 qla2x00_schedule_rport_del(vha, fcport, defer); in qla2x00_mark_device_lost()
3836 set_bit(RELOGIN_NEEDED, &vha->dpc_flags); in qla2x00_mark_device_lost()
3853 qla2x00_mark_all_devices_lost(scsi_qla_host_t *vha, int defer) in qla2x00_mark_all_devices_lost() argument
3857 ql_dbg(ql_dbg_disc, vha, 0x20f1, in qla2x00_mark_all_devices_lost()
3860 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla2x00_mark_all_devices_lost()
3864 if (vha->vp_idx != 0 && vha->vp_idx != fcport->vha->vp_idx) in qla2x00_mark_all_devices_lost()
3876 qla2x00_schedule_rport_del(vha, fcport, defer); in qla2x00_mark_all_devices_lost()
3877 else if (vha->vp_idx == fcport->vha->vp_idx) in qla2x00_mark_all_devices_lost()
3878 qla2x00_schedule_rport_del(vha, fcport, defer); in qla2x00_mark_all_devices_lost()
4174 qla2x00_set_exlogins_buffer(scsi_qla_host_t *vha) in qla2x00_set_exlogins_buffer() argument
4178 struct qla_hw_data *ha = vha->hw; in qla2x00_set_exlogins_buffer()
4187 ql_log(ql_log_info, vha, 0xd021, "EXLOGIN count: %d.\n", ql2xexlogins); in qla2x00_set_exlogins_buffer()
4189 rval = qla_get_exlogin_status(vha, &size, &max_cnt); in qla2x00_set_exlogins_buffer()
4203 ql_log(ql_log_info, vha, 0xd024, in qla2x00_set_exlogins_buffer()
4207 ql_log(ql_log_info, vha, 0xd025, in qla2x00_set_exlogins_buffer()
4221 rval = qla_set_exlogin_mem_cfg(vha, ha->exlogin_buf_dma); in qla2x00_set_exlogins_buffer()
4223 ql_log(ql_log_fatal, vha, 0xd033, in qla2x00_set_exlogins_buffer()
4249 qla2x00_number_of_exch(scsi_qla_host_t *vha, u32 *ret_cnt, u16 max_cnt) in qla2x00_number_of_exch() argument
4254 if (max_cnt > vha->hw->max_exchg) in qla2x00_number_of_exch()
4255 max_cnt = vha->hw->max_exchg; in qla2x00_number_of_exch()
4257 if (qla_ini_mode_enabled(vha)) { in qla2x00_number_of_exch()
4263 } else if (qla_tgt_mode_enabled(vha)) { in qla2x00_number_of_exch()
4269 } else if (qla_dual_mode_enabled(vha)) { in qla2x00_number_of_exch()
4283 qla2x00_set_exchoffld_buffer(scsi_qla_host_t *vha) in qla2x00_set_exchoffld_buffer() argument
4288 struct qla_hw_data *ha = vha->hw; in qla2x00_set_exchoffld_buffer()
4297 rval = qla_get_exchoffld_status(vha, &size, &max_cnt); in qla2x00_set_exchoffld_buffer()
4304 qla2x00_number_of_exch(vha, &actual_cnt, max_cnt); in qla2x00_set_exchoffld_buffer()
4305 ql_log(ql_log_info, vha, 0xd014, in qla2x00_set_exchoffld_buffer()
4314 ql_log(ql_log_info, vha, 0xd016, in qla2x00_set_exchoffld_buffer()
4318 ql_log(ql_log_info, vha, 0xd017, in qla2x00_set_exchoffld_buffer()
4347 rval = qla_set_exchoffld_mem_cfg(vha); in qla2x00_set_exchoffld_buffer()
4349 ql_log(ql_log_fatal, vha, 0xd02e, in qla2x00_set_exchoffld_buffer()
4356 if (qla_ini_mode_enabled(vha)) in qla2x00_set_exchoffld_buffer()
4550 struct scsi_qla_host *vha = NULL; in qla2x00_create_host() local
4560 vha = shost_priv(host); in qla2x00_create_host()
4561 memset(vha, 0, sizeof(scsi_qla_host_t)); in qla2x00_create_host()
4563 vha->host = host; in qla2x00_create_host()
4564 vha->host_no = host->host_no; in qla2x00_create_host()
4565 vha->hw = ha; in qla2x00_create_host()
4567 INIT_LIST_HEAD(&vha->vp_fcports); in qla2x00_create_host()
4568 INIT_LIST_HEAD(&vha->work_list); in qla2x00_create_host()
4569 INIT_LIST_HEAD(&vha->list); in qla2x00_create_host()
4570 INIT_LIST_HEAD(&vha->qla_cmd_list); in qla2x00_create_host()
4571 INIT_LIST_HEAD(&vha->qla_sess_op_cmd_list); in qla2x00_create_host()
4572 INIT_LIST_HEAD(&vha->logo_list); in qla2x00_create_host()
4573 INIT_LIST_HEAD(&vha->plogi_ack_list); in qla2x00_create_host()
4574 INIT_LIST_HEAD(&vha->qp_list); in qla2x00_create_host()
4575 INIT_LIST_HEAD(&vha->gnl.fcports); in qla2x00_create_host()
4576 INIT_LIST_HEAD(&vha->nvme_rport_list); in qla2x00_create_host()
4577 INIT_LIST_HEAD(&vha->gpnid_list); in qla2x00_create_host()
4578 INIT_WORK(&vha->iocb_work, qla2x00_iocb_work_fn); in qla2x00_create_host()
4580 spin_lock_init(&vha->work_lock); in qla2x00_create_host()
4581 spin_lock_init(&vha->cmd_list_lock); in qla2x00_create_host()
4582 spin_lock_init(&vha->gnl.fcports_lock); in qla2x00_create_host()
4583 init_waitqueue_head(&vha->fcport_waitQ); in qla2x00_create_host()
4584 init_waitqueue_head(&vha->vref_waitq); in qla2x00_create_host()
4586 vha->gnl.size = sizeof(struct get_name_list_extended) * in qla2x00_create_host()
4588 vha->gnl.l = dma_alloc_coherent(&ha->pdev->dev, in qla2x00_create_host()
4589 vha->gnl.size, &vha->gnl.ldma, GFP_KERNEL); in qla2x00_create_host()
4590 if (!vha->gnl.l) { in qla2x00_create_host()
4591 ql_log(ql_log_fatal, vha, 0xd04a, in qla2x00_create_host()
4593 scsi_remove_host(vha->host); in qla2x00_create_host()
4598 vha->scan.size = ha->max_fibre_devices * sizeof(struct fab_scan_rp); in qla2x00_create_host()
4599 vha->scan.l = vmalloc(vha->scan.size); in qla2x00_create_host()
4600 if (!vha->scan.l) { in qla2x00_create_host()
4601 ql_log(ql_log_fatal, vha, 0xd04a, in qla2x00_create_host()
4603 dma_free_coherent(&ha->pdev->dev, vha->gnl.size, in qla2x00_create_host()
4604 vha->gnl.l, vha->gnl.ldma); in qla2x00_create_host()
4605 scsi_remove_host(vha->host); in qla2x00_create_host()
4608 INIT_DELAYED_WORK(&vha->scan.scan_work, qla_scan_work_fn); in qla2x00_create_host()
4610 sprintf(vha->host_str, "%s_%ld", QLA2XXX_DRIVER_NAME, vha->host_no); in qla2x00_create_host()
4611 ql_dbg(ql_dbg_init, vha, 0x0041, in qla2x00_create_host()
4613 vha->host, vha->hw, vha, in qla2x00_create_host()
4616 return vha; in qla2x00_create_host()
4620 qla2x00_alloc_work(struct scsi_qla_host *vha, enum qla_work_type type) in qla2x00_alloc_work() argument
4625 QLA_VHA_MARK_BUSY(vha, bail); in qla2x00_alloc_work()
4631 QLA_VHA_MARK_NOT_BUSY(vha); in qla2x00_alloc_work()
4642 qla2x00_post_work(struct scsi_qla_host *vha, struct qla_work_evt *e) in qla2x00_post_work() argument
4647 spin_lock_irqsave(&vha->work_lock, flags); in qla2x00_post_work()
4648 list_add_tail(&e->list, &vha->work_list); in qla2x00_post_work()
4650 if (!test_and_set_bit(IOCB_WORK_ACTIVE, &vha->dpc_flags)) in qla2x00_post_work()
4653 spin_unlock_irqrestore(&vha->work_lock, flags); in qla2x00_post_work()
4656 queue_work(vha->hw->wq, &vha->iocb_work); in qla2x00_post_work()
4662 qla2x00_post_aen_work(struct scsi_qla_host *vha, enum fc_host_event_code code, in qla2x00_post_aen_work() argument
4667 e = qla2x00_alloc_work(vha, QLA_EVT_AEN); in qla2x00_post_aen_work()
4673 return qla2x00_post_work(vha, e); in qla2x00_post_aen_work()
4677 qla2x00_post_idc_ack_work(struct scsi_qla_host *vha, uint16_t *mb) in qla2x00_post_idc_ack_work() argument
4681 e = qla2x00_alloc_work(vha, QLA_EVT_IDC_ACK); in qla2x00_post_idc_ack_work()
4686 return qla2x00_post_work(vha, e); in qla2x00_post_idc_ack_work()
4691 struct scsi_qla_host *vha, \
4696 e = qla2x00_alloc_work(vha, type); \
4706 return qla2x00_post_work(vha, e); \
4718 qla2x00_post_uevent_work(struct scsi_qla_host *vha, u32 code) in qla2x00_post_uevent_work() argument
4722 e = qla2x00_alloc_work(vha, QLA_EVT_UEVENT); in qla2x00_post_uevent_work()
4727 return qla2x00_post_work(vha, e); in qla2x00_post_uevent_work()
4731 qla2x00_uevent_emit(struct scsi_qla_host *vha, u32 code) in qla2x00_uevent_emit() argument
4739 vha->host_no); in qla2x00_uevent_emit()
4745 kobject_uevent_env(&vha->hw->pdev->dev.kobj, KOBJ_CHANGE, envp); in qla2x00_uevent_emit()
4749 qlafx00_post_aenfx_work(struct scsi_qla_host *vha, uint32_t evtcode, in qlafx00_post_aenfx_work() argument
4754 e = qla2x00_alloc_work(vha, QLA_EVT_AENFX); in qlafx00_post_aenfx_work()
4761 return qla2x00_post_work(vha, e); in qlafx00_post_aenfx_work()
4764 int qla24xx_post_upd_fcport_work(struct scsi_qla_host *vha, fc_port_t *fcport) in qla24xx_post_upd_fcport_work() argument
4768 e = qla2x00_alloc_work(vha, QLA_EVT_UPD_FCPORT); in qla24xx_post_upd_fcport_work()
4773 return qla2x00_post_work(vha, e); in qla24xx_post_upd_fcport_work()
4777 void qla24xx_create_new_sess(struct scsi_qla_host *vha, struct qla_work_evt *e) in qla24xx_create_new_sess() argument
4785 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_create_new_sess()
4789 spin_lock_irqsave(&vha->hw->tgt.sess_lock, flags); in qla24xx_create_new_sess()
4790 fcport = qla2x00_find_fcport_by_wwpn(vha, e->u.new_sess.port_name, 1); in qla24xx_create_new_sess()
4798 qlt_plogi_ack_link(vha, pla, fcport, QLT_PLOGI_LINK_SAME_WWN); in qla24xx_create_new_sess()
4805 spin_unlock_irqrestore(&vha->hw->tgt.sess_lock, flags); in qla24xx_create_new_sess()
4806 fcport = qla2x00_alloc_fcport(vha, GFP_KERNEL); in qla24xx_create_new_sess()
4822 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_create_new_sess()
4831 spin_lock_irqsave(&vha->hw->tgt.sess_lock, flags); in qla24xx_create_new_sess()
4833 tfcp = qla2x00_find_fcport_by_wwpn(vha, in qla24xx_create_new_sess()
4837 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_create_new_sess()
4844 list_add_tail(&fcport->list, &vha->vp_fcports); in qla24xx_create_new_sess()
4848 qlt_plogi_ack_link(vha, pla, fcport, in qla24xx_create_new_sess()
4853 spin_unlock_irqrestore(&vha->hw->tgt.sess_lock, flags); in qla24xx_create_new_sess()
4882 qlt_plogi_ack_unref(vha, pla); in qla24xx_create_new_sess()
4886 spin_lock_irqsave(&vha->hw->tgt.sess_lock, flags); in qla24xx_create_new_sess()
4887 tfcp = qla2x00_find_fcport_by_nportid(vha, in qla24xx_create_new_sess()
4893 ql_dbg(ql_dbg_disc, vha, 0xffff, in qla24xx_create_new_sess()
4912 spin_unlock_irqrestore(&vha->hw->tgt.sess_lock, flags); in qla24xx_create_new_sess()
4917 if (N2N_TOPO(vha->hw)) in qla24xx_create_new_sess()
4920 if (N2N_TOPO(vha->hw)) { in qla24xx_create_new_sess()
4921 if (vha->flags.nvme_enabled) { in qla24xx_create_new_sess()
4930 qla24xx_fcport_handle_login(vha, fcport); in qla24xx_create_new_sess()
4942 static void qla_sp_retry(struct scsi_qla_host *vha, struct qla_work_evt *e) in qla_sp_retry() argument
4949 ql_dbg(ql_dbg_disc, vha, 0x2043, in qla_sp_retry()
4952 qla24xx_sp_unmap(vha, sp); in qla_sp_retry()
4957 qla2x00_do_work(struct scsi_qla_host *vha) in qla2x00_do_work() argument
4963 spin_lock_irqsave(&vha->work_lock, flags); in qla2x00_do_work()
4964 list_splice_init(&vha->work_list, &work); in qla2x00_do_work()
4965 spin_unlock_irqrestore(&vha->work_lock, flags); in qla2x00_do_work()
4972 fc_host_post_event(vha->host, fc_get_event_number(), in qla2x00_do_work()
4976 qla81xx_idc_ack(vha, e->u.idc_ack.mb); in qla2x00_do_work()
4979 qla2x00_async_login(vha, e->u.logio.fcport, in qla2x00_do_work()
4983 qla2x00_async_logout(vha, e->u.logio.fcport); in qla2x00_do_work()
4986 qla2x00_async_logout_done(vha, e->u.logio.fcport, in qla2x00_do_work()
4990 qla2x00_async_adisc(vha, e->u.logio.fcport, in qla2x00_do_work()
4994 qla2x00_async_adisc_done(vha, e->u.logio.fcport, in qla2x00_do_work()
4998 qla2x00_uevent_emit(vha, e->u.uevent.code); in qla2x00_do_work()
5001 qlafx00_process_aen(vha, e); in qla2x00_do_work()
5004 qla24xx_async_gidpn(vha, e->u.fcport.fcport); in qla2x00_do_work()
5007 qla24xx_async_gpnid(vha, &e->u.gpnid.id); in qla2x00_do_work()
5010 qla24xx_sp_unmap(vha, e->u.iosb.sp); in qla2x00_do_work()
5013 qla2x00_relogin(vha); in qla2x00_do_work()
5016 qla24xx_create_new_sess(vha, e); in qla2x00_do_work()
5019 qla24xx_async_gpdb(vha, e->u.fcport.fcport, in qla2x00_do_work()
5023 qla24xx_async_prli(vha, e->u.fcport.fcport); in qla2x00_do_work()
5026 qla24xx_async_gpsc(vha, e->u.fcport.fcport); in qla2x00_do_work()
5029 qla2x00_update_fcport(vha, e->u.fcport.fcport); in qla2x00_do_work()
5032 qla24xx_async_gnl(vha, e->u.fcport.fcport); in qla2x00_do_work()
5035 qla24xx_do_nack_work(vha, e); in qla2x00_do_work()
5038 qla2x00_async_prlo(vha, e->u.logio.fcport); in qla2x00_do_work()
5041 qla2x00_async_prlo_done(vha, e->u.logio.fcport, in qla2x00_do_work()
5045 qla24xx_async_gpnft(vha, e->u.gpnft.fc4_type, in qla2x00_do_work()
5049 qla24xx_async_gpnft_done(vha, e->u.iosb.sp); in qla2x00_do_work()
5052 qla24xx_async_gnnft_done(vha, e->u.iosb.sp); in qla2x00_do_work()
5055 qla24xx_async_gnnid(vha, e->u.fcport.fcport); in qla2x00_do_work()
5058 qla24xx_async_gfpnid(vha, e->u.fcport.fcport); in qla2x00_do_work()
5061 qla_sp_retry(vha, e); in qla2x00_do_work()
5064 qla_do_iidma_work(vha, e->u.fcport.fcport); in qla2x00_do_work()
5067 qla24xx_els_dcmd2_iocb(vha, ELS_DCMD_PLOGI, in qla2x00_do_work()
5075 QLA_VHA_MARK_NOT_BUSY(vha); in qla2x00_do_work()
5079 int qla24xx_post_relogin_work(struct scsi_qla_host *vha) in qla24xx_post_relogin_work() argument
5083 e = qla2x00_alloc_work(vha, QLA_EVT_RELOGIN); in qla24xx_post_relogin_work()
5086 set_bit(RELOGIN_NEEDED, &vha->dpc_flags); in qla24xx_post_relogin_work()
5090 return qla2x00_post_work(vha, e); in qla24xx_post_relogin_work()
5096 void qla2x00_relogin(struct scsi_qla_host *vha) in qla2x00_relogin() argument
5102 list_for_each_entry(fcport, &vha->vp_fcports, list) { in qla2x00_relogin()
5117 if (vha->hw->current_topology != ISP_CFG_NL) { in qla2x00_relogin()
5121 qla2x00_fcport_event_handler(vha, &ea); in qla2x00_relogin()
5122 } else if (vha->hw->current_topology == in qla2x00_relogin()
5126 qla2x00_local_device_login(vha, in qla2x00_relogin()
5131 ql_dbg(ql_dbg_disc, vha, 0x2003, in qla2x00_relogin()
5135 (vha, fcport); in qla2x00_relogin()
5138 &vha->dpc_flags); in qla2x00_relogin()
5140 ql_dbg(ql_dbg_disc, vha, 0x2007, in qla2x00_relogin()
5154 if (test_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags)) in qla2x00_relogin()
5159 set_bit(RELOGIN_NEEDED, &vha->dpc_flags); in qla2x00_relogin()
5161 ql_dbg(ql_dbg_disc, vha, 0x400e, in qla2x00_relogin()
5571 __qla83xx_set_drv_presence(scsi_qla_host_t *vha) in __qla83xx_set_drv_presence() argument
5574 struct qla_hw_data *ha = vha->hw; in __qla83xx_set_drv_presence()
5577 rval = qla83xx_rd_reg(vha, QLA83XX_IDC_DRV_PRESENCE, &drv_presence); in __qla83xx_set_drv_presence()
5580 rval = qla83xx_wr_reg(vha, QLA83XX_IDC_DRV_PRESENCE, in __qla83xx_set_drv_presence()
5588 qla83xx_set_drv_presence(scsi_qla_host_t *vha) in qla83xx_set_drv_presence() argument
5592 qla83xx_idc_lock(vha, 0); in qla83xx_set_drv_presence()
5593 rval = __qla83xx_set_drv_presence(vha); in qla83xx_set_drv_presence()
5594 qla83xx_idc_unlock(vha, 0); in qla83xx_set_drv_presence()
5600 __qla83xx_clear_drv_presence(scsi_qla_host_t *vha) in __qla83xx_clear_drv_presence() argument
5603 struct qla_hw_data *ha = vha->hw; in __qla83xx_clear_drv_presence()
5606 rval = qla83xx_rd_reg(vha, QLA83XX_IDC_DRV_PRESENCE, &drv_presence); in __qla83xx_clear_drv_presence()
5609 rval = qla83xx_wr_reg(vha, QLA83XX_IDC_DRV_PRESENCE, in __qla83xx_clear_drv_presence()
5617 qla83xx_clear_drv_presence(scsi_qla_host_t *vha) in qla83xx_clear_drv_presence() argument
5621 qla83xx_idc_lock(vha, 0); in qla83xx_clear_drv_presence()
5622 rval = __qla83xx_clear_drv_presence(vha); in qla83xx_clear_drv_presence()
5623 qla83xx_idc_unlock(vha, 0); in qla83xx_clear_drv_presence()
5629 qla83xx_need_reset_handler(scsi_qla_host_t *vha) in qla83xx_need_reset_handler() argument
5631 struct qla_hw_data *ha = vha->hw; in qla83xx_need_reset_handler()
5638 qla83xx_rd_reg(vha, QLA83XX_IDC_DRIVER_ACK, &drv_ack); in qla83xx_need_reset_handler()
5639 qla83xx_rd_reg(vha, QLA83XX_IDC_DRV_PRESENCE, &drv_presence); in qla83xx_need_reset_handler()
5644 ql_log(ql_log_warn, vha, 0xb067, in qla83xx_need_reset_handler()
5653 qla83xx_wr_reg(vha, QLA83XX_IDC_DRV_PRESENCE, in qla83xx_need_reset_handler()
5658 qla83xx_idc_unlock(vha, 0); in qla83xx_need_reset_handler()
5660 qla83xx_idc_lock(vha, 0); in qla83xx_need_reset_handler()
5663 qla83xx_wr_reg(vha, QLA83XX_IDC_DEV_STATE, QLA8XXX_DEV_COLD); in qla83xx_need_reset_handler()
5664 ql_log(ql_log_info, vha, 0xb068, "HW State: COLD/RE-INIT.\n"); in qla83xx_need_reset_handler()
5668 qla83xx_device_bootstrap(scsi_qla_host_t *vha) in qla83xx_device_bootstrap() argument
5673 qla83xx_wr_reg(vha, QLA83XX_IDC_DEV_STATE, QLA8XXX_DEV_INITIALIZING); in qla83xx_device_bootstrap()
5674 ql_log(ql_log_info, vha, 0xb069, "HW State: INITIALIZING.\n"); in qla83xx_device_bootstrap()
5677 __qla83xx_get_idc_control(vha, &idc_control); in qla83xx_device_bootstrap()
5679 __qla83xx_set_idc_control(vha, 0); in qla83xx_device_bootstrap()
5681 qla83xx_idc_unlock(vha, 0); in qla83xx_device_bootstrap()
5682 rval = qla83xx_restart_nic_firmware(vha); in qla83xx_device_bootstrap()
5683 qla83xx_idc_lock(vha, 0); in qla83xx_device_bootstrap()
5686 ql_log(ql_log_fatal, vha, 0xb06a, in qla83xx_device_bootstrap()
5688 qla83xx_wr_reg(vha, QLA83XX_IDC_DEV_STATE, QLA8XXX_DEV_FAILED); in qla83xx_device_bootstrap()
5689 ql_log(ql_log_info, vha, 0xb06b, "HW State: FAILED.\n"); in qla83xx_device_bootstrap()
5691 ql_dbg(ql_dbg_p3p, vha, 0xb06c, in qla83xx_device_bootstrap()
5693 qla83xx_wr_reg(vha, QLA83XX_IDC_DEV_STATE, QLA8XXX_DEV_READY); in qla83xx_device_bootstrap()
5694 ql_log(ql_log_info, vha, 0xb06d, "HW State: READY.\n"); in qla83xx_device_bootstrap()
6226 qla2xxx_wake_dpc(struct scsi_qla_host *vha) in qla2xxx_wake_dpc() argument
6228 struct qla_hw_data *ha = vha->hw; in qla2xxx_wake_dpc()
6231 if (!test_bit(UNLOADING, &vha->dpc_flags) && t) in qla2xxx_wake_dpc()
6243 qla2x00_rst_aen(scsi_qla_host_t *vha) in qla2x00_rst_aen() argument
6245 if (vha->flags.online && !vha->flags.reset_active && in qla2x00_rst_aen()
6246 !atomic_read(&vha->loop_down_timer) && in qla2x00_rst_aen()
6247 !(test_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags))) { in qla2x00_rst_aen()
6249 clear_bit(RESET_MARKER_NEEDED, &vha->dpc_flags); in qla2x00_rst_aen()
6255 vha->marker_needed = 1; in qla2x00_rst_aen()
6256 } while (!atomic_read(&vha->loop_down_timer) && in qla2x00_rst_aen()
6257 (test_bit(RESET_MARKER_NEEDED, &vha->dpc_flags))); in qla2x00_rst_aen()
6272 scsi_qla_host_t *vha = from_timer(vha, t, timer); in qla2x00_timer() local
6278 struct qla_hw_data *ha = vha->hw; in qla2x00_timer()
6282 ql_dbg(ql_dbg_timer, vha, 0x6000, in qla2x00_timer()
6285 qla2x00_restart_timer(vha, WATCH_INTERVAL); in qla2x00_timer()
6295 qla2x00_check_reg16_for_disconnect(vha, w); in qla2x00_timer()
6299 if (!vha->vp_idx && IS_P3P_TYPE(ha)) { in qla2x00_timer()
6300 if (test_bit(ISP_QUIESCE_NEEDED, &vha->dpc_flags)) in qla2x00_timer()
6303 qla82xx_watchdog(vha); in qla2x00_timer()
6305 qla8044_watchdog(vha); in qla2x00_timer()
6308 if (!vha->vp_idx && IS_QLAFX00(ha)) in qla2x00_timer()
6309 qlafx00_timer_routine(vha); in qla2x00_timer()
6312 if (atomic_read(&vha->loop_down_timer) > 0 && in qla2x00_timer()
6313 !(test_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags)) && in qla2x00_timer()
6314 !(test_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags)) in qla2x00_timer()
6315 && vha->flags.online) { in qla2x00_timer()
6317 if (atomic_read(&vha->loop_down_timer) == in qla2x00_timer()
6318 vha->loop_down_abort_time) { in qla2x00_timer()
6320 ql_log(ql_log_info, vha, 0x6008, in qla2x00_timer()
6323 if (!IS_QLA2100(ha) && vha->link_down_timeout) in qla2x00_timer()
6324 atomic_set(&vha->loop_state, LOOP_DEAD); in qla2x00_timer()
6331 if (!vha->vp_idx) { in qla2x00_timer()
6353 &vha->dpc_flags); in qla2x00_timer()
6356 &vha->dpc_flags); in qla2x00_timer()
6366 if (atomic_dec_and_test(&vha->loop_down_timer) != 0) { in qla2x00_timer()
6367 if (!(vha->device_flags & DFLG_NO_CABLE)) { in qla2x00_timer()
6368 ql_log(ql_log_warn, vha, 0x6009, in qla2x00_timer()
6373 &vha->dpc_flags); in qla2x00_timer()
6376 &vha->dpc_flags); in qla2x00_timer()
6379 ql_dbg(ql_dbg_timer, vha, 0x600a, in qla2x00_timer()
6381 atomic_read(&vha->loop_down_timer)); in qla2x00_timer()
6384 if (!vha->vp_idx && (ha->beacon_blink_led == 1)) { in qla2x00_timer()
6387 set_bit(BEACON_BLINK_NEEDED, &vha->dpc_flags); in qla2x00_timer()
6393 if (!list_empty(&vha->work_list)) { in qla2x00_timer()
6397 spin_lock_irqsave(&vha->work_lock, flags); in qla2x00_timer()
6398 if (!test_and_set_bit(IOCB_WORK_ACTIVE, &vha->dpc_flags)) in qla2x00_timer()
6400 spin_unlock_irqrestore(&vha->work_lock, flags); in qla2x00_timer()
6402 queue_work(vha->hw->wq, &vha->iocb_work); in qla2x00_timer()
6409 if (!vha->vp_idx && in qla2x00_timer()
6412 ql_log(ql_log_info, vha, 0x3002, in qla2x00_timer()
6416 set_bit(SET_ZIO_THRESHOLD_NEEDED, &vha->dpc_flags); in qla2x00_timer()
6421 if ((test_bit(ISP_ABORT_NEEDED, &vha->dpc_flags) || in qla2x00_timer()
6422 test_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags) || in qla2x00_timer()
6423 test_bit(FCPORT_UPDATE_NEEDED, &vha->dpc_flags) || in qla2x00_timer()
6425 test_bit(RESET_MARKER_NEEDED, &vha->dpc_flags) || in qla2x00_timer()
6426 test_bit(BEACON_BLINK_NEEDED, &vha->dpc_flags) || in qla2x00_timer()
6427 test_bit(ISP_UNRECOVERABLE, &vha->dpc_flags) || in qla2x00_timer()
6428 test_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags) || in qla2x00_timer()
6429 test_bit(VP_DPC_NEEDED, &vha->dpc_flags) || in qla2x00_timer()
6430 test_bit(RELOGIN_NEEDED, &vha->dpc_flags))) { in qla2x00_timer()
6431 ql_dbg(ql_dbg_timer, vha, 0x600b, in qla2x00_timer()
6435 test_bit(ISP_ABORT_NEEDED, &vha->dpc_flags), in qla2x00_timer()
6436 test_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags), in qla2x00_timer()
6437 test_bit(FCPORT_UPDATE_NEEDED, &vha->dpc_flags), in qla2x00_timer()
6439 test_bit(RESET_MARKER_NEEDED, &vha->dpc_flags)); in qla2x00_timer()
6440 ql_dbg(ql_dbg_timer, vha, 0x600c, in qla2x00_timer()
6444 test_bit(BEACON_BLINK_NEEDED, &vha->dpc_flags), in qla2x00_timer()
6445 test_bit(ISP_UNRECOVERABLE, &vha->dpc_flags), in qla2x00_timer()
6446 test_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags), in qla2x00_timer()
6447 test_bit(VP_DPC_NEEDED, &vha->dpc_flags), in qla2x00_timer()
6448 test_bit(RELOGIN_NEEDED, &vha->dpc_flags)); in qla2x00_timer()
6449 qla2xxx_wake_dpc(vha); in qla2x00_timer()
6452 qla2x00_restart_timer(vha, WATCH_INTERVAL); in qla2x00_timer()
6500 qla2x00_request_firmware(scsi_qla_host_t *vha) in qla2x00_request_firmware() argument
6502 struct qla_hw_data *ha = vha->hw; in qla2x00_request_firmware()
6536 ql_log(ql_log_warn, vha, 0x0063, in qla2x00_request_firmware()
6562 scsi_qla_host_t *vha = pci_get_drvdata(pdev); in qla2xxx_pci_error_detected() local
6563 struct qla_hw_data *ha = vha->hw; in qla2xxx_pci_error_detected()
6565 ql_dbg(ql_dbg_aer, vha, 0x9000, in qla2xxx_pci_error_detected()
6569 ql_log(ql_log_info, vha, 0xffff, in qla2xxx_pci_error_detected()
6578 set_bit(QPAIR_ONLINE_CHECK_NEEDED, &vha->dpc_flags); in qla2xxx_pci_error_detected()
6579 qla2xxx_wake_dpc(vha); in qla2xxx_pci_error_detected()
6587 ql_dbg(ql_dbg_aer, vha, 0x9001, "Pci channel io frozen\n"); in qla2xxx_pci_error_detected()
6588 qla82xx_clear_pending_mbx(vha); in qla2xxx_pci_error_detected()
6590 qla2x00_free_irqs(vha); in qla2xxx_pci_error_detected()
6593 qla2x00_abort_all_cmds(vha, DID_RESET << 16); in qla2xxx_pci_error_detected()
6595 set_bit(QPAIR_ONLINE_CHECK_NEEDED, &vha->dpc_flags); in qla2xxx_pci_error_detected()
6596 qla2xxx_wake_dpc(vha); in qla2xxx_pci_error_detected()
6601 qla2x00_abort_all_cmds(vha, DID_NO_CONNECT << 16); in qla2xxx_pci_error_detected()
6603 set_bit(QPAIR_ONLINE_CHECK_NEEDED, &vha->dpc_flags); in qla2xxx_pci_error_detected()
6604 qla2xxx_wake_dpc(vha); in qla2xxx_pci_error_detected()
6850 scsi_qla_host_t *vha = (scsi_qla_host_t *)shost->hostdata; in qla2xxx_map_queues() local
6852 if (USER_CTRL_IRQ(vha->hw)) in qla2xxx_map_queues()
6855 rc = blk_mq_pci_map_queues(&shost->tag_set, vha->hw->pdev, 0); in qla2xxx_map_queues()