Lines Matching refs:base_vha
827 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev); in qla2xxx_queuecommand() local
831 if (unlikely(test_bit(UNLOADING, &base_vha->dpc_flags)) || in qla2xxx_queuecommand()
889 atomic_read(&base_vha->loop_state) == LOOP_DEAD) { in qla2xxx_queuecommand()
893 atomic_read(&base_vha->loop_state)); in qla2xxx_queuecommand()
951 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev); in qla2xxx_mqueuecommand() local
971 atomic_read(&base_vha->loop_state) == LOOP_DEAD) { in qla2xxx_mqueuecommand()
975 atomic_read(&base_vha->loop_state)); in qla2xxx_mqueuecommand()
1083 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_wait_for_hba_online() local
1086 while (((test_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags)) || in qla2x00_wait_for_hba_online()
1087 test_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags) || in qla2x00_wait_for_hba_online()
1088 test_bit(ISP_ABORT_RETRY, &base_vha->dpc_flags) || in qla2x00_wait_for_hba_online()
1093 if (base_vha->flags.online) in qla2x00_wait_for_hba_online()
1153 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_wait_for_hba_ready() local
1159 if (test_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_wait_for_hba_ready()
1171 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_wait_for_chip_reset() local
1174 while (((test_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags)) || in qla2x00_wait_for_chip_reset()
1175 test_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags) || in qla2x00_wait_for_chip_reset()
1176 test_bit(ISP_ABORT_RETRY, &base_vha->dpc_flags) || in qla2x00_wait_for_chip_reset()
1181 if (!test_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags) && in qla2x00_wait_for_chip_reset()
1570 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2xxx_eh_host_reset() local
1592 if (vha != base_vha) { in qla2xxx_eh_host_reset()
1607 set_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_eh_host_reset()
1608 if (ha->isp_ops->abort_isp(base_vha)) { in qla2xxx_eh_host_reset()
1609 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_eh_host_reset()
1611 set_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags); in qla2xxx_eh_host_reset()
1619 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_eh_host_reset()
2738 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_iocb_work_fn() local
2742 if (test_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_iocb_work_fn()
2763 scsi_qla_host_t *base_vha = NULL; in qla2x00_probe_one() local
3096 base_vha = qla2x00_create_host(sht, ha); in qla2x00_probe_one()
3097 if (!base_vha) { in qla2x00_probe_one()
3102 pci_set_drvdata(pdev, base_vha); in qla2x00_probe_one()
3103 set_bit(PFLG_DRIVER_PROBING, &base_vha->pci_flags); in qla2x00_probe_one()
3105 host = base_vha->host; in qla2x00_probe_one()
3106 base_vha->req = req; in qla2x00_probe_one()
3108 base_vha->mgmt_svr_loop_id = in qla2x00_probe_one()
3109 qla2x00_reserve_mgmt_server_loop_id(base_vha); in qla2x00_probe_one()
3111 base_vha->mgmt_svr_loop_id = MANAGEMENT_SERVER + in qla2x00_probe_one()
3112 base_vha->vp_idx; in qla2x00_probe_one()
3115 ha->mr.fcport.vha = base_vha; in qla2x00_probe_one()
3147 ql_dbg(ql_dbg_init, base_vha, 0x0033, in qla2x00_probe_one()
3155 INIT_WORK(&base_vha->iocb_work, qla2x00_iocb_work_fn); in qla2x00_probe_one()
3165 ql_log(ql_log_fatal, base_vha, 0x003d, in qla2x00_probe_one()
3176 ql_dbg(ql_dbg_init, base_vha, 0x0192, in qla2x00_probe_one()
3181 ql_dbg(ql_dbg_init, base_vha, 0x0194, in qla2x00_probe_one()
3185 ql_dbg(ql_dbg_init, base_vha, 0x0193, in qla2x00_probe_one()
3190 qlt_probe_one_stage1(base_vha, ha); in qla2x00_probe_one()
3231 ql_dbg(ql_dbg_multiq, base_vha, 0xc009, in qla2x00_probe_one()
3234 ql_dbg(ql_dbg_multiq, base_vha, 0xc00a, in qla2x00_probe_one()
3239 ql_dbg(ql_dbg_init, base_vha, 0x003e, in qla2x00_probe_one()
3242 ql_dbg(ql_dbg_init, base_vha, 0x003f, in qla2x00_probe_one()
3252 if (ha->isp_ops->initialize_adapter(base_vha)) { in qla2x00_probe_one()
3253 ql_log(ql_log_fatal, base_vha, 0x00d6, in qla2x00_probe_one()
3255 base_vha->device_flags); in qla2x00_probe_one()
3262 ql_log(ql_log_fatal, base_vha, 0x00d7, in qla2x00_probe_one()
3266 qla8044_wr_direct(base_vha, in qla2x00_probe_one()
3270 ql_log(ql_log_fatal, base_vha, 0x0150, in qla2x00_probe_one()
3283 ql_dbg(ql_dbg_init, base_vha, 0x0032, in qla2x00_probe_one()
3285 host->can_queue, base_vha->req, in qla2x00_probe_one()
3286 base_vha->mgmt_svr_loop_id, host->sg_tablesize); in qla2x00_probe_one()
3299 qla2xxx_create_qpair(base_vha, 5, 0, startit); in qla2x00_probe_one()
3301 qla_init_iocb_limit(base_vha); in qla2x00_probe_one()
3310 "%s_dpc", base_vha->host_str); in qla2x00_probe_one()
3312 ql_log(ql_log_fatal, base_vha, 0x00ed, in qla2x00_probe_one()
3318 ql_dbg(ql_dbg_init, base_vha, 0x00ee, in qla2x00_probe_one()
3327 qla2xxx_wake_dpc(base_vha); in qla2x00_probe_one()
3332 sprintf(wq_name, "qla2xxx_%lu_dpc_lp_wq", base_vha->host_no); in qla2x00_probe_one()
3336 sprintf(wq_name, "qla2xxx_%lu_dpc_hp_wq", base_vha->host_no); in qla2x00_probe_one()
3346 list_add_tail(&base_vha->list, &ha->vp_list); in qla2x00_probe_one()
3347 base_vha->host->irq = ha->pdev->irq; in qla2x00_probe_one()
3350 qla2x00_start_timer(base_vha, WATCH_INTERVAL); in qla2x00_probe_one()
3351 ql_dbg(ql_dbg_init, base_vha, 0x00ef, in qla2x00_probe_one()
3354 ql_dbg(ql_dbg_init, base_vha, 0x00f0, in qla2x00_probe_one()
3362 base_vha->flags.difdix_supported = 1; in qla2x00_probe_one()
3363 ql_dbg(ql_dbg_init, base_vha, 0x00f1, in qla2x00_probe_one()
3389 base_vha->flags.difdix_supported = 0; in qla2x00_probe_one()
3395 ret = qlafx00_fx_disc(base_vha, in qla2x00_probe_one()
3396 &base_vha->hw->mr.fcport, FXDISC_GET_CONFIG_INFO); in qla2x00_probe_one()
3405 base_vha->flags.init_done = 1; in qla2x00_probe_one()
3406 base_vha->flags.online = 1; in qla2x00_probe_one()
3409 ql_dbg(ql_dbg_init, base_vha, 0x00f2, in qla2x00_probe_one()
3412 if (qla_ini_mode_enabled(base_vha) || in qla2x00_probe_one()
3413 qla_dual_mode_enabled(base_vha)) in qla2x00_probe_one()
3416 ql_dbg(ql_dbg_init, base_vha, 0x0122, in qla2x00_probe_one()
3419 qla2x00_alloc_sysfs_attr(base_vha); in qla2x00_probe_one()
3422 ret = qlafx00_fx_disc(base_vha, in qla2x00_probe_one()
3423 &base_vha->hw->mr.fcport, FXDISC_GET_PORT_INFO); in qla2x00_probe_one()
3426 ret = qlafx00_fx_disc(base_vha, in qla2x00_probe_one()
3427 &base_vha->hw->mr.fcport, FXDISC_REG_HOST_INFO); in qla2x00_probe_one()
3430 qla2x00_init_host_attr(base_vha); in qla2x00_probe_one()
3432 qla2x00_dfs_setup(base_vha); in qla2x00_probe_one()
3434 ql_log(ql_log_info, base_vha, 0x00fb, in qla2x00_probe_one()
3436 ql_log(ql_log_info, base_vha, 0x00fc, in qla2x00_probe_one()
3438 pdev->device, ha->isp_ops->pci_info_str(base_vha, pci_info, in qla2x00_probe_one()
3441 base_vha->host_no, in qla2x00_probe_one()
3442 ha->isp_ops->fw_version_str(base_vha, fw_str, sizeof(fw_str))); in qla2x00_probe_one()
3444 qlt_add_target(ha, base_vha); in qla2x00_probe_one()
3446 clear_bit(PFLG_DRIVER_PROBING, &base_vha->pci_flags); in qla2x00_probe_one()
3448 if (test_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_probe_one()
3454 if (base_vha->gnl.l) { in qla2x00_probe_one()
3455 dma_free_coherent(&ha->pdev->dev, base_vha->gnl.size, in qla2x00_probe_one()
3456 base_vha->gnl.l, base_vha->gnl.ldma); in qla2x00_probe_one()
3457 base_vha->gnl.l = NULL; in qla2x00_probe_one()
3460 if (base_vha->timer_active) in qla2x00_probe_one()
3461 qla2x00_stop_timer(base_vha); in qla2x00_probe_one()
3462 base_vha->flags.online = 0; in qla2x00_probe_one()
3470 qla2x00_free_device(base_vha); in qla2x00_probe_one()
3471 scsi_host_put(base_vha->host); in qla2x00_probe_one()
3507 static void __qla_set_remove_flag(scsi_qla_host_t *base_vha) in __qla_set_remove_flag() argument
3513 if (!base_vha) in __qla_set_remove_flag()
3516 ha = base_vha->hw; in __qla_set_remove_flag()
3526 set_bit(PFLG_DRIVER_REMOVING, &base_vha->pci_flags); in __qla_set_remove_flag()
3599 qla2x00_delete_all_vps(struct qla_hw_data *ha, scsi_qla_host_t *base_vha) in qla2x00_delete_all_vps() argument
3608 BUG_ON(base_vha->list.next == &ha->vp_list); in qla2x00_delete_all_vps()
3610 vha = list_first_entry(&base_vha->list, scsi_qla_host_t, list); in qla2x00_delete_all_vps()
3698 scsi_qla_host_t *base_vha; in qla2x00_remove_one() local
3701 base_vha = pci_get_drvdata(pdev); in qla2x00_remove_one()
3702 ha = base_vha->hw; in qla2x00_remove_one()
3703 ql_log(ql_log_info, base_vha, 0xb079, in qla2x00_remove_one()
3705 __qla_set_remove_flag(base_vha); in qla2x00_remove_one()
3714 dma_free_coherent(&ha->pdev->dev, base_vha->gnl.size, in qla2x00_remove_one()
3715 base_vha->gnl.l, base_vha->gnl.ldma); in qla2x00_remove_one()
3716 base_vha->gnl.l = NULL; in qla2x00_remove_one()
3717 scsi_host_put(base_vha->host); in qla2x00_remove_one()
3722 qla2x00_wait_for_hba_ready(base_vha); in qla2x00_remove_one()
3728 if (test_and_set_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_remove_one()
3734 qla2x00_abort_isp_cleanup(base_vha); in qla2x00_remove_one()
3737 ql_dbg(ql_dbg_p3p, base_vha, 0xb07e, in qla2x00_remove_one()
3739 if (qla83xx_clear_drv_presence(base_vha) != QLA_SUCCESS) in qla2x00_remove_one()
3740 ql_dbg(ql_dbg_p3p, base_vha, 0xb079, in qla2x00_remove_one()
3744 qla2x00_try_to_stop_firmware(base_vha); in qla2x00_remove_one()
3747 qla2x00_wait_for_sess_deletion(base_vha); in qla2x00_remove_one()
3749 qla_nvme_delete(base_vha); in qla2x00_remove_one()
3752 base_vha->gnl.size, base_vha->gnl.l, base_vha->gnl.ldma); in qla2x00_remove_one()
3754 base_vha->gnl.l = NULL; in qla2x00_remove_one()
3756 vfree(base_vha->scan.l); in qla2x00_remove_one()
3759 qlafx00_driver_shutdown(base_vha, 20); in qla2x00_remove_one()
3761 qla2x00_delete_all_vps(ha, base_vha); in qla2x00_remove_one()
3763 qla2x00_dfs_remove(base_vha); in qla2x00_remove_one()
3765 qla84xx_put_chip(base_vha); in qla2x00_remove_one()
3768 if (base_vha->timer_active) in qla2x00_remove_one()
3769 qla2x00_stop_timer(base_vha); in qla2x00_remove_one()
3771 base_vha->flags.online = 0; in qla2x00_remove_one()
3783 qlt_remove_target(ha, base_vha); in qla2x00_remove_one()
3785 qla2x00_free_sysfs_attr(base_vha, true); in qla2x00_remove_one()
3787 fc_remove_host(base_vha->host); in qla2x00_remove_one()
3790 scsi_remove_host(base_vha->host); in qla2x00_remove_one()
3792 qla2x00_free_device(base_vha); in qla2x00_remove_one()
3796 scsi_host_put(base_vha->host); in qla2x00_remove_one()
5442 qla83xx_schedule_work(scsi_qla_host_t *base_vha, int work_code) in qla83xx_schedule_work() argument
5444 struct qla_hw_data *ha = base_vha->hw; in qla83xx_schedule_work()
5457 ql_dbg(ql_dbg_p3p, base_vha, 0xb05e, in qla83xx_schedule_work()
5470 ql_log(ql_log_warn, base_vha, 0xb05f, in qla83xx_schedule_work()
5483 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla83xx_nic_core_unrecoverable_work() local
5486 qla83xx_idc_lock(base_vha, 0); in qla83xx_nic_core_unrecoverable_work()
5487 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, &dev_state); in qla83xx_nic_core_unrecoverable_work()
5488 qla83xx_reset_ownership(base_vha); in qla83xx_nic_core_unrecoverable_work()
5491 qla83xx_wr_reg(base_vha, QLA83XX_IDC_DEV_STATE, in qla83xx_nic_core_unrecoverable_work()
5493 ql_log(ql_log_info, base_vha, 0xb060, "HW State: FAILED.\n"); in qla83xx_nic_core_unrecoverable_work()
5494 qla83xx_schedule_work(base_vha, QLA83XX_IDC_STATE_HANDLER); in qla83xx_nic_core_unrecoverable_work()
5496 qla83xx_idc_unlock(base_vha, 0); in qla83xx_nic_core_unrecoverable_work()
5505 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla83xx_idc_state_handler_work() local
5508 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler_work()
5509 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, &dev_state); in qla83xx_idc_state_handler_work()
5512 qla83xx_idc_state_handler(base_vha); in qla83xx_idc_state_handler_work()
5513 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler_work()
5517 qla83xx_check_nic_core_fw_alive(scsi_qla_host_t *base_vha) in qla83xx_check_nic_core_fw_alive() argument
5525 ql_dbg(ql_dbg_p3p, base_vha, 0xb07c, in qla83xx_check_nic_core_fw_alive()
5531 qla83xx_idc_lock(base_vha, 0); in qla83xx_check_nic_core_fw_alive()
5532 qla83xx_rd_reg(base_vha, QLA83XX_FW_HEARTBEAT, in qla83xx_check_nic_core_fw_alive()
5534 qla83xx_idc_unlock(base_vha, 0); in qla83xx_check_nic_core_fw_alive()
5536 qla83xx_idc_lock(base_vha, 0); in qla83xx_check_nic_core_fw_alive()
5537 qla83xx_rd_reg(base_vha, QLA83XX_FW_HEARTBEAT, in qla83xx_check_nic_core_fw_alive()
5539 qla83xx_idc_unlock(base_vha, 0); in qla83xx_check_nic_core_fw_alive()
5551 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla83xx_nic_core_reset_work() local
5555 if (qla2xxx_mctp_dump(base_vha) != QLA_SUCCESS) in qla83xx_nic_core_reset_work()
5556 ql_log(ql_log_warn, base_vha, 0xb081, in qla83xx_nic_core_reset_work()
5562 if (qla83xx_check_nic_core_fw_alive(base_vha) == QLA_SUCCESS) { in qla83xx_nic_core_reset_work()
5563 qla83xx_idc_lock(base_vha, 0); in qla83xx_nic_core_reset_work()
5564 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, in qla83xx_nic_core_reset_work()
5566 qla83xx_idc_unlock(base_vha, 0); in qla83xx_nic_core_reset_work()
5568 ql_dbg(ql_dbg_p3p, base_vha, 0xb07a, in qla83xx_nic_core_reset_work()
5575 if (qla83xx_nic_core_reset(base_vha)) { in qla83xx_nic_core_reset_work()
5577 ql_dbg(ql_dbg_p3p, base_vha, 0xb061, in qla83xx_nic_core_reset_work()
5590 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla83xx_service_idc_aen() local
5593 qla83xx_idc_lock(base_vha, 0); in qla83xx_service_idc_aen()
5594 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, &dev_state); in qla83xx_service_idc_aen()
5595 qla83xx_rd_reg(base_vha, QLA83XX_IDC_CONTROL, &idc_control); in qla83xx_service_idc_aen()
5596 qla83xx_idc_unlock(base_vha, 0); in qla83xx_service_idc_aen()
5599 ql_dbg(ql_dbg_p3p, base_vha, 0xb062, in qla83xx_service_idc_aen()
5601 qla83xx_schedule_work(base_vha, QLA83XX_NIC_CORE_RESET); in qla83xx_service_idc_aen()
5602 } else if (qla83xx_check_nic_core_fw_alive(base_vha) == in qla83xx_service_idc_aen()
5604 ql_dbg(ql_dbg_p3p, base_vha, 0xb07b, in qla83xx_service_idc_aen()
5606 qla83xx_schedule_work(base_vha, QLA83XX_NIC_CORE_RESET); in qla83xx_service_idc_aen()
5610 qla83xx_schedule_work(base_vha, QLA83XX_IDC_STATE_HANDLER); in qla83xx_service_idc_aen()
5635 qla83xx_force_lock_recovery(scsi_qla_host_t *base_vha) in qla83xx_force_lock_recovery() argument
5641 struct qla_hw_data *ha = base_vha->hw; in qla83xx_force_lock_recovery()
5643 ql_dbg(ql_dbg_p3p, base_vha, 0xb086, in qla83xx_force_lock_recovery()
5646 rval = qla83xx_rd_reg(base_vha, QLA83XX_IDC_LOCK_RECOVERY, &data); in qla83xx_force_lock_recovery()
5654 rval = qla83xx_wr_reg(base_vha, QLA83XX_IDC_LOCK_RECOVERY, in qla83xx_force_lock_recovery()
5661 rval = qla83xx_rd_reg(base_vha, QLA83XX_IDC_LOCK_RECOVERY, in qla83xx_force_lock_recovery()
5669 rval = qla83xx_wr_reg(base_vha, in qla83xx_force_lock_recovery()
5675 rval = qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_UNLOCK, in qla83xx_force_lock_recovery()
5680 rval = qla83xx_wr_reg(base_vha, QLA83XX_DRIVER_LOCKID, in qla83xx_force_lock_recovery()
5685 rval = qla83xx_wr_reg(base_vha, in qla83xx_force_lock_recovery()
5697 qla83xx_idc_lock_recovery(scsi_qla_host_t *base_vha) in qla83xx_idc_lock_recovery() argument
5705 rval = qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCKID, &o_drv_lockid); in qla83xx_idc_lock_recovery()
5711 if (qla83xx_force_lock_recovery(base_vha) == QLA_SUCCESS) in qla83xx_idc_lock_recovery()
5717 rval = qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCKID, &n_drv_lockid); in qla83xx_idc_lock_recovery()
5732 qla83xx_idc_lock(scsi_qla_host_t *base_vha, uint16_t requester_id) in qla83xx_idc_lock() argument
5736 struct qla_hw_data *ha = base_vha->hw; in qla83xx_idc_lock()
5740 if (qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCK, &data) in qla83xx_idc_lock()
5744 qla83xx_wr_reg(base_vha, QLA83XX_DRIVER_LOCKID, in qla83xx_idc_lock()
5747 qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCKID, in qla83xx_idc_lock()
5749 ql_dbg(ql_dbg_p3p, base_vha, 0xb063, in qla83xx_idc_lock()
5754 if (qla83xx_idc_lock_recovery(base_vha) in qla83xx_idc_lock()
5759 ql_log(ql_log_warn, base_vha, 0xb075, in qla83xx_idc_lock()
6255 qla83xx_idc_unlock(scsi_qla_host_t *base_vha, uint16_t requester_id) in qla83xx_idc_unlock() argument
6262 struct qla_hw_data *ha = base_vha->hw; in qla83xx_idc_unlock()
6269 if (qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCKID, &data) in qla83xx_idc_unlock()
6272 qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_UNLOCK, &data); in qla83xx_idc_unlock()
6274 qla83xx_wr_reg(base_vha, QLA83XX_DRIVER_LOCKID, 0xff); in qla83xx_idc_unlock()
6281 ql_dbg(ql_dbg_p3p, base_vha, 0xb064, in qla83xx_idc_unlock()
6289 ql_dbg(ql_dbg_p3p, base_vha, 0xb065, in qla83xx_idc_unlock()
6300 if (qla83xx_access_control(base_vha, options, 0, 0, NULL)) { in qla83xx_idc_unlock()
6305 ql_dbg(ql_dbg_p3p, base_vha, 0xb066, in qla83xx_idc_unlock()
6447 qla83xx_idc_state_handler(scsi_qla_host_t *base_vha) in qla83xx_idc_state_handler() argument
6449 struct qla_hw_data *ha = base_vha->hw; in qla83xx_idc_state_handler()
6460 ql_log(ql_log_warn, base_vha, 0xb06e, in qla83xx_idc_state_handler()
6465 qla83xx_wr_reg(base_vha, QLA83XX_IDC_DEV_STATE, in qla83xx_idc_state_handler()
6467 ql_log(ql_log_info, base_vha, 0xb06f, in qla83xx_idc_state_handler()
6471 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, &dev_state); in qla83xx_idc_state_handler()
6475 qla83xx_idc_audit(base_vha, in qla83xx_idc_state_handler()
6478 ql_dbg(ql_dbg_p3p, base_vha, 0xb070, in qla83xx_idc_state_handler()
6484 rval = qla83xx_device_bootstrap(base_vha); in qla83xx_idc_state_handler()
6487 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
6489 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
6494 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
6496 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
6500 qla83xx_need_reset_handler(base_vha); in qla83xx_idc_state_handler()
6503 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
6505 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
6513 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
6515 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
6522 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
6524 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
6530 qla83xx_idc_audit(base_vha, in qla83xx_idc_state_handler()
6533 __qla83xx_clear_drv_presence(base_vha); in qla83xx_idc_state_handler()
6534 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
6535 qla8xxx_dev_failed_handler(base_vha); in qla83xx_idc_state_handler()
6537 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
6540 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
6542 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
6545 ql_log(ql_log_warn, base_vha, 0xb071, in qla83xx_idc_state_handler()
6547 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
6548 qla8xxx_dev_failed_handler(base_vha); in qla83xx_idc_state_handler()
6550 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
6565 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_disable_board_on_pci_error() local
6567 ql_log(ql_log_warn, base_vha, 0x015b, in qla2x00_disable_board_on_pci_error()
6571 ql_log(ql_log_info, base_vha, 0xfffc, in qla2x00_disable_board_on_pci_error()
6573 base_vha->pci_flags); in qla2x00_disable_board_on_pci_error()
6581 if (test_and_set_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_disable_board_on_pci_error()
6584 qla2x00_wait_for_sess_deletion(base_vha); in qla2x00_disable_board_on_pci_error()
6586 qla2x00_delete_all_vps(ha, base_vha); in qla2x00_disable_board_on_pci_error()
6588 qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16); in qla2x00_disable_board_on_pci_error()
6590 qla2x00_dfs_remove(base_vha); in qla2x00_disable_board_on_pci_error()
6592 qla84xx_put_chip(base_vha); in qla2x00_disable_board_on_pci_error()
6594 if (base_vha->timer_active) in qla2x00_disable_board_on_pci_error()
6595 qla2x00_stop_timer(base_vha); in qla2x00_disable_board_on_pci_error()
6597 base_vha->flags.online = 0; in qla2x00_disable_board_on_pci_error()
6605 qla2x00_free_sysfs_attr(base_vha, false); in qla2x00_disable_board_on_pci_error()
6607 fc_remove_host(base_vha->host); in qla2x00_disable_board_on_pci_error()
6609 scsi_remove_host(base_vha->host); in qla2x00_disable_board_on_pci_error()
6611 base_vha->flags.init_done = 0; in qla2x00_disable_board_on_pci_error()
6612 qla25xx_delete_queues(base_vha); in qla2x00_disable_board_on_pci_error()
6613 qla2x00_free_fcports(base_vha); in qla2x00_disable_board_on_pci_error()
6614 qla2x00_free_irqs(base_vha); in qla2x00_disable_board_on_pci_error()
6616 qla82xx_md_free(base_vha); in qla2x00_disable_board_on_pci_error()
6646 scsi_qla_host_t *base_vha; in qla2x00_do_dpc() local
6652 base_vha = pci_get_drvdata(ha->pdev); in qla2x00_do_dpc()
6658 ql_dbg(ql_dbg_dpc, base_vha, 0x4000, in qla2x00_do_dpc()
6663 if (!base_vha->flags.init_done || ha->flags.mbox_busy) in qla2x00_do_dpc()
6667 ql_dbg(ql_dbg_dpc, base_vha, 0x4003, in qla2x00_do_dpc()
6674 ql_dbg(ql_dbg_dpc + ql_dbg_verbose, base_vha, 0x4001, in qla2x00_do_dpc()
6676 base_vha->dpc_flags); in qla2x00_do_dpc()
6678 if (test_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_do_dpc()
6684 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6686 qla8044_wr_direct(base_vha, in qla2x00_do_dpc()
6690 ql_log(ql_log_info, base_vha, 0x4004, in qla2x00_do_dpc()
6692 qla8044_device_state_handler(base_vha); in qla2x00_do_dpc()
6698 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6703 ql_log(ql_log_info, base_vha, 0x0151, in qla2x00_do_dpc()
6705 qla82xx_device_state_handler(base_vha); in qla2x00_do_dpc()
6711 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6713 ql_dbg(ql_dbg_dpc, base_vha, 0x4005, in qla2x00_do_dpc()
6716 &base_vha->dpc_flags))) { in qla2x00_do_dpc()
6717 if (qla82xx_fcoe_ctx_reset(base_vha)) { in qla2x00_do_dpc()
6722 &base_vha->dpc_flags); in qla2x00_do_dpc()
6725 &base_vha->dpc_flags); in qla2x00_do_dpc()
6728 ql_dbg(ql_dbg_dpc, base_vha, 0x4006, in qla2x00_do_dpc()
6733 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6734 ql_dbg(ql_dbg_dpc, base_vha, 0x4020, in qla2x00_do_dpc()
6736 if (qlafx00_reset_initialize(base_vha)) { in qla2x00_do_dpc()
6739 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6741 &base_vha->dpc_flags); in qla2x00_do_dpc()
6742 ql_dbg(ql_dbg_dpc, base_vha, in qla2x00_do_dpc()
6750 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6751 ql_dbg(ql_dbg_dpc, base_vha, 0x4022, in qla2x00_do_dpc()
6753 if (qlafx00_rescan_isp(base_vha)) { in qla2x00_do_dpc()
6755 &base_vha->dpc_flags)) in qla2x00_do_dpc()
6757 &base_vha->dpc_flags); in qla2x00_do_dpc()
6758 ql_dbg(ql_dbg_dpc, base_vha, 0x401e, in qla2x00_do_dpc()
6761 ql_dbg(ql_dbg_dpc, base_vha, 0x401f, in qla2x00_do_dpc()
6765 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6766 ql_dbg(ql_dbg_dpc, base_vha, 0x4023, in qla2x00_do_dpc()
6768 qlafx00_fx_disc(base_vha, in qla2x00_do_dpc()
6769 &base_vha->hw->mr.fcport, in qla2x00_do_dpc()
6775 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6786 (ISP_ABORT_NEEDED, &base_vha->dpc_flags) && in qla2x00_do_dpc()
6787 !test_bit(UNLOADING, &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6790 switch (base_vha->qlini_mode) { in qla2x00_do_dpc()
6794 if (!qla_tgt_mode_enabled(base_vha) && in qla2x00_do_dpc()
6799 if (!qla_dual_mode_enabled(base_vha) && in qla2x00_do_dpc()
6808 &base_vha->dpc_flags))) { in qla2x00_do_dpc()
6809 base_vha->flags.online = 1; in qla2x00_do_dpc()
6810 ql_dbg(ql_dbg_dpc, base_vha, 0x4007, in qla2x00_do_dpc()
6812 if (ha->isp_ops->abort_isp(base_vha)) { in qla2x00_do_dpc()
6815 &base_vha->dpc_flags); in qla2x00_do_dpc()
6818 &base_vha->dpc_flags); in qla2x00_do_dpc()
6819 ql_dbg(ql_dbg_dpc, base_vha, 0x4008, in qla2x00_do_dpc()
6824 if (test_bit(PROCESS_PUREX_IOCB, &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6825 if (atomic_read(&base_vha->loop_state) == LOOP_READY) { in qla2x00_do_dpc()
6827 (&base_vha->purex_list); in qla2x00_do_dpc()
6829 &base_vha->dpc_flags); in qla2x00_do_dpc()
6834 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6835 qla2x00_update_fcports(base_vha); in qla2x00_do_dpc()
6841 if (test_bit(ISP_QUIESCE_NEEDED, &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6842 ql_dbg(ql_dbg_dpc, base_vha, 0x4009, in qla2x00_do_dpc()
6846 qla82xx_device_state_handler(base_vha); in qla2x00_do_dpc()
6848 qla8044_device_state_handler(base_vha); in qla2x00_do_dpc()
6850 &base_vha->dpc_flags); in qla2x00_do_dpc()
6852 qla2x00_perform_loop_resync(base_vha); in qla2x00_do_dpc()
6856 base_vha); in qla2x00_do_dpc()
6861 base_vha); in qla2x00_do_dpc()
6867 &base_vha->dpc_flags); in qla2x00_do_dpc()
6868 qla2x00_quiesce_io(base_vha); in qla2x00_do_dpc()
6870 ql_dbg(ql_dbg_dpc, base_vha, 0x400a, in qla2x00_do_dpc()
6875 &base_vha->dpc_flags) && in qla2x00_do_dpc()
6876 (!(test_and_set_bit(RESET_ACTIVE, &base_vha->dpc_flags)))) { in qla2x00_do_dpc()
6878 ql_dbg(ql_dbg_dpc, base_vha, 0x400b, in qla2x00_do_dpc()
6880 qla2x00_rst_aen(base_vha); in qla2x00_do_dpc()
6881 clear_bit(RESET_ACTIVE, &base_vha->dpc_flags); in qla2x00_do_dpc()
6882 ql_dbg(ql_dbg_dpc, base_vha, 0x400c, in qla2x00_do_dpc()
6887 if (test_bit(RELOGIN_NEEDED, &base_vha->dpc_flags) && in qla2x00_do_dpc()
6888 !test_bit(LOOP_RESYNC_NEEDED, &base_vha->dpc_flags) && in qla2x00_do_dpc()
6889 atomic_read(&base_vha->loop_state) != LOOP_DOWN) { in qla2x00_do_dpc()
6891 if (!base_vha->relogin_jif || in qla2x00_do_dpc()
6892 time_after_eq(jiffies, base_vha->relogin_jif)) { in qla2x00_do_dpc()
6893 base_vha->relogin_jif = jiffies + HZ; in qla2x00_do_dpc()
6894 clear_bit(RELOGIN_NEEDED, &base_vha->dpc_flags); in qla2x00_do_dpc()
6896 ql_dbg(ql_dbg_disc, base_vha, 0x400d, in qla2x00_do_dpc()
6898 qla24xx_post_relogin_work(base_vha); in qla2x00_do_dpc()
6903 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6905 ql_dbg(ql_dbg_dpc, base_vha, 0x400f, in qla2x00_do_dpc()
6909 &base_vha->dpc_flags))) { in qla2x00_do_dpc()
6911 qla2x00_loop_resync(base_vha); in qla2x00_do_dpc()
6914 &base_vha->dpc_flags); in qla2x00_do_dpc()
6917 ql_dbg(ql_dbg_dpc, base_vha, 0x4010, in qla2x00_do_dpc()
6924 if (test_bit(NPIV_CONFIG_NEEDED, &base_vha->dpc_flags) && in qla2x00_do_dpc()
6925 atomic_read(&base_vha->loop_state) == LOOP_READY) { in qla2x00_do_dpc()
6926 clear_bit(NPIV_CONFIG_NEEDED, &base_vha->dpc_flags); in qla2x00_do_dpc()
6927 qla2xxx_flash_npiv_conf(base_vha); in qla2x00_do_dpc()
6935 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6937 ha->isp_ops->beacon_blink(base_vha); in qla2x00_do_dpc()
6942 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6950 list_for_each_entry(qpair, &base_vha->qp_list, in qla2x00_do_dpc()
6957 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6958 ql_log(ql_log_info, base_vha, 0xffffff, in qla2x00_do_dpc()
6961 if (qla27xx_set_zio_threshold(base_vha, in qla2x00_do_dpc()
6963 ql_log(ql_log_info, base_vha, 0xffffff, in qla2x00_do_dpc()
6970 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6971 ql_log(ql_log_info, base_vha, 0xffffff, in qla2x00_do_dpc()
6974 qla27xx_set_zio_threshold(base_vha, in qla2x00_do_dpc()
6979 qla2x00_do_dpc_all_vps(base_vha); in qla2x00_do_dpc()
6982 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6983 qla2x00_lip_reset(base_vha); in qla2x00_do_dpc()
6992 ql_dbg(ql_dbg_dpc, base_vha, 0x4011, in qla2x00_do_dpc()
7001 qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16); in qla2x00_do_dpc()
7366 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla_pci_error_cleanup() local
7402 list_for_each_entry(qpair, &base_vha->qp_list, qp_list_elem) in qla_pci_error_cleanup()
7480 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); in qla2xxx_pci_mmio_enabled() local
7481 struct qla_hw_data *ha = base_vha->hw; in qla2xxx_pci_mmio_enabled()
7505 ql_log(ql_log_info, base_vha, 0x9003, in qla2xxx_pci_mmio_enabled()
7507 qla2xxx_dump_fw(base_vha); in qla2xxx_pci_mmio_enabled()
7518 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); in qla2xxx_pci_slot_reset() local
7519 struct qla_hw_data *ha = base_vha->hw; in qla2xxx_pci_slot_reset()
7523 ql_dbg(ql_dbg_aer, base_vha, 0x9004, in qla2xxx_pci_slot_reset()
7545 ql_log(ql_log_warn, base_vha, 0x9005, in qla2xxx_pci_slot_reset()
7551 if (ha->isp_ops->pci_config(base_vha)) in qla2xxx_pci_slot_reset()
7555 list_for_each_entry(qpair, &base_vha->qp_list, qp_list_elem) in qla2xxx_pci_slot_reset()
7559 base_vha->flags.online = 1; in qla2xxx_pci_slot_reset()
7560 set_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_pci_slot_reset()
7561 if (ha->isp_ops->abort_isp(base_vha) == QLA_SUCCESS) in qla2xxx_pci_slot_reset()
7563 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_pci_slot_reset()
7567 ql_dbg(ql_dbg_aer, base_vha, 0x900e, in qla2xxx_pci_slot_reset()
7576 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); in qla2xxx_pci_resume() local
7577 struct qla_hw_data *ha = base_vha->hw; in qla2xxx_pci_resume()
7580 ql_dbg(ql_dbg_aer, base_vha, 0x900f, in qla2xxx_pci_resume()
7585 ret = qla2x00_wait_for_hba_online(base_vha); in qla2xxx_pci_resume()
7587 ql_log(ql_log_fatal, base_vha, 0x9002, in qla2xxx_pci_resume()
7595 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); in qla_pci_reset_prepare() local
7596 struct qla_hw_data *ha = base_vha->hw; in qla_pci_reset_prepare()
7599 ql_log(ql_log_warn, base_vha, 0xffff, in qla_pci_reset_prepare()
7610 list_for_each_entry(qpair, &base_vha->qp_list, qp_list_elem) in qla_pci_reset_prepare()
7614 set_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla_pci_reset_prepare()
7615 qla2x00_abort_isp_cleanup(base_vha); in qla_pci_reset_prepare()
7616 qla2x00_abort_all_cmds(base_vha, DID_RESET << 16); in qla_pci_reset_prepare()
7622 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); in qla_pci_reset_done() local
7623 struct qla_hw_data *ha = base_vha->hw; in qla_pci_reset_done()
7626 ql_log(ql_log_warn, base_vha, 0xffff, in qla_pci_reset_done()
7634 list_for_each_entry(qpair, &base_vha->qp_list, qp_list_elem) in qla_pci_reset_done()
7638 base_vha->flags.online = 1; in qla_pci_reset_done()
7639 ha->isp_ops->abort_isp(base_vha); in qla_pci_reset_done()
7640 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla_pci_reset_done()