Lines Matching refs:base_vha

817 	struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev);  in qla2xxx_queuecommand()  local
821 if (unlikely(test_bit(UNLOADING, &base_vha->dpc_flags)) || in qla2xxx_queuecommand()
879 atomic_read(&base_vha->loop_state) == LOOP_DEAD) { in qla2xxx_queuecommand()
883 atomic_read(&base_vha->loop_state)); in qla2xxx_queuecommand()
941 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev); in qla2xxx_mqueuecommand() local
961 atomic_read(&base_vha->loop_state) == LOOP_DEAD) { in qla2xxx_mqueuecommand()
965 atomic_read(&base_vha->loop_state)); in qla2xxx_mqueuecommand()
1077 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_wait_for_hba_online() local
1080 while (((test_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags)) || in qla2x00_wait_for_hba_online()
1081 test_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags) || in qla2x00_wait_for_hba_online()
1082 test_bit(ISP_ABORT_RETRY, &base_vha->dpc_flags) || in qla2x00_wait_for_hba_online()
1087 if (base_vha->flags.online) in qla2x00_wait_for_hba_online()
1147 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_wait_for_hba_ready() local
1153 if (test_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_wait_for_hba_ready()
1165 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_wait_for_chip_reset() local
1168 while (((test_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags)) || in qla2x00_wait_for_chip_reset()
1169 test_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags) || in qla2x00_wait_for_chip_reset()
1170 test_bit(ISP_ABORT_RETRY, &base_vha->dpc_flags) || in qla2x00_wait_for_chip_reset()
1175 if (!test_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags) && in qla2x00_wait_for_chip_reset()
1577 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2xxx_eh_host_reset() local
1599 if (vha != base_vha) { in qla2xxx_eh_host_reset()
1614 set_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_eh_host_reset()
1615 if (ha->isp_ops->abort_isp(base_vha)) { in qla2xxx_eh_host_reset()
1616 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_eh_host_reset()
1618 set_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags); in qla2xxx_eh_host_reset()
1626 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_eh_host_reset()
2721 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_iocb_work_fn() local
2725 if (test_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_iocb_work_fn()
2746 scsi_qla_host_t *base_vha = NULL; in qla2x00_probe_one() local
3078 base_vha = qla2x00_create_host(sht, ha); in qla2x00_probe_one()
3079 if (!base_vha) { in qla2x00_probe_one()
3084 pci_set_drvdata(pdev, base_vha); in qla2x00_probe_one()
3085 set_bit(PFLG_DRIVER_PROBING, &base_vha->pci_flags); in qla2x00_probe_one()
3087 host = base_vha->host; in qla2x00_probe_one()
3088 base_vha->req = req; in qla2x00_probe_one()
3090 base_vha->mgmt_svr_loop_id = in qla2x00_probe_one()
3091 qla2x00_reserve_mgmt_server_loop_id(base_vha); in qla2x00_probe_one()
3093 base_vha->mgmt_svr_loop_id = MANAGEMENT_SERVER + in qla2x00_probe_one()
3094 base_vha->vp_idx; in qla2x00_probe_one()
3097 ha->mr.fcport.vha = base_vha; in qla2x00_probe_one()
3129 ql_dbg(ql_dbg_init, base_vha, 0x0033, in qla2x00_probe_one()
3137 INIT_WORK(&base_vha->iocb_work, qla2x00_iocb_work_fn); in qla2x00_probe_one()
3147 ql_log(ql_log_fatal, base_vha, 0x003d, in qla2x00_probe_one()
3158 ql_dbg(ql_dbg_init, base_vha, 0x0192, in qla2x00_probe_one()
3163 ql_dbg(ql_dbg_init, base_vha, 0x0194, in qla2x00_probe_one()
3167 ql_dbg(ql_dbg_init, base_vha, 0x0193, in qla2x00_probe_one()
3172 qlt_probe_one_stage1(base_vha, ha); in qla2x00_probe_one()
3213 ql_dbg(ql_dbg_multiq, base_vha, 0xc009, in qla2x00_probe_one()
3216 ql_dbg(ql_dbg_multiq, base_vha, 0xc00a, in qla2x00_probe_one()
3221 ql_dbg(ql_dbg_init, base_vha, 0x003e, in qla2x00_probe_one()
3224 ql_dbg(ql_dbg_init, base_vha, 0x003f, in qla2x00_probe_one()
3234 if (ha->isp_ops->initialize_adapter(base_vha)) { in qla2x00_probe_one()
3235 ql_log(ql_log_fatal, base_vha, 0x00d6, in qla2x00_probe_one()
3237 base_vha->device_flags); in qla2x00_probe_one()
3244 ql_log(ql_log_fatal, base_vha, 0x00d7, in qla2x00_probe_one()
3248 qla8044_wr_direct(base_vha, in qla2x00_probe_one()
3252 ql_log(ql_log_fatal, base_vha, 0x0150, in qla2x00_probe_one()
3265 ql_dbg(ql_dbg_init, base_vha, 0x0032, in qla2x00_probe_one()
3267 host->can_queue, base_vha->req, in qla2x00_probe_one()
3268 base_vha->mgmt_svr_loop_id, host->sg_tablesize); in qla2x00_probe_one()
3281 qla2xxx_create_qpair(base_vha, 5, 0, startit); in qla2x00_probe_one()
3291 "%s_dpc", base_vha->host_str); in qla2x00_probe_one()
3293 ql_log(ql_log_fatal, base_vha, 0x00ed, in qla2x00_probe_one()
3299 ql_dbg(ql_dbg_init, base_vha, 0x00ee, in qla2x00_probe_one()
3308 qla2xxx_wake_dpc(base_vha); in qla2x00_probe_one()
3313 sprintf(wq_name, "qla2xxx_%lu_dpc_lp_wq", base_vha->host_no); in qla2x00_probe_one()
3317 sprintf(wq_name, "qla2xxx_%lu_dpc_hp_wq", base_vha->host_no); in qla2x00_probe_one()
3327 list_add_tail(&base_vha->list, &ha->vp_list); in qla2x00_probe_one()
3328 base_vha->host->irq = ha->pdev->irq; in qla2x00_probe_one()
3331 qla2x00_start_timer(base_vha, WATCH_INTERVAL); in qla2x00_probe_one()
3332 ql_dbg(ql_dbg_init, base_vha, 0x00ef, in qla2x00_probe_one()
3335 ql_dbg(ql_dbg_init, base_vha, 0x00f0, in qla2x00_probe_one()
3343 base_vha->flags.difdix_supported = 1; in qla2x00_probe_one()
3344 ql_dbg(ql_dbg_init, base_vha, 0x00f1, in qla2x00_probe_one()
3370 base_vha->flags.difdix_supported = 0; in qla2x00_probe_one()
3376 ret = qlafx00_fx_disc(base_vha, in qla2x00_probe_one()
3377 &base_vha->hw->mr.fcport, FXDISC_GET_CONFIG_INFO); in qla2x00_probe_one()
3386 base_vha->flags.init_done = 1; in qla2x00_probe_one()
3387 base_vha->flags.online = 1; in qla2x00_probe_one()
3390 ql_dbg(ql_dbg_init, base_vha, 0x00f2, in qla2x00_probe_one()
3393 if (qla_ini_mode_enabled(base_vha) || in qla2x00_probe_one()
3394 qla_dual_mode_enabled(base_vha)) in qla2x00_probe_one()
3397 ql_dbg(ql_dbg_init, base_vha, 0x0122, in qla2x00_probe_one()
3400 qla2x00_alloc_sysfs_attr(base_vha); in qla2x00_probe_one()
3403 ret = qlafx00_fx_disc(base_vha, in qla2x00_probe_one()
3404 &base_vha->hw->mr.fcport, FXDISC_GET_PORT_INFO); in qla2x00_probe_one()
3407 ret = qlafx00_fx_disc(base_vha, in qla2x00_probe_one()
3408 &base_vha->hw->mr.fcport, FXDISC_REG_HOST_INFO); in qla2x00_probe_one()
3411 qla2x00_init_host_attr(base_vha); in qla2x00_probe_one()
3413 qla2x00_dfs_setup(base_vha); in qla2x00_probe_one()
3415 ql_log(ql_log_info, base_vha, 0x00fb, in qla2x00_probe_one()
3417 ql_log(ql_log_info, base_vha, 0x00fc, in qla2x00_probe_one()
3419 pdev->device, ha->isp_ops->pci_info_str(base_vha, pci_info, in qla2x00_probe_one()
3422 base_vha->host_no, in qla2x00_probe_one()
3423 ha->isp_ops->fw_version_str(base_vha, fw_str, sizeof(fw_str))); in qla2x00_probe_one()
3425 qlt_add_target(ha, base_vha); in qla2x00_probe_one()
3427 clear_bit(PFLG_DRIVER_PROBING, &base_vha->pci_flags); in qla2x00_probe_one()
3429 if (test_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_probe_one()
3433 ql_log(ql_log_info, base_vha, 0xffff, in qla2x00_probe_one()
3435 set_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags); in qla2x00_probe_one()
3436 qla2xxx_wake_dpc(base_vha); in qla2x00_probe_one()
3442 if (base_vha->gnl.l) { in qla2x00_probe_one()
3443 dma_free_coherent(&ha->pdev->dev, base_vha->gnl.size, in qla2x00_probe_one()
3444 base_vha->gnl.l, base_vha->gnl.ldma); in qla2x00_probe_one()
3445 base_vha->gnl.l = NULL; in qla2x00_probe_one()
3448 if (base_vha->timer_active) in qla2x00_probe_one()
3449 qla2x00_stop_timer(base_vha); in qla2x00_probe_one()
3450 base_vha->flags.online = 0; in qla2x00_probe_one()
3458 qla2x00_free_device(base_vha); in qla2x00_probe_one()
3459 scsi_host_put(base_vha->host); in qla2x00_probe_one()
3564 qla2x00_delete_all_vps(struct qla_hw_data *ha, scsi_qla_host_t *base_vha) in qla2x00_delete_all_vps() argument
3573 BUG_ON(base_vha->list.next == &ha->vp_list); in qla2x00_delete_all_vps()
3575 vha = list_first_entry(&base_vha->list, scsi_qla_host_t, list); in qla2x00_delete_all_vps()
3664 scsi_qla_host_t *base_vha; in qla2x00_remove_one() local
3667 base_vha = pci_get_drvdata(pdev); in qla2x00_remove_one()
3668 ha = base_vha->hw; in qla2x00_remove_one()
3669 ql_log(ql_log_info, base_vha, 0xb079, in qla2x00_remove_one()
3674 set_bit(PFLG_DRIVER_REMOVING, &base_vha->pci_flags); in qla2x00_remove_one()
3683 dma_free_coherent(&ha->pdev->dev, base_vha->gnl.size, in qla2x00_remove_one()
3684 base_vha->gnl.l, base_vha->gnl.ldma); in qla2x00_remove_one()
3685 base_vha->gnl.l = NULL; in qla2x00_remove_one()
3686 scsi_host_put(base_vha->host); in qla2x00_remove_one()
3691 qla2x00_wait_for_hba_ready(base_vha); in qla2x00_remove_one()
3696 qla2x00_abort_isp_cleanup(base_vha); in qla2x00_remove_one()
3699 ql_dbg(ql_dbg_p3p, base_vha, 0xb07e, in qla2x00_remove_one()
3701 if (qla83xx_clear_drv_presence(base_vha) != QLA_SUCCESS) in qla2x00_remove_one()
3702 ql_dbg(ql_dbg_p3p, base_vha, 0xb079, in qla2x00_remove_one()
3706 qla2x00_try_to_stop_firmware(base_vha); in qla2x00_remove_one()
3709 qla2x00_wait_for_sess_deletion(base_vha); in qla2x00_remove_one()
3715 if (test_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_remove_one()
3718 set_bit(UNLOADING, &base_vha->dpc_flags); in qla2x00_remove_one()
3720 qla_nvme_delete(base_vha); in qla2x00_remove_one()
3723 base_vha->gnl.size, base_vha->gnl.l, base_vha->gnl.ldma); in qla2x00_remove_one()
3725 base_vha->gnl.l = NULL; in qla2x00_remove_one()
3727 vfree(base_vha->scan.l); in qla2x00_remove_one()
3730 qlafx00_driver_shutdown(base_vha, 20); in qla2x00_remove_one()
3732 qla2x00_delete_all_vps(ha, base_vha); in qla2x00_remove_one()
3734 qla2x00_dfs_remove(base_vha); in qla2x00_remove_one()
3736 qla84xx_put_chip(base_vha); in qla2x00_remove_one()
3739 if (base_vha->timer_active) in qla2x00_remove_one()
3740 qla2x00_stop_timer(base_vha); in qla2x00_remove_one()
3742 base_vha->flags.online = 0; in qla2x00_remove_one()
3754 qlt_remove_target(ha, base_vha); in qla2x00_remove_one()
3756 qla2x00_free_sysfs_attr(base_vha, true); in qla2x00_remove_one()
3758 fc_remove_host(base_vha->host); in qla2x00_remove_one()
3761 scsi_remove_host(base_vha->host); in qla2x00_remove_one()
3763 qla2x00_free_device(base_vha); in qla2x00_remove_one()
3767 scsi_host_put(base_vha->host); in qla2x00_remove_one()
3831 scsi_qla_host_t *base_vha; in qla2x00_schedule_rport_del() local
3839 base_vha = pci_get_drvdata(vha->hw->pdev); in qla2x00_schedule_rport_del()
3843 qlt_do_generation_tick(vha, &base_vha->total_fcport_update_gen); in qla2x00_schedule_rport_del()
3844 set_bit(FCPORT_UPDATE_NEEDED, &base_vha->dpc_flags); in qla2x00_schedule_rport_del()
3845 qla2xxx_wake_dpc(base_vha); in qla2x00_schedule_rport_del()
5406 qla83xx_schedule_work(scsi_qla_host_t *base_vha, int work_code) in qla83xx_schedule_work() argument
5408 struct qla_hw_data *ha = base_vha->hw; in qla83xx_schedule_work()
5421 ql_dbg(ql_dbg_p3p, base_vha, 0xb05e, in qla83xx_schedule_work()
5434 ql_log(ql_log_warn, base_vha, 0xb05f, in qla83xx_schedule_work()
5447 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla83xx_nic_core_unrecoverable_work() local
5450 qla83xx_idc_lock(base_vha, 0); in qla83xx_nic_core_unrecoverable_work()
5451 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, &dev_state); in qla83xx_nic_core_unrecoverable_work()
5452 qla83xx_reset_ownership(base_vha); in qla83xx_nic_core_unrecoverable_work()
5455 qla83xx_wr_reg(base_vha, QLA83XX_IDC_DEV_STATE, in qla83xx_nic_core_unrecoverable_work()
5457 ql_log(ql_log_info, base_vha, 0xb060, "HW State: FAILED.\n"); in qla83xx_nic_core_unrecoverable_work()
5458 qla83xx_schedule_work(base_vha, QLA83XX_IDC_STATE_HANDLER); in qla83xx_nic_core_unrecoverable_work()
5460 qla83xx_idc_unlock(base_vha, 0); in qla83xx_nic_core_unrecoverable_work()
5469 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla83xx_idc_state_handler_work() local
5472 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler_work()
5473 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, &dev_state); in qla83xx_idc_state_handler_work()
5476 qla83xx_idc_state_handler(base_vha); in qla83xx_idc_state_handler_work()
5477 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler_work()
5481 qla83xx_check_nic_core_fw_alive(scsi_qla_host_t *base_vha) in qla83xx_check_nic_core_fw_alive() argument
5489 ql_dbg(ql_dbg_p3p, base_vha, 0xb07c, in qla83xx_check_nic_core_fw_alive()
5495 qla83xx_idc_lock(base_vha, 0); in qla83xx_check_nic_core_fw_alive()
5496 qla83xx_rd_reg(base_vha, QLA83XX_FW_HEARTBEAT, in qla83xx_check_nic_core_fw_alive()
5498 qla83xx_idc_unlock(base_vha, 0); in qla83xx_check_nic_core_fw_alive()
5500 qla83xx_idc_lock(base_vha, 0); in qla83xx_check_nic_core_fw_alive()
5501 qla83xx_rd_reg(base_vha, QLA83XX_FW_HEARTBEAT, in qla83xx_check_nic_core_fw_alive()
5503 qla83xx_idc_unlock(base_vha, 0); in qla83xx_check_nic_core_fw_alive()
5515 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla83xx_nic_core_reset_work() local
5519 if (qla2xxx_mctp_dump(base_vha) != QLA_SUCCESS) in qla83xx_nic_core_reset_work()
5520 ql_log(ql_log_warn, base_vha, 0xb081, in qla83xx_nic_core_reset_work()
5526 if (qla83xx_check_nic_core_fw_alive(base_vha) == QLA_SUCCESS) { in qla83xx_nic_core_reset_work()
5527 qla83xx_idc_lock(base_vha, 0); in qla83xx_nic_core_reset_work()
5528 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, in qla83xx_nic_core_reset_work()
5530 qla83xx_idc_unlock(base_vha, 0); in qla83xx_nic_core_reset_work()
5532 ql_dbg(ql_dbg_p3p, base_vha, 0xb07a, in qla83xx_nic_core_reset_work()
5539 if (qla83xx_nic_core_reset(base_vha)) { in qla83xx_nic_core_reset_work()
5541 ql_dbg(ql_dbg_p3p, base_vha, 0xb061, in qla83xx_nic_core_reset_work()
5554 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla83xx_service_idc_aen() local
5557 qla83xx_idc_lock(base_vha, 0); in qla83xx_service_idc_aen()
5558 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, &dev_state); in qla83xx_service_idc_aen()
5559 qla83xx_rd_reg(base_vha, QLA83XX_IDC_CONTROL, &idc_control); in qla83xx_service_idc_aen()
5560 qla83xx_idc_unlock(base_vha, 0); in qla83xx_service_idc_aen()
5563 ql_dbg(ql_dbg_p3p, base_vha, 0xb062, in qla83xx_service_idc_aen()
5565 qla83xx_schedule_work(base_vha, QLA83XX_NIC_CORE_RESET); in qla83xx_service_idc_aen()
5566 } else if (qla83xx_check_nic_core_fw_alive(base_vha) == in qla83xx_service_idc_aen()
5568 ql_dbg(ql_dbg_p3p, base_vha, 0xb07b, in qla83xx_service_idc_aen()
5570 qla83xx_schedule_work(base_vha, QLA83XX_NIC_CORE_RESET); in qla83xx_service_idc_aen()
5574 qla83xx_schedule_work(base_vha, QLA83XX_IDC_STATE_HANDLER); in qla83xx_service_idc_aen()
5599 qla83xx_force_lock_recovery(scsi_qla_host_t *base_vha) in qla83xx_force_lock_recovery() argument
5605 struct qla_hw_data *ha = base_vha->hw; in qla83xx_force_lock_recovery()
5607 ql_dbg(ql_dbg_p3p, base_vha, 0xb086, in qla83xx_force_lock_recovery()
5610 rval = qla83xx_rd_reg(base_vha, QLA83XX_IDC_LOCK_RECOVERY, &data); in qla83xx_force_lock_recovery()
5618 rval = qla83xx_wr_reg(base_vha, QLA83XX_IDC_LOCK_RECOVERY, in qla83xx_force_lock_recovery()
5625 rval = qla83xx_rd_reg(base_vha, QLA83XX_IDC_LOCK_RECOVERY, in qla83xx_force_lock_recovery()
5633 rval = qla83xx_wr_reg(base_vha, in qla83xx_force_lock_recovery()
5639 rval = qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_UNLOCK, in qla83xx_force_lock_recovery()
5644 rval = qla83xx_wr_reg(base_vha, QLA83XX_DRIVER_LOCKID, in qla83xx_force_lock_recovery()
5649 rval = qla83xx_wr_reg(base_vha, in qla83xx_force_lock_recovery()
5661 qla83xx_idc_lock_recovery(scsi_qla_host_t *base_vha) in qla83xx_idc_lock_recovery() argument
5669 rval = qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCKID, &o_drv_lockid); in qla83xx_idc_lock_recovery()
5675 if (qla83xx_force_lock_recovery(base_vha) == QLA_SUCCESS) in qla83xx_idc_lock_recovery()
5681 rval = qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCKID, &n_drv_lockid); in qla83xx_idc_lock_recovery()
5696 qla83xx_idc_lock(scsi_qla_host_t *base_vha, uint16_t requester_id) in qla83xx_idc_lock() argument
5700 struct qla_hw_data *ha = base_vha->hw; in qla83xx_idc_lock()
5704 if (qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCK, &data) in qla83xx_idc_lock()
5708 qla83xx_wr_reg(base_vha, QLA83XX_DRIVER_LOCKID, in qla83xx_idc_lock()
5711 qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCKID, in qla83xx_idc_lock()
5713 ql_dbg(ql_dbg_p3p, base_vha, 0xb063, in qla83xx_idc_lock()
5718 if (qla83xx_idc_lock_recovery(base_vha) in qla83xx_idc_lock()
5723 ql_log(ql_log_warn, base_vha, 0xb075, in qla83xx_idc_lock()
5733 qla83xx_idc_unlock(scsi_qla_host_t *base_vha, uint16_t requester_id) in qla83xx_idc_unlock() argument
5740 struct qla_hw_data *ha = base_vha->hw; in qla83xx_idc_unlock()
5747 if (qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_LOCKID, &data) in qla83xx_idc_unlock()
5750 qla83xx_rd_reg(base_vha, QLA83XX_DRIVER_UNLOCK, &data); in qla83xx_idc_unlock()
5752 qla83xx_wr_reg(base_vha, QLA83XX_DRIVER_LOCKID, 0xff); in qla83xx_idc_unlock()
5759 ql_dbg(ql_dbg_p3p, base_vha, 0xb064, in qla83xx_idc_unlock()
5767 ql_dbg(ql_dbg_p3p, base_vha, 0xb065, in qla83xx_idc_unlock()
5778 if (qla83xx_access_control(base_vha, options, 0, 0, NULL)) { in qla83xx_idc_unlock()
5783 ql_dbg(ql_dbg_p3p, base_vha, 0xb066, in qla83xx_idc_unlock()
5925 qla83xx_idc_state_handler(scsi_qla_host_t *base_vha) in qla83xx_idc_state_handler() argument
5927 struct qla_hw_data *ha = base_vha->hw; in qla83xx_idc_state_handler()
5938 ql_log(ql_log_warn, base_vha, 0xb06e, in qla83xx_idc_state_handler()
5943 qla83xx_wr_reg(base_vha, QLA83XX_IDC_DEV_STATE, in qla83xx_idc_state_handler()
5945 ql_log(ql_log_info, base_vha, 0xb06f, in qla83xx_idc_state_handler()
5949 qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, &dev_state); in qla83xx_idc_state_handler()
5953 qla83xx_idc_audit(base_vha, in qla83xx_idc_state_handler()
5956 ql_dbg(ql_dbg_p3p, base_vha, 0xb070, in qla83xx_idc_state_handler()
5962 rval = qla83xx_device_bootstrap(base_vha); in qla83xx_idc_state_handler()
5965 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
5967 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
5972 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
5974 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
5978 qla83xx_need_reset_handler(base_vha); in qla83xx_idc_state_handler()
5981 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
5983 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
5991 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
5993 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
6000 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
6002 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
6008 qla83xx_idc_audit(base_vha, in qla83xx_idc_state_handler()
6011 __qla83xx_clear_drv_presence(base_vha); in qla83xx_idc_state_handler()
6012 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
6013 qla8xxx_dev_failed_handler(base_vha); in qla83xx_idc_state_handler()
6015 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
6018 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
6020 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
6023 ql_log(ql_log_warn, base_vha, 0xb071, in qla83xx_idc_state_handler()
6025 qla83xx_idc_unlock(base_vha, 0); in qla83xx_idc_state_handler()
6026 qla8xxx_dev_failed_handler(base_vha); in qla83xx_idc_state_handler()
6028 qla83xx_idc_lock(base_vha, 0); in qla83xx_idc_state_handler()
6043 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla2x00_disable_board_on_pci_error() local
6049 if (test_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_disable_board_on_pci_error()
6052 ql_log(ql_log_warn, base_vha, 0x015b, in qla2x00_disable_board_on_pci_error()
6056 ql_log(ql_log_info, base_vha, 0xfffc, in qla2x00_disable_board_on_pci_error()
6058 base_vha->pci_flags); in qla2x00_disable_board_on_pci_error()
6062 qla2x00_wait_for_sess_deletion(base_vha); in qla2x00_disable_board_on_pci_error()
6064 set_bit(UNLOADING, &base_vha->dpc_flags); in qla2x00_disable_board_on_pci_error()
6066 qla2x00_delete_all_vps(ha, base_vha); in qla2x00_disable_board_on_pci_error()
6068 qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16); in qla2x00_disable_board_on_pci_error()
6070 qla2x00_dfs_remove(base_vha); in qla2x00_disable_board_on_pci_error()
6072 qla84xx_put_chip(base_vha); in qla2x00_disable_board_on_pci_error()
6074 if (base_vha->timer_active) in qla2x00_disable_board_on_pci_error()
6075 qla2x00_stop_timer(base_vha); in qla2x00_disable_board_on_pci_error()
6077 base_vha->flags.online = 0; in qla2x00_disable_board_on_pci_error()
6085 qla2x00_free_sysfs_attr(base_vha, false); in qla2x00_disable_board_on_pci_error()
6087 fc_remove_host(base_vha->host); in qla2x00_disable_board_on_pci_error()
6089 scsi_remove_host(base_vha->host); in qla2x00_disable_board_on_pci_error()
6091 base_vha->flags.init_done = 0; in qla2x00_disable_board_on_pci_error()
6092 qla25xx_delete_queues(base_vha); in qla2x00_disable_board_on_pci_error()
6093 qla2x00_free_fcports(base_vha); in qla2x00_disable_board_on_pci_error()
6094 qla2x00_free_irqs(base_vha); in qla2x00_disable_board_on_pci_error()
6096 qla82xx_md_free(base_vha); in qla2x00_disable_board_on_pci_error()
6126 scsi_qla_host_t *base_vha; in qla2x00_do_dpc() local
6132 base_vha = pci_get_drvdata(ha->pdev); in qla2x00_do_dpc()
6138 ql_dbg(ql_dbg_dpc, base_vha, 0x4000, in qla2x00_do_dpc()
6143 if (!base_vha->flags.init_done || ha->flags.mbox_busy) in qla2x00_do_dpc()
6147 ql_dbg(ql_dbg_dpc, base_vha, 0x4003, in qla2x00_do_dpc()
6154 ql_dbg(ql_dbg_dpc + ql_dbg_verbose, base_vha, 0x4001, in qla2x00_do_dpc()
6156 base_vha->dpc_flags); in qla2x00_do_dpc()
6158 if (test_bit(UNLOADING, &base_vha->dpc_flags)) in qla2x00_do_dpc()
6164 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6166 qla8044_wr_direct(base_vha, in qla2x00_do_dpc()
6170 ql_log(ql_log_info, base_vha, 0x4004, in qla2x00_do_dpc()
6172 qla8044_device_state_handler(base_vha); in qla2x00_do_dpc()
6178 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6183 ql_log(ql_log_info, base_vha, 0x0151, in qla2x00_do_dpc()
6185 qla82xx_device_state_handler(base_vha); in qla2x00_do_dpc()
6191 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6193 ql_dbg(ql_dbg_dpc, base_vha, 0x4005, in qla2x00_do_dpc()
6196 &base_vha->dpc_flags))) { in qla2x00_do_dpc()
6197 if (qla82xx_fcoe_ctx_reset(base_vha)) { in qla2x00_do_dpc()
6202 &base_vha->dpc_flags); in qla2x00_do_dpc()
6205 &base_vha->dpc_flags); in qla2x00_do_dpc()
6208 ql_dbg(ql_dbg_dpc, base_vha, 0x4006, in qla2x00_do_dpc()
6213 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6214 ql_dbg(ql_dbg_dpc, base_vha, 0x4020, in qla2x00_do_dpc()
6216 if (qlafx00_reset_initialize(base_vha)) { in qla2x00_do_dpc()
6219 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6221 &base_vha->dpc_flags); in qla2x00_do_dpc()
6222 ql_dbg(ql_dbg_dpc, base_vha, in qla2x00_do_dpc()
6230 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6231 ql_dbg(ql_dbg_dpc, base_vha, 0x4022, in qla2x00_do_dpc()
6233 if (qlafx00_rescan_isp(base_vha)) { in qla2x00_do_dpc()
6235 &base_vha->dpc_flags)) in qla2x00_do_dpc()
6237 &base_vha->dpc_flags); in qla2x00_do_dpc()
6238 ql_dbg(ql_dbg_dpc, base_vha, 0x401e, in qla2x00_do_dpc()
6241 ql_dbg(ql_dbg_dpc, base_vha, 0x401f, in qla2x00_do_dpc()
6245 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6246 ql_dbg(ql_dbg_dpc, base_vha, 0x4023, in qla2x00_do_dpc()
6248 qlafx00_fx_disc(base_vha, in qla2x00_do_dpc()
6249 &base_vha->hw->mr.fcport, in qla2x00_do_dpc()
6255 &base_vha->dpc_flags) && in qla2x00_do_dpc()
6256 !test_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6257 qla24xx_detect_sfp(base_vha); in qla2x00_do_dpc()
6261 set_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags); in qla2x00_do_dpc()
6265 (ISP_ABORT_NEEDED, &base_vha->dpc_flags) && in qla2x00_do_dpc()
6266 !test_bit(UNLOADING, &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6269 switch (base_vha->qlini_mode) { in qla2x00_do_dpc()
6273 if (!qla_tgt_mode_enabled(base_vha) && in qla2x00_do_dpc()
6278 if (!qla_dual_mode_enabled(base_vha) && in qla2x00_do_dpc()
6287 &base_vha->dpc_flags))) { in qla2x00_do_dpc()
6288 ql_dbg(ql_dbg_dpc, base_vha, 0x4007, in qla2x00_do_dpc()
6290 if (ha->isp_ops->abort_isp(base_vha)) { in qla2x00_do_dpc()
6293 &base_vha->dpc_flags); in qla2x00_do_dpc()
6296 &base_vha->dpc_flags); in qla2x00_do_dpc()
6297 ql_dbg(ql_dbg_dpc, base_vha, 0x4008, in qla2x00_do_dpc()
6303 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6304 qla2x00_update_fcports(base_vha); in qla2x00_do_dpc()
6310 if (test_bit(ISP_QUIESCE_NEEDED, &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6311 ql_dbg(ql_dbg_dpc, base_vha, 0x4009, in qla2x00_do_dpc()
6315 qla82xx_device_state_handler(base_vha); in qla2x00_do_dpc()
6317 qla8044_device_state_handler(base_vha); in qla2x00_do_dpc()
6319 &base_vha->dpc_flags); in qla2x00_do_dpc()
6321 qla2x00_perform_loop_resync(base_vha); in qla2x00_do_dpc()
6325 base_vha); in qla2x00_do_dpc()
6330 base_vha); in qla2x00_do_dpc()
6336 &base_vha->dpc_flags); in qla2x00_do_dpc()
6337 qla2x00_quiesce_io(base_vha); in qla2x00_do_dpc()
6339 ql_dbg(ql_dbg_dpc, base_vha, 0x400a, in qla2x00_do_dpc()
6344 &base_vha->dpc_flags) && in qla2x00_do_dpc()
6345 (!(test_and_set_bit(RESET_ACTIVE, &base_vha->dpc_flags)))) { in qla2x00_do_dpc()
6347 ql_dbg(ql_dbg_dpc, base_vha, 0x400b, in qla2x00_do_dpc()
6349 qla2x00_rst_aen(base_vha); in qla2x00_do_dpc()
6350 clear_bit(RESET_ACTIVE, &base_vha->dpc_flags); in qla2x00_do_dpc()
6351 ql_dbg(ql_dbg_dpc, base_vha, 0x400c, in qla2x00_do_dpc()
6356 if (test_bit(RELOGIN_NEEDED, &base_vha->dpc_flags) && in qla2x00_do_dpc()
6357 !test_bit(LOOP_RESYNC_NEEDED, &base_vha->dpc_flags) && in qla2x00_do_dpc()
6358 atomic_read(&base_vha->loop_state) != LOOP_DOWN) { in qla2x00_do_dpc()
6360 if (!base_vha->relogin_jif || in qla2x00_do_dpc()
6361 time_after_eq(jiffies, base_vha->relogin_jif)) { in qla2x00_do_dpc()
6362 base_vha->relogin_jif = jiffies + HZ; in qla2x00_do_dpc()
6363 clear_bit(RELOGIN_NEEDED, &base_vha->dpc_flags); in qla2x00_do_dpc()
6365 ql_dbg(ql_dbg_disc, base_vha, 0x400d, in qla2x00_do_dpc()
6367 qla24xx_post_relogin_work(base_vha); in qla2x00_do_dpc()
6372 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6374 ql_dbg(ql_dbg_dpc, base_vha, 0x400f, in qla2x00_do_dpc()
6378 &base_vha->dpc_flags))) { in qla2x00_do_dpc()
6380 qla2x00_loop_resync(base_vha); in qla2x00_do_dpc()
6383 &base_vha->dpc_flags); in qla2x00_do_dpc()
6386 ql_dbg(ql_dbg_dpc, base_vha, 0x4010, in qla2x00_do_dpc()
6393 if (test_bit(NPIV_CONFIG_NEEDED, &base_vha->dpc_flags) && in qla2x00_do_dpc()
6394 atomic_read(&base_vha->loop_state) == LOOP_READY) { in qla2x00_do_dpc()
6395 clear_bit(NPIV_CONFIG_NEEDED, &base_vha->dpc_flags); in qla2x00_do_dpc()
6396 qla2xxx_flash_npiv_conf(base_vha); in qla2x00_do_dpc()
6404 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6406 ha->isp_ops->beacon_blink(base_vha); in qla2x00_do_dpc()
6411 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6419 list_for_each_entry(qpair, &base_vha->qp_list, in qla2x00_do_dpc()
6426 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6427 ql_log(ql_log_info, base_vha, 0xffffff, in qla2x00_do_dpc()
6430 if (qla27xx_set_zio_threshold(base_vha, in qla2x00_do_dpc()
6432 ql_log(ql_log_info, base_vha, 0xffffff, in qla2x00_do_dpc()
6439 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6440 ql_log(ql_log_info, base_vha, 0xffffff, in qla2x00_do_dpc()
6443 qla27xx_set_zio_threshold(base_vha, in qla2x00_do_dpc()
6448 qla2x00_do_dpc_all_vps(base_vha); in qla2x00_do_dpc()
6451 &base_vha->dpc_flags)) { in qla2x00_do_dpc()
6452 qla2x00_lip_reset(base_vha); in qla2x00_do_dpc()
6461 ql_dbg(ql_dbg_dpc, base_vha, 0x4011, in qla2x00_do_dpc()
6470 qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16); in qla2x00_do_dpc()
6832 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); in qla_pci_error_cleanup() local
6868 list_for_each_entry(qpair, &base_vha->qp_list, qp_list_elem) in qla_pci_error_cleanup()
6946 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); in qla2xxx_pci_mmio_enabled() local
6947 struct qla_hw_data *ha = base_vha->hw; in qla2xxx_pci_mmio_enabled()
6971 ql_log(ql_log_info, base_vha, 0x9003, in qla2xxx_pci_mmio_enabled()
6973 ha->isp_ops->fw_dump(base_vha, 0); in qla2xxx_pci_mmio_enabled()
6984 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); in qla2xxx_pci_slot_reset() local
6985 struct qla_hw_data *ha = base_vha->hw; in qla2xxx_pci_slot_reset()
6989 ql_dbg(ql_dbg_aer, base_vha, 0x9004, in qla2xxx_pci_slot_reset()
7011 ql_log(ql_log_warn, base_vha, 0x9005, in qla2xxx_pci_slot_reset()
7017 if (ha->isp_ops->pci_config(base_vha)) in qla2xxx_pci_slot_reset()
7021 list_for_each_entry(qpair, &base_vha->qp_list, qp_list_elem) in qla2xxx_pci_slot_reset()
7025 base_vha->flags.online = 1; in qla2xxx_pci_slot_reset()
7026 set_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_pci_slot_reset()
7027 if (ha->isp_ops->abort_isp(base_vha) == QLA_SUCCESS) in qla2xxx_pci_slot_reset()
7029 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla2xxx_pci_slot_reset()
7033 ql_dbg(ql_dbg_aer, base_vha, 0x900e, in qla2xxx_pci_slot_reset()
7042 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); in qla2xxx_pci_resume() local
7043 struct qla_hw_data *ha = base_vha->hw; in qla2xxx_pci_resume()
7046 ql_dbg(ql_dbg_aer, base_vha, 0x900f, in qla2xxx_pci_resume()
7051 ret = qla2x00_wait_for_hba_online(base_vha); in qla2xxx_pci_resume()
7053 ql_log(ql_log_fatal, base_vha, 0x9002, in qla2xxx_pci_resume()
7061 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); in qla_pci_reset_prepare() local
7062 struct qla_hw_data *ha = base_vha->hw; in qla_pci_reset_prepare()
7065 ql_log(ql_log_warn, base_vha, 0xffff, in qla_pci_reset_prepare()
7076 list_for_each_entry(qpair, &base_vha->qp_list, qp_list_elem) in qla_pci_reset_prepare()
7080 set_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla_pci_reset_prepare()
7081 qla2x00_abort_isp_cleanup(base_vha); in qla_pci_reset_prepare()
7082 qla2x00_abort_all_cmds(base_vha, DID_RESET << 16); in qla_pci_reset_prepare()
7088 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); in qla_pci_reset_done() local
7089 struct qla_hw_data *ha = base_vha->hw; in qla_pci_reset_done()
7092 ql_log(ql_log_warn, base_vha, 0xffff, in qla_pci_reset_done()
7100 list_for_each_entry(qpair, &base_vha->qp_list, qp_list_elem) in qla_pci_reset_done()
7104 base_vha->flags.online = 1; in qla_pci_reset_done()
7105 ha->isp_ops->abort_isp(base_vha); in qla_pci_reset_done()
7106 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); in qla_pci_reset_done()