Lines Matching refs:base_vha
685 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev); in qla2xxx_queuecommand() local
689 if (unlikely(test_bit(UNLOADING, &base_vha->dpc_flags))) { in qla2xxx_queuecommand()
733 atomic_read(&base_vha->loop_state) == LOOP_DEAD) { in qla2xxx_queuecommand()
737 atomic_read(&base_vha->loop_state)); in qla2xxx_queuecommand()
850 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_wait_for_hba_online() local
853 while (((test_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags)) || in qla2x00_wait_for_hba_online()
854 test_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags) || in qla2x00_wait_for_hba_online()
855 test_bit(ISP_ABORT_RETRY, &base_vha->dpc_flags) || in qla2x00_wait_for_hba_online()
860 if (base_vha->flags.online) in qla2x00_wait_for_hba_online()
898 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_wait_for_chip_reset() local
901 while (((test_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags)) || in qla2x00_wait_for_chip_reset()
902 test_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags) || in qla2x00_wait_for_chip_reset()
903 test_bit(ISP_ABORT_RETRY, &base_vha->dpc_flags) || in qla2x00_wait_for_chip_reset()
908 if (!test_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags) && in qla2x00_wait_for_chip_reset()
1240 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2xxx_eh_host_reset() local
1255 if (vha != base_vha) { in qla2xxx_eh_host_reset()
1270 set_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_eh_host_reset()
1271 if (ha->isp_ops->abort_isp(base_vha)) { in qla2xxx_eh_host_reset()
1272 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_eh_host_reset()
1274 set_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags); in qla2xxx_eh_host_reset()
1282 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_eh_host_reset()
2267 scsi_qla_host_t *base_vha = NULL; in qla2x00_probe_one() local
2562 base_vha = qla2x00_create_host(sht, ha); in qla2x00_probe_one()
2563 if (!base_vha) { in qla2x00_probe_one()
2571 pci_set_drvdata(pdev, base_vha); in qla2x00_probe_one()
2572 set_bit(PFLG_DRIVER_PROBING, &base_vha->pci_flags); in qla2x00_probe_one()
2574 host = base_vha->host; in qla2x00_probe_one()
2575 base_vha->req = req; in qla2x00_probe_one()
2577 base_vha->mgmt_svr_loop_id = 10 + base_vha->vp_idx; in qla2x00_probe_one()
2579 base_vha->mgmt_svr_loop_id = MANAGEMENT_SERVER + in qla2x00_probe_one()
2580 base_vha->vp_idx; in qla2x00_probe_one()
2583 ha->mr.fcport.vha = base_vha; in qla2x00_probe_one()
2615 ql_dbg(ql_dbg_init, base_vha, 0x0033, in qla2x00_probe_one()
2626 ql_log(ql_log_fatal, base_vha, 0x003d, in qla2x00_probe_one()
2632 qlt_probe_one_stage1(base_vha, ha); in qla2x00_probe_one()
2677 ql_dbg(ql_dbg_multiq, base_vha, 0xc009, in qla2x00_probe_one()
2680 ql_dbg(ql_dbg_multiq, base_vha, 0xc00a, in qla2x00_probe_one()
2685 ql_dbg(ql_dbg_init, base_vha, 0x003e, in qla2x00_probe_one()
2688 ql_dbg(ql_dbg_init, base_vha, 0x003f, in qla2x00_probe_one()
2692 if (ha->isp_ops->initialize_adapter(base_vha)) { in qla2x00_probe_one()
2693 ql_log(ql_log_fatal, base_vha, 0x00d6, in qla2x00_probe_one()
2695 base_vha->device_flags); in qla2x00_probe_one()
2702 ql_log(ql_log_fatal, base_vha, 0x00d7, in qla2x00_probe_one()
2706 qla8044_wr_direct(base_vha, in qla2x00_probe_one()
2710 ql_log(ql_log_fatal, base_vha, 0x0150, in qla2x00_probe_one()
2723 ql_dbg(ql_dbg_init, base_vha, 0x0032, in qla2x00_probe_one()
2725 host->can_queue, base_vha->req, in qla2x00_probe_one()
2726 base_vha->mgmt_svr_loop_id, host->sg_tablesize); in qla2x00_probe_one()
2729 if (qla25xx_setup_mode(base_vha)) { in qla2x00_probe_one()
2730 ql_log(ql_log_warn, base_vha, 0x00ec, in qla2x00_probe_one()
2743 "%s_dpc", base_vha->host_str); in qla2x00_probe_one()
2745 ql_log(ql_log_fatal, base_vha, 0x00ed, in qla2x00_probe_one()
2750 ql_dbg(ql_dbg_init, base_vha, 0x00ee, in qla2x00_probe_one()
2759 qla2xxx_wake_dpc(base_vha); in qla2x00_probe_one()
2764 sprintf(wq_name, "qla2xxx_%lu_dpc_lp_wq", base_vha->host_no); in qla2x00_probe_one()
2768 sprintf(wq_name, "qla2xxx_%lu_dpc_hp_wq", base_vha->host_no); in qla2x00_probe_one()
2778 list_add_tail(&base_vha->list, &ha->vp_list); in qla2x00_probe_one()
2779 base_vha->host->irq = ha->pdev->irq; in qla2x00_probe_one()
2782 qla2x00_start_timer(base_vha, qla2x00_timer, WATCH_INTERVAL); in qla2x00_probe_one()
2783 ql_dbg(ql_dbg_init, base_vha, 0x00ef, in qla2x00_probe_one()
2786 ql_dbg(ql_dbg_init, base_vha, 0x00f0, in qla2x00_probe_one()
2793 base_vha->flags.difdix_supported = 1; in qla2x00_probe_one()
2794 ql_dbg(ql_dbg_init, base_vha, 0x00f1, in qla2x00_probe_one()
2814 base_vha->flags.difdix_supported = 0; in qla2x00_probe_one()
2820 ret = qlafx00_fx_disc(base_vha, in qla2x00_probe_one()
2821 &base_vha->hw->mr.fcport, FXDISC_GET_CONFIG_INFO); in qla2x00_probe_one()
2830 base_vha->flags.init_done = 1; in qla2x00_probe_one()
2831 base_vha->flags.online = 1; in qla2x00_probe_one()
2834 ql_dbg(ql_dbg_init, base_vha, 0x00f2, in qla2x00_probe_one()
2837 if (qla_ini_mode_enabled(base_vha)) in qla2x00_probe_one()
2840 ql_dbg(ql_dbg_init, base_vha, 0x0122, in qla2x00_probe_one()
2843 qla2x00_alloc_sysfs_attr(base_vha); in qla2x00_probe_one()
2846 ret = qlafx00_fx_disc(base_vha, in qla2x00_probe_one()
2847 &base_vha->hw->mr.fcport, FXDISC_GET_PORT_INFO); in qla2x00_probe_one()
2850 ret = qlafx00_fx_disc(base_vha, in qla2x00_probe_one()
2851 &base_vha->hw->mr.fcport, FXDISC_REG_HOST_INFO); in qla2x00_probe_one()
2854 qla2x00_init_host_attr(base_vha); in qla2x00_probe_one()
2856 qla2x00_dfs_setup(base_vha); in qla2x00_probe_one()
2858 ql_log(ql_log_info, base_vha, 0x00fb, in qla2x00_probe_one()
2860 ql_log(ql_log_info, base_vha, 0x00fc, in qla2x00_probe_one()
2862 pdev->device, ha->isp_ops->pci_info_str(base_vha, pci_info), in qla2x00_probe_one()
2864 base_vha->host_no, in qla2x00_probe_one()
2865 ha->isp_ops->fw_version_str(base_vha, fw_str, sizeof(fw_str))); in qla2x00_probe_one()
2867 qlt_add_target(ha, base_vha); in qla2x00_probe_one()
2869 clear_bit(PFLG_DRIVER_PROBING, &base_vha->pci_flags); in qla2x00_probe_one()
2882 if (base_vha->timer_active) in qla2x00_probe_one()
2883 qla2x00_stop_timer(base_vha); in qla2x00_probe_one()
2884 base_vha->flags.online = 0; in qla2x00_probe_one()
2892 qla2x00_free_device(base_vha); in qla2x00_probe_one()
2894 scsi_host_put(base_vha->host); in qla2x00_probe_one()
2972 qla2x00_delete_all_vps(struct qla_hw_data *ha, scsi_qla_host_t *base_vha) in qla2x00_delete_all_vps() argument
2981 BUG_ON(base_vha->list.next == &ha->vp_list); in qla2x00_delete_all_vps()
2983 vha = list_first_entry(&base_vha->list, scsi_qla_host_t, list); in qla2x00_delete_all_vps()
3076 scsi_qla_host_t *base_vha; in qla2x00_remove_one() local
3079 base_vha = pci_get_drvdata(pdev); in qla2x00_remove_one()
3080 ha = base_vha->hw; in qla2x00_remove_one()
3084 set_bit(PFLG_DRIVER_REMOVING, &base_vha->pci_flags); in qla2x00_remove_one()
3093 scsi_host_put(base_vha->host); in qla2x00_remove_one()
3099 qla2x00_wait_for_hba_ready(base_vha); in qla2x00_remove_one()
3101 set_bit(UNLOADING, &base_vha->dpc_flags); in qla2x00_remove_one()
3104 qlafx00_driver_shutdown(base_vha, 20); in qla2x00_remove_one()
3106 qla2x00_delete_all_vps(ha, base_vha); in qla2x00_remove_one()
3109 ql_dbg(ql_dbg_p3p, base_vha, 0xb07e, in qla2x00_remove_one()
3111 if (qla83xx_clear_drv_presence(base_vha) != QLA_SUCCESS) in qla2x00_remove_one()
3112 ql_dbg(ql_dbg_p3p, base_vha, 0xb079, in qla2x00_remove_one()
3116 qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16); in qla2x00_remove_one()
3118 qla2x00_dfs_remove(base_vha); in qla2x00_remove_one()
3120 qla84xx_put_chip(base_vha); in qla2x00_remove_one()
3124 qla83xx_disable_laser(base_vha); in qla2x00_remove_one()
3127 if (base_vha->timer_active) in qla2x00_remove_one()
3128 qla2x00_stop_timer(base_vha); in qla2x00_remove_one()
3130 base_vha->flags.online = 0; in qla2x00_remove_one()
3134 qlt_remove_target(ha, base_vha); in qla2x00_remove_one()
3136 qla2x00_free_sysfs_attr(base_vha, true); in qla2x00_remove_one()
3138 fc_remove_host(base_vha->host); in qla2x00_remove_one()
3140 scsi_remove_host(base_vha->host); in qla2x00_remove_one()
3142 qla2x00_free_device(base_vha); in qla2x00_remove_one()
3146 scsi_host_put(base_vha->host); in qla2x00_remove_one()
3217 scsi_qla_host_t *base_vha; in qla2x00_schedule_rport_del() local
3225 base_vha = pci_get_drvdata(vha->hw->pdev); in qla2x00_schedule_rport_del()
3229 qlt_do_generation_tick(vha, &base_vha->total_fcport_update_gen); in qla2x00_schedule_rport_del()
3230 set_bit(FCPORT_UPDATE_NEEDED, &base_vha->dpc_flags); in qla2x00_schedule_rport_del()
3231 qla2xxx_wake_dpc(base_vha); in qla2x00_schedule_rport_del()
4089 qla83xx_schedule_work(scsi_qla_host_t *base_vha, int work_code) in qla83xx_schedule_work() argument
4091 struct qla_hw_data *ha = base_vha->hw; in qla83xx_schedule_work()
4104 ql_dbg(ql_dbg_p3p, base_vha, 0xb05e, in qla83xx_schedule_work()
4117 ql_log(ql_log_warn, base_vha, 0xb05f, in qla83xx_schedule_work()
4130 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla83xx_nic_core_unrecoverable_work() local
4133 qla83xx_idc_lock(base_vha, 0); in qla83xx_nic_core_unrecoverable_work()
4134 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, &dev_state); in qla83xx_nic_core_unrecoverable_work()
4135 qla83xx_reset_ownership(base_vha); in qla83xx_nic_core_unrecoverable_work()
4138 qla83xx_wr_reg(base_vha, QLA83XX_IDC_DEV_STATE, in qla83xx_nic_core_unrecoverable_work()
4140 ql_log(ql_log_info, base_vha, 0xb060, "HW State: FAILED.\n"); in qla83xx_nic_core_unrecoverable_work()
4141 qla83xx_schedule_work(base_vha, QLA83XX_IDC_STATE_HANDLER); in qla83xx_nic_core_unrecoverable_work()
4143 qla83xx_idc_unlock(base_vha, 0); in qla83xx_nic_core_unrecoverable_work()
4152 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla83xx_idc_state_handler_work() local
4155 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler_work()
4156 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, &dev_state); in qla83xx_idc_state_handler_work()
4159 qla83xx_idc_state_handler(base_vha); in qla83xx_idc_state_handler_work()
4160 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler_work()
4164 qla83xx_check_nic_core_fw_alive(scsi_qla_host_t *base_vha) in qla83xx_check_nic_core_fw_alive() argument
4172 ql_dbg(ql_dbg_p3p, base_vha, 0xb07c, in qla83xx_check_nic_core_fw_alive()
4178 qla83xx_idc_lock(base_vha, 0); in qla83xx_check_nic_core_fw_alive()
4179 qla83xx_rd_reg(base_vha, QLA83XX_FW_HEARTBEAT, in qla83xx_check_nic_core_fw_alive()
4181 qla83xx_idc_unlock(base_vha, 0); in qla83xx_check_nic_core_fw_alive()
4183 qla83xx_idc_lock(base_vha, 0); in qla83xx_check_nic_core_fw_alive()
4184 qla83xx_rd_reg(base_vha, QLA83XX_FW_HEARTBEAT, in qla83xx_check_nic_core_fw_alive()
4186 qla83xx_idc_unlock(base_vha, 0); in qla83xx_check_nic_core_fw_alive()
4198 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla83xx_nic_core_reset_work() local
4202 if (qla2xxx_mctp_dump(base_vha) != QLA_SUCCESS) in qla83xx_nic_core_reset_work()
4203 ql_log(ql_log_warn, base_vha, 0xb081, in qla83xx_nic_core_reset_work()
4209 if (qla83xx_check_nic_core_fw_alive(base_vha) == QLA_SUCCESS) { in qla83xx_nic_core_reset_work()
4210 qla83xx_idc_lock(base_vha, 0); in qla83xx_nic_core_reset_work()
4211 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, in qla83xx_nic_core_reset_work()
4213 qla83xx_idc_unlock(base_vha, 0); in qla83xx_nic_core_reset_work()
4215 ql_dbg(ql_dbg_p3p, base_vha, 0xb07a, in qla83xx_nic_core_reset_work()
4222 if (qla83xx_nic_core_reset(base_vha)) { in qla83xx_nic_core_reset_work()
4224 ql_dbg(ql_dbg_p3p, base_vha, 0xb061, in qla83xx_nic_core_reset_work()
4237 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla83xx_service_idc_aen() local
4240 qla83xx_idc_lock(base_vha, 0); in qla83xx_service_idc_aen()
4241 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, &dev_state); in qla83xx_service_idc_aen()
4242 qla83xx_rd_reg(base_vha, QLA83XX_IDC_CONTROL, &idc_control); in qla83xx_service_idc_aen()
4243 qla83xx_idc_unlock(base_vha, 0); in qla83xx_service_idc_aen()
4246 ql_dbg(ql_dbg_p3p, base_vha, 0xb062, in qla83xx_service_idc_aen()
4248 qla83xx_schedule_work(base_vha, QLA83XX_NIC_CORE_RESET); in qla83xx_service_idc_aen()
4249 } else if (qla83xx_check_nic_core_fw_alive(base_vha) == in qla83xx_service_idc_aen()
4251 ql_dbg(ql_dbg_p3p, base_vha, 0xb07b, in qla83xx_service_idc_aen()
4253 qla83xx_schedule_work(base_vha, QLA83XX_NIC_CORE_RESET); in qla83xx_service_idc_aen()
4257 qla83xx_schedule_work(base_vha, QLA83XX_IDC_STATE_HANDLER); in qla83xx_service_idc_aen()
4282 qla83xx_force_lock_recovery(scsi_qla_host_t *base_vha) in qla83xx_force_lock_recovery() argument
4288 struct qla_hw_data *ha = base_vha->hw; in qla83xx_force_lock_recovery()
4289 ql_dbg(ql_dbg_p3p, base_vha, 0xb086, in qla83xx_force_lock_recovery()
4292 rval = qla83xx_rd_reg(base_vha, QLA83XX_IDC_LOCK_RECOVERY, &data); in qla83xx_force_lock_recovery()
4300 rval = qla83xx_wr_reg(base_vha, QLA83XX_IDC_LOCK_RECOVERY, in qla83xx_force_lock_recovery()
4307 rval = qla83xx_rd_reg(base_vha, QLA83XX_IDC_LOCK_RECOVERY, in qla83xx_force_lock_recovery()
4315 rval = qla83xx_wr_reg(base_vha, in qla83xx_force_lock_recovery()
4321 rval = qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_UNLOCK, in qla83xx_force_lock_recovery()
4326 rval = qla83xx_wr_reg(base_vha, QLA83XX_DRIVER_LOCKID, in qla83xx_force_lock_recovery()
4331 rval = qla83xx_wr_reg(base_vha, in qla83xx_force_lock_recovery()
4343 qla83xx_idc_lock_recovery(scsi_qla_host_t *base_vha) in qla83xx_idc_lock_recovery() argument
4351 rval = qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCKID, &o_drv_lockid); in qla83xx_idc_lock_recovery()
4357 if (qla83xx_force_lock_recovery(base_vha) == QLA_SUCCESS) in qla83xx_idc_lock_recovery()
4363 rval = qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCKID, &n_drv_lockid); in qla83xx_idc_lock_recovery()
4378 qla83xx_idc_lock(scsi_qla_host_t *base_vha, uint16_t requester_id) in qla83xx_idc_lock() argument
4383 struct qla_hw_data *ha = base_vha->hw; in qla83xx_idc_lock()
4387 if (qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCK, &data) in qla83xx_idc_lock()
4391 qla83xx_wr_reg(base_vha, QLA83XX_DRIVER_LOCKID, in qla83xx_idc_lock()
4394 qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCKID, in qla83xx_idc_lock()
4396 ql_dbg(ql_dbg_p3p, base_vha, 0xb063, in qla83xx_idc_lock()
4401 if (qla83xx_idc_lock_recovery(base_vha) in qla83xx_idc_lock()
4406 ql_log(ql_log_warn, base_vha, 0xb075, in qla83xx_idc_lock()
4416 if (qla83xx_access_control(base_vha, options, 0, 0, NULL)) { in qla83xx_idc_lock()
4417 ql_dbg(ql_dbg_p3p, base_vha, 0xb072, in qla83xx_idc_lock()
4420 if (qla83xx_idc_lock_recovery(base_vha) == QLA_SUCCESS) { in qla83xx_idc_lock()
4424 ql_log(ql_log_warn, base_vha, 0xb076, in qla83xx_idc_lock()
4432 qla83xx_idc_unlock(scsi_qla_host_t *base_vha, uint16_t requester_id) in qla83xx_idc_unlock() argument
4439 struct qla_hw_data *ha = base_vha->hw; in qla83xx_idc_unlock()
4446 if (qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCKID, &data) in qla83xx_idc_unlock()
4449 qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_UNLOCK, &data); in qla83xx_idc_unlock()
4451 qla83xx_wr_reg(base_vha, QLA83XX_DRIVER_LOCKID, 0xff); in qla83xx_idc_unlock()
4458 ql_dbg(ql_dbg_p3p, base_vha, 0xb064, in qla83xx_idc_unlock()
4466 ql_dbg(ql_dbg_p3p, base_vha, 0xb065, in qla83xx_idc_unlock()
4477 if (qla83xx_access_control(base_vha, options, 0, 0, NULL)) { in qla83xx_idc_unlock()
4482 ql_dbg(ql_dbg_p3p, base_vha, 0xb066, in qla83xx_idc_unlock()
4624 qla83xx_idc_state_handler(scsi_qla_host_t *base_vha) in qla83xx_idc_state_handler() argument
4626 struct qla_hw_data *ha = base_vha->hw; in qla83xx_idc_state_handler()
4637 ql_log(ql_log_warn, base_vha, 0xb06e, in qla83xx_idc_state_handler()
4642 qla83xx_wr_reg(base_vha, QLA83XX_IDC_DEV_STATE, in qla83xx_idc_state_handler()
4644 ql_log(ql_log_info, base_vha, 0xb06f, in qla83xx_idc_state_handler()
4648 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, &dev_state); in qla83xx_idc_state_handler()
4652 qla83xx_idc_audit(base_vha, in qla83xx_idc_state_handler()
4655 ql_dbg(ql_dbg_p3p, base_vha, 0xb070, in qla83xx_idc_state_handler()
4661 rval = qla83xx_device_bootstrap(base_vha); in qla83xx_idc_state_handler()
4664 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
4666 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
4671 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
4673 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
4677 qla83xx_need_reset_handler(base_vha); in qla83xx_idc_state_handler()
4680 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
4682 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
4690 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
4692 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
4699 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
4701 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
4707 qla83xx_idc_audit(base_vha, in qla83xx_idc_state_handler()
4710 __qla83xx_clear_drv_presence(base_vha); in qla83xx_idc_state_handler()
4711 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
4712 qla8xxx_dev_failed_handler(base_vha); in qla83xx_idc_state_handler()
4714 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
4717 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
4719 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
4722 ql_log(ql_log_warn, base_vha, 0xb071, in qla83xx_idc_state_handler()
4724 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
4725 qla8xxx_dev_failed_handler(base_vha); in qla83xx_idc_state_handler()
4727 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
4742 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_disable_board_on_pci_error() local
4744 ql_log(ql_log_warn, base_vha, 0x015b, in qla2x00_disable_board_on_pci_error()
4747 set_bit(UNLOADING, &base_vha->dpc_flags); in qla2x00_disable_board_on_pci_error()
4749 qla2x00_delete_all_vps(ha, base_vha); in qla2x00_disable_board_on_pci_error()
4751 qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16); in qla2x00_disable_board_on_pci_error()
4753 qla2x00_dfs_remove(base_vha); in qla2x00_disable_board_on_pci_error()
4755 qla84xx_put_chip(base_vha); in qla2x00_disable_board_on_pci_error()
4757 if (base_vha->timer_active) in qla2x00_disable_board_on_pci_error()
4758 qla2x00_stop_timer(base_vha); in qla2x00_disable_board_on_pci_error()
4760 base_vha->flags.online = 0; in qla2x00_disable_board_on_pci_error()
4768 qla2x00_free_sysfs_attr(base_vha, false); in qla2x00_disable_board_on_pci_error()
4770 fc_remove_host(base_vha->host); in qla2x00_disable_board_on_pci_error()
4772 scsi_remove_host(base_vha->host); in qla2x00_disable_board_on_pci_error()
4774 base_vha->flags.init_done = 0; in qla2x00_disable_board_on_pci_error()
4775 qla25xx_delete_queues(base_vha); in qla2x00_disable_board_on_pci_error()
4776 qla2x00_free_irqs(base_vha); in qla2x00_disable_board_on_pci_error()
4777 qla2x00_free_fcports(base_vha); in qla2x00_disable_board_on_pci_error()
4779 qla82xx_md_free(base_vha); in qla2x00_disable_board_on_pci_error()
4809 scsi_qla_host_t *base_vha; in qla2x00_do_dpc() local
4813 base_vha = pci_get_drvdata(ha->pdev); in qla2x00_do_dpc()
4819 ql_dbg(ql_dbg_dpc, base_vha, 0x4000, in qla2x00_do_dpc()
4824 if (!base_vha->flags.init_done || ha->flags.mbox_busy) in qla2x00_do_dpc()
4828 ql_dbg(ql_dbg_dpc, base_vha, 0x4003, in qla2x00_do_dpc()
4835 ql_dbg(ql_dbg_dpc + ql_dbg_verbose, base_vha, 0x4001, in qla2x00_do_dpc()
4837 base_vha->dpc_flags); in qla2x00_do_dpc()
4839 qla2x00_do_work(base_vha); in qla2x00_do_dpc()
4844 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
4846 qla8044_wr_direct(base_vha, in qla2x00_do_dpc()
4850 ql_log(ql_log_info, base_vha, 0x4004, in qla2x00_do_dpc()
4852 qla8044_device_state_handler(base_vha); in qla2x00_do_dpc()
4858 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
4863 ql_log(ql_log_info, base_vha, 0x0151, in qla2x00_do_dpc()
4865 qla82xx_device_state_handler(base_vha); in qla2x00_do_dpc()
4871 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
4873 ql_dbg(ql_dbg_dpc, base_vha, 0x4005, in qla2x00_do_dpc()
4876 &base_vha->dpc_flags))) { in qla2x00_do_dpc()
4877 if (qla82xx_fcoe_ctx_reset(base_vha)) { in qla2x00_do_dpc()
4882 &base_vha->dpc_flags); in qla2x00_do_dpc()
4885 &base_vha->dpc_flags); in qla2x00_do_dpc()
4888 ql_dbg(ql_dbg_dpc, base_vha, 0x4006, in qla2x00_do_dpc()
4893 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
4894 ql_dbg(ql_dbg_dpc, base_vha, 0x4020, in qla2x00_do_dpc()
4896 if (qlafx00_reset_initialize(base_vha)) { in qla2x00_do_dpc()
4899 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
4901 &base_vha->dpc_flags); in qla2x00_do_dpc()
4902 ql_dbg(ql_dbg_dpc, base_vha, in qla2x00_do_dpc()
4910 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
4911 ql_dbg(ql_dbg_dpc, base_vha, 0x4022, in qla2x00_do_dpc()
4913 if (qlafx00_rescan_isp(base_vha)) { in qla2x00_do_dpc()
4915 &base_vha->dpc_flags)) in qla2x00_do_dpc()
4917 &base_vha->dpc_flags); in qla2x00_do_dpc()
4918 ql_dbg(ql_dbg_dpc, base_vha, 0x401e, in qla2x00_do_dpc()
4921 ql_dbg(ql_dbg_dpc, base_vha, 0x401f, in qla2x00_do_dpc()
4925 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
4926 ql_dbg(ql_dbg_dpc, base_vha, 0x4023, in qla2x00_do_dpc()
4928 qlafx00_fx_disc(base_vha, in qla2x00_do_dpc()
4929 &base_vha->hw->mr.fcport, in qla2x00_do_dpc()
4935 (ISP_ABORT_NEEDED, &base_vha->dpc_flags) && in qla2x00_do_dpc()
4936 !test_bit(UNLOADING, &base_vha->dpc_flags)) { in qla2x00_do_dpc()
4938 ql_dbg(ql_dbg_dpc, base_vha, 0x4007, in qla2x00_do_dpc()
4941 &base_vha->dpc_flags))) { in qla2x00_do_dpc()
4943 if (ha->isp_ops->abort_isp(base_vha)) { in qla2x00_do_dpc()
4946 &base_vha->dpc_flags); in qla2x00_do_dpc()
4949 &base_vha->dpc_flags); in qla2x00_do_dpc()
4952 ql_dbg(ql_dbg_dpc, base_vha, 0x4008, in qla2x00_do_dpc()
4957 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
4958 qla2x00_update_fcports(base_vha); in qla2x00_do_dpc()
4961 if (test_bit(SCR_PENDING, &base_vha->dpc_flags)) { in qla2x00_do_dpc()
4963 ret = qla2x00_send_change_request(base_vha, 0x3, 0); in qla2x00_do_dpc()
4965 ql_log(ql_log_warn, base_vha, 0x121, in qla2x00_do_dpc()
4968 clear_bit(SCR_PENDING, &base_vha->dpc_flags); in qla2x00_do_dpc()
4974 if (test_bit(ISP_QUIESCE_NEEDED, &base_vha->dpc_flags)) { in qla2x00_do_dpc()
4975 ql_dbg(ql_dbg_dpc, base_vha, 0x4009, in qla2x00_do_dpc()
4979 qla82xx_device_state_handler(base_vha); in qla2x00_do_dpc()
4981 qla8044_device_state_handler(base_vha); in qla2x00_do_dpc()
4983 &base_vha->dpc_flags); in qla2x00_do_dpc()
4985 qla2x00_perform_loop_resync(base_vha); in qla2x00_do_dpc()
4989 base_vha); in qla2x00_do_dpc()
4994 base_vha); in qla2x00_do_dpc()
5000 &base_vha->dpc_flags); in qla2x00_do_dpc()
5001 qla2x00_quiesce_io(base_vha); in qla2x00_do_dpc()
5003 ql_dbg(ql_dbg_dpc, base_vha, 0x400a, in qla2x00_do_dpc()
5008 &base_vha->dpc_flags) && in qla2x00_do_dpc()
5009 (!(test_and_set_bit(RESET_ACTIVE, &base_vha->dpc_flags)))) { in qla2x00_do_dpc()
5011 ql_dbg(ql_dbg_dpc, base_vha, 0x400b, in qla2x00_do_dpc()
5013 qla2x00_rst_aen(base_vha); in qla2x00_do_dpc()
5014 clear_bit(RESET_ACTIVE, &base_vha->dpc_flags); in qla2x00_do_dpc()
5015 ql_dbg(ql_dbg_dpc, base_vha, 0x400c, in qla2x00_do_dpc()
5021 &base_vha->dpc_flags)) && in qla2x00_do_dpc()
5022 !test_bit(LOOP_RESYNC_NEEDED, &base_vha->dpc_flags) && in qla2x00_do_dpc()
5023 atomic_read(&base_vha->loop_state) != LOOP_DOWN) { in qla2x00_do_dpc()
5025 ql_dbg(ql_dbg_dpc, base_vha, 0x400d, in qla2x00_do_dpc()
5027 qla2x00_relogin(base_vha); in qla2x00_do_dpc()
5028 ql_dbg(ql_dbg_dpc, base_vha, 0x400e, in qla2x00_do_dpc()
5033 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
5035 ql_dbg(ql_dbg_dpc, base_vha, 0x400f, in qla2x00_do_dpc()
5039 &base_vha->dpc_flags))) { in qla2x00_do_dpc()
5041 qla2x00_loop_resync(base_vha); in qla2x00_do_dpc()
5044 &base_vha->dpc_flags); in qla2x00_do_dpc()
5047 ql_dbg(ql_dbg_dpc, base_vha, 0x4010, in qla2x00_do_dpc()
5054 if (test_bit(NPIV_CONFIG_NEEDED, &base_vha->dpc_flags) && in qla2x00_do_dpc()
5055 atomic_read(&base_vha->loop_state) == LOOP_READY) { in qla2x00_do_dpc()
5056 clear_bit(NPIV_CONFIG_NEEDED, &base_vha->dpc_flags); in qla2x00_do_dpc()
5057 qla2xxx_flash_npiv_conf(base_vha); in qla2x00_do_dpc()
5065 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
5067 ha->isp_ops->beacon_blink(base_vha); in qla2x00_do_dpc()
5071 qla2x00_do_dpc_all_vps(base_vha); in qla2x00_do_dpc()
5079 ql_dbg(ql_dbg_dpc, base_vha, 0x4011, in qla2x00_do_dpc()
5088 qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16); in qla2x00_do_dpc()
5440 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); in qla2xxx_pci_mmio_enabled() local
5441 struct qla_hw_data *ha = base_vha->hw; in qla2xxx_pci_mmio_enabled()
5465 ql_log(ql_log_info, base_vha, 0x9003, in qla2xxx_pci_mmio_enabled()
5467 ha->isp_ops->fw_dump(base_vha, 0); in qla2xxx_pci_mmio_enabled()
5475 qla82xx_error_recovery(scsi_qla_host_t *base_vha) in qla82xx_error_recovery() argument
5479 struct qla_hw_data *ha = base_vha->hw; in qla82xx_error_recovery()
5483 ql_dbg(ql_dbg_aer, base_vha, 0x9006, in qla82xx_error_recovery()
5486 set_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla82xx_error_recovery()
5488 if (base_vha->flags.online) { in qla82xx_error_recovery()
5491 qla2x00_abort_isp_cleanup(base_vha); in qla82xx_error_recovery()
5498 ql_dbg(ql_dbg_aer, base_vha, 0x9007, in qla82xx_error_recovery()
5508 ql_dbg(ql_dbg_aer, base_vha, 0x9008, in qla82xx_error_recovery()
5519 ql_dbg(ql_dbg_aer, base_vha, 0x9009, in qla82xx_error_recovery()
5531 ql_dbg(ql_dbg_aer, base_vha, 0x900a, in qla82xx_error_recovery()
5539 rval = qla82xx_start_firmware(base_vha); in qla82xx_error_recovery()
5545 ql_log(ql_log_info, base_vha, 0x900b, in qla82xx_error_recovery()
5551 ql_log(ql_log_info, base_vha, 0x900c, in qla82xx_error_recovery()
5557 rval = qla82xx_restart_isp(base_vha); in qla82xx_error_recovery()
5561 qla82xx_set_drv_active(base_vha); in qla82xx_error_recovery()
5565 ql_dbg(ql_dbg_aer, base_vha, 0x900d, in qla82xx_error_recovery()
5571 rval = qla82xx_restart_isp(base_vha); in qla82xx_error_recovery()
5573 qla82xx_set_drv_active(base_vha); in qla82xx_error_recovery()
5577 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla82xx_error_recovery()
5586 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); in qla2xxx_pci_slot_reset() local
5587 struct qla_hw_data *ha = base_vha->hw; in qla2xxx_pci_slot_reset()
5591 ql_dbg(ql_dbg_aer, base_vha, 0x9004, in qla2xxx_pci_slot_reset()
5613 ql_log(ql_log_warn, base_vha, 0x9005, in qla2xxx_pci_slot_reset()
5622 if (ha->isp_ops->pci_config(base_vha)) in qla2xxx_pci_slot_reset()
5626 if (qla82xx_error_recovery(base_vha) == QLA_SUCCESS) { in qla2xxx_pci_slot_reset()
5636 set_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_pci_slot_reset()
5637 if (ha->isp_ops->abort_isp(base_vha) == QLA_SUCCESS) in qla2xxx_pci_slot_reset()
5639 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_pci_slot_reset()
5643 ql_dbg(ql_dbg_aer, base_vha, 0x900e, in qla2xxx_pci_slot_reset()
5652 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); in qla2xxx_pci_resume() local
5653 struct qla_hw_data *ha = base_vha->hw; in qla2xxx_pci_resume()
5656 ql_dbg(ql_dbg_aer, base_vha, 0x900f, in qla2xxx_pci_resume()
5659 ret = qla2x00_wait_for_hba_online(base_vha); in qla2xxx_pci_resume()
5661 ql_log(ql_log_fatal, base_vha, 0x9002, in qla2xxx_pci_resume()