Lines Matching refs:base_vha
843 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev); in qla2xxx_queuecommand() local
850 if (unlikely(test_bit(UNLOADING, &base_vha->dpc_flags))) { in qla2xxx_queuecommand()
907 atomic_read(&base_vha->loop_state) == LOOP_DEAD) { in qla2xxx_queuecommand()
911 atomic_read(&base_vha->loop_state)); in qla2xxx_queuecommand()
973 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev); in qla2xxx_mqueuecommand() local
993 atomic_read(&base_vha->loop_state) == LOOP_DEAD) { in qla2xxx_mqueuecommand()
997 atomic_read(&base_vha->loop_state)); in qla2xxx_mqueuecommand()
1113 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_wait_for_hba_online() local
1116 while (((test_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags)) || in qla2x00_wait_for_hba_online()
1117 test_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags) || in qla2x00_wait_for_hba_online()
1118 test_bit(ISP_ABORT_RETRY, &base_vha->dpc_flags) || in qla2x00_wait_for_hba_online()
1123 if (base_vha->flags.online) in qla2x00_wait_for_hba_online()
1175 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_wait_for_hba_ready() local
1181 if (test_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_wait_for_hba_ready()
1193 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_wait_for_chip_reset() local
1196 while (((test_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags)) || in qla2x00_wait_for_chip_reset()
1197 test_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags) || in qla2x00_wait_for_chip_reset()
1198 test_bit(ISP_ABORT_RETRY, &base_vha->dpc_flags) || in qla2x00_wait_for_chip_reset()
1203 if (!test_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags) && in qla2x00_wait_for_chip_reset()
1588 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2xxx_eh_host_reset() local
1610 if (vha != base_vha) { in qla2xxx_eh_host_reset()
1625 set_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_eh_host_reset()
1626 if (ha->isp_ops->abort_isp(base_vha)) { in qla2xxx_eh_host_reset()
1627 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_eh_host_reset()
1629 set_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags); in qla2xxx_eh_host_reset()
1637 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_eh_host_reset()
2710 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_iocb_work_fn() local
2714 if (test_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_iocb_work_fn()
2735 scsi_qla_host_t *base_vha = NULL; in qla2x00_probe_one() local
3040 base_vha = qla2x00_create_host(sht, ha); in qla2x00_probe_one()
3041 if (!base_vha) { in qla2x00_probe_one()
3046 pci_set_drvdata(pdev, base_vha); in qla2x00_probe_one()
3047 set_bit(PFLG_DRIVER_PROBING, &base_vha->pci_flags); in qla2x00_probe_one()
3049 host = base_vha->host; in qla2x00_probe_one()
3050 base_vha->req = req; in qla2x00_probe_one()
3052 base_vha->mgmt_svr_loop_id = in qla2x00_probe_one()
3053 qla2x00_reserve_mgmt_server_loop_id(base_vha); in qla2x00_probe_one()
3055 base_vha->mgmt_svr_loop_id = MANAGEMENT_SERVER + in qla2x00_probe_one()
3056 base_vha->vp_idx; in qla2x00_probe_one()
3059 ha->mr.fcport.vha = base_vha; in qla2x00_probe_one()
3091 ql_dbg(ql_dbg_init, base_vha, 0x0033, in qla2x00_probe_one()
3099 INIT_WORK(&base_vha->iocb_work, qla2x00_iocb_work_fn); in qla2x00_probe_one()
3109 ql_log(ql_log_fatal, base_vha, 0x003d, in qla2x00_probe_one()
3119 ql_dbg(ql_dbg_init, base_vha, 0x0192, in qla2x00_probe_one()
3124 ql_dbg(ql_dbg_init, base_vha, 0x0194, in qla2x00_probe_one()
3128 ql_dbg(ql_dbg_init, base_vha, 0x0193, in qla2x00_probe_one()
3133 qlt_probe_one_stage1(base_vha, ha); in qla2x00_probe_one()
3173 ql_dbg(ql_dbg_multiq, base_vha, 0xc009, in qla2x00_probe_one()
3176 ql_dbg(ql_dbg_multiq, base_vha, 0xc00a, in qla2x00_probe_one()
3181 ql_dbg(ql_dbg_init, base_vha, 0x003e, in qla2x00_probe_one()
3184 ql_dbg(ql_dbg_init, base_vha, 0x003f, in qla2x00_probe_one()
3190 if (ha->isp_ops->initialize_adapter(base_vha)) { in qla2x00_probe_one()
3191 ql_log(ql_log_fatal, base_vha, 0x00d6, in qla2x00_probe_one()
3193 base_vha->device_flags); in qla2x00_probe_one()
3200 ql_log(ql_log_fatal, base_vha, 0x00d7, in qla2x00_probe_one()
3204 qla8044_wr_direct(base_vha, in qla2x00_probe_one()
3208 ql_log(ql_log_fatal, base_vha, 0x0150, in qla2x00_probe_one()
3221 ql_dbg(ql_dbg_init, base_vha, 0x0032, in qla2x00_probe_one()
3223 host->can_queue, base_vha->req, in qla2x00_probe_one()
3224 base_vha->mgmt_svr_loop_id, host->sg_tablesize); in qla2x00_probe_one()
3244 qla2xxx_create_qpair(base_vha, 5, 0, startit); in qla2x00_probe_one()
3255 "%s_dpc", base_vha->host_str); in qla2x00_probe_one()
3257 ql_log(ql_log_fatal, base_vha, 0x00ed, in qla2x00_probe_one()
3263 ql_dbg(ql_dbg_init, base_vha, 0x00ee, in qla2x00_probe_one()
3272 qla2xxx_wake_dpc(base_vha); in qla2x00_probe_one()
3277 sprintf(wq_name, "qla2xxx_%lu_dpc_lp_wq", base_vha->host_no); in qla2x00_probe_one()
3281 sprintf(wq_name, "qla2xxx_%lu_dpc_hp_wq", base_vha->host_no); in qla2x00_probe_one()
3291 list_add_tail(&base_vha->list, &ha->vp_list); in qla2x00_probe_one()
3292 base_vha->host->irq = ha->pdev->irq; in qla2x00_probe_one()
3295 qla2x00_start_timer(base_vha, WATCH_INTERVAL); in qla2x00_probe_one()
3296 ql_dbg(ql_dbg_init, base_vha, 0x00ef, in qla2x00_probe_one()
3299 ql_dbg(ql_dbg_init, base_vha, 0x00f0, in qla2x00_probe_one()
3306 base_vha->flags.difdix_supported = 1; in qla2x00_probe_one()
3307 ql_dbg(ql_dbg_init, base_vha, 0x00f1, in qla2x00_probe_one()
3327 base_vha->flags.difdix_supported = 0; in qla2x00_probe_one()
3333 ret = qlafx00_fx_disc(base_vha, in qla2x00_probe_one()
3334 &base_vha->hw->mr.fcport, FXDISC_GET_CONFIG_INFO); in qla2x00_probe_one()
3343 base_vha->flags.init_done = 1; in qla2x00_probe_one()
3344 base_vha->flags.online = 1; in qla2x00_probe_one()
3347 ql_dbg(ql_dbg_init, base_vha, 0x00f2, in qla2x00_probe_one()
3350 if (qla_ini_mode_enabled(base_vha) || in qla2x00_probe_one()
3351 qla_dual_mode_enabled(base_vha)) in qla2x00_probe_one()
3354 ql_dbg(ql_dbg_init, base_vha, 0x0122, in qla2x00_probe_one()
3357 qla2x00_alloc_sysfs_attr(base_vha); in qla2x00_probe_one()
3360 ret = qlafx00_fx_disc(base_vha, in qla2x00_probe_one()
3361 &base_vha->hw->mr.fcport, FXDISC_GET_PORT_INFO); in qla2x00_probe_one()
3364 ret = qlafx00_fx_disc(base_vha, in qla2x00_probe_one()
3365 &base_vha->hw->mr.fcport, FXDISC_REG_HOST_INFO); in qla2x00_probe_one()
3368 qla2x00_init_host_attr(base_vha); in qla2x00_probe_one()
3370 qla2x00_dfs_setup(base_vha); in qla2x00_probe_one()
3372 ql_log(ql_log_info, base_vha, 0x00fb, in qla2x00_probe_one()
3374 ql_log(ql_log_info, base_vha, 0x00fc, in qla2x00_probe_one()
3376 pdev->device, ha->isp_ops->pci_info_str(base_vha, pci_info), in qla2x00_probe_one()
3378 base_vha->host_no, in qla2x00_probe_one()
3379 ha->isp_ops->fw_version_str(base_vha, fw_str, sizeof(fw_str))); in qla2x00_probe_one()
3381 qlt_add_target(ha, base_vha); in qla2x00_probe_one()
3383 clear_bit(PFLG_DRIVER_PROBING, &base_vha->pci_flags); in qla2x00_probe_one()
3385 if (test_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_probe_one()
3389 ql_log(ql_log_info, base_vha, 0xffff, in qla2x00_probe_one()
3391 set_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags); in qla2x00_probe_one()
3392 qla2xxx_wake_dpc(base_vha); in qla2x00_probe_one()
3398 if (base_vha->timer_active) in qla2x00_probe_one()
3399 qla2x00_stop_timer(base_vha); in qla2x00_probe_one()
3400 base_vha->flags.online = 0; in qla2x00_probe_one()
3408 qla2x00_free_device(base_vha); in qla2x00_probe_one()
3409 scsi_host_put(base_vha->host); in qla2x00_probe_one()
3509 qla2x00_delete_all_vps(struct qla_hw_data *ha, scsi_qla_host_t *base_vha) in qla2x00_delete_all_vps() argument
3518 BUG_ON(base_vha->list.next == &ha->vp_list); in qla2x00_delete_all_vps()
3520 vha = list_first_entry(&base_vha->list, scsi_qla_host_t, list); in qla2x00_delete_all_vps()
3606 scsi_qla_host_t *base_vha; in qla2x00_remove_one() local
3609 base_vha = pci_get_drvdata(pdev); in qla2x00_remove_one()
3610 ha = base_vha->hw; in qla2x00_remove_one()
3611 ql_log(ql_log_info, base_vha, 0xb079, in qla2x00_remove_one()
3616 set_bit(PFLG_DRIVER_REMOVING, &base_vha->pci_flags); in qla2x00_remove_one()
3625 dma_free_coherent(&ha->pdev->dev, base_vha->gnl.size, in qla2x00_remove_one()
3626 base_vha->gnl.l, base_vha->gnl.ldma); in qla2x00_remove_one()
3628 scsi_host_put(base_vha->host); in qla2x00_remove_one()
3633 qla2x00_wait_for_hba_ready(base_vha); in qla2x00_remove_one()
3637 qla2x00_abort_isp_cleanup(base_vha); in qla2x00_remove_one()
3640 ql_dbg(ql_dbg_p3p, base_vha, 0xb07e, in qla2x00_remove_one()
3642 if (qla83xx_clear_drv_presence(base_vha) != QLA_SUCCESS) in qla2x00_remove_one()
3643 ql_dbg(ql_dbg_p3p, base_vha, 0xb079, in qla2x00_remove_one()
3647 qla2x00_try_to_stop_firmware(base_vha); in qla2x00_remove_one()
3650 qla2x00_wait_for_sess_deletion(base_vha); in qla2x00_remove_one()
3656 if (test_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_remove_one()
3659 set_bit(UNLOADING, &base_vha->dpc_flags); in qla2x00_remove_one()
3661 qla_nvme_delete(base_vha); in qla2x00_remove_one()
3664 base_vha->gnl.size, base_vha->gnl.l, base_vha->gnl.ldma); in qla2x00_remove_one()
3666 vfree(base_vha->scan.l); in qla2x00_remove_one()
3669 qlafx00_driver_shutdown(base_vha, 20); in qla2x00_remove_one()
3671 qla2x00_delete_all_vps(ha, base_vha); in qla2x00_remove_one()
3673 qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16); in qla2x00_remove_one()
3675 qla2x00_dfs_remove(base_vha); in qla2x00_remove_one()
3677 qla84xx_put_chip(base_vha); in qla2x00_remove_one()
3680 if (base_vha->timer_active) in qla2x00_remove_one()
3681 qla2x00_stop_timer(base_vha); in qla2x00_remove_one()
3683 base_vha->flags.online = 0; in qla2x00_remove_one()
3695 qlt_remove_target(ha, base_vha); in qla2x00_remove_one()
3697 qla2x00_free_sysfs_attr(base_vha, true); in qla2x00_remove_one()
3699 fc_remove_host(base_vha->host); in qla2x00_remove_one()
3702 scsi_remove_host(base_vha->host); in qla2x00_remove_one()
3704 qla2x00_free_device(base_vha); in qla2x00_remove_one()
3708 scsi_host_put(base_vha->host); in qla2x00_remove_one()
3775 scsi_qla_host_t *base_vha; in qla2x00_schedule_rport_del() local
3783 base_vha = pci_get_drvdata(vha->hw->pdev); in qla2x00_schedule_rport_del()
3787 qlt_do_generation_tick(vha, &base_vha->total_fcport_update_gen); in qla2x00_schedule_rport_del()
3788 set_bit(FCPORT_UPDATE_NEEDED, &base_vha->dpc_flags); in qla2x00_schedule_rport_del()
3789 qla2xxx_wake_dpc(base_vha); in qla2x00_schedule_rport_del()
5167 qla83xx_schedule_work(scsi_qla_host_t *base_vha, int work_code) in qla83xx_schedule_work() argument
5169 struct qla_hw_data *ha = base_vha->hw; in qla83xx_schedule_work()
5182 ql_dbg(ql_dbg_p3p, base_vha, 0xb05e, in qla83xx_schedule_work()
5195 ql_log(ql_log_warn, base_vha, 0xb05f, in qla83xx_schedule_work()
5208 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla83xx_nic_core_unrecoverable_work() local
5211 qla83xx_idc_lock(base_vha, 0); in qla83xx_nic_core_unrecoverable_work()
5212 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, &dev_state); in qla83xx_nic_core_unrecoverable_work()
5213 qla83xx_reset_ownership(base_vha); in qla83xx_nic_core_unrecoverable_work()
5216 qla83xx_wr_reg(base_vha, QLA83XX_IDC_DEV_STATE, in qla83xx_nic_core_unrecoverable_work()
5218 ql_log(ql_log_info, base_vha, 0xb060, "HW State: FAILED.\n"); in qla83xx_nic_core_unrecoverable_work()
5219 qla83xx_schedule_work(base_vha, QLA83XX_IDC_STATE_HANDLER); in qla83xx_nic_core_unrecoverable_work()
5221 qla83xx_idc_unlock(base_vha, 0); in qla83xx_nic_core_unrecoverable_work()
5230 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla83xx_idc_state_handler_work() local
5233 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler_work()
5234 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, &dev_state); in qla83xx_idc_state_handler_work()
5237 qla83xx_idc_state_handler(base_vha); in qla83xx_idc_state_handler_work()
5238 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler_work()
5242 qla83xx_check_nic_core_fw_alive(scsi_qla_host_t *base_vha) in qla83xx_check_nic_core_fw_alive() argument
5250 ql_dbg(ql_dbg_p3p, base_vha, 0xb07c, in qla83xx_check_nic_core_fw_alive()
5256 qla83xx_idc_lock(base_vha, 0); in qla83xx_check_nic_core_fw_alive()
5257 qla83xx_rd_reg(base_vha, QLA83XX_FW_HEARTBEAT, in qla83xx_check_nic_core_fw_alive()
5259 qla83xx_idc_unlock(base_vha, 0); in qla83xx_check_nic_core_fw_alive()
5261 qla83xx_idc_lock(base_vha, 0); in qla83xx_check_nic_core_fw_alive()
5262 qla83xx_rd_reg(base_vha, QLA83XX_FW_HEARTBEAT, in qla83xx_check_nic_core_fw_alive()
5264 qla83xx_idc_unlock(base_vha, 0); in qla83xx_check_nic_core_fw_alive()
5276 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla83xx_nic_core_reset_work() local
5280 if (qla2xxx_mctp_dump(base_vha) != QLA_SUCCESS) in qla83xx_nic_core_reset_work()
5281 ql_log(ql_log_warn, base_vha, 0xb081, in qla83xx_nic_core_reset_work()
5287 if (qla83xx_check_nic_core_fw_alive(base_vha) == QLA_SUCCESS) { in qla83xx_nic_core_reset_work()
5288 qla83xx_idc_lock(base_vha, 0); in qla83xx_nic_core_reset_work()
5289 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, in qla83xx_nic_core_reset_work()
5291 qla83xx_idc_unlock(base_vha, 0); in qla83xx_nic_core_reset_work()
5293 ql_dbg(ql_dbg_p3p, base_vha, 0xb07a, in qla83xx_nic_core_reset_work()
5300 if (qla83xx_nic_core_reset(base_vha)) { in qla83xx_nic_core_reset_work()
5302 ql_dbg(ql_dbg_p3p, base_vha, 0xb061, in qla83xx_nic_core_reset_work()
5315 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla83xx_service_idc_aen() local
5318 qla83xx_idc_lock(base_vha, 0); in qla83xx_service_idc_aen()
5319 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, &dev_state); in qla83xx_service_idc_aen()
5320 qla83xx_rd_reg(base_vha, QLA83XX_IDC_CONTROL, &idc_control); in qla83xx_service_idc_aen()
5321 qla83xx_idc_unlock(base_vha, 0); in qla83xx_service_idc_aen()
5324 ql_dbg(ql_dbg_p3p, base_vha, 0xb062, in qla83xx_service_idc_aen()
5326 qla83xx_schedule_work(base_vha, QLA83XX_NIC_CORE_RESET); in qla83xx_service_idc_aen()
5327 } else if (qla83xx_check_nic_core_fw_alive(base_vha) == in qla83xx_service_idc_aen()
5329 ql_dbg(ql_dbg_p3p, base_vha, 0xb07b, in qla83xx_service_idc_aen()
5331 qla83xx_schedule_work(base_vha, QLA83XX_NIC_CORE_RESET); in qla83xx_service_idc_aen()
5335 qla83xx_schedule_work(base_vha, QLA83XX_IDC_STATE_HANDLER); in qla83xx_service_idc_aen()
5360 qla83xx_force_lock_recovery(scsi_qla_host_t *base_vha) in qla83xx_force_lock_recovery() argument
5366 struct qla_hw_data *ha = base_vha->hw; in qla83xx_force_lock_recovery()
5367 ql_dbg(ql_dbg_p3p, base_vha, 0xb086, in qla83xx_force_lock_recovery()
5370 rval = qla83xx_rd_reg(base_vha, QLA83XX_IDC_LOCK_RECOVERY, &data); in qla83xx_force_lock_recovery()
5378 rval = qla83xx_wr_reg(base_vha, QLA83XX_IDC_LOCK_RECOVERY, in qla83xx_force_lock_recovery()
5385 rval = qla83xx_rd_reg(base_vha, QLA83XX_IDC_LOCK_RECOVERY, in qla83xx_force_lock_recovery()
5393 rval = qla83xx_wr_reg(base_vha, in qla83xx_force_lock_recovery()
5399 rval = qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_UNLOCK, in qla83xx_force_lock_recovery()
5404 rval = qla83xx_wr_reg(base_vha, QLA83XX_DRIVER_LOCKID, in qla83xx_force_lock_recovery()
5409 rval = qla83xx_wr_reg(base_vha, in qla83xx_force_lock_recovery()
5421 qla83xx_idc_lock_recovery(scsi_qla_host_t *base_vha) in qla83xx_idc_lock_recovery() argument
5429 rval = qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCKID, &o_drv_lockid); in qla83xx_idc_lock_recovery()
5435 if (qla83xx_force_lock_recovery(base_vha) == QLA_SUCCESS) in qla83xx_idc_lock_recovery()
5441 rval = qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCKID, &n_drv_lockid); in qla83xx_idc_lock_recovery()
5456 qla83xx_idc_lock(scsi_qla_host_t *base_vha, uint16_t requester_id) in qla83xx_idc_lock() argument
5461 struct qla_hw_data *ha = base_vha->hw; in qla83xx_idc_lock()
5465 if (qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCK, &data) in qla83xx_idc_lock()
5469 qla83xx_wr_reg(base_vha, QLA83XX_DRIVER_LOCKID, in qla83xx_idc_lock()
5472 qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCKID, in qla83xx_idc_lock()
5474 ql_dbg(ql_dbg_p3p, base_vha, 0xb063, in qla83xx_idc_lock()
5479 if (qla83xx_idc_lock_recovery(base_vha) in qla83xx_idc_lock()
5484 ql_log(ql_log_warn, base_vha, 0xb075, in qla83xx_idc_lock()
5494 if (qla83xx_access_control(base_vha, options, 0, 0, NULL)) { in qla83xx_idc_lock()
5495 ql_dbg(ql_dbg_p3p, base_vha, 0xb072, in qla83xx_idc_lock()
5498 if (qla83xx_idc_lock_recovery(base_vha) == QLA_SUCCESS) { in qla83xx_idc_lock()
5502 ql_log(ql_log_warn, base_vha, 0xb076, in qla83xx_idc_lock()
5510 qla83xx_idc_unlock(scsi_qla_host_t *base_vha, uint16_t requester_id) in qla83xx_idc_unlock() argument
5517 struct qla_hw_data *ha = base_vha->hw; in qla83xx_idc_unlock()
5524 if (qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCKID, &data) in qla83xx_idc_unlock()
5527 qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_UNLOCK, &data); in qla83xx_idc_unlock()
5529 qla83xx_wr_reg(base_vha, QLA83XX_DRIVER_LOCKID, 0xff); in qla83xx_idc_unlock()
5536 ql_dbg(ql_dbg_p3p, base_vha, 0xb064, in qla83xx_idc_unlock()
5544 ql_dbg(ql_dbg_p3p, base_vha, 0xb065, in qla83xx_idc_unlock()
5555 if (qla83xx_access_control(base_vha, options, 0, 0, NULL)) { in qla83xx_idc_unlock()
5560 ql_dbg(ql_dbg_p3p, base_vha, 0xb066, in qla83xx_idc_unlock()
5702 qla83xx_idc_state_handler(scsi_qla_host_t *base_vha) in qla83xx_idc_state_handler() argument
5704 struct qla_hw_data *ha = base_vha->hw; in qla83xx_idc_state_handler()
5715 ql_log(ql_log_warn, base_vha, 0xb06e, in qla83xx_idc_state_handler()
5720 qla83xx_wr_reg(base_vha, QLA83XX_IDC_DEV_STATE, in qla83xx_idc_state_handler()
5722 ql_log(ql_log_info, base_vha, 0xb06f, in qla83xx_idc_state_handler()
5726 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, &dev_state); in qla83xx_idc_state_handler()
5730 qla83xx_idc_audit(base_vha, in qla83xx_idc_state_handler()
5733 ql_dbg(ql_dbg_p3p, base_vha, 0xb070, in qla83xx_idc_state_handler()
5739 rval = qla83xx_device_bootstrap(base_vha); in qla83xx_idc_state_handler()
5742 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
5744 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
5749 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
5751 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
5755 qla83xx_need_reset_handler(base_vha); in qla83xx_idc_state_handler()
5758 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
5760 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
5768 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
5770 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
5777 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
5779 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
5785 qla83xx_idc_audit(base_vha, in qla83xx_idc_state_handler()
5788 __qla83xx_clear_drv_presence(base_vha); in qla83xx_idc_state_handler()
5789 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
5790 qla8xxx_dev_failed_handler(base_vha); in qla83xx_idc_state_handler()
5792 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
5795 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
5797 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
5800 ql_log(ql_log_warn, base_vha, 0xb071, in qla83xx_idc_state_handler()
5802 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
5803 qla8xxx_dev_failed_handler(base_vha); in qla83xx_idc_state_handler()
5805 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
5820 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_disable_board_on_pci_error() local
5826 if (test_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_disable_board_on_pci_error()
5829 ql_log(ql_log_warn, base_vha, 0x015b, in qla2x00_disable_board_on_pci_error()
5833 ql_log(ql_log_info, base_vha, 0xfffc, in qla2x00_disable_board_on_pci_error()
5835 base_vha->pci_flags); in qla2x00_disable_board_on_pci_error()
5839 qla2x00_wait_for_sess_deletion(base_vha); in qla2x00_disable_board_on_pci_error()
5841 set_bit(UNLOADING, &base_vha->dpc_flags); in qla2x00_disable_board_on_pci_error()
5843 qla2x00_delete_all_vps(ha, base_vha); in qla2x00_disable_board_on_pci_error()
5845 qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16); in qla2x00_disable_board_on_pci_error()
5847 qla2x00_dfs_remove(base_vha); in qla2x00_disable_board_on_pci_error()
5849 qla84xx_put_chip(base_vha); in qla2x00_disable_board_on_pci_error()
5851 if (base_vha->timer_active) in qla2x00_disable_board_on_pci_error()
5852 qla2x00_stop_timer(base_vha); in qla2x00_disable_board_on_pci_error()
5854 base_vha->flags.online = 0; in qla2x00_disable_board_on_pci_error()
5862 qla2x00_free_sysfs_attr(base_vha, false); in qla2x00_disable_board_on_pci_error()
5864 fc_remove_host(base_vha->host); in qla2x00_disable_board_on_pci_error()
5866 scsi_remove_host(base_vha->host); in qla2x00_disable_board_on_pci_error()
5868 base_vha->flags.init_done = 0; in qla2x00_disable_board_on_pci_error()
5869 qla25xx_delete_queues(base_vha); in qla2x00_disable_board_on_pci_error()
5870 qla2x00_free_fcports(base_vha); in qla2x00_disable_board_on_pci_error()
5871 qla2x00_free_irqs(base_vha); in qla2x00_disable_board_on_pci_error()
5873 qla82xx_md_free(base_vha); in qla2x00_disable_board_on_pci_error()
5903 scsi_qla_host_t *base_vha; in qla2x00_do_dpc() local
5909 base_vha = pci_get_drvdata(ha->pdev); in qla2x00_do_dpc()
5915 ql_dbg(ql_dbg_dpc, base_vha, 0x4000, in qla2x00_do_dpc()
5920 if (!base_vha->flags.init_done || ha->flags.mbox_busy) in qla2x00_do_dpc()
5924 ql_dbg(ql_dbg_dpc, base_vha, 0x4003, in qla2x00_do_dpc()
5931 ql_dbg(ql_dbg_dpc + ql_dbg_verbose, base_vha, 0x4001, in qla2x00_do_dpc()
5933 base_vha->dpc_flags); in qla2x00_do_dpc()
5935 if (test_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_do_dpc()
5941 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
5943 qla8044_wr_direct(base_vha, in qla2x00_do_dpc()
5947 ql_log(ql_log_info, base_vha, 0x4004, in qla2x00_do_dpc()
5949 qla8044_device_state_handler(base_vha); in qla2x00_do_dpc()
5955 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
5960 ql_log(ql_log_info, base_vha, 0x0151, in qla2x00_do_dpc()
5962 qla82xx_device_state_handler(base_vha); in qla2x00_do_dpc()
5968 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
5970 ql_dbg(ql_dbg_dpc, base_vha, 0x4005, in qla2x00_do_dpc()
5973 &base_vha->dpc_flags))) { in qla2x00_do_dpc()
5974 if (qla82xx_fcoe_ctx_reset(base_vha)) { in qla2x00_do_dpc()
5979 &base_vha->dpc_flags); in qla2x00_do_dpc()
5982 &base_vha->dpc_flags); in qla2x00_do_dpc()
5985 ql_dbg(ql_dbg_dpc, base_vha, 0x4006, in qla2x00_do_dpc()
5990 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
5991 ql_dbg(ql_dbg_dpc, base_vha, 0x4020, in qla2x00_do_dpc()
5993 if (qlafx00_reset_initialize(base_vha)) { in qla2x00_do_dpc()
5996 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
5998 &base_vha->dpc_flags); in qla2x00_do_dpc()
5999 ql_dbg(ql_dbg_dpc, base_vha, in qla2x00_do_dpc()
6007 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6008 ql_dbg(ql_dbg_dpc, base_vha, 0x4022, in qla2x00_do_dpc()
6010 if (qlafx00_rescan_isp(base_vha)) { in qla2x00_do_dpc()
6012 &base_vha->dpc_flags)) in qla2x00_do_dpc()
6014 &base_vha->dpc_flags); in qla2x00_do_dpc()
6015 ql_dbg(ql_dbg_dpc, base_vha, 0x401e, in qla2x00_do_dpc()
6018 ql_dbg(ql_dbg_dpc, base_vha, 0x401f, in qla2x00_do_dpc()
6022 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6023 ql_dbg(ql_dbg_dpc, base_vha, 0x4023, in qla2x00_do_dpc()
6025 qlafx00_fx_disc(base_vha, in qla2x00_do_dpc()
6026 &base_vha->hw->mr.fcport, in qla2x00_do_dpc()
6032 &base_vha->dpc_flags) && in qla2x00_do_dpc()
6033 !test_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6034 qla24xx_detect_sfp(base_vha); in qla2x00_do_dpc()
6038 set_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags); in qla2x00_do_dpc()
6042 (ISP_ABORT_NEEDED, &base_vha->dpc_flags) && in qla2x00_do_dpc()
6043 !test_bit(UNLOADING, &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6045 ql_dbg(ql_dbg_dpc, base_vha, 0x4007, in qla2x00_do_dpc()
6048 &base_vha->dpc_flags))) { in qla2x00_do_dpc()
6050 if (ha->isp_ops->abort_isp(base_vha)) { in qla2x00_do_dpc()
6053 &base_vha->dpc_flags); in qla2x00_do_dpc()
6056 &base_vha->dpc_flags); in qla2x00_do_dpc()
6059 ql_dbg(ql_dbg_dpc, base_vha, 0x4008, in qla2x00_do_dpc()
6064 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6065 qla2x00_update_fcports(base_vha); in qla2x00_do_dpc()
6071 if (test_bit(ISP_QUIESCE_NEEDED, &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6072 ql_dbg(ql_dbg_dpc, base_vha, 0x4009, in qla2x00_do_dpc()
6076 qla82xx_device_state_handler(base_vha); in qla2x00_do_dpc()
6078 qla8044_device_state_handler(base_vha); in qla2x00_do_dpc()
6080 &base_vha->dpc_flags); in qla2x00_do_dpc()
6082 qla2x00_perform_loop_resync(base_vha); in qla2x00_do_dpc()
6086 base_vha); in qla2x00_do_dpc()
6091 base_vha); in qla2x00_do_dpc()
6097 &base_vha->dpc_flags); in qla2x00_do_dpc()
6098 qla2x00_quiesce_io(base_vha); in qla2x00_do_dpc()
6100 ql_dbg(ql_dbg_dpc, base_vha, 0x400a, in qla2x00_do_dpc()
6105 &base_vha->dpc_flags) && in qla2x00_do_dpc()
6106 (!(test_and_set_bit(RESET_ACTIVE, &base_vha->dpc_flags)))) { in qla2x00_do_dpc()
6108 ql_dbg(ql_dbg_dpc, base_vha, 0x400b, in qla2x00_do_dpc()
6110 qla2x00_rst_aen(base_vha); in qla2x00_do_dpc()
6111 clear_bit(RESET_ACTIVE, &base_vha->dpc_flags); in qla2x00_do_dpc()
6112 ql_dbg(ql_dbg_dpc, base_vha, 0x400c, in qla2x00_do_dpc()
6117 if (test_bit(RELOGIN_NEEDED, &base_vha->dpc_flags) && in qla2x00_do_dpc()
6118 !test_bit(LOOP_RESYNC_NEEDED, &base_vha->dpc_flags) && in qla2x00_do_dpc()
6119 atomic_read(&base_vha->loop_state) != LOOP_DOWN) { in qla2x00_do_dpc()
6121 if (!base_vha->relogin_jif || in qla2x00_do_dpc()
6122 time_after_eq(jiffies, base_vha->relogin_jif)) { in qla2x00_do_dpc()
6123 base_vha->relogin_jif = jiffies + HZ; in qla2x00_do_dpc()
6124 clear_bit(RELOGIN_NEEDED, &base_vha->dpc_flags); in qla2x00_do_dpc()
6126 ql_dbg(ql_dbg_disc, base_vha, 0x400d, in qla2x00_do_dpc()
6128 qla24xx_post_relogin_work(base_vha); in qla2x00_do_dpc()
6133 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6135 ql_dbg(ql_dbg_dpc, base_vha, 0x400f, in qla2x00_do_dpc()
6139 &base_vha->dpc_flags))) { in qla2x00_do_dpc()
6141 qla2x00_loop_resync(base_vha); in qla2x00_do_dpc()
6144 &base_vha->dpc_flags); in qla2x00_do_dpc()
6147 ql_dbg(ql_dbg_dpc, base_vha, 0x4010, in qla2x00_do_dpc()
6154 if (test_bit(NPIV_CONFIG_NEEDED, &base_vha->dpc_flags) && in qla2x00_do_dpc()
6155 atomic_read(&base_vha->loop_state) == LOOP_READY) { in qla2x00_do_dpc()
6156 clear_bit(NPIV_CONFIG_NEEDED, &base_vha->dpc_flags); in qla2x00_do_dpc()
6157 qla2xxx_flash_npiv_conf(base_vha); in qla2x00_do_dpc()
6165 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6167 ha->isp_ops->beacon_blink(base_vha); in qla2x00_do_dpc()
6172 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6180 list_for_each_entry(qpair, &base_vha->qp_list, in qla2x00_do_dpc()
6186 if (test_and_clear_bit(SET_ZIO_THRESHOLD_NEEDED, &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6187 ql_log(ql_log_info, base_vha, 0xffffff, in qla2x00_do_dpc()
6190 if (qla27xx_set_zio_threshold(base_vha, ha->nvme_last_rptd_aen)) { in qla2x00_do_dpc()
6191 ql_log(ql_log_info, base_vha, 0xffffff, in qla2x00_do_dpc()
6198 qla2x00_do_dpc_all_vps(base_vha); in qla2x00_do_dpc()
6201 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6202 qla2x00_lip_reset(base_vha); in qla2x00_do_dpc()
6211 ql_dbg(ql_dbg_dpc, base_vha, 0x4011, in qla2x00_do_dpc()
6220 qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16); in qla2x00_do_dpc()
6617 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); in qla2xxx_pci_mmio_enabled() local
6618 struct qla_hw_data *ha = base_vha->hw; in qla2xxx_pci_mmio_enabled()
6642 ql_log(ql_log_info, base_vha, 0x9003, in qla2xxx_pci_mmio_enabled()
6644 ha->isp_ops->fw_dump(base_vha, 0); in qla2xxx_pci_mmio_enabled()
6652 qla82xx_error_recovery(scsi_qla_host_t *base_vha) in qla82xx_error_recovery() argument
6656 struct qla_hw_data *ha = base_vha->hw; in qla82xx_error_recovery()
6660 ql_dbg(ql_dbg_aer, base_vha, 0x9006, in qla82xx_error_recovery()
6663 set_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla82xx_error_recovery()
6665 if (base_vha->flags.online) { in qla82xx_error_recovery()
6668 qla2x00_abort_isp_cleanup(base_vha); in qla82xx_error_recovery()
6675 ql_dbg(ql_dbg_aer, base_vha, 0x9007, in qla82xx_error_recovery()
6685 ql_dbg(ql_dbg_aer, base_vha, 0x9008, in qla82xx_error_recovery()
6696 ql_dbg(ql_dbg_aer, base_vha, 0x9009, in qla82xx_error_recovery()
6708 ql_dbg(ql_dbg_aer, base_vha, 0x900a, in qla82xx_error_recovery()
6716 rval = qla82xx_start_firmware(base_vha); in qla82xx_error_recovery()
6722 ql_log(ql_log_info, base_vha, 0x900b, in qla82xx_error_recovery()
6728 ql_log(ql_log_info, base_vha, 0x900c, in qla82xx_error_recovery()
6734 rval = qla82xx_restart_isp(base_vha); in qla82xx_error_recovery()
6738 qla82xx_set_drv_active(base_vha); in qla82xx_error_recovery()
6742 ql_dbg(ql_dbg_aer, base_vha, 0x900d, in qla82xx_error_recovery()
6748 rval = qla82xx_restart_isp(base_vha); in qla82xx_error_recovery()
6750 qla82xx_set_drv_active(base_vha); in qla82xx_error_recovery()
6754 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla82xx_error_recovery()
6763 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); in qla2xxx_pci_slot_reset() local
6764 struct qla_hw_data *ha = base_vha->hw; in qla2xxx_pci_slot_reset()
6768 ql_dbg(ql_dbg_aer, base_vha, 0x9004, in qla2xxx_pci_slot_reset()
6790 ql_log(ql_log_warn, base_vha, 0x9005, in qla2xxx_pci_slot_reset()
6799 if (ha->isp_ops->pci_config(base_vha)) in qla2xxx_pci_slot_reset()
6803 if (qla82xx_error_recovery(base_vha) == QLA_SUCCESS) { in qla2xxx_pci_slot_reset()
6813 set_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_pci_slot_reset()
6814 if (ha->isp_ops->abort_isp(base_vha) == QLA_SUCCESS) in qla2xxx_pci_slot_reset()
6816 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_pci_slot_reset()
6820 ql_dbg(ql_dbg_aer, base_vha, 0x900e, in qla2xxx_pci_slot_reset()
6829 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); in qla2xxx_pci_resume() local
6830 struct qla_hw_data *ha = base_vha->hw; in qla2xxx_pci_resume()
6833 ql_dbg(ql_dbg_aer, base_vha, 0x900f, in qla2xxx_pci_resume()
6836 ret = qla2x00_wait_for_hba_online(base_vha); in qla2xxx_pci_resume()
6838 ql_log(ql_log_fatal, base_vha, 0x9002, in qla2xxx_pci_resume()