phba 90 drivers/scsi/be2iscsi/be.h struct beiscsi_hba *phba; phba 88 drivers/scsi/be2iscsi/be_cmds.c struct be_mcc_wrb *alloc_mcc_wrb(struct beiscsi_hba *phba, phba 91 drivers/scsi/be2iscsi/be_cmds.c struct be_queue_info *mccq = &phba->ctrl.mcc_obj.q; phba 95 drivers/scsi/be2iscsi/be_cmds.c spin_lock(&phba->ctrl.mcc_lock); phba 97 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT | phba 100 drivers/scsi/be2iscsi/be_cmds.c mccq->used, phba->ctrl.mcc_tag_available); phba 104 drivers/scsi/be2iscsi/be_cmds.c if (!phba->ctrl.mcc_tag_available) phba 107 drivers/scsi/be2iscsi/be_cmds.c tag = phba->ctrl.mcc_tag[phba->ctrl.mcc_alloc_index]; phba 109 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT | phba 112 drivers/scsi/be2iscsi/be_cmds.c phba->ctrl.mcc_tag_available, phba 113 drivers/scsi/be2iscsi/be_cmds.c phba->ctrl.mcc_alloc_index); phba 119 drivers/scsi/be2iscsi/be_cmds.c phba->ctrl.mcc_tag[phba->ctrl.mcc_alloc_index] = 0; phba 120 drivers/scsi/be2iscsi/be_cmds.c phba->ctrl.mcc_tag_status[tag] = 0; phba 121 drivers/scsi/be2iscsi/be_cmds.c phba->ctrl.ptag_state[tag].tag_state = 0; phba 122 drivers/scsi/be2iscsi/be_cmds.c phba->ctrl.ptag_state[tag].cbfn = NULL; phba 123 drivers/scsi/be2iscsi/be_cmds.c phba->ctrl.mcc_tag_available--; phba 124 drivers/scsi/be2iscsi/be_cmds.c if (phba->ctrl.mcc_alloc_index == (MAX_MCC_CMD - 1)) phba 125 drivers/scsi/be2iscsi/be_cmds.c phba->ctrl.mcc_alloc_index = 0; phba 127 drivers/scsi/be2iscsi/be_cmds.c phba->ctrl.mcc_alloc_index++; phba 137 drivers/scsi/be2iscsi/be_cmds.c spin_unlock(&phba->ctrl.mcc_lock); phba 168 drivers/scsi/be2iscsi/be_cmds.c int __beiscsi_mcc_compl_status(struct beiscsi_hba *phba, phba 173 drivers/scsi/be2iscsi/be_cmds.c struct be_queue_info *mccq = &phba->ctrl.mcc_obj.q; phba 181 drivers/scsi/be2iscsi/be_cmds.c mcc_tag_status = phba->ctrl.mcc_tag_status[tag]; phba 199 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_WARNING, phba 208 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_WARNING, phba 234 drivers/scsi/be2iscsi/be_cmds.c int beiscsi_mccq_compl_wait(struct beiscsi_hba *phba, phba 242 drivers/scsi/be2iscsi/be_cmds.c __beiscsi_log(phba, KERN_ERR, phba 247 drivers/scsi/be2iscsi/be_cmds.c if (beiscsi_hba_in_error(phba)) { phba 249 drivers/scsi/be2iscsi/be_cmds.c &phba->ctrl.ptag_state[tag].tag_state); phba 254 drivers/scsi/be2iscsi/be_cmds.c rc = wait_event_interruptible_timeout(phba->ctrl.mcc_wait[tag], phba 255 drivers/scsi/be2iscsi/be_cmds.c phba->ctrl.mcc_tag_status[tag], phba 263 drivers/scsi/be2iscsi/be_cmds.c if (!test_bit(BEISCSI_HBA_ONLINE, &phba->state)) { phba 265 drivers/scsi/be2iscsi/be_cmds.c &phba->ctrl.ptag_state[tag].tag_state); phba 282 drivers/scsi/be2iscsi/be_cmds.c tag_mem = &phba->ctrl.ptag_state[tag].tag_mem_state; phba 293 drivers/scsi/be2iscsi/be_cmds.c &phba->ctrl.ptag_state[tag].tag_state); phba 295 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, phba 302 drivers/scsi/be2iscsi/be_cmds.c rc = __beiscsi_mcc_compl_status(phba, tag, wrb, mbx_cmd_mem); phba 304 drivers/scsi/be2iscsi/be_cmds.c free_mcc_wrb(&phba->ctrl, tag); phba 323 drivers/scsi/be2iscsi/be_cmds.c struct beiscsi_hba *phba = pci_get_drvdata(ctrl->pdev); phba 333 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, phba 356 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG | BEISCSI_LOG_MBOX, phba 362 drivers/scsi/be2iscsi/be_cmds.c static void beiscsi_process_async_link(struct beiscsi_hba *phba, phba 369 drivers/scsi/be2iscsi/be_cmds.c phba->port_speed = evt->port_speed; phba 375 drivers/scsi/be2iscsi/be_cmds.c set_bit(BEISCSI_HBA_LINK_UP, &phba->state); phba 376 drivers/scsi/be2iscsi/be_cmds.c if (test_bit(BEISCSI_HBA_BOOT_FOUND, &phba->state)) phba 377 drivers/scsi/be2iscsi/be_cmds.c beiscsi_start_boot_work(phba, BE_BOOT_INVALID_SHANDLE); phba 378 drivers/scsi/be2iscsi/be_cmds.c __beiscsi_log(phba, KERN_ERR, phba 382 drivers/scsi/be2iscsi/be_cmds.c clear_bit(BEISCSI_HBA_LINK_UP, &phba->state); phba 383 drivers/scsi/be2iscsi/be_cmds.c __beiscsi_log(phba, KERN_ERR, phba 386 drivers/scsi/be2iscsi/be_cmds.c iscsi_host_for_each_session(phba->shost, phba 400 drivers/scsi/be2iscsi/be_cmds.c static void beiscsi_process_async_sli(struct beiscsi_hba *phba, phba 417 drivers/scsi/be2iscsi/be_cmds.c (phba->fw_config.phys_port * 8) & 0xff; phba 419 drivers/scsi/be2iscsi/be_cmds.c (phba->fw_config.phys_port * 8) & 0xff; phba 421 drivers/scsi/be2iscsi/be_cmds.c old_state = phba->optic_state; phba 422 drivers/scsi/be2iscsi/be_cmds.c phba->optic_state = state; phba 426 drivers/scsi/be2iscsi/be_cmds.c __beiscsi_log(phba, KERN_ERR, phba 428 drivers/scsi/be2iscsi/be_cmds.c phba->port_name, async_sli->event_data1); phba 446 drivers/scsi/be2iscsi/be_cmds.c if (old_state != phba->optic_state) phba 447 drivers/scsi/be2iscsi/be_cmds.c __beiscsi_log(phba, sev, "BC_%d : Port %c: %s%s\n", phba 448 drivers/scsi/be2iscsi/be_cmds.c phba->port_name, phba 453 drivers/scsi/be2iscsi/be_cmds.c void beiscsi_process_async_event(struct beiscsi_hba *phba, phba 464 drivers/scsi/be2iscsi/be_cmds.c beiscsi_process_async_link(phba, compl); phba 467 drivers/scsi/be2iscsi/be_cmds.c if (test_bit(BEISCSI_HBA_BOOT_FOUND, &phba->state)) phba 468 drivers/scsi/be2iscsi/be_cmds.c beiscsi_start_boot_work(phba, BE_BOOT_INVALID_SHANDLE); phba 472 drivers/scsi/be2iscsi/be_cmds.c beiscsi_process_async_sli(phba, compl); phba 479 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, sev, BEISCSI_LOG_CONFIG | BEISCSI_LOG_MBOX, phba 487 drivers/scsi/be2iscsi/be_cmds.c struct beiscsi_hba *phba = pci_get_drvdata(ctrl->pdev); phba 498 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_MBOX | phba 508 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_WARNING, phba 542 drivers/scsi/be2iscsi/be_cmds.c ctrl->ptag_state[tag].cbfn(phba, tag); phba 544 drivers/scsi/be2iscsi/be_cmds.c __beiscsi_log(phba, KERN_ERR, phba 552 drivers/scsi/be2iscsi/be_cmds.c __beiscsi_mcc_compl_status(phba, tag, NULL, NULL); phba 561 drivers/scsi/be2iscsi/be_cmds.c void be_mcc_notify(struct beiscsi_hba *phba, unsigned int tag) phba 563 drivers/scsi/be2iscsi/be_cmds.c struct be_queue_info *mccq = &phba->ctrl.mcc_obj.q; phba 566 drivers/scsi/be2iscsi/be_cmds.c set_bit(MCC_TAG_STATE_RUNNING, &phba->ctrl.ptag_state[tag].tag_state); phba 571 drivers/scsi/be2iscsi/be_cmds.c iowrite32(val, phba->db_va + DB_MCCQ_OFFSET); phba 590 drivers/scsi/be2iscsi/be_cmds.c struct beiscsi_hba *phba = pci_get_drvdata(ctrl->pdev); phba 600 drivers/scsi/be2iscsi/be_cmds.c if (beiscsi_hba_in_error(phba)) phba 617 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, phba 620 drivers/scsi/be2iscsi/be_cmds.c set_bit(BEISCSI_HBA_FW_TIMEOUT, &phba->state); phba 782 drivers/scsi/be2iscsi/be_cmds.c struct beiscsi_hba *phba = pci_get_drvdata(ctrl->pdev); phba 796 drivers/scsi/be2iscsi/be_cmds.c if (is_chip_be2_be3r(phba)) { phba 833 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 850 drivers/scsi/be2iscsi/be_cmds.c int beiscsi_cmd_mccq_create(struct beiscsi_hba *phba, phba 861 drivers/scsi/be2iscsi/be_cmds.c mutex_lock(&phba->ctrl.mbox_lock); phba 862 drivers/scsi/be2iscsi/be_cmds.c ctrl = &phba->ctrl; phba 879 drivers/scsi/be2iscsi/be_cmds.c PCI_FUNC(phba->pcidev->devfn)); phba 895 drivers/scsi/be2iscsi/be_cmds.c mutex_unlock(&phba->ctrl.mbox_lock); phba 905 drivers/scsi/be2iscsi/be_cmds.c struct beiscsi_hba *phba = pci_get_drvdata(ctrl->pdev); phba 909 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 983 drivers/scsi/be2iscsi/be_cmds.c struct beiscsi_hba *phba = pci_get_drvdata(ctrl->pdev); phba 996 drivers/scsi/be2iscsi/be_cmds.c if (phba->fw_config.dual_ulp_aware) { phba 1002 drivers/scsi/be2iscsi/be_cmds.c if (is_chip_be2_be3r(phba)) { phba 1044 drivers/scsi/be2iscsi/be_cmds.c defq_ring = &phba->phwi_ctrlr->default_pdu_hdr[ulp_num]; phba 1046 drivers/scsi/be2iscsi/be_cmds.c defq_ring = &phba->phwi_ctrlr-> phba 1051 drivers/scsi/be2iscsi/be_cmds.c if (!phba->fw_config.dual_ulp_aware) { phba 1084 drivers/scsi/be2iscsi/be_cmds.c struct beiscsi_hba *phba = pci_get_drvdata(ctrl->pdev); phba 1096 drivers/scsi/be2iscsi/be_cmds.c if (phba->fw_config.dual_ulp_aware) { phba 1110 drivers/scsi/be2iscsi/be_cmds.c if (!phba->fw_config.dual_ulp_aware) { phba 1173 drivers/scsi/be2iscsi/be_cmds.c struct beiscsi_hba *phba = pci_get_drvdata(ctrl->pdev); phba 1204 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 1227 drivers/scsi/be2iscsi/be_cmds.c int be_cmd_set_vlan(struct beiscsi_hba *phba, phba 1233 drivers/scsi/be2iscsi/be_cmds.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 1237 drivers/scsi/be2iscsi/be_cmds.c wrb = alloc_mcc_wrb(phba, &tag); phba 1249 drivers/scsi/be2iscsi/be_cmds.c req->interface_hndl = phba->interface_handle; phba 1252 drivers/scsi/be2iscsi/be_cmds.c be_mcc_notify(phba, tag); phba 1259 drivers/scsi/be2iscsi/be_cmds.c struct beiscsi_hba *phba) phba 1271 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 1291 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 1300 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.iscsi_features = phba 1302 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 1304 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.iscsi_features); phba 1305 drivers/scsi/be2iscsi/be_cmds.c memcpy(phba->fw_ver_str, resp->params.hba_attribs. phba 1308 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 1331 drivers/scsi/be2iscsi/be_cmds.c struct beiscsi_hba *phba) phba 1348 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 1354 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.phys_port = pfw_cfg->phys_port; phba 1355 drivers/scsi/be2iscsi/be_cmds.c if (phba->fw_config.phys_port >= BEISCSI_PHYS_PORT_MAX) { phba 1356 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 1358 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.phys_port); phba 1363 drivers/scsi/be2iscsi/be_cmds.c if (!is_chip_be2_be3r(phba)) { phba 1364 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.eqid_count = pfw_cfg->eqid_count; phba 1365 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.cqid_count = pfw_cfg->cqid_count; phba 1366 drivers/scsi/be2iscsi/be_cmds.c if (phba->fw_config.eqid_count == 0 || phba 1367 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.eqid_count > 2048) { phba 1368 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 1370 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.eqid_count); phba 1373 drivers/scsi/be2iscsi/be_cmds.c if (phba->fw_config.cqid_count == 0 || phba 1374 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.cqid_count > 4096) { phba 1375 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 1377 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.cqid_count); phba 1380 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 1382 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.eqid_count, phba 1383 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.cqid_count); phba 1395 drivers/scsi/be2iscsi/be_cmds.c set_bit(ulp_num, &phba->fw_config.ulp_supported); phba 1398 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.iscsi_cid_start[ulp_num] = phba 1400 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.iscsi_cid_count[ulp_num] = phba 1403 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.iscsi_icd_start[ulp_num] = phba 1405 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.iscsi_icd_count[ulp_num] = phba 1408 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.iscsi_chain_start[ulp_num] = phba 1410 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.iscsi_chain_count[ulp_num] = phba 1413 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 1420 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config. phba 1422 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config. phba 1424 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config. phba 1426 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config. phba 1431 drivers/scsi/be2iscsi/be_cmds.c if (phba->fw_config.ulp_supported == 0) { phba 1432 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 1443 drivers/scsi/be2iscsi/be_cmds.c if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) phba 1445 drivers/scsi/be2iscsi/be_cmds.c icd_count = phba->fw_config.iscsi_icd_count[ulp_num]; phba 1447 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 1452 drivers/scsi/be2iscsi/be_cmds.c cid_count = BEISCSI_GET_CID_COUNT(phba, BEISCSI_ULP0) + phba 1453 drivers/scsi/be2iscsi/be_cmds.c BEISCSI_GET_CID_COUNT(phba, BEISCSI_ULP1); phba 1455 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 1464 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.dual_ulp_aware = (pfw_cfg->function_mode & phba 1467 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 1469 drivers/scsi/be2iscsi/be_cmds.c phba->fw_config.dual_ulp_aware); phba 1486 drivers/scsi/be2iscsi/be_cmds.c int beiscsi_get_port_name(struct be_ctrl_info *ctrl, struct beiscsi_hba *phba) phba 1502 drivers/scsi/be2iscsi/be_cmds.c phba->port_name = 0; phba 1504 drivers/scsi/be2iscsi/be_cmds.c phba->port_name = ioctl->p.resp.port_names >> phba 1505 drivers/scsi/be2iscsi/be_cmds.c (phba->fw_config.phys_port * 8) & 0xff; phba 1507 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 1512 drivers/scsi/be2iscsi/be_cmds.c if (phba->port_name == 0) phba 1513 drivers/scsi/be2iscsi/be_cmds.c phba->port_name = '?'; phba 1519 drivers/scsi/be2iscsi/be_cmds.c int beiscsi_set_host_data(struct beiscsi_hba *phba) phba 1521 drivers/scsi/be2iscsi/be_cmds.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 1526 drivers/scsi/be2iscsi/be_cmds.c if (is_chip_be2_be3r(phba)) phba 1548 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 1557 drivers/scsi/be2iscsi/be_cmds.c __beiscsi_log(phba, KERN_INFO, phba 1565 drivers/scsi/be2iscsi/be_cmds.c int beiscsi_set_uer_feature(struct beiscsi_hba *phba) phba 1567 drivers/scsi/be2iscsi/be_cmds.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 1586 drivers/scsi/be2iscsi/be_cmds.c phba->ue2rp = ioctl->param.resp.ue2rp; phba 1587 drivers/scsi/be2iscsi/be_cmds.c set_bit(BEISCSI_HBA_UER_SUPP, &phba->state); phba 1588 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 1597 drivers/scsi/be2iscsi/be_cmds.c __beiscsi_log(phba, KERN_INFO, phba 1605 drivers/scsi/be2iscsi/be_cmds.c static u32 beiscsi_get_post_stage(struct beiscsi_hba *phba) phba 1609 drivers/scsi/be2iscsi/be_cmds.c if (is_chip_be2_be3r(phba)) phba 1610 drivers/scsi/be2iscsi/be_cmds.c sem = ioread32(phba->csr_va + SLIPORT_SEMAPHORE_OFFSET_BEx); phba 1612 drivers/scsi/be2iscsi/be_cmds.c pci_read_config_dword(phba->pcidev, phba 1617 drivers/scsi/be2iscsi/be_cmds.c int beiscsi_check_fw_rdy(struct beiscsi_hba *phba) phba 1623 drivers/scsi/be2iscsi/be_cmds.c post = beiscsi_get_post_stage(phba); phba 1634 drivers/scsi/be2iscsi/be_cmds.c __beiscsi_log(phba, KERN_ERR, phba 1641 drivers/scsi/be2iscsi/be_cmds.c int beiscsi_cmd_function_reset(struct beiscsi_hba *phba) phba 1643 drivers/scsi/be2iscsi/be_cmds.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 1663 drivers/scsi/be2iscsi/be_cmds.c struct beiscsi_hba *phba = pci_get_drvdata(ctrl->pdev); phba 1696 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 1702 drivers/scsi/be2iscsi/be_cmds.c int beiscsi_init_sliport(struct beiscsi_hba *phba) phba 1707 drivers/scsi/be2iscsi/be_cmds.c status = beiscsi_check_fw_rdy(phba); phba 1712 drivers/scsi/be2iscsi/be_cmds.c phba->state &= ~BEISCSI_HBA_IN_ERR; phba 1715 drivers/scsi/be2iscsi/be_cmds.c phba->state &= ~BEISCSI_HBA_UER_SUPP; phba 1721 drivers/scsi/be2iscsi/be_cmds.c status = beiscsi_cmd_function_reset(phba); phba 1723 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 1729 drivers/scsi/be2iscsi/be_cmds.c return beiscsi_cmd_special_wrb(&phba->ctrl, 1); phba 1741 drivers/scsi/be2iscsi/be_cmds.c int beiscsi_cmd_iscsi_cleanup(struct beiscsi_hba *phba, unsigned short ulp) phba 1743 drivers/scsi/be2iscsi/be_cmds.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 1753 drivers/scsi/be2iscsi/be_cmds.c hdr_ring_id = HWI_GET_DEF_HDRQ_ID(phba, ulp); phba 1754 drivers/scsi/be2iscsi/be_cmds.c data_ring_id = HWI_GET_DEF_BUFQ_ID(phba, ulp); phba 1755 drivers/scsi/be2iscsi/be_cmds.c if (is_chip_be2_be3r(phba)) { phba 1778 drivers/scsi/be2iscsi/be_cmds.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_INIT, phba 1790 drivers/scsi/be2iscsi/be_cmds.c int beiscsi_detect_ue(struct beiscsi_hba *phba) phba 1797 drivers/scsi/be2iscsi/be_cmds.c pci_read_config_dword(phba->pcidev, phba 1799 drivers/scsi/be2iscsi/be_cmds.c pci_read_config_dword(phba->pcidev, phba 1802 drivers/scsi/be2iscsi/be_cmds.c pci_read_config_dword(phba->pcidev, phba 1805 drivers/scsi/be2iscsi/be_cmds.c pci_read_config_dword(phba->pcidev, phba 1814 drivers/scsi/be2iscsi/be_cmds.c set_bit(BEISCSI_HBA_IN_UE, &phba->state); phba 1815 drivers/scsi/be2iscsi/be_cmds.c __beiscsi_log(phba, KERN_ERR, phba 1823 drivers/scsi/be2iscsi/be_cmds.c __beiscsi_log(phba, KERN_ERR, phba 1832 drivers/scsi/be2iscsi/be_cmds.c __beiscsi_log(phba, KERN_ERR, phba 1847 drivers/scsi/be2iscsi/be_cmds.c int beiscsi_detect_tpe(struct beiscsi_hba *phba) phba 1852 drivers/scsi/be2iscsi/be_cmds.c post = beiscsi_get_post_stage(phba); phba 1856 drivers/scsi/be2iscsi/be_cmds.c set_bit(BEISCSI_HBA_IN_TPE, &phba->state); phba 1857 drivers/scsi/be2iscsi/be_cmds.c __beiscsi_log(phba, KERN_INFO, phba 1861 drivers/scsi/be2iscsi/be_cmds.c __beiscsi_log(phba, KERN_INFO, phba 788 drivers/scsi/be2iscsi/be_cmds.h int beiscsi_cmd_function_reset(struct beiscsi_hba *phba); phba 792 drivers/scsi/be2iscsi/be_cmds.h int beiscsi_check_fw_rdy(struct beiscsi_hba *phba); phba 794 drivers/scsi/be2iscsi/be_cmds.h int beiscsi_init_sliport(struct beiscsi_hba *phba); phba 796 drivers/scsi/be2iscsi/be_cmds.h int beiscsi_cmd_iscsi_cleanup(struct beiscsi_hba *phba, unsigned short ulp_num); phba 798 drivers/scsi/be2iscsi/be_cmds.h int beiscsi_detect_ue(struct beiscsi_hba *phba); phba 800 drivers/scsi/be2iscsi/be_cmds.h int beiscsi_detect_tpe(struct beiscsi_hba *phba); phba 812 drivers/scsi/be2iscsi/be_cmds.h int beiscsi_cmd_mccq_create(struct beiscsi_hba *phba, phba 818 drivers/scsi/be2iscsi/be_cmds.h int beiscsi_modify_eq_delay(struct beiscsi_hba *phba, struct be_set_eqd *, phba 820 drivers/scsi/be2iscsi/be_cmds.h int beiscsi_mccq_compl_wait(struct beiscsi_hba *phba, phba 824 drivers/scsi/be2iscsi/be_cmds.h int __beiscsi_mcc_compl_status(struct beiscsi_hba *phba, phba 829 drivers/scsi/be2iscsi/be_cmds.h void be_mcc_notify(struct beiscsi_hba *phba, unsigned int tag); phba 830 drivers/scsi/be2iscsi/be_cmds.h struct be_mcc_wrb *alloc_mcc_wrb(struct beiscsi_hba *phba, phba 832 drivers/scsi/be2iscsi/be_cmds.h void beiscsi_process_async_event(struct beiscsi_hba *phba, phba 858 drivers/scsi/be2iscsi/be_cmds.h int be_cmd_set_vlan(struct beiscsi_hba *phba, uint16_t vlan_tag); phba 861 drivers/scsi/be2iscsi/be_cmds.h struct beiscsi_hba *phba); phba 863 drivers/scsi/be2iscsi/be_cmds.h int beiscsi_get_fw_config(struct be_ctrl_info *ctrl, struct beiscsi_hba *phba); phba 865 drivers/scsi/be2iscsi/be_cmds.h int beiscsi_get_port_name(struct be_ctrl_info *ctrl, struct beiscsi_hba *phba); phba 867 drivers/scsi/be2iscsi/be_cmds.h int beiscsi_set_uer_feature(struct beiscsi_hba *phba); phba 868 drivers/scsi/be2iscsi/be_cmds.h int beiscsi_set_host_data(struct beiscsi_hba *phba); phba 42 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba; phba 53 drivers/scsi/be2iscsi/be_iscsi.c phba = beiscsi_ep->phba; phba 55 drivers/scsi/be2iscsi/be_iscsi.c if (!beiscsi_hba_is_online(phba)) { phba 56 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 57 drivers/scsi/be2iscsi/be_iscsi.c "BS_%d : HBA in error 0x%lx\n", phba->state); phba 61 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 63 drivers/scsi/be2iscsi/be_iscsi.c if (cmds_max > beiscsi_ep->phba->params.wrbs_per_cxn) { phba 64 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 68 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_ep->phba->params.wrbs_per_cxn, phba 69 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_ep->phba->params.wrbs_per_cxn); phba 71 drivers/scsi/be2iscsi/be_iscsi.c cmds_max = beiscsi_ep->phba->params.wrbs_per_cxn; phba 74 drivers/scsi/be2iscsi/be_iscsi.c shost = phba->shost; phba 85 drivers/scsi/be2iscsi/be_iscsi.c &phba->pcidev->dev, phba 132 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba; phba 141 drivers/scsi/be2iscsi/be_iscsi.c phba = iscsi_host_priv(shost); phba 143 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 154 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_conn->phba = phba; phba 177 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba = iscsi_host_priv(shost); phba 178 drivers/scsi/be2iscsi/be_iscsi.c struct hwi_controller *phwi_ctrlr = phba->phwi_ctrlr; phba 193 drivers/scsi/be2iscsi/be_iscsi.c if (beiscsi_ep->phba != phba) { phba 194 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 196 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_ep->phba, phba); phba 201 drivers/scsi/be2iscsi/be_iscsi.c if (phba->conn_table[cri_index]) { phba 202 drivers/scsi/be2iscsi/be_iscsi.c if (beiscsi_conn != phba->conn_table[cri_index] || phba 203 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_ep != phba->conn_table[cri_index]->ep) { phba 204 drivers/scsi/be2iscsi/be_iscsi.c __beiscsi_log(phba, KERN_ERR, phba 209 drivers/scsi/be2iscsi/be_iscsi.c phba->conn_table[cri_index]); phba 223 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 226 drivers/scsi/be2iscsi/be_iscsi.c phba->conn_table[cri_index] = beiscsi_conn; phba 230 drivers/scsi/be2iscsi/be_iscsi.c static int beiscsi_iface_create_ipv4(struct beiscsi_hba *phba) phba 232 drivers/scsi/be2iscsi/be_iscsi.c if (phba->ipv4_iface) phba 235 drivers/scsi/be2iscsi/be_iscsi.c phba->ipv4_iface = iscsi_create_iface(phba->shost, phba 239 drivers/scsi/be2iscsi/be_iscsi.c if (!phba->ipv4_iface) { phba 240 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 249 drivers/scsi/be2iscsi/be_iscsi.c static int beiscsi_iface_create_ipv6(struct beiscsi_hba *phba) phba 251 drivers/scsi/be2iscsi/be_iscsi.c if (phba->ipv6_iface) phba 254 drivers/scsi/be2iscsi/be_iscsi.c phba->ipv6_iface = iscsi_create_iface(phba->shost, phba 258 drivers/scsi/be2iscsi/be_iscsi.c if (!phba->ipv6_iface) { phba 259 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 268 drivers/scsi/be2iscsi/be_iscsi.c void beiscsi_iface_create_default(struct beiscsi_hba *phba) phba 272 drivers/scsi/be2iscsi/be_iscsi.c if (!beiscsi_if_get_info(phba, BEISCSI_IP_TYPE_V4, &if_info)) { phba 273 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_iface_create_ipv4(phba); phba 277 drivers/scsi/be2iscsi/be_iscsi.c if (!beiscsi_if_get_info(phba, BEISCSI_IP_TYPE_V6, &if_info)) { phba 278 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_iface_create_ipv6(phba); phba 283 drivers/scsi/be2iscsi/be_iscsi.c void beiscsi_iface_destroy_default(struct beiscsi_hba *phba) phba 285 drivers/scsi/be2iscsi/be_iscsi.c if (phba->ipv6_iface) { phba 286 drivers/scsi/be2iscsi/be_iscsi.c iscsi_destroy_iface(phba->ipv6_iface); phba 287 drivers/scsi/be2iscsi/be_iscsi.c phba->ipv6_iface = NULL; phba 289 drivers/scsi/be2iscsi/be_iscsi.c if (phba->ipv4_iface) { phba 290 drivers/scsi/be2iscsi/be_iscsi.c iscsi_destroy_iface(phba->ipv4_iface); phba 291 drivers/scsi/be2iscsi/be_iscsi.c phba->ipv4_iface = NULL; phba 311 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba = iscsi_host_priv(shost); phba 318 drivers/scsi/be2iscsi/be_iscsi.c ret = beiscsi_if_set_vlan(phba, BEISCSI_VLAN_DISABLE); phba 321 drivers/scsi/be2iscsi/be_iscsi.c ret = beiscsi_if_set_vlan(phba, phba 334 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba = iscsi_host_priv(shost); phba 343 drivers/scsi/be2iscsi/be_iscsi.c ret = beiscsi_iface_create_ipv4(phba); phba 345 drivers/scsi/be2iscsi/be_iscsi.c iscsi_destroy_iface(phba->ipv4_iface); phba 346 drivers/scsi/be2iscsi/be_iscsi.c phba->ipv4_iface = NULL; phba 351 drivers/scsi/be2iscsi/be_iscsi.c ret = beiscsi_if_set_gw(phba, BEISCSI_IP_TYPE_V4, gw); phba 355 drivers/scsi/be2iscsi/be_iscsi.c ret = beiscsi_if_en_dhcp(phba, BEISCSI_IP_TYPE_V4); phba 358 drivers/scsi/be2iscsi/be_iscsi.c ret = beiscsi_if_en_static(phba, BEISCSI_IP_TYPE_V4, phba 361 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 372 drivers/scsi/be2iscsi/be_iscsi.c ret = beiscsi_if_en_static(phba, BEISCSI_IP_TYPE_V4, phba 386 drivers/scsi/be2iscsi/be_iscsi.c ret = beiscsi_if_en_static(phba, BEISCSI_IP_TYPE_V4, phba 399 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba = iscsi_host_priv(shost); phba 405 drivers/scsi/be2iscsi/be_iscsi.c ret = beiscsi_iface_create_ipv6(phba); phba 407 drivers/scsi/be2iscsi/be_iscsi.c iscsi_destroy_iface(phba->ipv6_iface); phba 408 drivers/scsi/be2iscsi/be_iscsi.c phba->ipv6_iface = NULL; phba 412 drivers/scsi/be2iscsi/be_iscsi.c ret = beiscsi_if_en_static(phba, BEISCSI_IP_TYPE_V6, phba 424 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba = iscsi_host_priv(shost); phba 429 drivers/scsi/be2iscsi/be_iscsi.c if (!beiscsi_hba_is_online(phba)) { phba 430 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 431 drivers/scsi/be2iscsi/be_iscsi.c "BS_%d : HBA in error 0x%lx\n", phba->state); phba 436 drivers/scsi/be2iscsi/be_iscsi.c ret = beiscsi_if_get_handle(phba); phba 438 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 453 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 461 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 488 drivers/scsi/be2iscsi/be_iscsi.c __beiscsi_log(phba, KERN_ERR, phba 502 drivers/scsi/be2iscsi/be_iscsi.c static int __beiscsi_iface_get_param(struct beiscsi_hba *phba, phba 512 drivers/scsi/be2iscsi/be_iscsi.c len = beiscsi_if_get_info(phba, ip_type, &if_info); phba 566 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba = iscsi_host_priv(shost); phba 572 drivers/scsi/be2iscsi/be_iscsi.c if (!beiscsi_hba_is_online(phba)) { phba 573 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 574 drivers/scsi/be2iscsi/be_iscsi.c "BS_%d : HBA in error 0x%lx\n", phba->state); phba 586 drivers/scsi/be2iscsi/be_iscsi.c len = __beiscsi_iface_get_param(phba, iface, param, buf); phba 591 drivers/scsi/be2iscsi/be_iscsi.c phba->ipv4_iface ? "enable" : "disable"); phba 594 drivers/scsi/be2iscsi/be_iscsi.c phba->ipv6_iface ? "enable" : "disable"); phba 598 drivers/scsi/be2iscsi/be_iscsi.c len = beiscsi_if_get_gw(phba, BEISCSI_IP_TYPE_V4, &gateway); phba 621 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(beiscsi_ep->phba, KERN_INFO, phba 647 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba = NULL; phba 650 drivers/scsi/be2iscsi/be_iscsi.c phba = ((struct beiscsi_conn *)conn->dd_data)->phba; phba 651 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 693 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba = iscsi_host_priv(shost); phba 696 drivers/scsi/be2iscsi/be_iscsi.c ihost->port_state = test_bit(BEISCSI_HBA_LINK_UP, &phba->state) ? phba 707 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba = iscsi_host_priv(shost); phba 710 drivers/scsi/be2iscsi/be_iscsi.c switch (phba->port_speed) { phba 744 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba = iscsi_host_priv(shost); phba 747 drivers/scsi/be2iscsi/be_iscsi.c if (!beiscsi_hba_is_online(phba)) { phba 748 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 749 drivers/scsi/be2iscsi/be_iscsi.c "BS_%d : HBA in error 0x%lx\n", phba->state); phba 752 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 757 drivers/scsi/be2iscsi/be_iscsi.c status = beiscsi_get_macaddr(buf, phba); phba 759 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 766 drivers/scsi/be2iscsi/be_iscsi.c status = beiscsi_get_initiator_name(phba, buf, true); phba 768 drivers/scsi/be2iscsi/be_iscsi.c status = beiscsi_get_initiator_name(phba, buf, false); phba 770 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 790 drivers/scsi/be2iscsi/be_iscsi.c int beiscsi_get_macaddr(char *buf, struct beiscsi_hba *phba) phba 795 drivers/scsi/be2iscsi/be_iscsi.c if (phba->mac_addr_set) phba 796 drivers/scsi/be2iscsi/be_iscsi.c return sysfs_format_mac(buf, phba->mac_address, ETH_ALEN); phba 799 drivers/scsi/be2iscsi/be_iscsi.c rc = mgmt_get_nic_conf(phba, &resp); phba 803 drivers/scsi/be2iscsi/be_iscsi.c phba->mac_addr_set = true; phba 804 drivers/scsi/be2iscsi/be_iscsi.c memcpy(phba->mac_address, resp.mac_address, ETH_ALEN); phba 805 drivers/scsi/be2iscsi/be_iscsi.c return sysfs_format_mac(buf, phba->mac_address, ETH_ALEN); phba 819 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba = NULL; phba 821 drivers/scsi/be2iscsi/be_iscsi.c phba = ((struct beiscsi_conn *)conn->dd_data)->phba; phba 822 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 895 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba; phba 897 drivers/scsi/be2iscsi/be_iscsi.c phba = ((struct beiscsi_conn *)conn->dd_data)->phba; phba 899 drivers/scsi/be2iscsi/be_iscsi.c if (!beiscsi_hba_is_online(phba)) { phba 900 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 901 drivers/scsi/be2iscsi/be_iscsi.c "BS_%d : HBA in error 0x%lx\n", phba->state); phba 904 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(beiscsi_conn->phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 910 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(beiscsi_conn->phba, KERN_ERR, phba 925 drivers/scsi/be2iscsi/be_iscsi.c static int beiscsi_get_cid(struct beiscsi_hba *phba) phba 932 drivers/scsi/be2iscsi/be_iscsi.c cid_avlbl_ulp0 = (phba->cid_array_info[BEISCSI_ULP0]) ? phba 933 drivers/scsi/be2iscsi/be_iscsi.c BEISCSI_ULP0_AVLBL_CID(phba) : 0; phba 934 drivers/scsi/be2iscsi/be_iscsi.c cid_avlbl_ulp1 = (phba->cid_array_info[BEISCSI_ULP1]) ? phba 935 drivers/scsi/be2iscsi/be_iscsi.c BEISCSI_ULP1_AVLBL_CID(phba) : 0; phba 943 drivers/scsi/be2iscsi/be_iscsi.c if (!test_bit(cid_from_ulp, (void *)&phba->fw_config.ulp_supported)) phba 946 drivers/scsi/be2iscsi/be_iscsi.c cid_info = phba->cid_array_info[cid_from_ulp]; phba 949 drivers/scsi/be2iscsi/be_iscsi.c __beiscsi_log(phba, KERN_ERR, phba 956 drivers/scsi/be2iscsi/be_iscsi.c if (cid_info->cid_alloc == BEISCSI_GET_CID_COUNT(phba, cid_from_ulp)) phba 967 drivers/scsi/be2iscsi/be_iscsi.c static void beiscsi_put_cid(struct beiscsi_hba *phba, unsigned short cid) phba 975 drivers/scsi/be2iscsi/be_iscsi.c phwi_ctrlr = phba->phwi_ctrlr; phba 979 drivers/scsi/be2iscsi/be_iscsi.c cid_info = phba->cid_array_info[cid_post_ulp]; phba 982 drivers/scsi/be2iscsi/be_iscsi.c __beiscsi_log(phba, KERN_ERR, phba 988 drivers/scsi/be2iscsi/be_iscsi.c if (cid_info->cid_free == BEISCSI_GET_CID_COUNT(phba, cid_post_ulp)) phba 999 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba = beiscsi_ep->phba; phba 1002 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_put_cid(phba, beiscsi_ep->ep_cid); phba 1003 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_ep->phba = NULL; phba 1005 drivers/scsi/be2iscsi/be_iscsi.c phba->ep_array[BE_GET_CRI_FROM_CID(beiscsi_ep->ep_cid)] = NULL; phba 1041 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba = beiscsi_ep->phba; phba 1047 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 1050 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_ep->ep_cid = beiscsi_get_cid(phba); phba 1052 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 1057 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 1061 drivers/scsi/be2iscsi/be_iscsi.c phba->ep_array[BE_GET_CRI_FROM_CID phba 1066 drivers/scsi/be2iscsi/be_iscsi.c if (is_chip_be2_be3r(phba)) phba 1071 drivers/scsi/be2iscsi/be_iscsi.c nonemb_cmd.va = dma_alloc_coherent(&phba->ctrl.pdev->dev, phba 1076 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 1085 drivers/scsi/be2iscsi/be_iscsi.c tag = mgmt_open_connection(phba, dst_addr, beiscsi_ep, &nonemb_cmd); phba 1087 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 1091 drivers/scsi/be2iscsi/be_iscsi.c dma_free_coherent(&phba->ctrl.pdev->dev, nonemb_cmd.size, phba 1097 drivers/scsi/be2iscsi/be_iscsi.c ret = beiscsi_mccq_compl_wait(phba, tag, NULL, &nonemb_cmd); phba 1099 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_ERR, phba 1104 drivers/scsi/be2iscsi/be_iscsi.c dma_free_coherent(&phba->ctrl.pdev->dev, phba 1116 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 1119 drivers/scsi/be2iscsi/be_iscsi.c dma_free_coherent(&phba->ctrl.pdev->dev, nonemb_cmd.size, phba 1136 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba; phba 1147 drivers/scsi/be2iscsi/be_iscsi.c phba = iscsi_host_priv(shost); phba 1148 drivers/scsi/be2iscsi/be_iscsi.c if (!beiscsi_hba_is_online(phba)) { phba 1150 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 1151 drivers/scsi/be2iscsi/be_iscsi.c "BS_%d : HBA in error 0x%lx\n", phba->state); phba 1154 drivers/scsi/be2iscsi/be_iscsi.c if (!test_bit(BEISCSI_HBA_LINK_UP, &phba->state)) { phba 1156 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG, phba 1168 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_ep->phba = phba; phba 1172 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 1195 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(beiscsi_ep->phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 1211 drivers/scsi/be2iscsi/be_iscsi.c static void beiscsi_flush_cq(struct beiscsi_hba *phba) phba 1218 drivers/scsi/be2iscsi/be_iscsi.c phwi_ctrlr = phba->phwi_ctrlr; phba 1221 drivers/scsi/be2iscsi/be_iscsi.c for (i = 0; i < phba->num_cpus; i++) { phba 1237 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba = beiscsi_ep->phba; phba 1247 drivers/scsi/be2iscsi/be_iscsi.c tag = beiscsi_invalidate_cxn(phba, beiscsi_ep); phba 1249 drivers/scsi/be2iscsi/be_iscsi.c ret = beiscsi_mccq_compl_wait(phba, tag, NULL, NULL); phba 1252 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 1261 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_flush_cq(phba); phba 1268 drivers/scsi/be2iscsi/be_iscsi.c tag = beiscsi_upload_cxn(phba, beiscsi_ep); phba 1270 drivers/scsi/be2iscsi/be_iscsi.c ret = beiscsi_mccq_compl_wait(phba, tag, NULL, NULL); phba 1273 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 1294 drivers/scsi/be2iscsi/be_iscsi.c struct beiscsi_hba *phba; phba 1298 drivers/scsi/be2iscsi/be_iscsi.c phba = beiscsi_ep->phba; phba 1299 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 1304 drivers/scsi/be2iscsi/be_iscsi.c if (!phba->ep_array[cri_index]) { phba 1305 drivers/scsi/be2iscsi/be_iscsi.c __beiscsi_log(phba, KERN_ERR, phba 1317 drivers/scsi/be2iscsi/be_iscsi.c if (!beiscsi_hba_is_online(phba)) { phba 1318 drivers/scsi/be2iscsi/be_iscsi.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 1319 drivers/scsi/be2iscsi/be_iscsi.c "BS_%d : HBA in error 0x%lx\n", phba->state); phba 1326 drivers/scsi/be2iscsi/be_iscsi.c __beiscsi_log(phba, KERN_ERR, phba 1332 drivers/scsi/be2iscsi/be_iscsi.c if (!phba->conn_table[cri_index]) phba 1333 drivers/scsi/be2iscsi/be_iscsi.c __beiscsi_log(phba, KERN_ERR, phba 1336 drivers/scsi/be2iscsi/be_iscsi.c phba->conn_table[cri_index] = NULL; phba 16 drivers/scsi/be2iscsi/be_iscsi.h void beiscsi_iface_create_default(struct beiscsi_hba *phba); phba 18 drivers/scsi/be2iscsi/be_iscsi.h void beiscsi_iface_destroy_default(struct beiscsi_hba *phba); phba 32 drivers/scsi/be2iscsi/be_iscsi.h void beiscsi_offload_iscsi(struct beiscsi_hba *phba, struct iscsi_conn *conn, phba 58 drivers/scsi/be2iscsi/be_iscsi.h int beiscsi_get_macaddr(char *buf, struct beiscsi_hba *phba); phba 75 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = iscsi_host_priv(shost); \ phba 77 drivers/scsi/be2iscsi/be_main.c phba->attr_##_name);\ phba 82 drivers/scsi/be2iscsi/be_main.c beiscsi_##_name##_change(struct beiscsi_hba *phba, uint32_t val)\ phba 85 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,\ phba 88 drivers/scsi/be2iscsi/be_main.c phba->attr_##_name, val); \ phba 89 drivers/scsi/be2iscsi/be_main.c phba->attr_##_name = val;\ phba 92 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, \ phba 106 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = iscsi_host_priv(shost);\ phba 112 drivers/scsi/be2iscsi/be_main.c if (beiscsi_##_name##_change(phba, param_val) == 0) \ phba 120 drivers/scsi/be2iscsi/be_main.c beiscsi_##_name##_init(struct beiscsi_hba *phba, uint32_t val) \ phba 123 drivers/scsi/be2iscsi/be_main.c phba->attr_##_name = val;\ phba 126 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,\ phba 130 drivers/scsi/be2iscsi/be_main.c phba->attr_##_name = _defval;\ phba 225 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba; phba 243 drivers/scsi/be2iscsi/be_main.c phba = beiscsi_conn->phba; phba 245 drivers/scsi/be2iscsi/be_main.c if (is_chip_be2_be3r(phba)) { phba 256 drivers/scsi/be2iscsi/be_main.c rc = beiscsi_mgmt_invalidate_icds(phba, &inv_tbl, 1); phba 259 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_EH, phba 278 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba; phba 295 drivers/scsi/be2iscsi/be_main.c phba = beiscsi_conn->phba; phba 300 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_EH, phba 327 drivers/scsi/be2iscsi/be_main.c if (is_chip_be2_be3r(phba)) { phba 348 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_EH, phba 354 drivers/scsi/be2iscsi/be_main.c if (beiscsi_mgmt_invalidate_icds(phba, &inv_tbl->tbl[0], nents)) { phba 355 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_EH, phba 410 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba; phba 413 drivers/scsi/be2iscsi/be_main.c shost = iscsi_host_alloc(&beiscsi_sht, sizeof(*phba), 0); phba 424 drivers/scsi/be2iscsi/be_main.c phba = iscsi_host_priv(shost); phba 425 drivers/scsi/be2iscsi/be_main.c memset(phba, 0, sizeof(*phba)); phba 426 drivers/scsi/be2iscsi/be_main.c phba->shost = shost; phba 427 drivers/scsi/be2iscsi/be_main.c phba->pcidev = pci_dev_get(pcidev); phba 428 drivers/scsi/be2iscsi/be_main.c pci_set_drvdata(pcidev, phba); phba 429 drivers/scsi/be2iscsi/be_main.c phba->interface_handle = 0xFFFFFFFF; phba 431 drivers/scsi/be2iscsi/be_main.c return phba; phba 434 drivers/scsi/be2iscsi/be_main.c static void beiscsi_unmap_pci_function(struct beiscsi_hba *phba) phba 436 drivers/scsi/be2iscsi/be_main.c if (phba->csr_va) { phba 437 drivers/scsi/be2iscsi/be_main.c iounmap(phba->csr_va); phba 438 drivers/scsi/be2iscsi/be_main.c phba->csr_va = NULL; phba 440 drivers/scsi/be2iscsi/be_main.c if (phba->db_va) { phba 441 drivers/scsi/be2iscsi/be_main.c iounmap(phba->db_va); phba 442 drivers/scsi/be2iscsi/be_main.c phba->db_va = NULL; phba 444 drivers/scsi/be2iscsi/be_main.c if (phba->pci_va) { phba 445 drivers/scsi/be2iscsi/be_main.c iounmap(phba->pci_va); phba 446 drivers/scsi/be2iscsi/be_main.c phba->pci_va = NULL; phba 450 drivers/scsi/be2iscsi/be_main.c static int beiscsi_map_pci_bars(struct beiscsi_hba *phba, phba 460 drivers/scsi/be2iscsi/be_main.c phba->ctrl.csr = addr; phba 461 drivers/scsi/be2iscsi/be_main.c phba->csr_va = addr; phba 466 drivers/scsi/be2iscsi/be_main.c phba->ctrl.db = addr; phba 467 drivers/scsi/be2iscsi/be_main.c phba->db_va = addr; phba 469 drivers/scsi/be2iscsi/be_main.c if (phba->generation == BE_GEN2) phba 479 drivers/scsi/be2iscsi/be_main.c phba->ctrl.pcicfg = addr; phba 480 drivers/scsi/be2iscsi/be_main.c phba->pci_va = addr; phba 484 drivers/scsi/be2iscsi/be_main.c beiscsi_unmap_pci_function(phba); phba 525 drivers/scsi/be2iscsi/be_main.c static int be_ctrl_init(struct beiscsi_hba *phba, struct pci_dev *pdev) phba 527 drivers/scsi/be2iscsi/be_main.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 533 drivers/scsi/be2iscsi/be_main.c status = beiscsi_map_pci_bars(phba, pdev); phba 540 drivers/scsi/be2iscsi/be_main.c beiscsi_unmap_pci_function(phba); phba 549 drivers/scsi/be2iscsi/be_main.c spin_lock_init(&phba->ctrl.mcc_lock); phba 558 drivers/scsi/be2iscsi/be_main.c static void beiscsi_get_params(struct beiscsi_hba *phba) phba 564 drivers/scsi/be2iscsi/be_main.c total_cid_count = BEISCSI_GET_CID_COUNT(phba, BEISCSI_ULP0) + phba 565 drivers/scsi/be2iscsi/be_main.c BEISCSI_GET_CID_COUNT(phba, BEISCSI_ULP1); phba 574 drivers/scsi/be2iscsi/be_main.c if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) { phba 575 drivers/scsi/be2iscsi/be_main.c icd_start = phba->fw_config.iscsi_icd_start[ulp_num]; phba 576 drivers/scsi/be2iscsi/be_main.c icd_count = phba->fw_config.iscsi_icd_count[ulp_num]; phba 588 drivers/scsi/be2iscsi/be_main.c phba->fw_config. phba 603 drivers/scsi/be2iscsi/be_main.c phba->fw_config.iscsi_icd_count[ulp_num] = (icd_count - phba 606 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 611 drivers/scsi/be2iscsi/be_main.c phba->fw_config. phba 613 drivers/scsi/be2iscsi/be_main.c phba->fw_config. phba 620 drivers/scsi/be2iscsi/be_main.c total_icd_count = phba->fw_config.iscsi_icd_count[ulp_num]; phba 621 drivers/scsi/be2iscsi/be_main.c phba->params.ios_per_ctrl = (total_icd_count - phba 624 drivers/scsi/be2iscsi/be_main.c phba->params.cxns_per_ctrl = total_cid_count; phba 625 drivers/scsi/be2iscsi/be_main.c phba->params.icds_per_ctrl = total_icd_count; phba 626 drivers/scsi/be2iscsi/be_main.c phba->params.num_sge_per_io = BE2_SGE; phba 627 drivers/scsi/be2iscsi/be_main.c phba->params.defpdu_hdr_sz = BE2_DEFPDU_HDR_SZ; phba 628 drivers/scsi/be2iscsi/be_main.c phba->params.defpdu_data_sz = BE2_DEFPDU_DATA_SZ; phba 629 drivers/scsi/be2iscsi/be_main.c phba->params.num_eq_entries = 1024; phba 630 drivers/scsi/be2iscsi/be_main.c phba->params.num_cq_entries = 1024; phba 631 drivers/scsi/be2iscsi/be_main.c phba->params.wrbs_per_cxn = 256; phba 634 drivers/scsi/be2iscsi/be_main.c static void hwi_ring_eq_db(struct beiscsi_hba *phba, phba 657 drivers/scsi/be2iscsi/be_main.c iowrite32(val, phba->db_va + DB_EQ_OFFSET); phba 667 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba; phba 676 drivers/scsi/be2iscsi/be_main.c phba = pbe_eq->phba; phba 677 drivers/scsi/be2iscsi/be_main.c mcc = &phba->ctrl.mcc_obj.cq; phba 694 drivers/scsi/be2iscsi/be_main.c queue_work(phba->wq, &pbe_eq->mcc_work); phba 695 drivers/scsi/be2iscsi/be_main.c hwi_ring_eq_db(phba, eq->id, 1, mcc_events, 1, 1); phba 707 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba; phba 714 drivers/scsi/be2iscsi/be_main.c phba = pbe_eq->phba; phba 716 drivers/scsi/be2iscsi/be_main.c hwi_ring_eq_db(phba, eq->id, 1, 0, 0, 1); phba 729 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba; phba 740 drivers/scsi/be2iscsi/be_main.c phba = dev_id; phba 741 drivers/scsi/be2iscsi/be_main.c ctrl = &phba->ctrl; phba 747 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 752 drivers/scsi/be2iscsi/be_main.c mcc = &phba->ctrl.mcc_obj.cq; phba 774 drivers/scsi/be2iscsi/be_main.c queue_work(phba->wq, &pbe_eq->mcc_work); phba 780 drivers/scsi/be2iscsi/be_main.c hwi_ring_eq_db(phba, eq->id, 0, (io_events + mcc_events), rearm, 1); phba 784 drivers/scsi/be2iscsi/be_main.c static void beiscsi_free_irqs(struct beiscsi_hba *phba) phba 789 drivers/scsi/be2iscsi/be_main.c if (!phba->pcidev->msix_enabled) { phba 790 drivers/scsi/be2iscsi/be_main.c if (phba->pcidev->irq) phba 791 drivers/scsi/be2iscsi/be_main.c free_irq(phba->pcidev->irq, phba); phba 795 drivers/scsi/be2iscsi/be_main.c phwi_context = phba->phwi_ctrlr->phwi_ctxt; phba 796 drivers/scsi/be2iscsi/be_main.c for (i = 0; i <= phba->num_cpus; i++) { phba 797 drivers/scsi/be2iscsi/be_main.c free_irq(pci_irq_vector(phba->pcidev, i), phba 799 drivers/scsi/be2iscsi/be_main.c kfree(phba->msi_name[i]); phba 803 drivers/scsi/be2iscsi/be_main.c static int beiscsi_init_irqs(struct beiscsi_hba *phba) phba 805 drivers/scsi/be2iscsi/be_main.c struct pci_dev *pcidev = phba->pcidev; phba 810 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 814 drivers/scsi/be2iscsi/be_main.c for (i = 0; i < phba->num_cpus; i++) { phba 815 drivers/scsi/be2iscsi/be_main.c phba->msi_name[i] = kasprintf(GFP_KERNEL, phba 817 drivers/scsi/be2iscsi/be_main.c phba->shost->host_no, i); phba 818 drivers/scsi/be2iscsi/be_main.c if (!phba->msi_name[i]) { phba 824 drivers/scsi/be2iscsi/be_main.c be_isr_msix, 0, phba->msi_name[i], phba 827 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 831 drivers/scsi/be2iscsi/be_main.c kfree(phba->msi_name[i]); phba 835 drivers/scsi/be2iscsi/be_main.c phba->msi_name[i] = kasprintf(GFP_KERNEL, "beiscsi_mcc_%02x", phba 836 drivers/scsi/be2iscsi/be_main.c phba->shost->host_no); phba 837 drivers/scsi/be2iscsi/be_main.c if (!phba->msi_name[i]) { phba 842 drivers/scsi/be2iscsi/be_main.c phba->msi_name[i], &phwi_context->be_eq[i]); phba 844 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT , phba 847 drivers/scsi/be2iscsi/be_main.c kfree(phba->msi_name[i]); phba 853 drivers/scsi/be2iscsi/be_main.c "beiscsi", phba); phba 855 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 865 drivers/scsi/be2iscsi/be_main.c kfree(phba->msi_name[j]); phba 870 drivers/scsi/be2iscsi/be_main.c void hwi_ring_cq_db(struct beiscsi_hba *phba, phba 889 drivers/scsi/be2iscsi/be_main.c iowrite32(val, phba->db_va + DB_CQ_OFFSET); phba 892 drivers/scsi/be2iscsi/be_main.c static struct sgl_handle *alloc_io_sgl_handle(struct beiscsi_hba *phba) phba 897 drivers/scsi/be2iscsi/be_main.c spin_lock_irqsave(&phba->io_sgl_lock, flags); phba 898 drivers/scsi/be2iscsi/be_main.c if (phba->io_sgl_hndl_avbl) { phba 899 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_IO, phba 902 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_alloc_index); phba 904 drivers/scsi/be2iscsi/be_main.c psgl_handle = phba->io_sgl_hndl_base[phba-> phba 906 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_hndl_base[phba->io_sgl_alloc_index] = NULL; phba 907 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_hndl_avbl--; phba 908 drivers/scsi/be2iscsi/be_main.c if (phba->io_sgl_alloc_index == (phba->params. phba 910 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_alloc_index = 0; phba 912 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_alloc_index++; phba 915 drivers/scsi/be2iscsi/be_main.c spin_unlock_irqrestore(&phba->io_sgl_lock, flags); phba 920 drivers/scsi/be2iscsi/be_main.c free_io_sgl_handle(struct beiscsi_hba *phba, struct sgl_handle *psgl_handle) phba 924 drivers/scsi/be2iscsi/be_main.c spin_lock_irqsave(&phba->io_sgl_lock, flags); phba 925 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_IO, phba 927 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_free_index); phba 929 drivers/scsi/be2iscsi/be_main.c if (phba->io_sgl_hndl_base[phba->io_sgl_free_index]) { phba 934 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_IO, phba 936 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_free_index, phba 937 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_hndl_base[phba->io_sgl_free_index]); phba 938 drivers/scsi/be2iscsi/be_main.c spin_unlock_irqrestore(&phba->io_sgl_lock, flags); phba 941 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_hndl_base[phba->io_sgl_free_index] = psgl_handle; phba 942 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_hndl_avbl++; phba 943 drivers/scsi/be2iscsi/be_main.c if (phba->io_sgl_free_index == (phba->params.ios_per_ctrl - 1)) phba 944 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_free_index = 0; phba 946 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_free_index++; phba 947 drivers/scsi/be2iscsi/be_main.c spin_unlock_irqrestore(&phba->io_sgl_lock, flags); phba 984 drivers/scsi/be2iscsi/be_main.c struct wrb_handle *alloc_wrb_handle(struct beiscsi_hba *phba, unsigned int cid, phba 991 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 995 drivers/scsi/be2iscsi/be_main.c return beiscsi_get_wrb_handle(pwrb_context, phba->params.wrbs_per_cxn); phba 1025 drivers/scsi/be2iscsi/be_main.c free_wrb_handle(struct beiscsi_hba *phba, struct hwi_wrb_context *pwrb_context, phba 1030 drivers/scsi/be2iscsi/be_main.c phba->params.wrbs_per_cxn); phba 1031 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, phba 1039 drivers/scsi/be2iscsi/be_main.c static struct sgl_handle *alloc_mgmt_sgl_handle(struct beiscsi_hba *phba) phba 1044 drivers/scsi/be2iscsi/be_main.c spin_lock_irqsave(&phba->mgmt_sgl_lock, flags); phba 1045 drivers/scsi/be2iscsi/be_main.c if (phba->eh_sgl_hndl_avbl) { phba 1046 drivers/scsi/be2iscsi/be_main.c psgl_handle = phba->eh_sgl_hndl_base[phba->eh_sgl_alloc_index]; phba 1047 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_hndl_base[phba->eh_sgl_alloc_index] = NULL; phba 1048 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 1050 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_alloc_index, phba 1051 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_alloc_index); phba 1053 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_hndl_avbl--; phba 1054 drivers/scsi/be2iscsi/be_main.c if (phba->eh_sgl_alloc_index == phba 1055 drivers/scsi/be2iscsi/be_main.c (phba->params.icds_per_ctrl - phba->params.ios_per_ctrl - phba 1057 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_alloc_index = 0; phba 1059 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_alloc_index++; phba 1062 drivers/scsi/be2iscsi/be_main.c spin_unlock_irqrestore(&phba->mgmt_sgl_lock, flags); phba 1067 drivers/scsi/be2iscsi/be_main.c free_mgmt_sgl_handle(struct beiscsi_hba *phba, struct sgl_handle *psgl_handle) phba 1071 drivers/scsi/be2iscsi/be_main.c spin_lock_irqsave(&phba->mgmt_sgl_lock, flags); phba 1072 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 1075 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_free_index); phba 1077 drivers/scsi/be2iscsi/be_main.c if (phba->eh_sgl_hndl_base[phba->eh_sgl_free_index]) { phba 1082 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG, phba 1085 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_free_index); phba 1086 drivers/scsi/be2iscsi/be_main.c spin_unlock_irqrestore(&phba->mgmt_sgl_lock, flags); phba 1089 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_hndl_base[phba->eh_sgl_free_index] = psgl_handle; phba 1090 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_hndl_avbl++; phba 1091 drivers/scsi/be2iscsi/be_main.c if (phba->eh_sgl_free_index == phba 1092 drivers/scsi/be2iscsi/be_main.c (phba->params.icds_per_ctrl - phba->params.ios_per_ctrl - 1)) phba 1093 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_free_index = 0; phba 1095 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_free_index++; phba 1096 drivers/scsi/be2iscsi/be_main.c spin_unlock_irqrestore(&phba->mgmt_sgl_lock, flags); phba 1217 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba, struct sol_cqe *psol) phba 1226 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 1227 drivers/scsi/be2iscsi/be_main.c if (is_chip_be2_be3r(phba)) { phba 1270 drivers/scsi/be2iscsi/be_main.c static void adapter_get_sol_cqe(struct beiscsi_hba *phba, phba 1274 drivers/scsi/be2iscsi/be_main.c if (is_chip_be2_be3r(phba)) { phba 1325 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba, struct sol_cqe *psol) phba 1337 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 1340 drivers/scsi/be2iscsi/be_main.c adapter_get_sol_cqe(phba, psol, &csol_cqe); phba 1374 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, phba 1385 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_WARNING, phba 1410 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = beiscsi_conn->phba; phba 1428 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, phba 1440 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_WARNING, phba 1461 drivers/scsi/be2iscsi/be_main.c beiscsi_hdl_purge_handles(struct beiscsi_hba *phba, phba 1484 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = beiscsi_conn->phba; phba 1501 drivers/scsi/be2iscsi/be_main.c if (is_chip_be2_be3r(phba)) { phba 1548 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_ISCSI, phba 1567 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_ISCSI, phba 1570 drivers/scsi/be2iscsi/be_main.c beiscsi_hdl_purge_handles(phba, pasync_ctx, cri); phba 1593 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = beiscsi_conn->phba; phba 1624 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_ISCSI, phba 1635 drivers/scsi/be2iscsi/be_main.c beiscsi_hdl_purge_handles(phba, pasync_ctx, cri); phba 1647 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba; phba 1651 drivers/scsi/be2iscsi/be_main.c phba = beiscsi_conn->phba; phba 1692 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_ISCSI, phba 1701 drivers/scsi/be2iscsi/be_main.c beiscsi_hdl_purge_handles(phba, pasync_ctx, cri); phba 1707 drivers/scsi/be2iscsi/be_main.c beiscsi_hdq_post_handles(struct beiscsi_hba *phba, phba 1718 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 1760 drivers/scsi/be2iscsi/be_main.c iowrite32(doorbell, phba->db_va + doorbell_offset); phba 1767 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = beiscsi_conn->phba; phba 1774 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 1780 drivers/scsi/be2iscsi/be_main.c if (is_chip_be2_be3r(phba)) phba 1790 drivers/scsi/be2iscsi/be_main.c beiscsi_hdq_post_handles(phba, header, ulp_num, 8 * consumed); phba 1793 drivers/scsi/be2iscsi/be_main.c void beiscsi_process_mcc_cq(struct beiscsi_hba *phba) phba 1799 drivers/scsi/be2iscsi/be_main.c mcc_cq = &phba->ctrl.mcc_obj.cq; phba 1803 drivers/scsi/be2iscsi/be_main.c if (beiscsi_hba_in_error(phba)) phba 1807 drivers/scsi/be2iscsi/be_main.c hwi_ring_cq_db(phba, mcc_cq->id, phba 1812 drivers/scsi/be2iscsi/be_main.c beiscsi_process_async_event(phba, mcc_compl); phba 1814 drivers/scsi/be2iscsi/be_main.c beiscsi_process_mcc_compl(&phba->ctrl, mcc_compl); phba 1825 drivers/scsi/be2iscsi/be_main.c hwi_ring_cq_db(phba, mcc_cq->id, num_processed, 1); phba 1831 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba; phba 1834 drivers/scsi/be2iscsi/be_main.c phba = pbe_eq->phba; phba 1835 drivers/scsi/be2iscsi/be_main.c beiscsi_process_mcc_cq(phba); phba 1837 drivers/scsi/be2iscsi/be_main.c if (!beiscsi_hba_in_error(phba)) phba 1838 drivers/scsi/be2iscsi/be_main.c hwi_ring_eq_db(phba, pbe_eq->q.id, 0, 0, 1, 1); phba 1860 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba; phba 1864 drivers/scsi/be2iscsi/be_main.c phba = pbe_eq->phba; phba 1868 drivers/scsi/be2iscsi/be_main.c if (beiscsi_hba_in_error(phba)) phba 1877 drivers/scsi/be2iscsi/be_main.c if (is_chip_be2_be3r(phba)) { phba 1892 drivers/scsi/be2iscsi/be_main.c ep = phba->ep_array[cri_index]; phba 1898 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_WARNING, phba 1910 drivers/scsi/be2iscsi/be_main.c hwi_ring_cq_db(phba, cq->id, 32, 0); phba 1917 drivers/scsi/be2iscsi/be_main.c hwi_complete_cmd(beiscsi_conn, phba, sol); phba 1920 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, phba 1925 drivers/scsi/be2iscsi/be_main.c hwi_complete_drvr_msgs(beiscsi_conn, phba, sol); phba 1928 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, phba 1933 drivers/scsi/be2iscsi/be_main.c spin_lock_bh(&phba->async_pdu_lock); phba 1936 drivers/scsi/be2iscsi/be_main.c spin_unlock_bh(&phba->async_pdu_lock); phba 1939 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, phba 1944 drivers/scsi/be2iscsi/be_main.c spin_lock_bh(&phba->async_pdu_lock); phba 1947 drivers/scsi/be2iscsi/be_main.c spin_unlock_bh(&phba->async_pdu_lock); phba 1952 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, phba 1959 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, phba 1971 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, phba 1977 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, phba 1981 drivers/scsi/be2iscsi/be_main.c spin_lock_bh(&phba->async_pdu_lock); phba 1985 drivers/scsi/be2iscsi/be_main.c spin_unlock_bh(&phba->async_pdu_lock); phba 2002 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, phba 2011 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, phba 2028 drivers/scsi/be2iscsi/be_main.c hwi_ring_cq_db(phba, cq->id, num_processed, 1); phba 2035 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba; phba 2041 drivers/scsi/be2iscsi/be_main.c phba = pbe_eq->phba; phba 2042 drivers/scsi/be2iscsi/be_main.c if (beiscsi_hba_in_error(phba)) { phba 2057 drivers/scsi/be2iscsi/be_main.c hwi_ring_eq_db(phba, eq->id, 1, io_events, 0, 1); phba 2063 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, phba 2067 drivers/scsi/be2iscsi/be_main.c if (!beiscsi_hba_in_error(phba)) phba 2068 drivers/scsi/be2iscsi/be_main.c hwi_ring_eq_db(phba, pbe_eq->q.id, 0, 0, 1, 1); phba 2266 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = beiscsi_conn->phba; phba 2280 drivers/scsi/be2iscsi/be_main.c if (is_chip_be2_be3r(phba)) phba 2289 drivers/scsi/be2iscsi/be_main.c io_task->mtask_addr = dma_map_single(&phba->pcidev->dev, phba 2293 drivers/scsi/be2iscsi/be_main.c if (dma_mapping_error(&phba->pcidev->dev, phba 2347 drivers/scsi/be2iscsi/be_main.c static void beiscsi_find_mem_req(struct beiscsi_hba *phba) phba 2354 drivers/scsi/be2iscsi/be_main.c phba->params.hwi_ws_sz = sizeof(struct hwi_controller); phba 2356 drivers/scsi/be2iscsi/be_main.c phba->mem_req[ISCSI_MEM_GLOBAL_HEADER] = 2 * phba 2358 drivers/scsi/be2iscsi/be_main.c phba->mem_req[HWI_MEM_ADDN_CONTEXT] = phba 2362 drivers/scsi/be2iscsi/be_main.c phba->mem_req[HWI_MEM_WRB] = sizeof(struct iscsi_wrb) phba 2363 drivers/scsi/be2iscsi/be_main.c * (phba->params.wrbs_per_cxn) phba 2364 drivers/scsi/be2iscsi/be_main.c * phba->params.cxns_per_ctrl; phba 2366 drivers/scsi/be2iscsi/be_main.c (phba->params.wrbs_per_cxn); phba 2367 drivers/scsi/be2iscsi/be_main.c phba->mem_req[HWI_MEM_WRBH] = roundup_pow_of_two((wrb_sz_per_cxn) * phba 2368 drivers/scsi/be2iscsi/be_main.c phba->params.cxns_per_ctrl); phba 2370 drivers/scsi/be2iscsi/be_main.c phba->mem_req[HWI_MEM_SGLH] = sizeof(struct sgl_handle) * phba 2371 drivers/scsi/be2iscsi/be_main.c phba->params.icds_per_ctrl; phba 2372 drivers/scsi/be2iscsi/be_main.c phba->mem_req[HWI_MEM_SGE] = sizeof(struct iscsi_sge) * phba 2373 drivers/scsi/be2iscsi/be_main.c phba->params.num_sge_per_io * phba->params.icds_per_ctrl; phba 2375 drivers/scsi/be2iscsi/be_main.c if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) { phba 2379 drivers/scsi/be2iscsi/be_main.c phba, ulp_num) * phba 2384 drivers/scsi/be2iscsi/be_main.c phba, ulp_num) * phba 2385 drivers/scsi/be2iscsi/be_main.c phba->params.defpdu_hdr_sz); phba 2389 drivers/scsi/be2iscsi/be_main.c phba, ulp_num) * phba 2390 drivers/scsi/be2iscsi/be_main.c phba->params.defpdu_data_sz); phba 2394 drivers/scsi/be2iscsi/be_main.c phba, ulp_num) * phba 2399 drivers/scsi/be2iscsi/be_main.c phba->mem_req[mem_descr_index] = phba 2400 drivers/scsi/be2iscsi/be_main.c BEISCSI_GET_CID_COUNT(phba, ulp_num) * phba 2405 drivers/scsi/be2iscsi/be_main.c phba->mem_req[mem_descr_index] = phba 2411 drivers/scsi/be2iscsi/be_main.c phba->mem_req[mem_descr_index] = phba 2417 drivers/scsi/be2iscsi/be_main.c phba->mem_req[mem_descr_index] = phba 2423 drivers/scsi/be2iscsi/be_main.c phba->mem_req[mem_descr_index] = phba 2429 drivers/scsi/be2iscsi/be_main.c phba->mem_req[mem_descr_index] = phba 2430 drivers/scsi/be2iscsi/be_main.c BEISCSI_ASYNC_HDQ_SIZE(phba, ulp_num) * phba 2435 drivers/scsi/be2iscsi/be_main.c phba->mem_req[mem_descr_index] = phba 2436 drivers/scsi/be2iscsi/be_main.c BEISCSI_ASYNC_HDQ_SIZE(phba, ulp_num) * phba 2441 drivers/scsi/be2iscsi/be_main.c phba->mem_req[mem_descr_index] = phba 2443 drivers/scsi/be2iscsi/be_main.c (BEISCSI_ASYNC_HDQ_SIZE(phba, ulp_num) * phba 2449 drivers/scsi/be2iscsi/be_main.c static int beiscsi_alloc_mem(struct beiscsi_hba *phba) phba 2457 drivers/scsi/be2iscsi/be_main.c phba->phwi_ctrlr = kzalloc(phba->params.hwi_ws_sz, GFP_KERNEL); phba 2458 drivers/scsi/be2iscsi/be_main.c if (!phba->phwi_ctrlr) phba 2462 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 2463 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr->wrb_context = kcalloc(phba->params.cxns_per_ctrl, phba 2467 drivers/scsi/be2iscsi/be_main.c kfree(phba->phwi_ctrlr); phba 2471 drivers/scsi/be2iscsi/be_main.c phba->init_mem = kcalloc(SE_MEM_MAX, sizeof(*mem_descr), phba 2473 drivers/scsi/be2iscsi/be_main.c if (!phba->init_mem) { phba 2475 drivers/scsi/be2iscsi/be_main.c kfree(phba->phwi_ctrlr); phba 2483 drivers/scsi/be2iscsi/be_main.c kfree(phba->init_mem); phba 2485 drivers/scsi/be2iscsi/be_main.c kfree(phba->phwi_ctrlr); phba 2489 drivers/scsi/be2iscsi/be_main.c mem_descr = phba->init_mem; phba 2491 drivers/scsi/be2iscsi/be_main.c if (!phba->mem_req[i]) { phba 2499 drivers/scsi/be2iscsi/be_main.c alloc_size = phba->mem_req[i]; phba 2505 drivers/scsi/be2iscsi/be_main.c dma_alloc_coherent(&phba->pcidev->dev, phba 2528 drivers/scsi/be2iscsi/be_main.c mem_descr->size_in_bytes = phba->mem_req[i]; phba 2544 drivers/scsi/be2iscsi/be_main.c dma_free_coherent(&phba->pcidev->dev, phba 2559 drivers/scsi/be2iscsi/be_main.c kfree(phba->init_mem); phba 2560 drivers/scsi/be2iscsi/be_main.c kfree(phba->phwi_ctrlr->wrb_context); phba 2561 drivers/scsi/be2iscsi/be_main.c kfree(phba->phwi_ctrlr); phba 2565 drivers/scsi/be2iscsi/be_main.c static int beiscsi_get_memory(struct beiscsi_hba *phba) phba 2567 drivers/scsi/be2iscsi/be_main.c beiscsi_find_mem_req(phba); phba 2568 drivers/scsi/be2iscsi/be_main.c return beiscsi_alloc_mem(phba); phba 2571 drivers/scsi/be2iscsi/be_main.c static void iscsi_init_global_templates(struct beiscsi_hba *phba) phba 2577 drivers/scsi/be2iscsi/be_main.c mem_descr = phba->init_mem; phba 2596 drivers/scsi/be2iscsi/be_main.c static int beiscsi_init_wrb_handle(struct beiscsi_hba *phba) phba 2607 drivers/scsi/be2iscsi/be_main.c mem_descr_wrbh = phba->init_mem; phba 2610 drivers/scsi/be2iscsi/be_main.c mem_descr_wrb = phba->init_mem; phba 2612 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 2616 drivers/scsi/be2iscsi/be_main.c phwi_ctxt->be_wrbq = kcalloc(phba->params.cxns_per_ctrl, phba 2620 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 2625 drivers/scsi/be2iscsi/be_main.c for (index = 0; index < phba->params.cxns_per_ctrl; index++) { phba 2628 drivers/scsi/be2iscsi/be_main.c kcalloc(phba->params.wrbs_per_cxn, phba 2632 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 2637 drivers/scsi/be2iscsi/be_main.c kcalloc(phba->params.wrbs_per_cxn, phba 2641 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 2650 drivers/scsi/be2iscsi/be_main.c phba->params.wrbs_per_cxn)); phba 2658 drivers/scsi/be2iscsi/be_main.c for (j = 0; j < phba->params.wrbs_per_cxn; j++) { phba 2671 drivers/scsi/be2iscsi/be_main.c for (index = 0; index < phba->params.cxns_per_ctrl; index++) { phba 2677 drivers/scsi/be2iscsi/be_main.c phba->params.wrbs_per_cxn)); phba 2682 drivers/scsi/be2iscsi/be_main.c for (j = 0; j < phba->params.wrbs_per_cxn; j++) { phba 2700 drivers/scsi/be2iscsi/be_main.c static int hwi_init_async_pdu_ctx(struct beiscsi_hba *phba) phba 2704 drivers/scsi/be2iscsi/be_main.c struct hba_parameters *p = &phba->params; phba 2711 drivers/scsi/be2iscsi/be_main.c if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) { phba 2713 drivers/scsi/be2iscsi/be_main.c mem_descr = (struct be_mem_descriptor *)phba->init_mem; phba 2717 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 2730 drivers/scsi/be2iscsi/be_main.c pasync_ctx->num_entries = BEISCSI_ASYNC_HDQ_SIZE(phba, phba 2733 drivers/scsi/be2iscsi/be_main.c mem_descr = (struct be_mem_descriptor *)phba->init_mem; phba 2737 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 2744 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_WARNING, phba 2759 drivers/scsi/be2iscsi/be_main.c mem_descr = (struct be_mem_descriptor *)phba->init_mem; phba 2763 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 2770 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_WARNING, phba 2779 drivers/scsi/be2iscsi/be_main.c mem_descr = (struct be_mem_descriptor *)phba->init_mem; phba 2783 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 2790 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_WARNING, phba 2799 drivers/scsi/be2iscsi/be_main.c mem_descr = (struct be_mem_descriptor *)phba->init_mem; phba 2803 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 2810 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_WARNING, phba 2819 drivers/scsi/be2iscsi/be_main.c mem_descr = (struct be_mem_descriptor *)phba->init_mem; phba 2823 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_WARNING, phba 2839 drivers/scsi/be2iscsi/be_main.c mem_descr = (struct be_mem_descriptor *)phba->init_mem; phba 2843 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 2850 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_WARNING, phba 2865 drivers/scsi/be2iscsi/be_main.c phba->params.defpdu_data_sz); phba 2869 drivers/scsi/be2iscsi/be_main.c (phba, ulp_num); index++) { phba 2908 drivers/scsi/be2iscsi/be_main.c phba->params.defpdu_data_sz); phba 2955 drivers/scsi/be2iscsi/be_main.c hwi_build_be_sgl_arr(struct beiscsi_hba *phba, phba 2967 drivers/scsi/be2iscsi/be_main.c hwi_build_be_sgl_by_offset(struct beiscsi_hba *phba, phba 2994 drivers/scsi/be2iscsi/be_main.c static int beiscsi_create_eqs(struct beiscsi_hba *phba, phba 3004 drivers/scsi/be2iscsi/be_main.c num_eq_pages = PAGES_REQUIRED(phba->params.num_eq_entries * \ phba 3007 drivers/scsi/be2iscsi/be_main.c if (phba->pcidev->msix_enabled) phba 3011 drivers/scsi/be2iscsi/be_main.c for (i = 0; i < (phba->num_cpus + eq_for_mcc); i++) { phba 3014 drivers/scsi/be2iscsi/be_main.c phwi_context->be_eq[i].phba = phba; phba 3015 drivers/scsi/be2iscsi/be_main.c eq_vaddress = dma_alloc_coherent(&phba->pcidev->dev, phba 3024 drivers/scsi/be2iscsi/be_main.c ret = be_fill_queue(eq, phba->params.num_eq_entries, phba 3027 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3033 drivers/scsi/be2iscsi/be_main.c ret = beiscsi_cmd_eq_create(&phba->ctrl, eq, phba 3036 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3042 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 3049 drivers/scsi/be2iscsi/be_main.c for (i = 0; i < (phba->num_cpus + eq_for_mcc); i++) { phba 3053 drivers/scsi/be2iscsi/be_main.c dma_free_coherent(&phba->pcidev->dev, num_eq_pages phba 3060 drivers/scsi/be2iscsi/be_main.c static int beiscsi_create_cqs(struct beiscsi_hba *phba, phba 3071 drivers/scsi/be2iscsi/be_main.c num_cq_pages = PAGES_REQUIRED(phba->params.num_cq_entries * \ phba 3074 drivers/scsi/be2iscsi/be_main.c for (i = 0; i < phba->num_cpus; i++) { phba 3079 drivers/scsi/be2iscsi/be_main.c pbe_eq->phba = phba; phba 3081 drivers/scsi/be2iscsi/be_main.c cq_vaddress = dma_alloc_coherent(&phba->pcidev->dev, phba 3089 drivers/scsi/be2iscsi/be_main.c ret = be_fill_queue(cq, phba->params.num_cq_entries, phba 3092 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3099 drivers/scsi/be2iscsi/be_main.c ret = beiscsi_cmd_cq_create(&phba->ctrl, cq, eq, false, phba 3102 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3107 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 3114 drivers/scsi/be2iscsi/be_main.c for (i = 0; i < phba->num_cpus; i++) { phba 3118 drivers/scsi/be2iscsi/be_main.c dma_free_coherent(&phba->pcidev->dev, num_cq_pages phba 3126 drivers/scsi/be2iscsi/be_main.c beiscsi_create_def_hdr(struct beiscsi_hba *phba, phba 3142 drivers/scsi/be2iscsi/be_main.c mem_descr = phba->init_mem; phba 3150 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3158 drivers/scsi/be2iscsi/be_main.c ret = be_cmd_create_default_pdu_queue(&phba->ctrl, cq, dq, phba 3160 drivers/scsi/be2iscsi/be_main.c phba->params.defpdu_hdr_sz, phba 3163 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3170 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 3178 drivers/scsi/be2iscsi/be_main.c beiscsi_create_def_data(struct beiscsi_hba *phba, phba 3194 drivers/scsi/be2iscsi/be_main.c mem_descr = phba->init_mem; phba 3202 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3211 drivers/scsi/be2iscsi/be_main.c ret = be_cmd_create_default_pdu_queue(&phba->ctrl, cq, dataq, phba 3213 drivers/scsi/be2iscsi/be_main.c phba->params.defpdu_data_sz, phba 3216 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3223 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 3228 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 3236 drivers/scsi/be2iscsi/be_main.c beiscsi_post_template_hdr(struct beiscsi_hba *phba) phba 3244 drivers/scsi/be2iscsi/be_main.c if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) { phba 3245 drivers/scsi/be2iscsi/be_main.c mem_descr = (struct be_mem_descriptor *)phba->init_mem; phba 3250 drivers/scsi/be2iscsi/be_main.c hwi_build_be_sgl_arr(phba, pm_arr, &sgl); phba 3252 drivers/scsi/be2iscsi/be_main.c &phba->ctrl, &sgl); phba 3255 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3261 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 3270 drivers/scsi/be2iscsi/be_main.c beiscsi_post_pages(struct beiscsi_hba *phba) phba 3278 drivers/scsi/be2iscsi/be_main.c mem_descr = phba->init_mem; phba 3283 drivers/scsi/be2iscsi/be_main.c if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) phba 3286 drivers/scsi/be2iscsi/be_main.c page_offset = (sizeof(struct iscsi_sge) * phba->params.num_sge_per_io * phba 3287 drivers/scsi/be2iscsi/be_main.c phba->fw_config.iscsi_icd_start[ulp_num]) / PAGE_SIZE; phba 3289 drivers/scsi/be2iscsi/be_main.c hwi_build_be_sgl_arr(phba, pm_arr, &sgl); phba 3290 drivers/scsi/be2iscsi/be_main.c status = be_cmd_iscsi_post_sgl_pages(&phba->ctrl, &sgl, phba 3295 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3301 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 3306 drivers/scsi/be2iscsi/be_main.c static void be_queue_free(struct beiscsi_hba *phba, struct be_queue_info *q) phba 3310 drivers/scsi/be2iscsi/be_main.c dma_free_coherent(&phba->pcidev->dev, mem->size, phba 3316 drivers/scsi/be2iscsi/be_main.c static int be_queue_alloc(struct beiscsi_hba *phba, struct be_queue_info *q, phba 3325 drivers/scsi/be2iscsi/be_main.c mem->va = dma_alloc_coherent(&phba->pcidev->dev, mem->size, &mem->dma, phba 3333 drivers/scsi/be2iscsi/be_main.c beiscsi_create_wrb_rings(struct beiscsi_hba *phba, phba 3350 drivers/scsi/be2iscsi/be_main.c mem_descr = phba->init_mem; phba 3352 drivers/scsi/be2iscsi/be_main.c pwrb_arr = kmalloc_array(phba->params.cxns_per_ctrl, phba 3356 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3363 drivers/scsi/be2iscsi/be_main.c (phba->params.wrbs_per_cxn * sizeof(struct iscsi_wrb)); phba 3365 drivers/scsi/be2iscsi/be_main.c for (num = 0; num < phba->params.cxns_per_ctrl; num++) { phba 3369 drivers/scsi/be2iscsi/be_main.c pwrb_arr[num].size = phba->params.wrbs_per_cxn * phba 3380 drivers/scsi/be2iscsi/be_main.c (phba->params.wrbs_per_cxn * phba 3385 drivers/scsi/be2iscsi/be_main.c pwrb_arr[num].size = phba->params.wrbs_per_cxn * phba 3395 drivers/scsi/be2iscsi/be_main.c if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) { phba 3399 drivers/scsi/be2iscsi/be_main.c BEISCSI_GET_CID_COUNT(phba, ulp_num); phba 3402 drivers/scsi/be2iscsi/be_main.c for (i = 0; i < phba->params.cxns_per_ctrl; i++) { phba 3414 drivers/scsi/be2iscsi/be_main.c hwi_build_be_sgl_by_offset(phba, &pwrb_arr[i], &sgl); phba 3415 drivers/scsi/be2iscsi/be_main.c status = be_cmd_wrbq_create(&phba->ctrl, &sgl, phba 3420 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3432 drivers/scsi/be2iscsi/be_main.c static void free_wrb_handles(struct beiscsi_hba *phba) phba 3438 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 3439 drivers/scsi/be2iscsi/be_main.c for (index = 0; index < phba->params.cxns_per_ctrl; index++) { phba 3446 drivers/scsi/be2iscsi/be_main.c static void be_mcc_queues_destroy(struct beiscsi_hba *phba) phba 3448 drivers/scsi/be2iscsi/be_main.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 3453 drivers/scsi/be2iscsi/be_main.c q = &phba->ctrl.mcc_obj.q; phba 3497 drivers/scsi/be2iscsi/be_main.c be_queue_free(phba, q); phba 3500 drivers/scsi/be2iscsi/be_main.c q = &phba->ctrl.mcc_obj.cq; phba 3503 drivers/scsi/be2iscsi/be_main.c be_queue_free(phba, q); phba 3507 drivers/scsi/be2iscsi/be_main.c static int be_mcc_queues_create(struct beiscsi_hba *phba, phba 3511 drivers/scsi/be2iscsi/be_main.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 3514 drivers/scsi/be2iscsi/be_main.c cq = &phba->ctrl.mcc_obj.cq; phba 3515 drivers/scsi/be2iscsi/be_main.c if (be_queue_alloc(phba, cq, MCC_CQ_LEN, phba 3519 drivers/scsi/be2iscsi/be_main.c if (phba->pcidev->msix_enabled) { phba 3521 drivers/scsi/be2iscsi/be_main.c &phwi_context->be_eq[phba->num_cpus].q, phba 3531 drivers/scsi/be2iscsi/be_main.c q = &phba->ctrl.mcc_obj.q; phba 3532 drivers/scsi/be2iscsi/be_main.c if (be_queue_alloc(phba, q, MCC_Q_LEN, sizeof(struct be_mcc_wrb))) phba 3536 drivers/scsi/be2iscsi/be_main.c if (beiscsi_cmd_mccq_create(phba, q, cq)) phba 3542 drivers/scsi/be2iscsi/be_main.c be_queue_free(phba, q); phba 3546 drivers/scsi/be2iscsi/be_main.c be_queue_free(phba, cq); phba 3551 drivers/scsi/be2iscsi/be_main.c static void be2iscsi_enable_msix(struct beiscsi_hba *phba) phba 3555 drivers/scsi/be2iscsi/be_main.c switch (phba->generation) { phba 3561 drivers/scsi/be2iscsi/be_main.c nvec = phba->fw_config.eqid_count; phba 3572 drivers/scsi/be2iscsi/be_main.c if (pci_alloc_irq_vectors_affinity(phba->pcidev, 2, nvec, phba 3574 drivers/scsi/be2iscsi/be_main.c phba->num_cpus = nvec - 1; phba 3579 drivers/scsi/be2iscsi/be_main.c phba->num_cpus = 1; phba 3582 drivers/scsi/be2iscsi/be_main.c static void hwi_purge_eq(struct beiscsi_hba *phba) phba 3591 drivers/scsi/be2iscsi/be_main.c if (beiscsi_hba_in_error(phba)) phba 3594 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 3596 drivers/scsi/be2iscsi/be_main.c if (phba->pcidev->msix_enabled) phba 3601 drivers/scsi/be2iscsi/be_main.c for (i = 0; i < (phba->num_cpus + eq_msix); i++) { phba 3614 drivers/scsi/be2iscsi/be_main.c hwi_ring_eq_db(phba, eq->id, 1, num_processed, 1, 1); phba 3618 drivers/scsi/be2iscsi/be_main.c static void hwi_cleanup_port(struct beiscsi_hba *phba) phba 3621 drivers/scsi/be2iscsi/be_main.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 3627 drivers/scsi/be2iscsi/be_main.c if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) phba 3628 drivers/scsi/be2iscsi/be_main.c beiscsi_cmd_iscsi_cleanup(phba, ulp_num); phba 3635 drivers/scsi/be2iscsi/be_main.c hwi_purge_eq(phba); phba 3637 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 3642 drivers/scsi/be2iscsi/be_main.c for (i = 0; i < phba->params.cxns_per_ctrl; i++) { phba 3648 drivers/scsi/be2iscsi/be_main.c free_wrb_handles(phba); phba 3651 drivers/scsi/be2iscsi/be_main.c if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) { phba 3665 drivers/scsi/be2iscsi/be_main.c for (i = 0; i < (phba->num_cpus); i++) { phba 3668 drivers/scsi/be2iscsi/be_main.c be_queue_free(phba, q); phba 3673 drivers/scsi/be2iscsi/be_main.c be_mcc_queues_destroy(phba); phba 3674 drivers/scsi/be2iscsi/be_main.c if (phba->pcidev->msix_enabled) phba 3678 drivers/scsi/be2iscsi/be_main.c for (i = 0; i < (phba->num_cpus + eq_for_mcc); i++) { phba 3681 drivers/scsi/be2iscsi/be_main.c be_queue_free(phba, q); phba 3686 drivers/scsi/be2iscsi/be_main.c beiscsi_cmd_function_reset(phba); phba 3688 drivers/scsi/be2iscsi/be_main.c beiscsi_cmd_special_wrb(&phba->ctrl, 0); phba 3691 drivers/scsi/be2iscsi/be_main.c static int hwi_init_port(struct beiscsi_hba *phba) phba 3696 drivers/scsi/be2iscsi/be_main.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 3700 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 3703 drivers/scsi/be2iscsi/be_main.c phba->optic_state = 0xff; phba 3705 drivers/scsi/be2iscsi/be_main.c status = beiscsi_create_eqs(phba, phwi_context); phba 3707 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3712 drivers/scsi/be2iscsi/be_main.c status = be_mcc_queues_create(phba, phwi_context); phba 3716 drivers/scsi/be2iscsi/be_main.c status = beiscsi_check_supported_fw(ctrl, phba); phba 3718 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3723 drivers/scsi/be2iscsi/be_main.c status = beiscsi_create_cqs(phba, phwi_context); phba 3725 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3731 drivers/scsi/be2iscsi/be_main.c if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) { phba 3735 drivers/scsi/be2iscsi/be_main.c status = beiscsi_create_def_hdr(phba, phwi_context, phba 3740 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3746 drivers/scsi/be2iscsi/be_main.c status = beiscsi_create_def_data(phba, phwi_context, phba 3751 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3760 drivers/scsi/be2iscsi/be_main.c beiscsi_hdq_post_handles(phba, BEISCSI_DEFQ_HDR, phba 3762 drivers/scsi/be2iscsi/be_main.c beiscsi_hdq_post_handles(phba, BEISCSI_DEFQ_DATA, phba 3767 drivers/scsi/be2iscsi/be_main.c status = beiscsi_post_pages(phba); phba 3769 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3774 drivers/scsi/be2iscsi/be_main.c status = beiscsi_post_template_hdr(phba); phba 3776 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3780 drivers/scsi/be2iscsi/be_main.c status = beiscsi_create_wrb_rings(phba, phwi_context, phwi_ctrlr); phba 3782 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3790 drivers/scsi/be2iscsi/be_main.c if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) { phba 3797 drivers/scsi/be2iscsi/be_main.c phba->params.cxns_per_ctrl; cri++) { phba 3807 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 3812 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3814 drivers/scsi/be2iscsi/be_main.c hwi_cleanup_port(phba); phba 3818 drivers/scsi/be2iscsi/be_main.c static int hwi_init_controller(struct beiscsi_hba *phba) phba 3822 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 3823 drivers/scsi/be2iscsi/be_main.c if (1 == phba->init_mem[HWI_MEM_ADDN_CONTEXT].num_elements) { phba 3824 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr->phwi_ctxt = (struct hwi_context_memory *)phba-> phba 3826 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 3830 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3836 drivers/scsi/be2iscsi/be_main.c iscsi_init_global_templates(phba); phba 3837 drivers/scsi/be2iscsi/be_main.c if (beiscsi_init_wrb_handle(phba)) phba 3840 drivers/scsi/be2iscsi/be_main.c if (hwi_init_async_pdu_ctx(phba)) { phba 3841 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3846 drivers/scsi/be2iscsi/be_main.c if (hwi_init_port(phba) != 0) { phba 3847 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3855 drivers/scsi/be2iscsi/be_main.c static void beiscsi_free_mem(struct beiscsi_hba *phba) phba 3860 drivers/scsi/be2iscsi/be_main.c mem_descr = phba->init_mem; phba 3865 drivers/scsi/be2iscsi/be_main.c dma_free_coherent(&phba->pcidev->dev, phba 3875 drivers/scsi/be2iscsi/be_main.c kfree(phba->init_mem); phba 3876 drivers/scsi/be2iscsi/be_main.c kfree(phba->phwi_ctrlr->wrb_context); phba 3877 drivers/scsi/be2iscsi/be_main.c kfree(phba->phwi_ctrlr); phba 3880 drivers/scsi/be2iscsi/be_main.c static int beiscsi_init_sgl_handle(struct beiscsi_hba *phba) phba 3888 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_hndl_avbl = 0; phba 3889 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_hndl_avbl = 0; phba 3891 drivers/scsi/be2iscsi/be_main.c mem_descr_sglh = phba->init_mem; phba 3894 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_hndl_base = kcalloc(phba->params.ios_per_ctrl, phba 3897 drivers/scsi/be2iscsi/be_main.c if (!phba->io_sgl_hndl_base) { phba 3898 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3902 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_hndl_base = phba 3903 drivers/scsi/be2iscsi/be_main.c kcalloc(phba->params.icds_per_ctrl - phba 3904 drivers/scsi/be2iscsi/be_main.c phba->params.ios_per_ctrl, phba 3906 drivers/scsi/be2iscsi/be_main.c if (!phba->eh_sgl_hndl_base) { phba 3907 drivers/scsi/be2iscsi/be_main.c kfree(phba->io_sgl_hndl_base); phba 3908 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3913 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 3926 drivers/scsi/be2iscsi/be_main.c if (arr_index < phba->params.ios_per_ctrl) { phba 3927 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_hndl_base[arr_index] = psgl_handle; phba 3928 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_hndl_avbl++; phba 3931 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_hndl_base[arr_index - phba 3932 drivers/scsi/be2iscsi/be_main.c phba->params.ios_per_ctrl] = phba 3935 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_hndl_avbl++; phba 3941 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 3944 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_hndl_avbl, phba 3945 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_hndl_avbl); phba 3947 drivers/scsi/be2iscsi/be_main.c mem_descr_sg = phba->init_mem; phba 3949 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 3954 drivers/scsi/be2iscsi/be_main.c if (test_bit(ulp_num, &phba->fw_config.ulp_supported)) phba 3957 drivers/scsi/be2iscsi/be_main.c ulp_icd_start = phba->fw_config.iscsi_icd_start[ulp_num]; phba 3966 drivers/scsi/be2iscsi/be_main.c (sizeof(struct iscsi_sge) * phba->params.num_sge_per_io); phba 3968 drivers/scsi/be2iscsi/be_main.c if (arr_index < phba->params.ios_per_ctrl) phba 3969 drivers/scsi/be2iscsi/be_main.c psgl_handle = phba->io_sgl_hndl_base[arr_index]; phba 3971 drivers/scsi/be2iscsi/be_main.c psgl_handle = phba->eh_sgl_hndl_base[arr_index - phba 3972 drivers/scsi/be2iscsi/be_main.c phba->params.ios_per_ctrl]; phba 3976 drivers/scsi/be2iscsi/be_main.c pfrag += phba->params.num_sge_per_io; phba 3981 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_free_index = 0; phba 3982 drivers/scsi/be2iscsi/be_main.c phba->io_sgl_alloc_index = 0; phba 3983 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_free_index = 0; phba 3984 drivers/scsi/be2iscsi/be_main.c phba->eh_sgl_alloc_index = 0; phba 3988 drivers/scsi/be2iscsi/be_main.c static int hba_setup_cid_tbls(struct beiscsi_hba *phba) phba 3995 drivers/scsi/be2iscsi/be_main.c if (test_bit(ulp_num, (void *)&phba->fw_config.ulp_supported)) { phba 4000 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 4011 drivers/scsi/be2iscsi/be_main.c kcalloc(BEISCSI_GET_CID_COUNT(phba, ulp_num), phba 4015 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 4026 drivers/scsi/be2iscsi/be_main.c phba, ulp_num); phba 4029 drivers/scsi/be2iscsi/be_main.c phba->cid_array_info[ulp_num] = ptr_cid_info; phba 4032 drivers/scsi/be2iscsi/be_main.c phba->ep_array = kcalloc(phba->params.cxns_per_ctrl, phba 4035 drivers/scsi/be2iscsi/be_main.c if (!phba->ep_array) { phba 4036 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 4044 drivers/scsi/be2iscsi/be_main.c phba->conn_table = kcalloc(phba->params.cxns_per_ctrl, phba 4047 drivers/scsi/be2iscsi/be_main.c if (!phba->conn_table) { phba 4048 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 4052 drivers/scsi/be2iscsi/be_main.c kfree(phba->ep_array); phba 4053 drivers/scsi/be2iscsi/be_main.c phba->ep_array = NULL; phba 4059 drivers/scsi/be2iscsi/be_main.c for (i = 0; i < phba->params.cxns_per_ctrl; i++) { phba 4060 drivers/scsi/be2iscsi/be_main.c ulp_num = phba->phwi_ctrlr->wrb_context[i].ulp_num; phba 4062 drivers/scsi/be2iscsi/be_main.c ptr_cid_info = phba->cid_array_info[ulp_num]; phba 4064 drivers/scsi/be2iscsi/be_main.c phba->phwi_ctrlr->wrb_context[i].cid; phba 4069 drivers/scsi/be2iscsi/be_main.c if (test_bit(ulp_num, (void *)&phba->fw_config.ulp_supported)) { phba 4070 drivers/scsi/be2iscsi/be_main.c ptr_cid_info = phba->cid_array_info[ulp_num]; phba 4080 drivers/scsi/be2iscsi/be_main.c if (test_bit(ulp_num, (void *)&phba->fw_config.ulp_supported)) { phba 4081 drivers/scsi/be2iscsi/be_main.c ptr_cid_info = phba->cid_array_info[ulp_num]; phba 4086 drivers/scsi/be2iscsi/be_main.c phba->cid_array_info[ulp_num] = NULL; phba 4094 drivers/scsi/be2iscsi/be_main.c static void hwi_enable_intr(struct beiscsi_hba *phba) phba 4096 drivers/scsi/be2iscsi/be_main.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 4104 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 4114 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 4119 drivers/scsi/be2iscsi/be_main.c if (!phba->pcidev->msix_enabled) { phba 4121 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 4124 drivers/scsi/be2iscsi/be_main.c hwi_ring_eq_db(phba, eq->id, 0, 0, 1, 1); phba 4126 drivers/scsi/be2iscsi/be_main.c for (i = 0; i <= phba->num_cpus; i++) { phba 4128 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 4130 drivers/scsi/be2iscsi/be_main.c hwi_ring_eq_db(phba, eq->id, 0, 0, 1, 1); phba 4135 drivers/scsi/be2iscsi/be_main.c static void hwi_disable_intr(struct beiscsi_hba *phba) phba 4137 drivers/scsi/be2iscsi/be_main.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 4147 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_INIT, phba 4151 drivers/scsi/be2iscsi/be_main.c static int beiscsi_init_port(struct beiscsi_hba *phba) phba 4155 drivers/scsi/be2iscsi/be_main.c ret = hwi_init_controller(phba); phba 4157 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 4161 drivers/scsi/be2iscsi/be_main.c ret = beiscsi_init_sgl_handle(phba); phba 4163 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 4168 drivers/scsi/be2iscsi/be_main.c ret = hba_setup_cid_tbls(phba); phba 4170 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 4172 drivers/scsi/be2iscsi/be_main.c kfree(phba->io_sgl_hndl_base); phba 4173 drivers/scsi/be2iscsi/be_main.c kfree(phba->eh_sgl_hndl_base); phba 4179 drivers/scsi/be2iscsi/be_main.c hwi_cleanup_port(phba); phba 4183 drivers/scsi/be2iscsi/be_main.c static void beiscsi_cleanup_port(struct beiscsi_hba *phba) phba 4188 drivers/scsi/be2iscsi/be_main.c kfree(phba->io_sgl_hndl_base); phba 4189 drivers/scsi/be2iscsi/be_main.c kfree(phba->eh_sgl_hndl_base); phba 4190 drivers/scsi/be2iscsi/be_main.c kfree(phba->ep_array); phba 4191 drivers/scsi/be2iscsi/be_main.c kfree(phba->conn_table); phba 4194 drivers/scsi/be2iscsi/be_main.c if (test_bit(ulp_num, (void *)&phba->fw_config.ulp_supported)) { phba 4195 drivers/scsi/be2iscsi/be_main.c ptr_cid_info = phba->cid_array_info[ulp_num]; phba 4200 drivers/scsi/be2iscsi/be_main.c phba->cid_array_info[ulp_num] = NULL; phba 4218 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = beiscsi_conn->phba; phba 4224 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 4230 drivers/scsi/be2iscsi/be_main.c free_wrb_handle(phba, pwrb_context, io_task->pwrb_handle); phba 4235 drivers/scsi/be2iscsi/be_main.c free_mgmt_sgl_handle(phba, io_task->psgl_handle); phba 4240 drivers/scsi/be2iscsi/be_main.c dma_unmap_single(&phba->pcidev->dev, phba 4258 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = beiscsi_conn->phba; phba 4265 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 4277 drivers/scsi/be2iscsi/be_main.c free_wrb_handle(phba, pwrb_context, phba 4283 drivers/scsi/be2iscsi/be_main.c free_io_sgl_handle(phba, io_task->psgl_handle); phba 4304 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = beiscsi_conn->phba; phba 4318 drivers/scsi/be2iscsi/be_main.c pwrb_handle = alloc_wrb_handle(phba, beiscsi_conn->beiscsi_conn_cid, phba 4322 drivers/scsi/be2iscsi/be_main.c if (is_chip_be2_be3r(phba)) phba 4324 drivers/scsi/be2iscsi/be_main.c phba->init_mem, phba 4337 drivers/scsi/be2iscsi/be_main.c iowrite32(doorbell, phba->db_va + phba 4347 drivers/scsi/be2iscsi/be_main.c phba->params.wrbs_per_cxn); phba 4348 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, phba 4378 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = beiscsi_conn->phba; phba 4400 drivers/scsi/be2iscsi/be_main.c io_task->psgl_handle = alloc_io_sgl_handle(phba); phba 4402 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, phba 4409 drivers/scsi/be2iscsi/be_main.c io_task->pwrb_handle = alloc_wrb_handle(phba, phba 4413 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, phba 4426 drivers/scsi/be2iscsi/be_main.c alloc_mgmt_sgl_handle(phba); phba 4428 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, phba 4442 drivers/scsi/be2iscsi/be_main.c alloc_wrb_handle(phba, phba 4446 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, phba 4465 drivers/scsi/be2iscsi/be_main.c io_task->psgl_handle = alloc_mgmt_sgl_handle(phba); phba 4467 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, phba 4477 drivers/scsi/be2iscsi/be_main.c alloc_wrb_handle(phba, phba 4481 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, phba 4500 drivers/scsi/be2iscsi/be_main.c free_io_sgl_handle(phba, io_task->psgl_handle); phba 4503 drivers/scsi/be2iscsi/be_main.c free_mgmt_sgl_handle(phba, io_task->psgl_handle); phba 4506 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 4511 drivers/scsi/be2iscsi/be_main.c free_wrb_handle(phba, pwrb_context, io_task->pwrb_handle); phba 4526 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = beiscsi_conn->phba; phba 4574 drivers/scsi/be2iscsi/be_main.c iowrite32(doorbell, phba->db_va + phba 4587 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = beiscsi_conn->phba; phba 4635 drivers/scsi/be2iscsi/be_main.c iowrite32(doorbell, phba->db_va + phba 4645 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = beiscsi_conn->phba; phba 4655 drivers/scsi/be2iscsi/be_main.c if (is_chip_be2_be3r(phba)) { phba 4703 drivers/scsi/be2iscsi/be_main.c if (is_chip_be2_be3r(phba)) phba 4711 drivers/scsi/be2iscsi/be_main.c if (is_chip_be2_be3r(phba)) phba 4734 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 4745 drivers/scsi/be2iscsi/be_main.c io_task->wrb_type = (is_chip_be2_be3r(phba)) ? phba 4753 drivers/scsi/be2iscsi/be_main.c iowrite32(doorbell, phba->db_va + phba 4762 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba; phba 4767 drivers/scsi/be2iscsi/be_main.c phba = io_task->conn->phba; phba 4773 drivers/scsi/be2iscsi/be_main.c if (!beiscsi_hba_is_online(phba)) phba 4786 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, phba 4807 drivers/scsi/be2iscsi/be_main.c return phba->iotask_fn(task, sg, num_sg, xferlen, writedir); phba 4817 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba; phba 4827 drivers/scsi/be2iscsi/be_main.c phba = iscsi_host_priv(shost); phba 4829 drivers/scsi/be2iscsi/be_main.c if (!beiscsi_hba_is_online(phba)) { phba 4830 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 4831 drivers/scsi/be2iscsi/be_main.c "BM_%d : HBA in error 0x%lx\n", phba->state); phba 4837 drivers/scsi/be2iscsi/be_main.c nonemb_cmd.va = dma_alloc_coherent(&phba->ctrl.pdev->dev, phba 4841 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 4846 drivers/scsi/be2iscsi/be_main.c tag = mgmt_vendor_specific_fw_cmd(&phba->ctrl, phba, job, phba 4849 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 4852 drivers/scsi/be2iscsi/be_main.c dma_free_coherent(&phba->ctrl.pdev->dev, nonemb_cmd.size, phba 4858 drivers/scsi/be2iscsi/be_main.c phba->ctrl.mcc_wait[tag], phba 4859 drivers/scsi/be2iscsi/be_main.c phba->ctrl.mcc_tag_status[tag], phba 4863 drivers/scsi/be2iscsi/be_main.c if (!test_bit(BEISCSI_HBA_ONLINE, &phba->state)) { phba 4865 drivers/scsi/be2iscsi/be_main.c &phba->ctrl.ptag_state[tag].tag_state); phba 4866 drivers/scsi/be2iscsi/be_main.c dma_free_coherent(&phba->ctrl.pdev->dev, nonemb_cmd.size, phba 4870 drivers/scsi/be2iscsi/be_main.c extd_status = (phba->ctrl.mcc_tag_status[tag] & phba 4872 drivers/scsi/be2iscsi/be_main.c status = phba->ctrl.mcc_tag_status[tag] & CQE_STATUS_MASK; phba 4873 drivers/scsi/be2iscsi/be_main.c free_mcc_wrb(&phba->ctrl, tag); phba 4883 drivers/scsi/be2iscsi/be_main.c dma_free_coherent(&phba->ctrl.pdev->dev, nonemb_cmd.size, phba 4886 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 4898 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 4907 drivers/scsi/be2iscsi/be_main.c static void beiscsi_hba_attrs_init(struct beiscsi_hba *phba) phba 4910 drivers/scsi/be2iscsi/be_main.c beiscsi_log_enable_init(phba, beiscsi_log_enable); phba 4913 drivers/scsi/be2iscsi/be_main.c void beiscsi_start_boot_work(struct beiscsi_hba *phba, unsigned int s_handle) phba 4915 drivers/scsi/be2iscsi/be_main.c if (phba->boot_struct.boot_kset) phba 4919 drivers/scsi/be2iscsi/be_main.c if (test_and_set_bit(BEISCSI_HBA_BOOT_WORK, &phba->state)) phba 4922 drivers/scsi/be2iscsi/be_main.c phba->boot_struct.retry = 3; phba 4923 drivers/scsi/be2iscsi/be_main.c phba->boot_struct.tag = 0; phba 4924 drivers/scsi/be2iscsi/be_main.c phba->boot_struct.s_handle = s_handle; phba 4925 drivers/scsi/be2iscsi/be_main.c phba->boot_struct.action = BEISCSI_BOOT_GET_SHANDLE; phba 4926 drivers/scsi/be2iscsi/be_main.c schedule_work(&phba->boot_work); phba 4938 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = data; phba 4939 drivers/scsi/be2iscsi/be_main.c struct mgmt_session_info *boot_sess = &phba->boot_struct.boot_sess; phba 5002 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = data; phba 5009 drivers/scsi/be2iscsi/be_main.c phba->boot_struct.boot_sess.initiator_iscsiname); phba 5017 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = data; phba 5029 drivers/scsi/be2iscsi/be_main.c rc = beiscsi_get_macaddr(str, phba); phba 5083 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = data; phba 5085 drivers/scsi/be2iscsi/be_main.c scsi_host_put(phba->shost); phba 5088 drivers/scsi/be2iscsi/be_main.c static int beiscsi_boot_create_kset(struct beiscsi_hba *phba) phba 5090 drivers/scsi/be2iscsi/be_main.c struct boot_struct *bs = &phba->boot_struct; phba 5094 drivers/scsi/be2iscsi/be_main.c __beiscsi_log(phba, KERN_ERR, phba 5099 drivers/scsi/be2iscsi/be_main.c bs->boot_kset = iscsi_boot_create_host_kset(phba->shost->host_no); phba 5101 drivers/scsi/be2iscsi/be_main.c __beiscsi_log(phba, KERN_ERR, phba 5107 drivers/scsi/be2iscsi/be_main.c if (!scsi_host_get(phba->shost)) phba 5110 drivers/scsi/be2iscsi/be_main.c boot_kobj = iscsi_boot_create_target(bs->boot_kset, 0, phba, phba 5117 drivers/scsi/be2iscsi/be_main.c if (!scsi_host_get(phba->shost)) phba 5120 drivers/scsi/be2iscsi/be_main.c boot_kobj = iscsi_boot_create_initiator(bs->boot_kset, 0, phba, phba 5127 drivers/scsi/be2iscsi/be_main.c if (!scsi_host_get(phba->shost)) phba 5130 drivers/scsi/be2iscsi/be_main.c boot_kobj = iscsi_boot_create_ethernet(bs->boot_kset, 0, phba, phba 5140 drivers/scsi/be2iscsi/be_main.c scsi_host_put(phba->shost); phba 5149 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = phba 5151 drivers/scsi/be2iscsi/be_main.c struct boot_struct *bs = &phba->boot_struct; phba 5154 drivers/scsi/be2iscsi/be_main.c if (!beiscsi_hba_is_online(phba)) phba 5157 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, phba 5160 drivers/scsi/be2iscsi/be_main.c __func__, phba->boot_struct.action); phba 5162 drivers/scsi/be2iscsi/be_main.c switch (phba->boot_struct.action) { phba 5164 drivers/scsi/be2iscsi/be_main.c tag = beiscsi_boot_reopen_sess(phba); phba 5167 drivers/scsi/be2iscsi/be_main.c tag = __beiscsi_boot_get_shandle(phba, 1); phba 5170 drivers/scsi/be2iscsi/be_main.c tag = beiscsi_boot_get_sinfo(phba); phba 5173 drivers/scsi/be2iscsi/be_main.c tag = beiscsi_boot_logout_sess(phba); phba 5176 drivers/scsi/be2iscsi/be_main.c beiscsi_boot_create_kset(phba); phba 5182 drivers/scsi/be2iscsi/be_main.c clear_bit(BEISCSI_HBA_BOOT_WORK, &phba->state); phba 5187 drivers/scsi/be2iscsi/be_main.c schedule_work(&phba->boot_work); phba 5189 drivers/scsi/be2iscsi/be_main.c clear_bit(BEISCSI_HBA_BOOT_WORK, &phba->state); phba 5199 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba; phba 5205 drivers/scsi/be2iscsi/be_main.c phba = container_of(work, struct beiscsi_hba, eqd_update.work); phba 5206 drivers/scsi/be2iscsi/be_main.c if (!beiscsi_hba_is_online(phba)) phba 5209 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 5212 drivers/scsi/be2iscsi/be_main.c for (i = 0; i <= phba->num_cpus; i++) { phba 5213 drivers/scsi/be2iscsi/be_main.c aic = &phba->aic_obj[i]; phba 5243 drivers/scsi/be2iscsi/be_main.c beiscsi_modify_eq_delay(phba, set_eqd, num); phba 5245 drivers/scsi/be2iscsi/be_main.c schedule_delayed_work(&phba->eqd_update, phba 5251 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = from_timer(phba, t, hw_check); phba 5255 drivers/scsi/be2iscsi/be_main.c if (!beiscsi_detect_tpe(phba)) phba 5260 drivers/scsi/be2iscsi/be_main.c if (phba->ue2rp > BEISCSI_UE_DETECT_INTERVAL) phba 5261 drivers/scsi/be2iscsi/be_main.c wait = phba->ue2rp - BEISCSI_UE_DETECT_INTERVAL; phba 5262 drivers/scsi/be2iscsi/be_main.c queue_delayed_work(phba->wq, &phba->recover_port, phba 5268 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = from_timer(phba, t, hw_check); phba 5270 drivers/scsi/be2iscsi/be_main.c beiscsi_detect_ue(phba); phba 5271 drivers/scsi/be2iscsi/be_main.c if (beiscsi_detect_ue(phba)) { phba 5272 drivers/scsi/be2iscsi/be_main.c __beiscsi_log(phba, KERN_ERR, phba 5273 drivers/scsi/be2iscsi/be_main.c "BM_%d : port in error: %lx\n", phba->state); phba 5275 drivers/scsi/be2iscsi/be_main.c queue_work(phba->wq, &phba->sess_work); phba 5278 drivers/scsi/be2iscsi/be_main.c if (!test_bit(BEISCSI_HBA_UER_SUPP, &phba->state)) phba 5281 drivers/scsi/be2iscsi/be_main.c phba->hw_check.function = beiscsi_hw_tpe_check; phba 5284 drivers/scsi/be2iscsi/be_main.c mod_timer(&phba->hw_check, phba 5296 drivers/scsi/be2iscsi/be_main.c static int beiscsi_enable_port(struct beiscsi_hba *phba) phba 5303 drivers/scsi/be2iscsi/be_main.c if (test_bit(BEISCSI_HBA_ONLINE, &phba->state)) { phba 5304 drivers/scsi/be2iscsi/be_main.c __beiscsi_log(phba, KERN_ERR, phba 5306 drivers/scsi/be2iscsi/be_main.c __func__, phba->state); phba 5310 drivers/scsi/be2iscsi/be_main.c ret = beiscsi_init_sliport(phba); phba 5314 drivers/scsi/be2iscsi/be_main.c be2iscsi_enable_msix(phba); phba 5316 drivers/scsi/be2iscsi/be_main.c beiscsi_get_params(phba); phba 5317 drivers/scsi/be2iscsi/be_main.c beiscsi_set_host_data(phba); phba 5319 drivers/scsi/be2iscsi/be_main.c beiscsi_set_uer_feature(phba); phba 5321 drivers/scsi/be2iscsi/be_main.c phba->shost->max_id = phba->params.cxns_per_ctrl; phba 5322 drivers/scsi/be2iscsi/be_main.c phba->shost->can_queue = phba->params.ios_per_ctrl; phba 5323 drivers/scsi/be2iscsi/be_main.c ret = beiscsi_init_port(phba); phba 5325 drivers/scsi/be2iscsi/be_main.c __beiscsi_log(phba, KERN_ERR, phba 5331 drivers/scsi/be2iscsi/be_main.c init_waitqueue_head(&phba->ctrl.mcc_wait[i + 1]); phba 5332 drivers/scsi/be2iscsi/be_main.c phba->ctrl.mcc_tag[i] = i + 1; phba 5333 drivers/scsi/be2iscsi/be_main.c phba->ctrl.mcc_tag_status[i + 1] = 0; phba 5334 drivers/scsi/be2iscsi/be_main.c phba->ctrl.mcc_tag_available++; phba 5337 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 5339 drivers/scsi/be2iscsi/be_main.c for (i = 0; i < phba->num_cpus; i++) { phba 5344 drivers/scsi/be2iscsi/be_main.c i = (phba->pcidev->msix_enabled) ? i : 0; phba 5349 drivers/scsi/be2iscsi/be_main.c ret = beiscsi_init_irqs(phba); phba 5351 drivers/scsi/be2iscsi/be_main.c __beiscsi_log(phba, KERN_ERR, phba 5355 drivers/scsi/be2iscsi/be_main.c hwi_enable_intr(phba); phba 5357 drivers/scsi/be2iscsi/be_main.c set_bit(BEISCSI_HBA_ONLINE, &phba->state); phba 5358 drivers/scsi/be2iscsi/be_main.c __beiscsi_log(phba, KERN_INFO, phba 5359 drivers/scsi/be2iscsi/be_main.c "BM_%d : port online: 0x%lx\n", phba->state); phba 5362 drivers/scsi/be2iscsi/be_main.c schedule_delayed_work(&phba->eqd_update, phba 5369 drivers/scsi/be2iscsi/be_main.c phba->hw_check.function = beiscsi_hw_health_check; phba 5370 drivers/scsi/be2iscsi/be_main.c mod_timer(&phba->hw_check, phba 5375 drivers/scsi/be2iscsi/be_main.c for (i = 0; i < phba->num_cpus; i++) { phba 5379 drivers/scsi/be2iscsi/be_main.c hwi_cleanup_port(phba); phba 5382 drivers/scsi/be2iscsi/be_main.c pci_free_irq_vectors(phba->pcidev); phba 5394 drivers/scsi/be2iscsi/be_main.c static void beiscsi_disable_port(struct beiscsi_hba *phba, int unload) phba 5401 drivers/scsi/be2iscsi/be_main.c if (!test_and_clear_bit(BEISCSI_HBA_ONLINE, &phba->state)) phba 5404 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 5406 drivers/scsi/be2iscsi/be_main.c hwi_disable_intr(phba); phba 5407 drivers/scsi/be2iscsi/be_main.c beiscsi_free_irqs(phba); phba 5408 drivers/scsi/be2iscsi/be_main.c pci_free_irq_vectors(phba->pcidev); phba 5410 drivers/scsi/be2iscsi/be_main.c for (i = 0; i < phba->num_cpus; i++) { phba 5414 drivers/scsi/be2iscsi/be_main.c cancel_delayed_work_sync(&phba->eqd_update); phba 5415 drivers/scsi/be2iscsi/be_main.c cancel_work_sync(&phba->boot_work); phba 5417 drivers/scsi/be2iscsi/be_main.c if (!unload && beiscsi_hba_in_error(phba)) { phba 5421 drivers/scsi/be2iscsi/be_main.c hwi_cleanup_port(phba); phba 5422 drivers/scsi/be2iscsi/be_main.c beiscsi_cleanup_port(phba); phba 5427 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba; phba 5429 drivers/scsi/be2iscsi/be_main.c phba = container_of(work, struct beiscsi_hba, sess_work); phba 5435 drivers/scsi/be2iscsi/be_main.c iscsi_host_for_each_session(phba->shost, beiscsi_session_fail); phba 5440 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba; phba 5442 drivers/scsi/be2iscsi/be_main.c phba = container_of(work, struct beiscsi_hba, recover_port.work); phba 5443 drivers/scsi/be2iscsi/be_main.c beiscsi_disable_port(phba, 0); phba 5444 drivers/scsi/be2iscsi/be_main.c beiscsi_enable_port(phba); phba 5450 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = NULL; phba 5452 drivers/scsi/be2iscsi/be_main.c phba = (struct beiscsi_hba *)pci_get_drvdata(pdev); phba 5453 drivers/scsi/be2iscsi/be_main.c set_bit(BEISCSI_HBA_PCI_ERR, &phba->state); phba 5455 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 5459 drivers/scsi/be2iscsi/be_main.c del_timer_sync(&phba->hw_check); phba 5460 drivers/scsi/be2iscsi/be_main.c cancel_delayed_work_sync(&phba->recover_port); phba 5463 drivers/scsi/be2iscsi/be_main.c iscsi_host_for_each_session(phba->shost, beiscsi_session_fail); phba 5464 drivers/scsi/be2iscsi/be_main.c beiscsi_disable_port(phba, 0); phba 5467 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 5488 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = NULL; phba 5491 drivers/scsi/be2iscsi/be_main.c phba = (struct beiscsi_hba *)pci_get_drvdata(pdev); phba 5493 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 5504 drivers/scsi/be2iscsi/be_main.c status = beiscsi_check_fw_rdy(phba); phba 5506 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_INIT, phba 5509 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_INIT, phba 5519 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba; phba 5522 drivers/scsi/be2iscsi/be_main.c phba = (struct beiscsi_hba *)pci_get_drvdata(pdev); phba 5525 drivers/scsi/be2iscsi/be_main.c ret = beiscsi_enable_port(phba); phba 5527 drivers/scsi/be2iscsi/be_main.c __beiscsi_log(phba, KERN_ERR, phba 5536 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = NULL; phba 5549 drivers/scsi/be2iscsi/be_main.c phba = beiscsi_hba_alloc(pcidev); phba 5550 drivers/scsi/be2iscsi/be_main.c if (!phba) { phba 5560 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_INIT, phba 5567 drivers/scsi/be2iscsi/be_main.c beiscsi_hba_attrs_init(phba); phba 5569 drivers/scsi/be2iscsi/be_main.c phba->mac_addr_set = false; phba 5575 drivers/scsi/be2iscsi/be_main.c phba->generation = BE_GEN2; phba 5576 drivers/scsi/be2iscsi/be_main.c phba->iotask_fn = beiscsi_iotask; phba 5582 drivers/scsi/be2iscsi/be_main.c phba->generation = BE_GEN3; phba 5583 drivers/scsi/be2iscsi/be_main.c phba->iotask_fn = beiscsi_iotask; phba 5586 drivers/scsi/be2iscsi/be_main.c phba->generation = BE_GEN4; phba 5587 drivers/scsi/be2iscsi/be_main.c phba->iotask_fn = beiscsi_iotask_v2; phba 5590 drivers/scsi/be2iscsi/be_main.c phba->generation = 0; phba 5593 drivers/scsi/be2iscsi/be_main.c ret = be_ctrl_init(phba, pcidev); phba 5595 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 5600 drivers/scsi/be2iscsi/be_main.c ret = beiscsi_init_sliport(phba); phba 5604 drivers/scsi/be2iscsi/be_main.c spin_lock_init(&phba->io_sgl_lock); phba 5605 drivers/scsi/be2iscsi/be_main.c spin_lock_init(&phba->mgmt_sgl_lock); phba 5606 drivers/scsi/be2iscsi/be_main.c spin_lock_init(&phba->async_pdu_lock); phba 5607 drivers/scsi/be2iscsi/be_main.c ret = beiscsi_get_fw_config(&phba->ctrl, phba); phba 5609 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 5613 drivers/scsi/be2iscsi/be_main.c beiscsi_get_port_name(&phba->ctrl, phba); phba 5614 drivers/scsi/be2iscsi/be_main.c beiscsi_get_params(phba); phba 5615 drivers/scsi/be2iscsi/be_main.c beiscsi_set_host_data(phba); phba 5616 drivers/scsi/be2iscsi/be_main.c beiscsi_set_uer_feature(phba); phba 5618 drivers/scsi/be2iscsi/be_main.c be2iscsi_enable_msix(phba); phba 5620 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 5622 drivers/scsi/be2iscsi/be_main.c phba->num_cpus); phba 5624 drivers/scsi/be2iscsi/be_main.c phba->shost->max_id = phba->params.cxns_per_ctrl; phba 5625 drivers/scsi/be2iscsi/be_main.c phba->shost->can_queue = phba->params.ios_per_ctrl; phba 5626 drivers/scsi/be2iscsi/be_main.c ret = beiscsi_get_memory(phba); phba 5628 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 5633 drivers/scsi/be2iscsi/be_main.c ret = beiscsi_init_port(phba); phba 5635 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 5637 drivers/scsi/be2iscsi/be_main.c beiscsi_free_mem(phba); phba 5642 drivers/scsi/be2iscsi/be_main.c init_waitqueue_head(&phba->ctrl.mcc_wait[i + 1]); phba 5643 drivers/scsi/be2iscsi/be_main.c phba->ctrl.mcc_tag[i] = i + 1; phba 5644 drivers/scsi/be2iscsi/be_main.c phba->ctrl.mcc_tag_status[i + 1] = 0; phba 5645 drivers/scsi/be2iscsi/be_main.c phba->ctrl.mcc_tag_available++; phba 5646 drivers/scsi/be2iscsi/be_main.c memset(&phba->ctrl.ptag_state[i].tag_mem_state, 0, phba 5650 drivers/scsi/be2iscsi/be_main.c phba->ctrl.mcc_alloc_index = phba->ctrl.mcc_free_index = 0; phba 5653 drivers/scsi/be2iscsi/be_main.c phba->shost->host_no); phba 5654 drivers/scsi/be2iscsi/be_main.c phba->wq = alloc_workqueue("%s", WQ_MEM_RECLAIM, 1, wq_name); phba 5655 drivers/scsi/be2iscsi/be_main.c if (!phba->wq) { phba 5656 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 5663 drivers/scsi/be2iscsi/be_main.c INIT_DELAYED_WORK(&phba->eqd_update, beiscsi_eqd_update_work); phba 5665 drivers/scsi/be2iscsi/be_main.c phwi_ctrlr = phba->phwi_ctrlr; phba 5668 drivers/scsi/be2iscsi/be_main.c for (i = 0; i < phba->num_cpus; i++) { phba 5673 drivers/scsi/be2iscsi/be_main.c i = (phba->pcidev->msix_enabled) ? i : 0; phba 5678 drivers/scsi/be2iscsi/be_main.c ret = beiscsi_init_irqs(phba); phba 5680 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, phba 5685 drivers/scsi/be2iscsi/be_main.c hwi_enable_intr(phba); phba 5687 drivers/scsi/be2iscsi/be_main.c ret = iscsi_host_add(phba->shost, &phba->pcidev->dev); phba 5692 drivers/scsi/be2iscsi/be_main.c set_bit(BEISCSI_HBA_ONLINE, &phba->state); phba 5693 drivers/scsi/be2iscsi/be_main.c __beiscsi_log(phba, KERN_INFO, phba 5694 drivers/scsi/be2iscsi/be_main.c "BM_%d : port online: 0x%lx\n", phba->state); phba 5696 drivers/scsi/be2iscsi/be_main.c INIT_WORK(&phba->boot_work, beiscsi_boot_work); phba 5697 drivers/scsi/be2iscsi/be_main.c ret = beiscsi_boot_get_shandle(phba, &s_handle); phba 5699 drivers/scsi/be2iscsi/be_main.c beiscsi_start_boot_work(phba, s_handle); phba 5705 drivers/scsi/be2iscsi/be_main.c set_bit(BEISCSI_HBA_BOOT_FOUND, &phba->state); phba 5708 drivers/scsi/be2iscsi/be_main.c beiscsi_iface_create_default(phba); phba 5709 drivers/scsi/be2iscsi/be_main.c schedule_delayed_work(&phba->eqd_update, phba 5712 drivers/scsi/be2iscsi/be_main.c INIT_WORK(&phba->sess_work, beiscsi_sess_work); phba 5713 drivers/scsi/be2iscsi/be_main.c INIT_DELAYED_WORK(&phba->recover_port, beiscsi_recover_port); phba 5718 drivers/scsi/be2iscsi/be_main.c timer_setup(&phba->hw_check, beiscsi_hw_health_check, 0); phba 5719 drivers/scsi/be2iscsi/be_main.c mod_timer(&phba->hw_check, phba 5721 drivers/scsi/be2iscsi/be_main.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT, phba 5726 drivers/scsi/be2iscsi/be_main.c hwi_disable_intr(phba); phba 5727 drivers/scsi/be2iscsi/be_main.c beiscsi_free_irqs(phba); phba 5729 drivers/scsi/be2iscsi/be_main.c for (i = 0; i < phba->num_cpus; i++) { phba 5733 drivers/scsi/be2iscsi/be_main.c destroy_workqueue(phba->wq); phba 5735 drivers/scsi/be2iscsi/be_main.c hwi_cleanup_port(phba); phba 5736 drivers/scsi/be2iscsi/be_main.c beiscsi_cleanup_port(phba); phba 5737 drivers/scsi/be2iscsi/be_main.c beiscsi_free_mem(phba); phba 5739 drivers/scsi/be2iscsi/be_main.c dma_free_coherent(&phba->pcidev->dev, phba 5740 drivers/scsi/be2iscsi/be_main.c phba->ctrl.mbox_mem_alloced.size, phba 5741 drivers/scsi/be2iscsi/be_main.c phba->ctrl.mbox_mem_alloced.va, phba 5742 drivers/scsi/be2iscsi/be_main.c phba->ctrl.mbox_mem_alloced.dma); phba 5743 drivers/scsi/be2iscsi/be_main.c beiscsi_unmap_pci_function(phba); phba 5745 drivers/scsi/be2iscsi/be_main.c pci_disable_msix(phba->pcidev); phba 5746 drivers/scsi/be2iscsi/be_main.c pci_dev_put(phba->pcidev); phba 5747 drivers/scsi/be2iscsi/be_main.c iscsi_host_free(phba->shost); phba 5757 drivers/scsi/be2iscsi/be_main.c struct beiscsi_hba *phba = NULL; phba 5759 drivers/scsi/be2iscsi/be_main.c phba = pci_get_drvdata(pcidev); phba 5760 drivers/scsi/be2iscsi/be_main.c if (!phba) { phba 5766 drivers/scsi/be2iscsi/be_main.c del_timer_sync(&phba->hw_check); phba 5767 drivers/scsi/be2iscsi/be_main.c cancel_delayed_work_sync(&phba->recover_port); phba 5768 drivers/scsi/be2iscsi/be_main.c cancel_work_sync(&phba->sess_work); phba 5770 drivers/scsi/be2iscsi/be_main.c beiscsi_iface_destroy_default(phba); phba 5771 drivers/scsi/be2iscsi/be_main.c iscsi_host_remove(phba->shost); phba 5772 drivers/scsi/be2iscsi/be_main.c beiscsi_disable_port(phba, 1); phba 5775 drivers/scsi/be2iscsi/be_main.c iscsi_boot_destroy_kset(phba->boot_struct.boot_kset); phba 5778 drivers/scsi/be2iscsi/be_main.c destroy_workqueue(phba->wq); phba 5779 drivers/scsi/be2iscsi/be_main.c beiscsi_free_mem(phba); phba 5782 drivers/scsi/be2iscsi/be_main.c beiscsi_unmap_pci_function(phba); phba 5783 drivers/scsi/be2iscsi/be_main.c dma_free_coherent(&phba->pcidev->dev, phba 5784 drivers/scsi/be2iscsi/be_main.c phba->ctrl.mbox_mem_alloced.size, phba 5785 drivers/scsi/be2iscsi/be_main.c phba->ctrl.mbox_mem_alloced.va, phba 5786 drivers/scsi/be2iscsi/be_main.c phba->ctrl.mbox_mem_alloced.dma); phba 5788 drivers/scsi/be2iscsi/be_main.c pci_dev_put(phba->pcidev); phba 5789 drivers/scsi/be2iscsi/be_main.c iscsi_host_free(phba->shost); phba 252 drivers/scsi/be2iscsi/be_main.h #define chip_be2(phba) (phba->generation == BE_GEN2) phba 253 drivers/scsi/be2iscsi/be_main.h #define chip_be3_r(phba) (phba->generation == BE_GEN3) phba 254 drivers/scsi/be2iscsi/be_main.h #define is_chip_be2_be3r(phba) (chip_be3_r(phba) || (chip_be2(phba))) phba 262 drivers/scsi/be2iscsi/be_main.h #define BEISCSI_ULP_AVLBL_CID(phba, ulp_num) \ phba 263 drivers/scsi/be2iscsi/be_main.h (((struct ulp_cid_info *)phba->cid_array_info[ulp_num])->avlbl_cids) phba 264 drivers/scsi/be2iscsi/be_main.h #define BEISCSI_ULP0_AVLBL_CID(phba) \ phba 265 drivers/scsi/be2iscsi/be_main.h BEISCSI_ULP_AVLBL_CID(phba, BEISCSI_ULP0) phba 266 drivers/scsi/be2iscsi/be_main.h #define BEISCSI_ULP1_AVLBL_CID(phba) \ phba 267 drivers/scsi/be2iscsi/be_main.h BEISCSI_ULP_AVLBL_CID(phba, BEISCSI_ULP1) phba 300 drivers/scsi/be2iscsi/be_main.h (phba->cid_to_cri_map[cid] = cri_index) phba 301 drivers/scsi/be2iscsi/be_main.h #define BE_GET_CRI_FROM_CID(cid) (phba->cid_to_cri_map[cid]) phba 320 drivers/scsi/be2iscsi/be_main.h #define BEISCSI_GET_CID_COUNT(phba, ulp_num) \ phba 321 drivers/scsi/be2iscsi/be_main.h (phba->fw_config.iscsi_cid_count[ulp_num]) phba 395 drivers/scsi/be2iscsi/be_main.h #define beiscsi_hba_in_error(phba) ((phba)->state & BEISCSI_HBA_IN_ERR) phba 396 drivers/scsi/be2iscsi/be_main.h #define beiscsi_hba_is_online(phba) \ phba 397 drivers/scsi/be2iscsi/be_main.h (!beiscsi_hba_in_error((phba)) && \ phba 398 drivers/scsi/be2iscsi/be_main.h test_bit(BEISCSI_HBA_ONLINE, &phba->state)) phba 409 drivers/scsi/be2iscsi/be_main.h struct beiscsi_hba *phba; phba 555 drivers/scsi/be2iscsi/be_main.h #define BEISCSI_ASYNC_HDQ_SIZE(phba, ulp) \ phba 556 drivers/scsi/be2iscsi/be_main.h (BEISCSI_GET_CID_COUNT((phba), (ulp)) * 2) phba 692 drivers/scsi/be2iscsi/be_main.h void beiscsi_process_eq(struct beiscsi_hba *phba); phba 790 drivers/scsi/be2iscsi/be_main.h struct wrb_handle *alloc_wrb_handle(struct beiscsi_hba *phba, unsigned int cid, phba 793 drivers/scsi/be2iscsi/be_main.h free_mgmt_sgl_handle(struct beiscsi_hba *phba, struct sgl_handle *psgl_handle); phba 798 drivers/scsi/be2iscsi/be_main.h void hwi_ring_cq_db(struct beiscsi_hba *phba, phba 803 drivers/scsi/be2iscsi/be_main.h void beiscsi_process_mcc_cq(struct beiscsi_hba *phba); phba 1009 drivers/scsi/be2iscsi/be_main.h void beiscsi_start_boot_work(struct beiscsi_hba *phba, unsigned int s_handle); phba 1020 drivers/scsi/be2iscsi/be_main.h #define __beiscsi_log(phba, level, fmt, arg...) \ phba 1021 drivers/scsi/be2iscsi/be_main.h shost_printk(level, phba->shost, fmt, __LINE__, ##arg) phba 1023 drivers/scsi/be2iscsi/be_main.h #define beiscsi_log(phba, level, mask, fmt, arg...) \ phba 1025 drivers/scsi/be2iscsi/be_main.h uint32_t log_value = phba->attr_log_enable; \ phba 1027 drivers/scsi/be2iscsi/be_main.h __beiscsi_log(phba, level, fmt, ##arg); \ phba 34 drivers/scsi/be2iscsi/be_mgmt.c struct beiscsi_hba *phba, phba 71 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG, phba 79 drivers/scsi/be2iscsi/be_mgmt.c wrb = alloc_mcc_wrb(phba, &tag); phba 92 drivers/scsi/be2iscsi/be_mgmt.c be_mcc_notify(phba, tag); phba 108 drivers/scsi/be2iscsi/be_mgmt.c int mgmt_open_connection(struct beiscsi_hba *phba, phba 117 drivers/scsi/be2iscsi/be_mgmt.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 130 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 136 drivers/scsi/be2iscsi/be_mgmt.c phwi_ctrlr = phba->phwi_ctrlr; phba 141 drivers/scsi/be2iscsi/be_mgmt.c def_hdr_id = (unsigned short)HWI_GET_DEF_HDRQ_ID(phba, ulp_num); phba 142 drivers/scsi/be2iscsi/be_mgmt.c def_data_id = (unsigned short)HWI_GET_DEF_BUFQ_ID(phba, ulp_num); phba 145 drivers/scsi/be2iscsi/be_mgmt.c ISCSI_GET_PDU_TEMPLATE_ADDRESS(phba, ptemplate_address); phba 148 drivers/scsi/be2iscsi/be_mgmt.c wrb = alloc_mcc_wrb(phba, &tag); phba 185 drivers/scsi/be2iscsi/be_mgmt.c i = phba->nxt_cqid++; phba 186 drivers/scsi/be2iscsi/be_mgmt.c if (phba->nxt_cqid == phba->num_cpus) phba 187 drivers/scsi/be2iscsi/be_mgmt.c phba->nxt_cqid = 0; phba 189 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 201 drivers/scsi/be2iscsi/be_mgmt.c if (!is_chip_be2_be3r(phba)) { phba 207 drivers/scsi/be2iscsi/be_mgmt.c be_mcc_notify(phba, tag); phba 221 drivers/scsi/be2iscsi/be_mgmt.c static int beiscsi_exec_nemb_cmd(struct beiscsi_hba *phba, phba 227 drivers/scsi/be2iscsi/be_mgmt.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 234 drivers/scsi/be2iscsi/be_mgmt.c wrb = alloc_mcc_wrb(phba, &tag); phba 252 drivers/scsi/be2iscsi/be_mgmt.c tag_mem = &phba->ctrl.ptag_state[tag].tag_mem_state; phba 259 drivers/scsi/be2iscsi/be_mgmt.c be_mcc_notify(phba, tag); phba 266 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_mccq_compl_wait(phba, tag, NULL, nonemb_cmd); phba 292 drivers/scsi/be2iscsi/be_mgmt.c static int beiscsi_prep_nemb_cmd(struct beiscsi_hba *phba, phba 296 drivers/scsi/be2iscsi/be_mgmt.c cmd->va = dma_alloc_coherent(&phba->ctrl.pdev->dev, size, &cmd->dma, phba 299 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG, phba 305 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 311 drivers/scsi/be2iscsi/be_mgmt.c static void __beiscsi_eq_delay_compl(struct beiscsi_hba *phba, unsigned int tag) phba 316 drivers/scsi/be2iscsi/be_mgmt.c __beiscsi_mcc_compl_status(phba, tag, NULL, NULL); phba 317 drivers/scsi/be2iscsi/be_mgmt.c tag_mem = &phba->ctrl.ptag_state[tag].tag_mem_state; phba 319 drivers/scsi/be2iscsi/be_mgmt.c dma_free_coherent(&phba->pcidev->dev, tag_mem->size, phba 325 drivers/scsi/be2iscsi/be_mgmt.c int beiscsi_modify_eq_delay(struct beiscsi_hba *phba, phba 332 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_prep_nemb_cmd(phba, &nonemb_cmd, CMD_SUBSYSTEM_COMMON, phba 346 drivers/scsi/be2iscsi/be_mgmt.c return beiscsi_exec_nemb_cmd(phba, &nonemb_cmd, phba 357 drivers/scsi/be2iscsi/be_mgmt.c int beiscsi_get_initiator_name(struct beiscsi_hba *phba, char *name, bool cfg) phba 364 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_prep_nemb_cmd(phba, &nonemb_cmd, CMD_SUBSYSTEM_ISCSI_INI, phba 372 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_exec_nemb_cmd(phba, &nonemb_cmd, NULL, phba 375 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_ERR, phba 384 drivers/scsi/be2iscsi/be_mgmt.c unsigned int beiscsi_if_get_handle(struct beiscsi_hba *phba) phba 386 drivers/scsi/be2iscsi/be_mgmt.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 395 drivers/scsi/be2iscsi/be_mgmt.c wrb = alloc_mcc_wrb(phba, &tag); phba 406 drivers/scsi/be2iscsi/be_mgmt.c be_mcc_notify(phba, tag); phba 409 drivers/scsi/be2iscsi/be_mgmt.c status = beiscsi_mccq_compl_wait(phba, tag, &wrb, NULL); phba 411 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG, phba 418 drivers/scsi/be2iscsi/be_mgmt.c phba->interface_handle = pbe_allid->if_hndl_list[0]; phba 433 drivers/scsi/be2iscsi/be_mgmt.c static int beiscsi_if_mod_gw(struct beiscsi_hba *phba, phba 440 drivers/scsi/be2iscsi/be_mgmt.c rt_val = beiscsi_prep_nemb_cmd(phba, &nonemb_cmd, CMD_SUBSYSTEM_ISCSI, phba 451 drivers/scsi/be2iscsi/be_mgmt.c return beiscsi_exec_nemb_cmd(phba, &nonemb_cmd, NULL, NULL, 0); phba 454 drivers/scsi/be2iscsi/be_mgmt.c int beiscsi_if_set_gw(struct beiscsi_hba *phba, u32 ip_type, u8 *gw) phba 460 drivers/scsi/be2iscsi/be_mgmt.c rt_val = beiscsi_if_get_gw(phba, ip_type, &gw_resp); phba 462 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG, phba 468 drivers/scsi/be2iscsi/be_mgmt.c rt_val = beiscsi_if_mod_gw(phba, IP_ACTION_DEL, ip_type, phba 471 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG, phba 477 drivers/scsi/be2iscsi/be_mgmt.c rt_val = beiscsi_if_mod_gw(phba, IP_ACTION_ADD, ip_type, gw); phba 479 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG, phba 485 drivers/scsi/be2iscsi/be_mgmt.c int beiscsi_if_get_gw(struct beiscsi_hba *phba, u32 ip_type, phba 492 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_prep_nemb_cmd(phba, &nonemb_cmd, CMD_SUBSYSTEM_ISCSI, phba 501 drivers/scsi/be2iscsi/be_mgmt.c return beiscsi_exec_nemb_cmd(phba, &nonemb_cmd, NULL, phba 506 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_if_clr_ip(struct beiscsi_hba *phba, phba 513 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_prep_nemb_cmd(phba, &nonemb_cmd, CMD_SUBSYSTEM_ISCSI, phba 523 drivers/scsi/be2iscsi/be_mgmt.c phba->interface_handle; phba 533 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_exec_nemb_cmd(phba, &nonemb_cmd, NULL, NULL, 0); phba 535 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, phba 543 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_if_set_ip(struct beiscsi_hba *phba, u8 *ip, phba 551 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_prep_nemb_cmd(phba, &nonemb_cmd, CMD_SUBSYSTEM_ISCSI, phba 561 drivers/scsi/be2iscsi/be_mgmt.c phba->interface_handle; phba 571 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_exec_nemb_cmd(phba, &nonemb_cmd, NULL, NULL, 0); phba 577 drivers/scsi/be2iscsi/be_mgmt.c __beiscsi_log(phba, KERN_ERR, phba 586 drivers/scsi/be2iscsi/be_mgmt.c int beiscsi_if_en_static(struct beiscsi_hba *phba, u32 ip_type, phba 594 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_if_get_info(phba, ip_type, &if_info); phba 599 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_prep_nemb_cmd(phba, &nonemb_cmd, phba 607 drivers/scsi/be2iscsi/be_mgmt.c reldhcp->interface_hndl = phba->interface_handle; phba 609 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_exec_nemb_cmd(phba, &nonemb_cmd, NULL, NULL, 0); phba 611 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG, phba 620 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_if_clr_ip(phba, if_info); phba 627 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_if_set_ip(phba, ip, subnet, ip_type); phba 633 drivers/scsi/be2iscsi/be_mgmt.c int beiscsi_if_en_dhcp(struct beiscsi_hba *phba, u32 ip_type) phba 642 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_if_get_info(phba, ip_type, &if_info); phba 647 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG, phba 654 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_if_clr_ip(phba, if_info); phba 662 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_if_get_gw(phba, if_info->ip_addr.ip_type, &gw_resp); phba 664 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG, phba 670 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_if_mod_gw(phba, IP_ACTION_DEL, phba 673 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG, phba 679 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_prep_nemb_cmd(phba, &nonemb_cmd, CMD_SUBSYSTEM_ISCSI, phba 688 drivers/scsi/be2iscsi/be_mgmt.c dhcpreq->interface_hndl = phba->interface_handle; phba 690 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_exec_nemb_cmd(phba, &nonemb_cmd, NULL, NULL, 0); phba 709 drivers/scsi/be2iscsi/be_mgmt.c int beiscsi_if_set_vlan(struct beiscsi_hba *phba, uint16_t vlan_tag) phba 714 drivers/scsi/be2iscsi/be_mgmt.c tag = be_cmd_set_vlan(phba, vlan_tag); phba 716 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_ERR, phba 722 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_mccq_compl_wait(phba, tag, NULL, NULL); phba 724 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_ERR, phba 733 drivers/scsi/be2iscsi/be_mgmt.c int beiscsi_if_get_info(struct beiscsi_hba *phba, int ip_type, phba 741 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_if_get_handle(phba); phba 746 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_prep_nemb_cmd(phba, &nonemb_cmd, phba 754 drivers/scsi/be2iscsi/be_mgmt.c req->interface_hndl = phba->interface_handle; phba 760 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_ERR, phba 765 drivers/scsi/be2iscsi/be_mgmt.c dma_free_coherent(&phba->ctrl.pdev->dev, phba 772 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_exec_nemb_cmd(phba, &nonemb_cmd, NULL, *if_info, phba 784 drivers/scsi/be2iscsi/be_mgmt.c dma_free_coherent(&phba->ctrl.pdev->dev, nonemb_cmd.size, phba 796 drivers/scsi/be2iscsi/be_mgmt.c int mgmt_get_nic_conf(struct beiscsi_hba *phba, phba 802 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_prep_nemb_cmd(phba, &nonemb_cmd, CMD_SUBSYSTEM_ISCSI, phba 808 drivers/scsi/be2iscsi/be_mgmt.c return beiscsi_exec_nemb_cmd(phba, &nonemb_cmd, NULL, phba 812 drivers/scsi/be2iscsi/be_mgmt.c static void beiscsi_boot_process_compl(struct beiscsi_hba *phba, phba 822 drivers/scsi/be2iscsi/be_mgmt.c if (!test_bit(BEISCSI_HBA_BOOT_WORK, &phba->state)) { phba 823 drivers/scsi/be2iscsi/be_mgmt.c __beiscsi_log(phba, KERN_ERR, phba 825 drivers/scsi/be2iscsi/be_mgmt.c __func__, phba->state); phba 829 drivers/scsi/be2iscsi/be_mgmt.c if (phba->boot_struct.tag != tag) { phba 830 drivers/scsi/be2iscsi/be_mgmt.c __beiscsi_log(phba, KERN_ERR, phba 832 drivers/scsi/be2iscsi/be_mgmt.c __func__, tag, phba->boot_struct.tag); phba 835 drivers/scsi/be2iscsi/be_mgmt.c bs = &phba->boot_struct; phba 840 drivers/scsi/be2iscsi/be_mgmt.c status = __beiscsi_mcc_compl_status(phba, tag, NULL, NULL); phba 847 drivers/scsi/be2iscsi/be_mgmt.c status = __beiscsi_mcc_compl_status(phba, tag, &wrb, NULL); phba 860 drivers/scsi/be2iscsi/be_mgmt.c status = __beiscsi_mcc_compl_status(phba, tag, NULL, phba 868 drivers/scsi/be2iscsi/be_mgmt.c __beiscsi_log(phba, KERN_ERR, phba 873 drivers/scsi/be2iscsi/be_mgmt.c dma_free_coherent(&phba->ctrl.pdev->dev, bs->nonemb_cmd.size, phba 878 drivers/scsi/be2iscsi/be_mgmt.c status = __beiscsi_mcc_compl_status(phba, tag, &wrb, NULL); phba 882 drivers/scsi/be2iscsi/be_mgmt.c __beiscsi_log(phba, KERN_ERR, phba 898 drivers/scsi/be2iscsi/be_mgmt.c __beiscsi_log(phba, KERN_ERR, phba 904 drivers/scsi/be2iscsi/be_mgmt.c clear_bit(BEISCSI_HBA_BOOT_WORK, &phba->state); phba 907 drivers/scsi/be2iscsi/be_mgmt.c schedule_work(&phba->boot_work); phba 918 drivers/scsi/be2iscsi/be_mgmt.c unsigned int beiscsi_boot_logout_sess(struct beiscsi_hba *phba) phba 920 drivers/scsi/be2iscsi/be_mgmt.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 926 drivers/scsi/be2iscsi/be_mgmt.c wrb = alloc_mcc_wrb(phba, &tag); phba 938 drivers/scsi/be2iscsi/be_mgmt.c req->session_handle = phba->boot_struct.boot_sess.session_handle; phba 940 drivers/scsi/be2iscsi/be_mgmt.c phba->boot_struct.tag = tag; phba 944 drivers/scsi/be2iscsi/be_mgmt.c be_mcc_notify(phba, tag); phba 957 drivers/scsi/be2iscsi/be_mgmt.c unsigned int beiscsi_boot_reopen_sess(struct beiscsi_hba *phba) phba 959 drivers/scsi/be2iscsi/be_mgmt.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 965 drivers/scsi/be2iscsi/be_mgmt.c wrb = alloc_mcc_wrb(phba, &tag); phba 979 drivers/scsi/be2iscsi/be_mgmt.c phba->boot_struct.tag = tag; phba 983 drivers/scsi/be2iscsi/be_mgmt.c be_mcc_notify(phba, tag); phba 998 drivers/scsi/be2iscsi/be_mgmt.c unsigned int beiscsi_boot_get_sinfo(struct beiscsi_hba *phba) phba 1000 drivers/scsi/be2iscsi/be_mgmt.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 1008 drivers/scsi/be2iscsi/be_mgmt.c wrb = alloc_mcc_wrb(phba, &tag); phba 1014 drivers/scsi/be2iscsi/be_mgmt.c nonemb_cmd = &phba->boot_struct.nonemb_cmd; phba 1016 drivers/scsi/be2iscsi/be_mgmt.c nonemb_cmd->va = dma_alloc_coherent(&phba->ctrl.pdev->dev, phba 1032 drivers/scsi/be2iscsi/be_mgmt.c req->session_handle = phba->boot_struct.s_handle; phba 1037 drivers/scsi/be2iscsi/be_mgmt.c phba->boot_struct.tag = tag; phba 1041 drivers/scsi/be2iscsi/be_mgmt.c be_mcc_notify(phba, tag); phba 1046 drivers/scsi/be2iscsi/be_mgmt.c unsigned int __beiscsi_boot_get_shandle(struct beiscsi_hba *phba, int async) phba 1048 drivers/scsi/be2iscsi/be_mgmt.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 1054 drivers/scsi/be2iscsi/be_mgmt.c wrb = alloc_mcc_wrb(phba, &tag); phba 1067 drivers/scsi/be2iscsi/be_mgmt.c phba->boot_struct.tag = tag; phba 1072 drivers/scsi/be2iscsi/be_mgmt.c be_mcc_notify(phba, tag); phba 1087 drivers/scsi/be2iscsi/be_mgmt.c int beiscsi_boot_get_shandle(struct beiscsi_hba *phba, unsigned int *s_handle) phba 1096 drivers/scsi/be2iscsi/be_mgmt.c tag = __beiscsi_boot_get_shandle(phba, 0); phba 1098 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_ERR, phba 1104 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_mccq_compl_wait(phba, tag, &wrb, NULL); phba 1106 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_ERR, phba 1115 drivers/scsi/be2iscsi/be_mgmt.c __beiscsi_log(phba, KERN_INFO, phba 1155 drivers/scsi/be2iscsi/be_mgmt.c struct beiscsi_hba *phba = iscsi_host_priv(shost); phba 1157 drivers/scsi/be2iscsi/be_mgmt.c return snprintf(buf, PAGE_SIZE, "%s\n", phba->fw_ver_str); phba 1174 drivers/scsi/be2iscsi/be_mgmt.c struct beiscsi_hba *phba = iscsi_host_priv(shost); phba 1178 drivers/scsi/be2iscsi/be_mgmt.c if (test_bit(ulp_num, (void *)&phba->fw_config.ulp_supported)) { phba 1179 drivers/scsi/be2iscsi/be_mgmt.c avlbl_cids = BEISCSI_ULP_AVLBL_CID(phba, ulp_num); phba 1180 drivers/scsi/be2iscsi/be_mgmt.c total_cids = BEISCSI_GET_CID_COUNT(phba, ulp_num); phba 1206 drivers/scsi/be2iscsi/be_mgmt.c struct beiscsi_hba *phba = iscsi_host_priv(shost); phba 1210 drivers/scsi/be2iscsi/be_mgmt.c if (test_bit(ulp_num, (void *)&phba->fw_config.ulp_supported)) phba 1213 drivers/scsi/be2iscsi/be_mgmt.c BEISCSI_ULP_AVLBL_CID(phba, ulp_num)); phba 1237 drivers/scsi/be2iscsi/be_mgmt.c struct beiscsi_hba *phba = iscsi_host_priv(shost); phba 1239 drivers/scsi/be2iscsi/be_mgmt.c dev_id = phba->pcidev->device; phba 1275 drivers/scsi/be2iscsi/be_mgmt.c struct beiscsi_hba *phba = iscsi_host_priv(shost); phba 1278 drivers/scsi/be2iscsi/be_mgmt.c phba->fw_config.phys_port); phba 1431 drivers/scsi/be2iscsi/be_mgmt.c unsigned int beiscsi_invalidate_cxn(struct beiscsi_hba *phba, phba 1435 drivers/scsi/be2iscsi/be_mgmt.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 1440 drivers/scsi/be2iscsi/be_mgmt.c wrb = alloc_mcc_wrb(phba, &tag); phba 1463 drivers/scsi/be2iscsi/be_mgmt.c be_mcc_notify(phba, tag); phba 1468 drivers/scsi/be2iscsi/be_mgmt.c unsigned int beiscsi_upload_cxn(struct beiscsi_hba *phba, phba 1471 drivers/scsi/be2iscsi/be_mgmt.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 1477 drivers/scsi/be2iscsi/be_mgmt.c wrb = alloc_mcc_wrb(phba, &tag); phba 1492 drivers/scsi/be2iscsi/be_mgmt.c be_mcc_notify(phba, tag); phba 1497 drivers/scsi/be2iscsi/be_mgmt.c int beiscsi_mgmt_invalidate_icds(struct beiscsi_hba *phba, phba 1501 drivers/scsi/be2iscsi/be_mgmt.c struct be_ctrl_info *ctrl = &phba->ctrl; phba 1513 drivers/scsi/be2iscsi/be_mgmt.c nonemb_cmd.va = dma_alloc_coherent(&phba->ctrl.pdev->dev, phba 1517 drivers/scsi/be2iscsi/be_mgmt.c beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_EH, phba 1523 drivers/scsi/be2iscsi/be_mgmt.c wrb = alloc_mcc_wrb(phba, &tag); phba 1526 drivers/scsi/be2iscsi/be_mgmt.c dma_free_coherent(&phba->ctrl.pdev->dev, nonemb_cmd.size, phba 1548 drivers/scsi/be2iscsi/be_mgmt.c be_mcc_notify(phba, tag); phba 1551 drivers/scsi/be2iscsi/be_mgmt.c rc = beiscsi_mccq_compl_wait(phba, tag, NULL, &nonemb_cmd); phba 1553 drivers/scsi/be2iscsi/be_mgmt.c dma_free_coherent(&phba->ctrl.pdev->dev, nonemb_cmd.size, phba 29 drivers/scsi/be2iscsi/be_mgmt.h int mgmt_open_connection(struct beiscsi_hba *phba, phba 35 drivers/scsi/be2iscsi/be_mgmt.h struct beiscsi_hba *phba, phba 141 drivers/scsi/be2iscsi/be_mgmt.h #define GET_MGMT_CONTROLLER_WS(phba) (phba->pmgmt_ws) phba 144 drivers/scsi/be2iscsi/be_mgmt.h pa->lo = phba->init_mem[ISCSI_MEM_GLOBAL_HEADER].mem_array[0].\ phba 146 drivers/scsi/be2iscsi/be_mgmt.h pa->hi = phba->init_mem[ISCSI_MEM_GLOBAL_HEADER].mem_array[0].\ phba 154 drivers/scsi/be2iscsi/be_mgmt.h struct beiscsi_hba *phba; phba 166 drivers/scsi/be2iscsi/be_mgmt.h int beiscsi_mgmt_invalidate_icds(struct beiscsi_hba *phba, phba 170 drivers/scsi/be2iscsi/be_mgmt.h int beiscsi_get_initiator_name(struct beiscsi_hba *phba, char *name, bool cfg); phba 172 drivers/scsi/be2iscsi/be_mgmt.h int beiscsi_if_en_dhcp(struct beiscsi_hba *phba, u32 ip_type); phba 174 drivers/scsi/be2iscsi/be_mgmt.h int beiscsi_if_en_static(struct beiscsi_hba *phba, u32 ip_type, phba 177 drivers/scsi/be2iscsi/be_mgmt.h int beiscsi_if_set_gw(struct beiscsi_hba *phba, u32 ip_type, u8 *gw); phba 179 drivers/scsi/be2iscsi/be_mgmt.h int beiscsi_if_get_gw(struct beiscsi_hba *phba, u32 ip_type, phba 182 drivers/scsi/be2iscsi/be_mgmt.h int mgmt_get_nic_conf(struct beiscsi_hba *phba, phba 185 drivers/scsi/be2iscsi/be_mgmt.h int beiscsi_if_get_info(struct beiscsi_hba *phba, int ip_type, phba 188 drivers/scsi/be2iscsi/be_mgmt.h unsigned int beiscsi_if_get_handle(struct beiscsi_hba *phba); phba 190 drivers/scsi/be2iscsi/be_mgmt.h int beiscsi_if_set_vlan(struct beiscsi_hba *phba, uint16_t vlan_tag); phba 192 drivers/scsi/be2iscsi/be_mgmt.h unsigned int beiscsi_boot_logout_sess(struct beiscsi_hba *phba); phba 194 drivers/scsi/be2iscsi/be_mgmt.h unsigned int beiscsi_boot_reopen_sess(struct beiscsi_hba *phba); phba 196 drivers/scsi/be2iscsi/be_mgmt.h unsigned int beiscsi_boot_get_sinfo(struct beiscsi_hba *phba); phba 198 drivers/scsi/be2iscsi/be_mgmt.h unsigned int __beiscsi_boot_get_shandle(struct beiscsi_hba *phba, int async); phba 200 drivers/scsi/be2iscsi/be_mgmt.h int beiscsi_boot_get_shandle(struct beiscsi_hba *phba, unsigned int *s_handle); phba 230 drivers/scsi/be2iscsi/be_mgmt.h unsigned int beiscsi_invalidate_cxn(struct beiscsi_hba *phba, phba 233 drivers/scsi/be2iscsi/be_mgmt.h unsigned int beiscsi_upload_cxn(struct beiscsi_hba *phba, phba 236 drivers/scsi/be2iscsi/be_mgmt.h int be_cmd_modify_eq_delay(struct beiscsi_hba *phba, phba 239 drivers/scsi/be2iscsi/be_mgmt.h int beiscsi_logout_fw_sess(struct beiscsi_hba *phba, phba 351 drivers/scsi/lpfc/lpfc.h struct lpfc_hba *phba; phba 630 drivers/scsi/lpfc/lpfc.h (struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, phba 650 drivers/scsi/lpfc/lpfc.h int (*lpfc_hba_down_post)(struct lpfc_hba *phba); phba 662 drivers/scsi/lpfc/lpfc.h (struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 1231 drivers/scsi/lpfc/lpfc.h lpfc_set_loopback_flag(struct lpfc_hba *phba) phba 1233 drivers/scsi/lpfc/lpfc.h if (phba->cfg_topology == FLAGS_LOCAL_LB) phba 1234 drivers/scsi/lpfc/lpfc.h phba->link_flag |= LS_LOOPBACK_MODE; phba 1236 drivers/scsi/lpfc/lpfc.h phba->link_flag &= ~LS_LOOPBACK_MODE; phba 1240 drivers/scsi/lpfc/lpfc.h lpfc_is_link_up(struct lpfc_hba *phba) phba 1242 drivers/scsi/lpfc/lpfc.h return phba->link_state == LPFC_LINK_UP || phba 1243 drivers/scsi/lpfc/lpfc.h phba->link_state == LPFC_CLEAR_LA || phba 1244 drivers/scsi/lpfc/lpfc.h phba->link_state == LPFC_HBA_READY; phba 1248 drivers/scsi/lpfc/lpfc.h lpfc_worker_wake_up(struct lpfc_hba *phba) phba 1251 drivers/scsi/lpfc/lpfc.h set_bit(LPFC_DATA_READY, &phba->data_flags); phba 1254 drivers/scsi/lpfc/lpfc.h wake_up(&phba->work_waitq); phba 1270 drivers/scsi/lpfc/lpfc.h lpfc_sli_read_hs(struct lpfc_hba *phba) phba 1276 drivers/scsi/lpfc/lpfc.h phba->sli.slistat.err_attn_event++; phba 1279 drivers/scsi/lpfc/lpfc.h if (lpfc_readl(phba->HSregaddr, &phba->work_hs) || phba 1280 drivers/scsi/lpfc/lpfc.h lpfc_readl(phba->MBslimaddr + 0xa8, &phba->work_status[0]) || phba 1281 drivers/scsi/lpfc/lpfc.h lpfc_readl(phba->MBslimaddr + 0xac, &phba->work_status[1])) { phba 1286 drivers/scsi/lpfc/lpfc.h writel(HA_ERATT, phba->HAregaddr); phba 1287 drivers/scsi/lpfc/lpfc.h readl(phba->HAregaddr); /* flush */ phba 1288 drivers/scsi/lpfc/lpfc.h phba->pport->stopped = 1; phba 1294 drivers/scsi/lpfc/lpfc.h lpfc_phba_elsring(struct lpfc_hba *phba) phba 1297 drivers/scsi/lpfc/lpfc.h if (phba->sli_rev != LPFC_SLI_REV4 && phba 1298 drivers/scsi/lpfc/lpfc.h phba->sli_rev != LPFC_SLI_REV3 && phba 1299 drivers/scsi/lpfc/lpfc.h phba->sli_rev != LPFC_SLI_REV2) phba 1302 drivers/scsi/lpfc/lpfc.h if (phba->sli_rev == LPFC_SLI_REV4) { phba 1303 drivers/scsi/lpfc/lpfc.h if (phba->sli4_hba.els_wq) phba 1304 drivers/scsi/lpfc/lpfc.h return phba->sli4_hba.els_wq->pring; phba 1308 drivers/scsi/lpfc/lpfc.h return &phba->sli.sli3_ring[LPFC_ELS_RING]; phba 1319 drivers/scsi/lpfc/lpfc.h lpfc_sli4_mod_hba_eq_delay(struct lpfc_hba *phba, struct lpfc_queue *eq, phba 1327 drivers/scsi/lpfc/lpfc.h writel(reg_data.word0, phba->sli4_hba.u.if_type2.EQDregaddr); phba 151 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 153 drivers/scsi/lpfc/lpfc_attr.c if (phba->hba_flag & HBA_FIP_SUPPORT) phba 165 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 185 drivers/scsi/lpfc/lpfc_attr.c if (phba->nvmet_support) { phba 186 drivers/scsi/lpfc/lpfc_attr.c if (!phba->targetport) { phba 193 drivers/scsi/lpfc/lpfc_attr.c if (phba->targetport->port_id) phba 206 drivers/scsi/lpfc/lpfc_attr.c phba->brd_no, phba 209 drivers/scsi/lpfc/lpfc_attr.c phba->targetport->port_id); phba 217 drivers/scsi/lpfc/lpfc_attr.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 331 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.nvmet_xri_cnt, phba 332 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.nvmet_io_wait_cnt, phba 333 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.nvmet_io_wait_total, phba 353 drivers/scsi/lpfc/lpfc_attr.c phba->brd_no, phba 354 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.max_cfg_param.max_xri, phba 355 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.io_xri_max, phba 356 drivers/scsi/lpfc/lpfc_attr.c lpfc_sli4_get_els_iocb_cnt(phba)); phba 369 drivers/scsi/lpfc/lpfc_attr.c phba->brd_no, phba 378 drivers/scsi/lpfc/lpfc_attr.c spin_lock_irqsave(&vport->phba->hbalock, iflags); phba 382 drivers/scsi/lpfc/lpfc_attr.c spin_unlock_irqrestore(&vport->phba->hbalock, iflags); phba 402 drivers/scsi/lpfc/lpfc_attr.c if (phba->brd_no >= 10) { phba 474 drivers/scsi/lpfc/lpfc_attr.c for (i = 0; i < phba->cfg_hdw_queue; i++) { phba 475 drivers/scsi/lpfc/lpfc_attr.c cstat = &phba->sli4_hba.hdwq[i].nvme_cstat; phba 518 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME, phba 538 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 547 drivers/scsi/lpfc/lpfc_attr.c (phba->sli_rev != LPFC_SLI_REV4)) phba 554 drivers/scsi/lpfc/lpfc_attr.c for (i = 0; i < phba->cfg_hdw_queue; i++) { phba 555 drivers/scsi/lpfc/lpfc_attr.c cstat = &phba->sli4_hba.hdwq[i].scsi_cstat; phba 589 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 591 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_enable_bg) { phba 592 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli3_options & LPFC_SLI3_BG_ENABLED) phba 609 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 612 drivers/scsi/lpfc/lpfc_attr.c (unsigned long long)phba->bg_guard_err_cnt); phba 621 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 624 drivers/scsi/lpfc/lpfc_attr.c (unsigned long long)phba->bg_apptag_err_cnt); phba 633 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 636 drivers/scsi/lpfc/lpfc_attr.c (unsigned long long)phba->bg_reftag_err_cnt); phba 670 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 672 drivers/scsi/lpfc/lpfc_attr.c return scnprintf(buf, PAGE_SIZE, "%s\n", phba->SerialNumber); phba 693 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 694 drivers/scsi/lpfc/lpfc_attr.c return scnprintf(buf, PAGE_SIZE, "%d\n", phba->temp_sensor_support); phba 711 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 713 drivers/scsi/lpfc/lpfc_attr.c return scnprintf(buf, PAGE_SIZE, "%s\n", phba->ModelDesc); phba 730 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 732 drivers/scsi/lpfc/lpfc_attr.c return scnprintf(buf, PAGE_SIZE, "%s\n", phba->ModelName); phba 749 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 751 drivers/scsi/lpfc/lpfc_attr.c return scnprintf(buf, PAGE_SIZE, "%s\n", phba->ProgramType); phba 767 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 770 drivers/scsi/lpfc/lpfc_attr.c (phba->sli.sli_flag & LPFC_MENLO_MAINT)); phba 787 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 789 drivers/scsi/lpfc/lpfc_attr.c return scnprintf(buf, PAGE_SIZE, "%s\n", phba->Port); phba 806 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 812 drivers/scsi/lpfc/lpfc_attr.c lpfc_decode_firmware_rev(phba, fwrev, 1); phba 813 drivers/scsi/lpfc/lpfc_attr.c if_type = phba->sli4_hba.pc_sli4_params.if_type; phba 814 drivers/scsi/lpfc/lpfc_attr.c sli_family = phba->sli4_hba.pc_sli4_params.sli_family; phba 816 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev < LPFC_SLI_REV4) phba 818 drivers/scsi/lpfc/lpfc_attr.c fwrev, phba->sli_rev); phba 821 drivers/scsi/lpfc/lpfc_attr.c fwrev, phba->sli_rev, if_type, sli_family); phba 840 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 841 drivers/scsi/lpfc/lpfc_attr.c lpfc_vpd_t *vp = &phba->vpd; phba 862 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 865 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev < LPFC_SLI_REV4) phba 867 drivers/scsi/lpfc/lpfc_attr.c phba->OptionROMVersion); phba 869 drivers/scsi/lpfc/lpfc_attr.c lpfc_decode_firmware_rev(phba, fwrev, 1); phba 890 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 893 drivers/scsi/lpfc/lpfc_attr.c switch (phba->link_state) { phba 900 drivers/scsi/lpfc/lpfc_attr.c if (phba->hba_flag & LINK_DISABLED) phba 942 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli.sli_flag & LPFC_MENLO_MAINT) phba 945 drivers/scsi/lpfc/lpfc_attr.c else if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { phba 962 drivers/scsi/lpfc/lpfc_attr.c if ((phba->sli_rev == LPFC_SLI_REV4) && phba 964 drivers/scsi/lpfc/lpfc_attr.c &phba->sli4_hba.sli_intf) == phba 966 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_trunk_link link = phba->trunk_link; phba 968 drivers/scsi/lpfc/lpfc_attr.c if (bf_get(lpfc_conf_trunk_port0, &phba->sli4_hba)) phba 975 drivers/scsi/lpfc/lpfc_attr.c if (bf_get(lpfc_conf_trunk_port1, &phba->sli4_hba)) phba 982 drivers/scsi/lpfc/lpfc_attr.c if (bf_get(lpfc_conf_trunk_port2, &phba->sli4_hba)) phba 989 drivers/scsi/lpfc/lpfc_attr.c if (bf_get(lpfc_conf_trunk_port3, &phba->sli4_hba)) phba 1015 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 1017 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev < LPFC_SLI_REV4) phba 1020 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli4_hba.lnk_info.lnk_dv == LPFC_LNK_DAT_VAL) { phba 1021 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli4_hba.lnk_info.lnk_tp == LPFC_LNK_TYPE_GE) phba 1023 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli4_hba.lnk_info.lnk_tp == LPFC_LNK_TYPE_FC) phba 1044 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 1047 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.pc_sli4_params.oas_supported); phba 1068 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 1073 drivers/scsi/lpfc/lpfc_attr.c (phba->link_state == LPFC_LINK_DOWN)) phba 1074 drivers/scsi/lpfc/lpfc_attr.c status = phba->lpfc_hba_init_link(phba, MBX_NOWAIT); phba 1076 drivers/scsi/lpfc/lpfc_attr.c (phba->link_state >= LPFC_LINK_UP)) phba 1077 drivers/scsi/lpfc/lpfc_attr.c status = phba->lpfc_hba_down_link(phba, MBX_NOWAIT); phba 1126 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 1135 drivers/scsi/lpfc/lpfc_attr.c (phba->hba_flag & LINK_DISABLED) || phba 1136 drivers/scsi/lpfc/lpfc_attr.c (phba->sli.sli_flag & LPFC_BLOCK_MGMT_IO)) phba 1139 drivers/scsi/lpfc/lpfc_attr.c pmboxq = mempool_alloc(phba->mbox_mem_pool,GFP_KERNEL); phba 1148 drivers/scsi/lpfc/lpfc_attr.c mbxstatus = lpfc_sli_issue_mbox_wait(phba, pmboxq, LPFC_MBOX_TMO * 2); phba 1154 drivers/scsi/lpfc/lpfc_attr.c lpfc_init_link(phba, pmboxq, phba->cfg_topology, phba 1155 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_link_speed); phba 1156 drivers/scsi/lpfc/lpfc_attr.c mbxstatus = lpfc_sli_issue_mbox_wait(phba, pmboxq, phba 1157 drivers/scsi/lpfc/lpfc_attr.c phba->fc_ratov * 2); phba 1160 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 1165 drivers/scsi/lpfc/lpfc_attr.c lpfc_set_loopback_flag(phba); phba 1167 drivers/scsi/lpfc/lpfc_attr.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 1176 drivers/scsi/lpfc/lpfc_attr.c lpfc_emptyq_wait(struct lpfc_hba *phba, struct list_head *q, spinlock_t *lock) phba 1185 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 1213 drivers/scsi/lpfc/lpfc_attr.c lpfc_do_offline(struct lpfc_hba *phba, uint32_t type) phba 1224 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_workq_post_event(phba, &status, &online_compl, phba 1234 drivers/scsi/lpfc/lpfc_attr.c psli = &phba->sli; phba 1241 drivers/scsi/lpfc/lpfc_attr.c spin_lock_irq(&phba->hbalock); phba 1245 drivers/scsi/lpfc/lpfc_attr.c spin_unlock_irq(&phba->hbalock); phba 1248 drivers/scsi/lpfc/lpfc_attr.c spin_unlock_irq(&phba->hbalock); phba 1253 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev != LPFC_SLI_REV4) { phba 1256 drivers/scsi/lpfc/lpfc_attr.c if (!lpfc_emptyq_wait(phba, &pring->txcmplq, phba 1257 drivers/scsi/lpfc/lpfc_attr.c &phba->hbalock)) phba 1261 drivers/scsi/lpfc/lpfc_attr.c list_for_each_entry(qp, &phba->sli4_hba.lpfc_wq_list, wq_list) { phba 1265 drivers/scsi/lpfc/lpfc_attr.c if (!lpfc_emptyq_wait(phba, &pring->txcmplq, phba 1271 drivers/scsi/lpfc/lpfc_attr.c spin_lock_irq(&phba->hbalock); phba 1273 drivers/scsi/lpfc/lpfc_attr.c spin_unlock_irq(&phba->hbalock); phba 1277 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_workq_post_event(phba, &status, &online_compl, type); phba 1310 drivers/scsi/lpfc/lpfc_attr.c lpfc_reset_pci_bus(struct lpfc_hba *phba) phba 1312 drivers/scsi/lpfc/lpfc_attr.c struct pci_dev *pdev = phba->pcidev; phba 1318 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_enable_hba_reset != 2) phba 1322 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, "8345 pdev NULL!\n"); phba 1326 drivers/scsi/lpfc/lpfc_attr.c res = lpfc_check_pci_resettable(phba); phba 1336 drivers/scsi/lpfc/lpfc_attr.c ((struct lpfc_vport *)shost->hostdata)->phba; phba 1358 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1383 drivers/scsi/lpfc/lpfc_attr.c lpfc_selective_reset(struct lpfc_hba *phba) phba 1389 drivers/scsi/lpfc/lpfc_attr.c if (!phba->cfg_enable_hba_reset) phba 1392 drivers/scsi/lpfc/lpfc_attr.c if (!(phba->pport->fc_flag & FC_OFFLINE_MODE)) { phba 1393 drivers/scsi/lpfc/lpfc_attr.c status = lpfc_do_offline(phba, LPFC_EVT_OFFLINE); phba 1400 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_workq_post_event(phba, &status, &online_compl, phba 1440 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 1443 drivers/scsi/lpfc/lpfc_attr.c if (!phba->cfg_enable_hba_reset) phba 1447 drivers/scsi/lpfc/lpfc_attr.c status = phba->lpfc_selective_reset(phba); phba 1472 drivers/scsi/lpfc/lpfc_attr.c lpfc_sli4_pdev_status_reg_wait(struct lpfc_hba *phba) phba 1478 drivers/scsi/lpfc/lpfc_attr.c lpfc_readl(phba->sli4_hba.u.if_type2.STATUSregaddr, phba 1489 drivers/scsi/lpfc/lpfc_attr.c lpfc_readl(phba->sli4_hba.u.if_type2.STATUSregaddr, phba 1518 drivers/scsi/lpfc/lpfc_attr.c lpfc_sli4_pdev_reg_request(struct lpfc_hba *phba, uint32_t opcode) phba 1521 drivers/scsi/lpfc/lpfc_attr.c struct pci_dev *pdev = phba->pcidev; phba 1528 drivers/scsi/lpfc/lpfc_attr.c if (!phba->cfg_enable_hba_reset) phba 1531 drivers/scsi/lpfc/lpfc_attr.c if ((phba->sli_rev < LPFC_SLI_REV4) || phba 1532 drivers/scsi/lpfc/lpfc_attr.c (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) < phba 1537 drivers/scsi/lpfc/lpfc_attr.c before_fc_flag = phba->pport->fc_flag; phba 1538 drivers/scsi/lpfc/lpfc_attr.c sriov_nr_virtfn = phba->cfg_sriov_nr_virtfn; phba 1541 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_sriov_nr_virtfn) { phba 1543 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_sriov_nr_virtfn = 0; phba 1547 drivers/scsi/lpfc/lpfc_attr.c phba->hba_flag |= HBA_FW_DUMP_OP; phba 1549 drivers/scsi/lpfc/lpfc_attr.c status = lpfc_do_offline(phba, LPFC_EVT_OFFLINE); phba 1552 drivers/scsi/lpfc/lpfc_attr.c phba->hba_flag &= ~HBA_FW_DUMP_OP; phba 1559 drivers/scsi/lpfc/lpfc_attr.c reg_val = readl(phba->sli4_hba.conf_regs_memmap_p + phba 1569 drivers/scsi/lpfc/lpfc_attr.c writel(reg_val, phba->sli4_hba.conf_regs_memmap_p + phba 1572 drivers/scsi/lpfc/lpfc_attr.c readl(phba->sli4_hba.conf_regs_memmap_p + LPFC_CTL_PDEV_CTL_OFFSET); phba 1575 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_sli4_pdev_status_reg_wait(phba); phba 1579 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 1584 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 1595 drivers/scsi/lpfc/lpfc_attr.c job_posted = lpfc_workq_post_event(phba, &status, &online_compl, phba 1606 drivers/scsi/lpfc/lpfc_attr.c lpfc_sli_probe_sriov_nr_virtfn(phba, sriov_nr_virtfn); phba 1608 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_sriov_nr_virtfn = sriov_nr_virtfn; phba 1635 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 1637 drivers/scsi/lpfc/lpfc_attr.c return scnprintf(buf, PAGE_SIZE, "%d\n", phba->nport_event_cnt); phba 1641 drivers/scsi/lpfc/lpfc_attr.c lpfc_set_trunking(struct lpfc_hba *phba, char *buff_out) phba 1675 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, phba 1678 drivers/scsi/lpfc/lpfc_attr.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 1682 drivers/scsi/lpfc/lpfc_attr.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_FCOE, phba 1689 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 1691 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, phba 1695 drivers/scsi/lpfc/lpfc_attr.c mempool_free(mbox, phba->mbox_mem_pool); phba 1714 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 1717 drivers/scsi/lpfc/lpfc_attr.c if (phba->link_state == LPFC_HBA_ERROR) phba 1719 drivers/scsi/lpfc/lpfc_attr.c else if (phba->link_state == LPFC_WARM_START) phba 1721 drivers/scsi/lpfc/lpfc_attr.c else if (phba->link_state == LPFC_INIT_START) phba 1748 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 1754 drivers/scsi/lpfc/lpfc_attr.c if (!phba->cfg_enable_hba_reset) { phba 1765 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_workq_post_event(phba, &status, &online_compl, phba 1775 drivers/scsi/lpfc/lpfc_attr.c status = lpfc_do_offline(phba, LPFC_EVT_OFFLINE); phba 1777 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev == LPFC_SLI_REV4) phba 1780 drivers/scsi/lpfc/lpfc_attr.c status = lpfc_do_offline(phba, LPFC_EVT_WARM_START); phba 1782 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev == LPFC_SLI_REV4) phba 1785 drivers/scsi/lpfc/lpfc_attr.c status = lpfc_do_offline(phba, LPFC_EVT_KILL); phba 1787 drivers/scsi/lpfc/lpfc_attr.c status = lpfc_sli4_pdev_reg_request(phba, LPFC_FW_DUMP); phba 1789 drivers/scsi/lpfc/lpfc_attr.c status = lpfc_sli4_pdev_reg_request(phba, LPFC_FW_RESET); phba 1791 drivers/scsi/lpfc/lpfc_attr.c status = lpfc_sli4_pdev_reg_request(phba, LPFC_DV_RESET); phba 1794 drivers/scsi/lpfc/lpfc_attr.c status = lpfc_reset_pci_bus(phba); phba 1796 drivers/scsi/lpfc/lpfc_attr.c status = lpfc_set_trunking(phba, (char *)buf + sizeof("trunk")); phba 1810 drivers/scsi/lpfc/lpfc_attr.c buf, status, phba->pport->fc_flag); phba 1834 drivers/scsi/lpfc/lpfc_attr.c lpfc_get_hba_info(struct lpfc_hba *phba, phba 1849 drivers/scsi/lpfc/lpfc_attr.c if (phba->link_state < LPFC_LINK_DOWN || phba 1850 drivers/scsi/lpfc/lpfc_attr.c !phba->mbox_mem_pool || phba 1851 drivers/scsi/lpfc/lpfc_attr.c (phba->sli.sli_flag & LPFC_SLI_ACTIVE) == 0) phba 1854 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli.sli_flag & LPFC_BLOCK_MGMT_IO) phba 1857 drivers/scsi/lpfc/lpfc_attr.c pmboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 1867 drivers/scsi/lpfc/lpfc_attr.c if (phba->pport->fc_flag & FC_OFFLINE_MODE) phba 1870 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_sli_issue_mbox_wait(phba, pmboxq, phba->fc_ratov * 2); phba 1874 drivers/scsi/lpfc/lpfc_attr.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 1878 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 1884 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.max_cfg_param.rpi_used; phba 1889 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.max_cfg_param.xri_used; phba 1903 drivers/scsi/lpfc/lpfc_attr.c *avpi = max_vpi - phba->sli4_hba.max_cfg_param.vpi_used; phba 1917 drivers/scsi/lpfc/lpfc_attr.c if (phba->link_state == LPFC_HBA_READY) phba 1924 drivers/scsi/lpfc/lpfc_attr.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 1948 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 1951 drivers/scsi/lpfc/lpfc_attr.c if (lpfc_get_hba_info(phba, NULL, NULL, &cnt, NULL, NULL, NULL)) phba 1976 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 1979 drivers/scsi/lpfc/lpfc_attr.c if (lpfc_get_hba_info(phba, NULL, NULL, &cnt, &acnt, NULL, NULL)) phba 2004 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 2007 drivers/scsi/lpfc/lpfc_attr.c if (lpfc_get_hba_info(phba, &cnt, NULL, NULL, NULL, NULL, NULL)) phba 2032 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 2035 drivers/scsi/lpfc/lpfc_attr.c if (lpfc_get_hba_info(phba, &cnt, &acnt, NULL, NULL, NULL, NULL)) phba 2060 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 2063 drivers/scsi/lpfc/lpfc_attr.c if (lpfc_get_hba_info(phba, NULL, NULL, NULL, NULL, &cnt, NULL)) phba 2088 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 2091 drivers/scsi/lpfc/lpfc_attr.c if (lpfc_get_hba_info(phba, NULL, NULL, NULL, NULL, &cnt, &acnt)) phba 2115 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 2117 drivers/scsi/lpfc/lpfc_attr.c if (!(phba->max_vpi)) phba 2141 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 2143 drivers/scsi/lpfc/lpfc_attr.c return scnprintf(buf, PAGE_SIZE, "%#x\n", phba->cfg_poll); phba 2166 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 2180 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev == LPFC_SLI_REV4) phba 2185 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_poll, val); phba 2187 drivers/scsi/lpfc/lpfc_attr.c spin_lock_irq(&phba->hbalock); phba 2189 drivers/scsi/lpfc/lpfc_attr.c old_val = phba->cfg_poll; phba 2194 drivers/scsi/lpfc/lpfc_attr.c if (lpfc_readl(phba->HCregaddr, &creg_val)) { phba 2195 drivers/scsi/lpfc/lpfc_attr.c spin_unlock_irq(&phba->hbalock); phba 2199 drivers/scsi/lpfc/lpfc_attr.c writel(creg_val, phba->HCregaddr); phba 2200 drivers/scsi/lpfc/lpfc_attr.c readl(phba->HCregaddr); /* flush */ phba 2202 drivers/scsi/lpfc/lpfc_attr.c lpfc_poll_start_timer(phba); phba 2205 drivers/scsi/lpfc/lpfc_attr.c spin_unlock_irq(&phba->hbalock); phba 2212 drivers/scsi/lpfc/lpfc_attr.c spin_unlock_irq(&phba->hbalock); phba 2213 drivers/scsi/lpfc/lpfc_attr.c del_timer(&phba->fcp_poll_timer); phba 2214 drivers/scsi/lpfc/lpfc_attr.c spin_lock_irq(&phba->hbalock); phba 2215 drivers/scsi/lpfc/lpfc_attr.c if (lpfc_readl(phba->HCregaddr, &creg_val)) { phba 2216 drivers/scsi/lpfc/lpfc_attr.c spin_unlock_irq(&phba->hbalock); phba 2220 drivers/scsi/lpfc/lpfc_attr.c writel(creg_val, phba->HCregaddr); phba 2221 drivers/scsi/lpfc/lpfc_attr.c readl(phba->HCregaddr); /* flush */ phba 2224 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_poll = val; phba 2226 drivers/scsi/lpfc/lpfc_attr.c spin_unlock_irq(&phba->hbalock); phba 2245 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 2247 drivers/scsi/lpfc/lpfc_attr.c return scnprintf(buf, PAGE_SIZE, "%d\n", phba->fips_level); phba 2264 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 2266 drivers/scsi/lpfc/lpfc_attr.c return scnprintf(buf, PAGE_SIZE, "%d\n", phba->fips_spec_rev); phba 2283 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 2286 drivers/scsi/lpfc/lpfc_attr.c (phba->cfg_enable_dss) ? "Enabled" : "Disabled", phba 2287 drivers/scsi/lpfc/lpfc_attr.c (phba->sli3_options & LPFC_SLI3_DSS_ENABLED) ? phba 2310 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 2313 drivers/scsi/lpfc/lpfc_attr.c max_nr_virtfn = lpfc_sli_sriov_nr_virtfn_get(phba); phba 2337 drivers/scsi/lpfc/lpfc_attr.c lpfc_enable_bbcr_set(struct lpfc_hba *phba, uint val) phba 2339 drivers/scsi/lpfc/lpfc_attr.c if (lpfc_rangecheck(val, 0, 1) && phba->sli_rev == LPFC_SLI_REV4) { phba 2340 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 2342 drivers/scsi/lpfc/lpfc_attr.c LPFC_DRIVER_NAME, phba->cfg_enable_bbcr, val); phba 2343 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_enable_bbcr = val; phba 2346 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 2373 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba;\ phba 2375 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_##attr);\ phba 2399 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba;\ phba 2401 drivers/scsi/lpfc/lpfc_attr.c val = phba->cfg_##attr;\ phba 2403 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_##attr);\ phba 2427 drivers/scsi/lpfc/lpfc_attr.c lpfc_##attr##_init(struct lpfc_hba *phba, uint val) \ phba 2430 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_##attr = val;\ phba 2433 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, \ phba 2436 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_##attr = default;\ phba 2462 drivers/scsi/lpfc/lpfc_attr.c lpfc_##attr##_set(struct lpfc_hba *phba, uint val) \ phba 2465 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, \ phba 2467 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_##attr, val); \ phba 2468 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_##attr = val;\ phba 2471 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, \ phba 2505 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba;\ phba 2511 drivers/scsi/lpfc/lpfc_attr.c if (lpfc_##attr##_set(phba, val) == 0) \ phba 2775 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 2793 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 2807 drivers/scsi/lpfc/lpfc_attr.c phba->soft_wwn_enable = 1; phba 2809 drivers/scsi/lpfc/lpfc_attr.c dev_printk(KERN_WARNING, &phba->pcidev->dev, phba 2811 drivers/scsi/lpfc/lpfc_attr.c phba->brd_no); phba 2812 drivers/scsi/lpfc/lpfc_attr.c dev_printk(KERN_WARNING, &phba->pcidev->dev, phba 2833 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 2836 drivers/scsi/lpfc/lpfc_attr.c (unsigned long long)phba->cfg_soft_wwpn); phba 2858 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 2865 drivers/scsi/lpfc/lpfc_attr.c if (!phba->cfg_enable_hba_reset) phba 2867 drivers/scsi/lpfc/lpfc_attr.c spin_lock_irq(&phba->hbalock); phba 2868 drivers/scsi/lpfc/lpfc_attr.c if (phba->over_temp_state == HBA_OVER_TEMP) { phba 2869 drivers/scsi/lpfc/lpfc_attr.c spin_unlock_irq(&phba->hbalock); phba 2872 drivers/scsi/lpfc/lpfc_attr.c spin_unlock_irq(&phba->hbalock); phba 2877 drivers/scsi/lpfc/lpfc_attr.c if (!phba->soft_wwn_enable) phba 2881 drivers/scsi/lpfc/lpfc_attr.c phba->soft_wwn_enable = 0; phba 2886 drivers/scsi/lpfc/lpfc_attr.c phba->soft_wwn_enable = 1; phba 2890 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_soft_wwpn = wwn_to_u64(wwpn); phba 2891 drivers/scsi/lpfc/lpfc_attr.c fc_host_port_name(shost) = phba->cfg_soft_wwpn; phba 2892 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_soft_wwnn) phba 2893 drivers/scsi/lpfc/lpfc_attr.c fc_host_node_name(shost) = phba->cfg_soft_wwnn; phba 2895 drivers/scsi/lpfc/lpfc_attr.c dev_printk(KERN_NOTICE, &phba->pcidev->dev, phba 2896 drivers/scsi/lpfc/lpfc_attr.c "lpfc%d: Reinitializing to use soft_wwpn\n", phba->brd_no); phba 2898 drivers/scsi/lpfc/lpfc_attr.c stat1 = lpfc_do_offline(phba, LPFC_EVT_OFFLINE); phba 2900 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 2904 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_workq_post_event(phba, &stat2, &online_compl, phba 2911 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 2931 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 2933 drivers/scsi/lpfc/lpfc_attr.c (unsigned long long)phba->cfg_soft_wwnn); phba 2951 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 2960 drivers/scsi/lpfc/lpfc_attr.c if (!phba->soft_wwn_enable) phba 2971 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_soft_wwnn = wwn_to_u64(wwnn); phba 2973 drivers/scsi/lpfc/lpfc_attr.c dev_printk(KERN_NOTICE, &phba->pcidev->dev, phba 2975 drivers/scsi/lpfc/lpfc_attr.c "setting of the soft_wwpn\n", phba->brd_no); phba 2996 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 2999 drivers/scsi/lpfc/lpfc_attr.c wwn_to_u64(phba->cfg_oas_tgt_wwpn)); phba 3020 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 3025 drivers/scsi/lpfc/lpfc_attr.c if (!phba->cfg_fof) phba 3036 drivers/scsi/lpfc/lpfc_attr.c memcpy(phba->cfg_oas_tgt_wwpn, wwpn, (8 * sizeof(uint8_t))); phba 3037 drivers/scsi/lpfc/lpfc_attr.c memcpy(phba->sli4_hba.oas_next_tgt_wwpn, wwpn, (8 * sizeof(uint8_t))); phba 3039 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_flags |= OAS_FIND_ANY_TARGET; phba 3041 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_flags &= ~OAS_FIND_ANY_TARGET; phba 3042 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_flags &= ~OAS_LUN_VALID; phba 3043 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.oas_next_lun = FIND_FIRST_OAS_LUN; phba 3064 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 3066 drivers/scsi/lpfc/lpfc_attr.c return scnprintf(buf, PAGE_SIZE, "%d\n", phba->cfg_oas_priority); phba 3087 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 3092 drivers/scsi/lpfc/lpfc_attr.c if (!phba->cfg_fof) phba 3104 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_priority = (uint8_t)val; phba 3106 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_priority = phba->cfg_XLanePriority; phba 3127 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 3130 drivers/scsi/lpfc/lpfc_attr.c wwn_to_u64(phba->cfg_oas_vpt_wwpn)); phba 3151 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 3156 drivers/scsi/lpfc/lpfc_attr.c if (!phba->cfg_fof) phba 3167 drivers/scsi/lpfc/lpfc_attr.c memcpy(phba->cfg_oas_vpt_wwpn, wwpn, (8 * sizeof(uint8_t))); phba 3168 drivers/scsi/lpfc/lpfc_attr.c memcpy(phba->sli4_hba.oas_next_vpt_wwpn, wwpn, (8 * sizeof(uint8_t))); phba 3170 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_flags |= OAS_FIND_ANY_VPORT; phba 3172 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_flags &= ~OAS_FIND_ANY_VPORT; phba 3173 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_flags &= ~OAS_LUN_VALID; phba 3174 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_oas_priority == 0) phba 3175 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_priority = phba->cfg_XLanePriority; phba 3176 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.oas_next_lun = FIND_FIRST_OAS_LUN; phba 3198 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 3200 drivers/scsi/lpfc/lpfc_attr.c return scnprintf(buf, PAGE_SIZE, "%d\n", phba->cfg_oas_lun_state); phba 3222 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 3225 drivers/scsi/lpfc/lpfc_attr.c if (!phba->cfg_fof) phba 3237 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_lun_state = val; phba 3259 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 3261 drivers/scsi/lpfc/lpfc_attr.c if (!(phba->cfg_oas_flags & OAS_LUN_VALID)) phba 3264 drivers/scsi/lpfc/lpfc_attr.c return scnprintf(buf, PAGE_SIZE, "%d\n", phba->cfg_oas_lun_status); phba 3284 drivers/scsi/lpfc/lpfc_attr.c lpfc_oas_lun_state_set(struct lpfc_hba *phba, uint8_t vpt_wwpn[], phba 3291 drivers/scsi/lpfc/lpfc_attr.c if (!phba->cfg_fof) phba 3295 drivers/scsi/lpfc/lpfc_attr.c if (!lpfc_enable_oas_lun(phba, (struct lpfc_name *)vpt_wwpn, phba 3300 drivers/scsi/lpfc/lpfc_attr.c lpfc_disable_oas_lun(phba, (struct lpfc_name *)vpt_wwpn, phba 3324 drivers/scsi/lpfc/lpfc_attr.c lpfc_oas_lun_get_next(struct lpfc_hba *phba, uint8_t vpt_wwpn[], phba 3330 drivers/scsi/lpfc/lpfc_attr.c if (unlikely(!phba) || !vpt_wwpn || !tgt_wwpn) phba 3332 drivers/scsi/lpfc/lpfc_attr.c if (lpfc_find_next_oas_lun(phba, (struct lpfc_name *) phba 3333 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.oas_next_vpt_wwpn, phba 3335 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.oas_next_tgt_wwpn, phba 3336 drivers/scsi/lpfc/lpfc_attr.c &phba->sli4_hba.oas_next_lun, phba 3362 drivers/scsi/lpfc/lpfc_attr.c lpfc_oas_lun_state_change(struct lpfc_hba *phba, uint8_t vpt_wwpn[], phba 3369 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_oas_lun_state_set(phba, vpt_wwpn, tgt_wwpn, lun, phba 3393 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 3398 drivers/scsi/lpfc/lpfc_attr.c if (!phba->cfg_fof) phba 3401 drivers/scsi/lpfc/lpfc_attr.c if (wwn_to_u64(phba->cfg_oas_vpt_wwpn) == 0) phba 3402 drivers/scsi/lpfc/lpfc_attr.c if (!(phba->cfg_oas_flags & OAS_FIND_ANY_VPORT)) phba 3405 drivers/scsi/lpfc/lpfc_attr.c if (wwn_to_u64(phba->cfg_oas_tgt_wwpn) == 0) phba 3406 drivers/scsi/lpfc/lpfc_attr.c if (!(phba->cfg_oas_flags & OAS_FIND_ANY_TARGET)) phba 3409 drivers/scsi/lpfc/lpfc_attr.c oas_lun = lpfc_oas_lun_get_next(phba, phba->cfg_oas_vpt_wwpn, phba 3410 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_tgt_wwpn, phba 3411 drivers/scsi/lpfc/lpfc_attr.c &phba->cfg_oas_lun_status, phba 3412 drivers/scsi/lpfc/lpfc_attr.c &phba->cfg_oas_priority); phba 3414 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_flags |= OAS_LUN_VALID; phba 3441 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 3446 drivers/scsi/lpfc/lpfc_attr.c if (!phba->cfg_fof) phba 3449 drivers/scsi/lpfc/lpfc_attr.c if (wwn_to_u64(phba->cfg_oas_vpt_wwpn) == 0) phba 3452 drivers/scsi/lpfc/lpfc_attr.c if (wwn_to_u64(phba->cfg_oas_tgt_wwpn) == 0) phba 3461 drivers/scsi/lpfc/lpfc_attr.c pri = phba->cfg_oas_priority; phba 3463 drivers/scsi/lpfc/lpfc_attr.c pri = phba->cfg_XLanePriority; phba 3465 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 3468 drivers/scsi/lpfc/lpfc_attr.c wwn_to_u64(phba->cfg_oas_vpt_wwpn), phba 3469 drivers/scsi/lpfc/lpfc_attr.c wwn_to_u64(phba->cfg_oas_tgt_wwpn), scsi_lun, phba 3470 drivers/scsi/lpfc/lpfc_attr.c pri, phba->cfg_oas_lun_state); phba 3472 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_oas_lun_state_change(phba, phba->cfg_oas_vpt_wwpn, phba 3473 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_tgt_wwpn, scsi_lun, phba 3474 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_lun_state, pri); phba 3548 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = ((struct lpfc_vport *) shost->hostdata)->phba; phba 3550 drivers/scsi/lpfc/lpfc_attr.c return scnprintf(buf, PAGE_SIZE, "%d\n", phba->iocb_max); phba 3559 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = ((struct lpfc_vport *) shost->hostdata)->phba; phba 3560 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_sli_ring *pring = lpfc_phba_elsring(phba); phba 3573 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = ((struct lpfc_vport *) shost->hostdata)->phba; phba 3574 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_sli_ring *pring = lpfc_phba_elsring(phba); phba 3681 drivers/scsi/lpfc/lpfc_attr.c spin_lock(&vport->phba->hbalock); phba 3685 drivers/scsi/lpfc/lpfc_attr.c spin_unlock(&vport->phba->hbalock); phba 4073 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 4091 drivers/scsi/lpfc/lpfc_attr.c prev_val = phba->cfg_topology; phba 4092 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_link_speed == LPFC_USER_LINK_SPEED_16G && phba 4099 drivers/scsi/lpfc/lpfc_attr.c if ((phba->pcidev->device == PCI_DEVICE_ID_LANCER_G6_FC || phba 4100 drivers/scsi/lpfc/lpfc_attr.c phba->pcidev->device == PCI_DEVICE_ID_LANCER_G7_FC) && phba 4106 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_topology = val; phba 4113 drivers/scsi/lpfc/lpfc_attr.c if (prev_val != val && phba->sli_rev == LPFC_SLI_REV4) phba 4114 drivers/scsi/lpfc/lpfc_attr.c phba->fc_topology_changed = 1; phba 4115 drivers/scsi/lpfc/lpfc_attr.c err = lpfc_issue_lip(lpfc_shost_from_vport(phba->pport)); phba 4117 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_topology = prev_val; phba 4122 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 4125 drivers/scsi/lpfc/lpfc_attr.c phba->brd_no, val); phba 4187 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 4232 drivers/scsi/lpfc/lpfc_attr.c vports = lpfc_create_vport_work_array(phba); phba 4236 drivers/scsi/lpfc/lpfc_attr.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 4247 drivers/scsi/lpfc/lpfc_attr.c phba->bucket_type = bucket_type; phba 4248 drivers/scsi/lpfc/lpfc_attr.c phba->bucket_base = base; phba 4249 drivers/scsi/lpfc/lpfc_attr.c phba->bucket_step = step; phba 4251 drivers/scsi/lpfc/lpfc_attr.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 4259 drivers/scsi/lpfc/lpfc_attr.c lpfc_destroy_vport_work_array(phba, vports); phba 4264 drivers/scsi/lpfc/lpfc_attr.c vports = lpfc_create_vport_work_array(phba); phba 4268 drivers/scsi/lpfc/lpfc_attr.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 4277 drivers/scsi/lpfc/lpfc_attr.c lpfc_destroy_vport_work_array(phba, vports); phba 4278 drivers/scsi/lpfc/lpfc_attr.c phba->bucket_type = LPFC_NO_BUCKET; phba 4279 drivers/scsi/lpfc/lpfc_attr.c phba->bucket_base = 0; phba 4280 drivers/scsi/lpfc/lpfc_attr.c phba->bucket_step = 0; phba 4286 drivers/scsi/lpfc/lpfc_attr.c if (phba->bucket_type == LPFC_NO_BUCKET) phba 4312 drivers/scsi/lpfc/lpfc_attr.c if ((phba->bucket_type == LPFC_NO_BUCKET) phba 4341 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 4347 drivers/scsi/lpfc/lpfc_attr.c switch (phba->bucket_type) { phba 4363 drivers/scsi/lpfc/lpfc_attr.c bucket_type, phba->bucket_base, phba->bucket_step); phba 4365 drivers/scsi/lpfc/lpfc_attr.c if (phba->bucket_type != LPFC_NO_BUCKET) { phba 4367 drivers/scsi/lpfc/lpfc_attr.c if (phba->bucket_type == LPFC_LINEAR_BUCKET) phba 4368 drivers/scsi/lpfc/lpfc_attr.c bucket_value = phba->bucket_base + phba 4369 drivers/scsi/lpfc/lpfc_attr.c phba->bucket_step * i; phba 4371 drivers/scsi/lpfc/lpfc_attr.c bucket_value = phba->bucket_base + phba 4372 drivers/scsi/lpfc/lpfc_attr.c (1 << i) * phba->bucket_step; phba 4424 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 4432 drivers/scsi/lpfc/lpfc_attr.c || (phba->bucket_type == LPFC_NO_BUCKET)) phba 4515 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 4522 drivers/scsi/lpfc/lpfc_attr.c if_type = bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf); phba 4524 drivers/scsi/lpfc/lpfc_attr.c phba->hba_flag & HBA_FORCED_LINK_SPEED) phba 4539 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_link_speed, val, nolip ? "(nolip)" : "(lip)"); phba 4541 drivers/scsi/lpfc/lpfc_attr.c if (((val == LPFC_USER_LINK_SPEED_1G) && !(phba->lmt & LMT_1Gb)) || phba 4542 drivers/scsi/lpfc/lpfc_attr.c ((val == LPFC_USER_LINK_SPEED_2G) && !(phba->lmt & LMT_2Gb)) || phba 4543 drivers/scsi/lpfc/lpfc_attr.c ((val == LPFC_USER_LINK_SPEED_4G) && !(phba->lmt & LMT_4Gb)) || phba 4544 drivers/scsi/lpfc/lpfc_attr.c ((val == LPFC_USER_LINK_SPEED_8G) && !(phba->lmt & LMT_8Gb)) || phba 4545 drivers/scsi/lpfc/lpfc_attr.c ((val == LPFC_USER_LINK_SPEED_10G) && !(phba->lmt & LMT_10Gb)) || phba 4546 drivers/scsi/lpfc/lpfc_attr.c ((val == LPFC_USER_LINK_SPEED_16G) && !(phba->lmt & LMT_16Gb)) || phba 4547 drivers/scsi/lpfc/lpfc_attr.c ((val == LPFC_USER_LINK_SPEED_32G) && !(phba->lmt & LMT_32Gb)) || phba 4548 drivers/scsi/lpfc/lpfc_attr.c ((val == LPFC_USER_LINK_SPEED_64G) && !(phba->lmt & LMT_64Gb))) { phba 4549 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 4556 drivers/scsi/lpfc/lpfc_attr.c phba->fc_topology == LPFC_TOPOLOGY_LOOP) { phba 4557 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 4573 drivers/scsi/lpfc/lpfc_attr.c prev_val = phba->cfg_link_speed; phba 4574 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_link_speed = val; phba 4578 drivers/scsi/lpfc/lpfc_attr.c err = lpfc_issue_lip(lpfc_shost_from_vport(phba->pport)); phba 4580 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_link_speed = prev_val; phba 4588 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 4618 drivers/scsi/lpfc/lpfc_attr.c lpfc_link_speed_init(struct lpfc_hba *phba, int val) phba 4620 drivers/scsi/lpfc/lpfc_attr.c if (val >= LPFC_USER_LINK_SPEED_16G && phba->cfg_topology == 4) { phba 4621 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 4625 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_topology = 0; phba 4637 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_link_speed = val; phba 4640 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 4644 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_link_speed = LPFC_USER_LINK_SPEED_AUTO; phba 4694 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 4704 drivers/scsi/lpfc/lpfc_attr.c if (phba->hba_flag & HBA_AER_ENABLED) { phba 4705 drivers/scsi/lpfc/lpfc_attr.c rc = pci_disable_pcie_error_reporting(phba->pcidev); phba 4707 drivers/scsi/lpfc/lpfc_attr.c spin_lock_irq(&phba->hbalock); phba 4708 drivers/scsi/lpfc/lpfc_attr.c phba->hba_flag &= ~HBA_AER_ENABLED; phba 4709 drivers/scsi/lpfc/lpfc_attr.c spin_unlock_irq(&phba->hbalock); phba 4710 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_aer_support = 0; phba 4715 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_aer_support = 0; phba 4720 drivers/scsi/lpfc/lpfc_attr.c if (!(phba->hba_flag & HBA_AER_ENABLED)) { phba 4721 drivers/scsi/lpfc/lpfc_attr.c rc = pci_enable_pcie_error_reporting(phba->pcidev); phba 4723 drivers/scsi/lpfc/lpfc_attr.c spin_lock_irq(&phba->hbalock); phba 4724 drivers/scsi/lpfc/lpfc_attr.c phba->hba_flag |= HBA_AER_ENABLED; phba 4725 drivers/scsi/lpfc/lpfc_attr.c spin_unlock_irq(&phba->hbalock); phba 4726 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_aer_support = 1; phba 4731 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_aer_support = 1; phba 4769 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 4779 drivers/scsi/lpfc/lpfc_attr.c if (phba->hba_flag & HBA_AER_ENABLED) phba 4780 drivers/scsi/lpfc/lpfc_attr.c rc = pci_cleanup_aer_uncorrect_error_status(phba->pcidev); phba 4836 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 4837 drivers/scsi/lpfc/lpfc_attr.c struct pci_dev *pdev = phba->pcidev; phba 4850 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_sriov_nr_virtfn > 0) { phba 4852 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_sriov_nr_virtfn = 0; phba 4858 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_sriov_nr_virtfn > 0) { phba 4859 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 4862 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_sriov_nr_virtfn); phba 4867 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_sriov_nr_virtfn = val; phba 4869 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 4875 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_sli_probe_sriov_nr_virtfn(phba, phba->cfg_sriov_nr_virtfn); phba 4877 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_sriov_nr_virtfn = 0; phba 4913 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 4924 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_sli4_request_firmware_update(phba, RUN_FW_UPGRADE); phba 4950 drivers/scsi/lpfc/lpfc_attr.c lpfc_request_firmware_upgrade_init(struct lpfc_hba *phba, int val) phba 4953 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_request_firmware_upgrade = val; phba 5014 drivers/scsi/lpfc/lpfc_attr.c lpfc_force_rscn_init(struct lpfc_hba *phba, int val) phba 5043 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 5049 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev != LPFC_SLI_REV4) phba 5066 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_auto_imax = (val) ? 0 : 1; phba 5067 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_fcp_imax && !val) { phba 5068 drivers/scsi/lpfc/lpfc_attr.c queue_delayed_work(phba->wq, &phba->eq_delay_work, phba 5072 drivers/scsi/lpfc/lpfc_attr.c eqi = per_cpu_ptr(phba->sli4_hba.eq_info, i); phba 5077 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_fcp_imax = (uint32_t)val; phba 5079 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_fcp_imax) phba 5080 drivers/scsi/lpfc/lpfc_attr.c usdelay = LPFC_SEC_TO_USEC / phba->cfg_fcp_imax; phba 5084 drivers/scsi/lpfc/lpfc_attr.c for (i = 0; i < phba->cfg_irq_chann; i += LPFC_MAX_EQ_DELAY_EQID_CNT) phba 5085 drivers/scsi/lpfc/lpfc_attr.c lpfc_modify_hba_eq_delay(phba, i, LPFC_MAX_EQ_DELAY_EQID_CNT, phba 5117 drivers/scsi/lpfc/lpfc_attr.c lpfc_fcp_imax_init(struct lpfc_hba *phba, int val) phba 5119 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev != LPFC_SLI_REV4) { phba 5120 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_fcp_imax = 0; phba 5126 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_fcp_imax = val; phba 5130 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 5133 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_fcp_imax = LPFC_DEF_IMAX; phba 5162 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 5168 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev != LPFC_SLI_REV4) phba 5180 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_cq_max_proc_limit = (uint32_t)val; phba 5183 drivers/scsi/lpfc/lpfc_attr.c for (i = 0; i < phba->cfg_irq_chann; i++) { phba 5185 drivers/scsi/lpfc/lpfc_attr.c eq = phba->sli4_hba.hba_eq_hdl[i].eq; phba 5190 drivers/scsi/lpfc/lpfc_attr.c cq->max_proc_limit = min(phba->cfg_cq_max_proc_limit, phba 5233 drivers/scsi/lpfc/lpfc_attr.c lpfc_cq_max_proc_limit_init(struct lpfc_hba *phba, int val) phba 5235 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_cq_max_proc_limit = LPFC_CQ_DEF_MAX_PROC_LIMIT; phba 5237 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev != LPFC_SLI_REV4) phba 5241 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_cq_max_proc_limit = val; phba 5245 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 5248 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_cq_max_proc_limit); phba 5269 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 5273 drivers/scsi/lpfc/lpfc_attr.c if ((phba->sli_rev != LPFC_SLI_REV4) || phba 5274 drivers/scsi/lpfc/lpfc_attr.c (phba->intr_type != MSIX)) phba 5277 drivers/scsi/lpfc/lpfc_attr.c switch (phba->cfg_fcp_cpu_map) { phba 5281 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_fcp_cpu_map); phba 5287 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_fcp_cpu_map, num_online_cpus(), phba 5289 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.num_possible_cpu); phba 5293 drivers/scsi/lpfc/lpfc_attr.c while (phba->sli4_hba.curr_disp_cpu < phba 5294 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.num_possible_cpu) { phba 5295 drivers/scsi/lpfc/lpfc_attr.c cpup = &phba->sli4_hba.cpu_map[phba->sli4_hba.curr_disp_cpu]; phba 5297 drivers/scsi/lpfc/lpfc_attr.c if (!cpu_present(phba->sli4_hba.curr_disp_cpu)) phba 5300 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.curr_disp_cpu); phba 5307 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.curr_disp_cpu, phba 5316 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.curr_disp_cpu, phba 5327 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.curr_disp_cpu, phba 5338 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.curr_disp_cpu, phba 5346 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.curr_disp_cpu++; phba 5349 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli4_hba.curr_disp_cpu < phba 5350 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.num_possible_cpu && phba 5358 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli4_hba.curr_disp_cpu == phba->sli4_hba.num_possible_cpu) phba 5359 drivers/scsi/lpfc/lpfc_attr.c phba->sli4_hba.curr_disp_cpu = 0; phba 5411 drivers/scsi/lpfc/lpfc_attr.c lpfc_fcp_cpu_map_init(struct lpfc_hba *phba, int val) phba 5413 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev != LPFC_SLI_REV4) { phba 5414 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_fcp_cpu_map = 0; phba 5419 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_fcp_cpu_map = val; phba 5423 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 5426 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_fcp_cpu_map = LPFC_HBA_CPU_MAP; phba 5879 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 5883 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_sg_dma_buf_size, phba->cfg_total_seg_cnt); phba 5886 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_sg_seg_cnt, phba->cfg_scsi_seg_cnt, phba 5887 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_nvme_seg_cnt); phba 5908 drivers/scsi/lpfc/lpfc_attr.c lpfc_sg_seg_cnt_init(struct lpfc_hba *phba, int val) phba 5911 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_sg_seg_cnt = val; phba 5914 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 5918 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_sg_seg_cnt = LPFC_DEFAULT_SG_SEG_CNT; phba 6149 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 6151 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev >= LPFC_SLI_REV4) phba 6170 drivers/scsi/lpfc/lpfc_attr.c spin_lock_irq(&phba->hbalock); phba 6174 drivers/scsi/lpfc/lpfc_attr.c phba->ctrl_regs_memmap_p + off + buf_off); phba 6176 drivers/scsi/lpfc/lpfc_attr.c spin_unlock_irq(&phba->hbalock); phba 6209 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 6211 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev >= LPFC_SLI_REV4) phba 6225 drivers/scsi/lpfc/lpfc_attr.c spin_lock_irq(&phba->hbalock); phba 6229 drivers/scsi/lpfc/lpfc_attr.c *tmp_ptr = readl(phba->ctrl_regs_memmap_p + off + buf_off); phba 6232 drivers/scsi/lpfc/lpfc_attr.c spin_unlock_irq(&phba->hbalock); phba 6401 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 6407 drivers/scsi/lpfc/lpfc_attr.c } else if (lpfc_is_link_up(phba)) { phba 6408 drivers/scsi/lpfc/lpfc_attr.c if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { phba 6433 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 6440 drivers/scsi/lpfc/lpfc_attr.c switch (phba->link_state) { phba 6476 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 6480 drivers/scsi/lpfc/lpfc_attr.c if ((lpfc_is_link_up(phba)) && (!(phba->hba_flag & HBA_FCOE_MODE))) { phba 6481 drivers/scsi/lpfc/lpfc_attr.c switch(phba->fc_linkspeed) { phba 6513 drivers/scsi/lpfc/lpfc_attr.c } else if (lpfc_is_link_up(phba) && (phba->hba_flag & HBA_FCOE_MODE)) { phba 6514 drivers/scsi/lpfc/lpfc_attr.c switch (phba->fc_linkspeed) { phba 6545 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 6552 drivers/scsi/lpfc/lpfc_attr.c ((phba->fc_topology == LPFC_TOPOLOGY_LOOP) && phba 6554 drivers/scsi/lpfc/lpfc_attr.c node_name = wwn_to_u64(phba->fc_fabparam.nodeName.u.wwn); phba 6580 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 6581 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_sli *psli = &phba->sli; phba 6582 drivers/scsi/lpfc/lpfc_attr.c struct fc_host_statistics *hs = &phba->link_stats; phba 6592 drivers/scsi/lpfc/lpfc_attr.c if (phba->link_state < LPFC_LINK_DOWN || phba 6593 drivers/scsi/lpfc/lpfc_attr.c !phba->mbox_mem_pool || phba 6594 drivers/scsi/lpfc/lpfc_attr.c (phba->sli.sli_flag & LPFC_SLI_ACTIVE) == 0) phba 6597 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli.sli_flag & LPFC_BLOCK_MGMT_IO) phba 6600 drivers/scsi/lpfc/lpfc_attr.c pmboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 6612 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_sli_issue_mbox(phba, pmboxq, MBX_POLL); phba 6614 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_sli_issue_mbox_wait(phba, pmboxq, phba->fc_ratov * 2); phba 6618 drivers/scsi/lpfc/lpfc_attr.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 6644 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_sli_issue_mbox(phba, pmboxq, MBX_POLL); phba 6646 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_sli_issue_mbox_wait(phba, pmboxq, phba->fc_ratov * 2); phba 6650 drivers/scsi/lpfc/lpfc_attr.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 6670 drivers/scsi/lpfc/lpfc_attr.c if (phba->hba_flag & HBA_FCOE_MODE) { phba 6672 drivers/scsi/lpfc/lpfc_attr.c hs->nos_count = (phba->link_events >> 1); phba 6674 drivers/scsi/lpfc/lpfc_attr.c } else if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { phba 6675 drivers/scsi/lpfc/lpfc_attr.c hs->lip_count = (phba->fc_eventTag >> 1); phba 6680 drivers/scsi/lpfc/lpfc_attr.c hs->nos_count = (phba->fc_eventTag >> 1); phba 6688 drivers/scsi/lpfc/lpfc_attr.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 6701 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_hba *phba = vport->phba; phba 6702 drivers/scsi/lpfc/lpfc_attr.c struct lpfc_sli *psli = &phba->sli; phba 6708 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli.sli_flag & LPFC_BLOCK_MGMT_IO) phba 6711 drivers/scsi/lpfc/lpfc_attr.c pmboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 6725 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_sli_issue_mbox(phba, pmboxq, MBX_POLL); phba 6727 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_sli_issue_mbox_wait(phba, pmboxq, phba->fc_ratov * 2); phba 6731 drivers/scsi/lpfc/lpfc_attr.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 6743 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_sli_issue_mbox(phba, pmboxq, MBX_POLL); phba 6745 drivers/scsi/lpfc/lpfc_attr.c rc = lpfc_sli_issue_mbox_wait(phba, pmboxq, phba->fc_ratov * 2); phba 6749 drivers/scsi/lpfc/lpfc_attr.c mempool_free( pmboxq, phba->mbox_mem_pool); phba 6760 drivers/scsi/lpfc/lpfc_attr.c if (phba->hba_flag & HBA_FCOE_MODE) phba 6761 drivers/scsi/lpfc/lpfc_attr.c lso->link_events = (phba->link_events >> 1); phba 6763 drivers/scsi/lpfc/lpfc_attr.c lso->link_events = (phba->fc_eventTag >> 1); phba 6767 drivers/scsi/lpfc/lpfc_attr.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 6943 drivers/scsi/lpfc/lpfc_attr.c lpfc_hba_log_verbose_init(struct lpfc_hba *phba, uint32_t verbose) phba 6945 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_log_verbose = verbose; phba 7086 drivers/scsi/lpfc/lpfc_attr.c lpfc_get_hba_function_mode(struct lpfc_hba *phba) phba 7089 drivers/scsi/lpfc/lpfc_attr.c if (phba->pcidev->device == PCI_DEVICE_ID_SKYHAWK) phba 7090 drivers/scsi/lpfc/lpfc_attr.c phba->hba_flag |= HBA_FCOE_MODE; phba 7092 drivers/scsi/lpfc/lpfc_attr.c phba->hba_flag &= ~HBA_FCOE_MODE; phba 7100 drivers/scsi/lpfc/lpfc_attr.c lpfc_get_cfgparam(struct lpfc_hba *phba) phba 7102 drivers/scsi/lpfc/lpfc_attr.c lpfc_fcp_io_sched_init(phba, lpfc_fcp_io_sched); phba 7103 drivers/scsi/lpfc/lpfc_attr.c lpfc_ns_query_init(phba, lpfc_ns_query); phba 7104 drivers/scsi/lpfc/lpfc_attr.c lpfc_fcp2_no_tgt_reset_init(phba, lpfc_fcp2_no_tgt_reset); phba 7105 drivers/scsi/lpfc/lpfc_attr.c lpfc_cr_delay_init(phba, lpfc_cr_delay); phba 7106 drivers/scsi/lpfc/lpfc_attr.c lpfc_cr_count_init(phba, lpfc_cr_count); phba 7107 drivers/scsi/lpfc/lpfc_attr.c lpfc_multi_ring_support_init(phba, lpfc_multi_ring_support); phba 7108 drivers/scsi/lpfc/lpfc_attr.c lpfc_multi_ring_rctl_init(phba, lpfc_multi_ring_rctl); phba 7109 drivers/scsi/lpfc/lpfc_attr.c lpfc_multi_ring_type_init(phba, lpfc_multi_ring_type); phba 7110 drivers/scsi/lpfc/lpfc_attr.c lpfc_ack0_init(phba, lpfc_ack0); phba 7111 drivers/scsi/lpfc/lpfc_attr.c lpfc_xri_rebalancing_init(phba, lpfc_xri_rebalancing); phba 7112 drivers/scsi/lpfc/lpfc_attr.c lpfc_topology_init(phba, lpfc_topology); phba 7113 drivers/scsi/lpfc/lpfc_attr.c lpfc_link_speed_init(phba, lpfc_link_speed); phba 7114 drivers/scsi/lpfc/lpfc_attr.c lpfc_poll_tmo_init(phba, lpfc_poll_tmo); phba 7115 drivers/scsi/lpfc/lpfc_attr.c lpfc_task_mgmt_tmo_init(phba, lpfc_task_mgmt_tmo); phba 7116 drivers/scsi/lpfc/lpfc_attr.c lpfc_enable_npiv_init(phba, lpfc_enable_npiv); phba 7117 drivers/scsi/lpfc/lpfc_attr.c lpfc_fcf_failover_policy_init(phba, lpfc_fcf_failover_policy); phba 7118 drivers/scsi/lpfc/lpfc_attr.c lpfc_enable_rrq_init(phba, lpfc_enable_rrq); phba 7119 drivers/scsi/lpfc/lpfc_attr.c lpfc_fdmi_on_init(phba, lpfc_fdmi_on); phba 7120 drivers/scsi/lpfc/lpfc_attr.c lpfc_enable_SmartSAN_init(phba, lpfc_enable_SmartSAN); phba 7121 drivers/scsi/lpfc/lpfc_attr.c lpfc_use_msi_init(phba, lpfc_use_msi); phba 7122 drivers/scsi/lpfc/lpfc_attr.c lpfc_nvme_oas_init(phba, lpfc_nvme_oas); phba 7123 drivers/scsi/lpfc/lpfc_attr.c lpfc_nvme_embed_cmd_init(phba, lpfc_nvme_embed_cmd); phba 7124 drivers/scsi/lpfc/lpfc_attr.c lpfc_fcp_imax_init(phba, lpfc_fcp_imax); phba 7125 drivers/scsi/lpfc/lpfc_attr.c lpfc_force_rscn_init(phba, lpfc_force_rscn); phba 7126 drivers/scsi/lpfc/lpfc_attr.c lpfc_cq_poll_threshold_init(phba, lpfc_cq_poll_threshold); phba 7127 drivers/scsi/lpfc/lpfc_attr.c lpfc_cq_max_proc_limit_init(phba, lpfc_cq_max_proc_limit); phba 7128 drivers/scsi/lpfc/lpfc_attr.c lpfc_fcp_cpu_map_init(phba, lpfc_fcp_cpu_map); phba 7129 drivers/scsi/lpfc/lpfc_attr.c lpfc_enable_hba_reset_init(phba, lpfc_enable_hba_reset); phba 7130 drivers/scsi/lpfc/lpfc_attr.c lpfc_enable_hba_heartbeat_init(phba, lpfc_enable_hba_heartbeat); phba 7132 drivers/scsi/lpfc/lpfc_attr.c lpfc_EnableXLane_init(phba, lpfc_EnableXLane); phba 7133 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev != LPFC_SLI_REV4) phba 7134 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_EnableXLane = 0; phba 7135 drivers/scsi/lpfc/lpfc_attr.c lpfc_XLanePriority_init(phba, lpfc_XLanePriority); phba 7137 drivers/scsi/lpfc/lpfc_attr.c memset(phba->cfg_oas_tgt_wwpn, 0, (8 * sizeof(uint8_t))); phba 7138 drivers/scsi/lpfc/lpfc_attr.c memset(phba->cfg_oas_vpt_wwpn, 0, (8 * sizeof(uint8_t))); phba 7139 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_lun_state = 0; phba 7140 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_lun_status = 0; phba 7141 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_flags = 0; phba 7142 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_oas_priority = 0; phba 7143 drivers/scsi/lpfc/lpfc_attr.c lpfc_enable_bg_init(phba, lpfc_enable_bg); phba 7144 drivers/scsi/lpfc/lpfc_attr.c lpfc_prot_mask_init(phba, lpfc_prot_mask); phba 7145 drivers/scsi/lpfc/lpfc_attr.c lpfc_prot_guard_init(phba, lpfc_prot_guard); phba 7146 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev == LPFC_SLI_REV4) phba 7147 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_poll = 0; phba 7149 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_poll = lpfc_poll; phba 7152 drivers/scsi/lpfc/lpfc_attr.c lpfc_get_hba_function_mode(phba); phba 7155 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_enable_bg && phba->hba_flag & HBA_FCOE_MODE) { phba 7156 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 7159 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_enable_bg = 0; phba 7160 drivers/scsi/lpfc/lpfc_attr.c } else if (phba->cfg_enable_bg) { phba 7161 drivers/scsi/lpfc/lpfc_attr.c phba->sli3_options |= LPFC_SLI3_BG_ENABLED; phba 7164 drivers/scsi/lpfc/lpfc_attr.c lpfc_suppress_rsp_init(phba, lpfc_suppress_rsp); phba 7166 drivers/scsi/lpfc/lpfc_attr.c lpfc_enable_fc4_type_init(phba, lpfc_enable_fc4_type); phba 7167 drivers/scsi/lpfc/lpfc_attr.c lpfc_nvmet_mrq_init(phba, lpfc_nvmet_mrq); phba 7168 drivers/scsi/lpfc/lpfc_attr.c lpfc_nvmet_mrq_post_init(phba, lpfc_nvmet_mrq_post); phba 7171 drivers/scsi/lpfc/lpfc_attr.c lpfc_nvme_enable_fb_init(phba, lpfc_nvme_enable_fb); phba 7172 drivers/scsi/lpfc/lpfc_attr.c lpfc_nvmet_fb_size_init(phba, lpfc_nvmet_fb_size); phba 7173 drivers/scsi/lpfc/lpfc_attr.c lpfc_fcp_mq_threshold_init(phba, lpfc_fcp_mq_threshold); phba 7174 drivers/scsi/lpfc/lpfc_attr.c lpfc_hdw_queue_init(phba, lpfc_hdw_queue); phba 7175 drivers/scsi/lpfc/lpfc_attr.c lpfc_irq_chann_init(phba, lpfc_irq_chann); phba 7176 drivers/scsi/lpfc/lpfc_attr.c lpfc_enable_bbcr_init(phba, lpfc_enable_bbcr); phba 7177 drivers/scsi/lpfc/lpfc_attr.c lpfc_enable_dpp_init(phba, lpfc_enable_dpp); phba 7179 drivers/scsi/lpfc/lpfc_attr.c if (phba->sli_rev != LPFC_SLI_REV4) { phba 7181 drivers/scsi/lpfc/lpfc_attr.c phba->nvmet_support = 0; phba 7182 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_nvmet_mrq = 0; phba 7183 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_enable_fc4_type = LPFC_ENABLE_FCP; phba 7184 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_enable_bbcr = 0; phba 7185 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_xri_rebalancing = 0; phba 7188 drivers/scsi/lpfc/lpfc_attr.c if (!(phba->cfg_enable_fc4_type & LPFC_ENABLE_FCP)) phba 7189 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_enable_fc4_type |= LPFC_ENABLE_FCP; phba 7192 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_auto_imax = (phba->cfg_fcp_imax) ? 0 : 1; phba 7194 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_enable_pbde = 0; phba 7197 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_hdw_queue == 0) phba 7198 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_hdw_queue = phba->sli4_hba.num_present_cpu; phba 7199 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_irq_chann == 0) phba 7200 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_irq_chann = phba->sli4_hba.num_present_cpu; phba 7201 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_irq_chann > phba->cfg_hdw_queue) phba 7202 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_irq_chann = phba->cfg_hdw_queue; phba 7204 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_soft_wwnn = 0L; phba 7205 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_soft_wwpn = 0L; phba 7206 drivers/scsi/lpfc/lpfc_attr.c lpfc_sg_seg_cnt_init(phba, lpfc_sg_seg_cnt); phba 7207 drivers/scsi/lpfc/lpfc_attr.c lpfc_hba_queue_depth_init(phba, lpfc_hba_queue_depth); phba 7208 drivers/scsi/lpfc/lpfc_attr.c lpfc_hba_log_verbose_init(phba, lpfc_log_verbose); phba 7209 drivers/scsi/lpfc/lpfc_attr.c lpfc_aer_support_init(phba, lpfc_aer_support); phba 7210 drivers/scsi/lpfc/lpfc_attr.c lpfc_sriov_nr_virtfn_init(phba, lpfc_sriov_nr_virtfn); phba 7211 drivers/scsi/lpfc/lpfc_attr.c lpfc_request_firmware_upgrade_init(phba, lpfc_req_fw_upgrade); phba 7212 drivers/scsi/lpfc/lpfc_attr.c lpfc_suppress_link_up_init(phba, lpfc_suppress_link_up); phba 7213 drivers/scsi/lpfc/lpfc_attr.c lpfc_iocb_cnt_init(phba, lpfc_iocb_cnt); phba 7214 drivers/scsi/lpfc/lpfc_attr.c lpfc_delay_discovery_init(phba, lpfc_delay_discovery); phba 7215 drivers/scsi/lpfc/lpfc_attr.c lpfc_sli_mode_init(phba, lpfc_sli_mode); phba 7216 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_enable_dss = 1; phba 7217 drivers/scsi/lpfc/lpfc_attr.c lpfc_enable_mds_diags_init(phba, lpfc_enable_mds_diags); phba 7218 drivers/scsi/lpfc/lpfc_attr.c lpfc_ras_fwlog_buffsize_init(phba, lpfc_ras_fwlog_buffsize); phba 7219 drivers/scsi/lpfc/lpfc_attr.c lpfc_ras_fwlog_level_init(phba, lpfc_ras_fwlog_level); phba 7220 drivers/scsi/lpfc/lpfc_attr.c lpfc_ras_fwlog_func_init(phba, lpfc_ras_fwlog_func); phba 7231 drivers/scsi/lpfc/lpfc_attr.c lpfc_nvme_mod_param_dep(struct lpfc_hba *phba) phba 7233 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_hdw_queue > phba->sli4_hba.num_present_cpu) phba 7234 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_hdw_queue = phba->sli4_hba.num_present_cpu; phba 7235 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_irq_chann > phba->sli4_hba.num_present_cpu) phba 7236 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_irq_chann = phba->sli4_hba.num_present_cpu; phba 7237 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_irq_chann > phba->cfg_hdw_queue) phba 7238 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_irq_chann = phba->cfg_hdw_queue; phba 7240 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME && phba 7241 drivers/scsi/lpfc/lpfc_attr.c phba->nvmet_support) { phba 7242 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_enable_fc4_type &= ~LPFC_ENABLE_FCP; phba 7244 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_DISC, phba 7247 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_nvme_enable_fb, phba 7248 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_nvmet_fb_size, phba 7251 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_nvme_enable_fb == 0) phba 7252 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_nvmet_fb_size = 0; phba 7254 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_nvmet_fb_size > LPFC_NVMET_FB_SZ_MAX) phba 7255 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_nvmet_fb_size = LPFC_NVMET_FB_SZ_MAX; phba 7258 drivers/scsi/lpfc/lpfc_attr.c if (!phba->cfg_nvmet_mrq) phba 7259 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_nvmet_mrq = phba->cfg_irq_chann; phba 7262 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_nvmet_mrq > phba->cfg_irq_chann) { phba 7263 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_nvmet_mrq = phba->cfg_irq_chann; phba 7264 drivers/scsi/lpfc/lpfc_attr.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_DISC, phba 7266 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_nvmet_mrq); phba 7268 drivers/scsi/lpfc/lpfc_attr.c if (phba->cfg_nvmet_mrq > LPFC_NVMET_MRQ_MAX) phba 7269 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_nvmet_mrq = LPFC_NVMET_MRQ_MAX; phba 7273 drivers/scsi/lpfc/lpfc_attr.c phba->nvmet_support = 0; phba 7274 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_nvmet_mrq = 0; phba 7275 drivers/scsi/lpfc/lpfc_attr.c phba->cfg_nvmet_fb_size = 0; phba 139 drivers/scsi/lpfc/lpfc_bsg.c lpfc_free_bsg_buffers(struct lpfc_hba *phba, struct lpfc_dmabuf *mlist) phba 146 drivers/scsi/lpfc/lpfc_bsg.c lpfc_mbuf_free(phba, mlast->virt, mlast->phys); phba 150 drivers/scsi/lpfc/lpfc_bsg.c lpfc_mbuf_free(phba, mlist->virt, mlist->phys); phba 157 drivers/scsi/lpfc/lpfc_bsg.c lpfc_alloc_bsg_buffers(struct lpfc_hba *phba, unsigned int size, phba 179 drivers/scsi/lpfc/lpfc_bsg.c lpfc_free_bsg_buffers(phba, mlist); phba 184 drivers/scsi/lpfc/lpfc_bsg.c mp->virt = lpfc_mbuf_alloc(phba, MEM_PRI, &(mp->phys)); phba 189 drivers/scsi/lpfc/lpfc_bsg.c lpfc_free_bsg_buffers(phba, mlist); phba 299 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_send_mgmt_cmd_cmp(struct lpfc_hba *phba, phba 317 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 324 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 327 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->hbalock, flags); phba 329 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 365 drivers/scsi/lpfc/lpfc_bsg.c lpfc_free_bsg_buffers(phba, cmp); phba 366 drivers/scsi/lpfc/lpfc_bsg.c lpfc_free_bsg_buffers(phba, rmp); phba 367 drivers/scsi/lpfc/lpfc_bsg.c lpfc_mbuf_free(phba, bmp->virt, bmp->phys); phba 369 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_release_iocbq(phba, cmdiocbq); phba 391 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba = vport->phba; phba 414 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 430 drivers/scsi/lpfc/lpfc_bsg.c cmdiocbq = lpfc_sli_get_iocbq(phba); phba 443 drivers/scsi/lpfc/lpfc_bsg.c bmp->virt = lpfc_mbuf_alloc(phba, 0, &bmp->phys); phba 453 drivers/scsi/lpfc/lpfc_bsg.c cmp = lpfc_alloc_bsg_buffers(phba, job->request_payload.payload_len, phba 464 drivers/scsi/lpfc/lpfc_bsg.c rmp = lpfc_alloc_bsg_buffers(phba, job->reply_payload.payload_len, 0, phba 486 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev == LPFC_SLI_REV4) phba 487 drivers/scsi/lpfc/lpfc_bsg.c cmd->ulpContext = phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]; phba 489 drivers/scsi/lpfc/lpfc_bsg.c cmdiocbq->vport = phba->pport; phba 492 drivers/scsi/lpfc/lpfc_bsg.c timeout = phba->fc_ratov * 2; phba 507 drivers/scsi/lpfc/lpfc_bsg.c if (phba->cfg_poll & DISABLE_FCP_RING_INT) { phba 508 drivers/scsi/lpfc/lpfc_bsg.c if (lpfc_readl(phba->HCregaddr, &creg_val)) { phba 513 drivers/scsi/lpfc/lpfc_bsg.c writel(creg_val, phba->HCregaddr); phba 514 drivers/scsi/lpfc/lpfc_bsg.c readl(phba->HCregaddr); /* flush */ phba 517 drivers/scsi/lpfc/lpfc_bsg.c iocb_stat = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, cmdiocbq, 0); phba 520 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->hbalock, flags); phba 526 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 538 drivers/scsi/lpfc/lpfc_bsg.c lpfc_free_bsg_buffers(phba, rmp); phba 540 drivers/scsi/lpfc/lpfc_bsg.c lpfc_free_bsg_buffers(phba, cmp); phba 543 drivers/scsi/lpfc/lpfc_bsg.c lpfc_mbuf_free(phba, bmp->virt, bmp->phys); phba 546 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_release_iocbq(phba, cmdiocbq); phba 576 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_rport_els_cmp(struct lpfc_hba *phba, phba 597 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 604 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 607 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->hbalock, flags); phba 609 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 644 drivers/scsi/lpfc/lpfc_bsg.c lpfc_els_free_iocb(phba, cmdiocbq); phba 665 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba = vport->phba; phba 694 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 730 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev == LPFC_SLI_REV4) phba 731 drivers/scsi/lpfc/lpfc_bsg.c cmdiocbq->iocb.ulpContext = phba->sli4_hba.rpi_ids[rpi]; phba 745 drivers/scsi/lpfc/lpfc_bsg.c if (phba->cfg_poll & DISABLE_FCP_RING_INT) { phba 746 drivers/scsi/lpfc/lpfc_bsg.c if (lpfc_readl(phba->HCregaddr, &creg_val)) { phba 751 drivers/scsi/lpfc/lpfc_bsg.c writel(creg_val, phba->HCregaddr); phba 752 drivers/scsi/lpfc/lpfc_bsg.c readl(phba->HCregaddr); /* flush */ phba 755 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, cmdiocbq, 0); phba 758 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->hbalock, flags); phba 764 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 777 drivers/scsi/lpfc/lpfc_bsg.c lpfc_els_free_iocb(phba, cmdiocbq); phba 879 drivers/scsi/lpfc/lpfc_bsg.c diag_cmd_data_free(struct lpfc_hba *phba, struct lpfc_dmabufext *mlist) phba 885 drivers/scsi/lpfc/lpfc_bsg.c if ((!mlist) || (!lpfc_is_link_up(phba) && phba 886 drivers/scsi/lpfc/lpfc_bsg.c (phba->link_flag & LS_LOOPBACK_MODE))) { phba 890 drivers/scsi/lpfc/lpfc_bsg.c pcidev = phba->pcidev; phba 915 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_ct_unsol_event(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 946 drivers/scsi/lpfc/lpfc_bsg.c if (phba->link_state == LPFC_HBA_ERROR || phba 947 drivers/scsi/lpfc/lpfc_bsg.c (!(phba->sli.sli_flag & LPFC_SLI_ACTIVE))) phba 950 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli3_options & LPFC_SLI3_HBQ_ENABLED) phba 955 drivers/scsi/lpfc/lpfc_bsg.c dmabuf = lpfc_sli_ringpostbuf_get(phba, pring, dma_addr); phba 962 drivers/scsi/lpfc/lpfc_bsg.c if (!(phba->sli3_options & LPFC_SLI3_HBQ_ENABLED)) phba 963 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_ringpostbuf_put(phba, pring, dmabuf); phba 965 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 966 drivers/scsi/lpfc/lpfc_bsg.c list_for_each_entry(evt, &phba->ct_ev_waiters, node) { phba 972 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 975 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 977 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 983 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli3_options & LPFC_SLI3_HBQ_ENABLED) { phba 997 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 1002 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 1004 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 1010 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli3_options & LPFC_SLI3_HBQ_ENABLED) { phba 1015 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli3_options & phba 1037 drivers/scsi/lpfc/lpfc_bsg.c dmabuf = lpfc_sli_ringpostbuf_get(phba, phba 1041 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, phba 1047 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, phba 1051 drivers/scsi/lpfc/lpfc_bsg.c &phba->ct_ev_lock, flags); phba 1058 drivers/scsi/lpfc/lpfc_bsg.c !(phba->sli3_options & phba 1060 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_ringpostbuf_put(phba, pring, phba 1065 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev < phba 1067 drivers/scsi/lpfc/lpfc_bsg.c diag_cmd_data_free(phba, phba 1072 drivers/scsi/lpfc/lpfc_bsg.c if ((phba->sli_rev == phba 1074 drivers/scsi/lpfc/lpfc_bsg.c (phba->sli3_options & phba 1077 drivers/scsi/lpfc/lpfc_bsg.c lpfc_in_buf_free(phba, phba 1080 drivers/scsi/lpfc/lpfc_bsg.c lpfc_post_buffer(phba, phba 1086 drivers/scsi/lpfc/lpfc_bsg.c if (!(phba->sli3_options & phba 1088 drivers/scsi/lpfc/lpfc_bsg.c lpfc_post_buffer(phba, phba 1097 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 1098 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 1099 drivers/scsi/lpfc/lpfc_bsg.c evt_dat->immed_dat = phba->ctx_idx; phba 1100 drivers/scsi/lpfc/lpfc_bsg.c phba->ctx_idx = (phba->ctx_idx + 1) % LPFC_CT_CTX_MAX; phba 1102 drivers/scsi/lpfc/lpfc_bsg.c if (phba->ct_ctx[evt_dat->immed_dat].valid == phba 1104 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_ELS, phba 1107 drivers/scsi/lpfc/lpfc_bsg.c "sid:x%x\n", phba->ctx_idx, phba 1108 drivers/scsi/lpfc/lpfc_bsg.c phba->ct_ctx[ phba 1110 drivers/scsi/lpfc/lpfc_bsg.c phba->ct_ctx[ phba 1112 drivers/scsi/lpfc/lpfc_bsg.c phba->ct_ctx[evt_dat->immed_dat].rxid = phba 1114 drivers/scsi/lpfc/lpfc_bsg.c phba->ct_ctx[evt_dat->immed_dat].oxid = phba 1116 drivers/scsi/lpfc/lpfc_bsg.c phba->ct_ctx[evt_dat->immed_dat].SID = phba 1118 drivers/scsi/lpfc/lpfc_bsg.c phba->ct_ctx[evt_dat->immed_dat].valid = UNSOL_VALID; phba 1143 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 1146 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 1149 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 1154 drivers/scsi/lpfc/lpfc_bsg.c if ((phba->sli_rev < LPFC_SLI_REV4) && phba 1173 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_ct_unsol_abort(struct lpfc_hba *phba, struct hbq_dmabuf *dmabuf) phba 1187 drivers/scsi/lpfc/lpfc_bsg.c if (phba->ct_ctx[ctx_idx].valid != UNSOL_VALID) phba 1189 drivers/scsi/lpfc/lpfc_bsg.c if (phba->ct_ctx[ctx_idx].rxid != rxid) phba 1191 drivers/scsi/lpfc/lpfc_bsg.c if (phba->ct_ctx[ctx_idx].oxid != oxid) phba 1193 drivers/scsi/lpfc/lpfc_bsg.c if (phba->ct_ctx[ctx_idx].SID != sid) phba 1195 drivers/scsi/lpfc/lpfc_bsg.c phba->ct_ctx[ctx_idx].valid = UNSOL_INVALID; phba 1209 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba = vport->phba; phba 1220 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 1231 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 1232 drivers/scsi/lpfc/lpfc_bsg.c list_for_each_entry(evt, &phba->ct_ev_waiters, node) { phba 1240 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 1242 drivers/scsi/lpfc/lpfc_bsg.c if (&evt->node == &phba->ct_ev_waiters) { phba 1246 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 1254 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 1264 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 1265 drivers/scsi/lpfc/lpfc_bsg.c list_add(&evt->node, &phba->ct_ev_waiters); phba 1268 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 1271 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 1275 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 1292 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba = vport->phba; phba 1304 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 1316 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 1317 drivers/scsi/lpfc/lpfc_bsg.c list_for_each_entry_safe(evt, evt_next, &phba->ct_ev_waiters, node) { phba 1329 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 1342 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 1363 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 1365 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 1396 drivers/scsi/lpfc/lpfc_bsg.c lpfc_issue_ct_rsp_cmp(struct lpfc_hba *phba, phba 1412 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 1418 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 1421 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->hbalock, flags); phba 1423 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 1455 drivers/scsi/lpfc/lpfc_bsg.c lpfc_free_bsg_buffers(phba, cmp); phba 1456 drivers/scsi/lpfc/lpfc_bsg.c lpfc_mbuf_free(phba, bmp->virt, bmp->phys); phba 1458 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_release_iocbq(phba, cmdiocbq); phba 1481 drivers/scsi/lpfc/lpfc_bsg.c lpfc_issue_ct_rsp(struct lpfc_hba *phba, struct bsg_job *job, uint32_t tag, phba 1496 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 1503 drivers/scsi/lpfc/lpfc_bsg.c ctiocb = lpfc_sli_get_iocbq(phba); phba 1525 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 1527 drivers/scsi/lpfc/lpfc_bsg.c if (phba->ct_ctx[tag].valid != UNSOL_VALID) { phba 1531 drivers/scsi/lpfc/lpfc_bsg.c icmd->ulpContext = phba->ct_ctx[tag].rxid; phba 1532 drivers/scsi/lpfc/lpfc_bsg.c icmd->unsli3.rcvsli3.ox_id = phba->ct_ctx[tag].oxid; phba 1533 drivers/scsi/lpfc/lpfc_bsg.c ndlp = lpfc_findnode_did(phba->pport, phba->ct_ctx[tag].SID); phba 1535 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_ELS, phba 1538 drivers/scsi/lpfc/lpfc_bsg.c phba->ct_ctx[tag].SID); phba 1558 drivers/scsi/lpfc/lpfc_bsg.c phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]; phba 1561 drivers/scsi/lpfc/lpfc_bsg.c phba->ct_ctx[tag].valid = UNSOL_INVALID; phba 1565 drivers/scsi/lpfc/lpfc_bsg.c icmd->ulpTimeout = phba->fc_ratov * 2; phba 1568 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_ELS, phba 1570 drivers/scsi/lpfc/lpfc_bsg.c icmd->ulpContext, icmd->ulpIoTag, tag, phba->link_state); phba 1573 drivers/scsi/lpfc/lpfc_bsg.c ctiocb->vport = phba->pport; phba 1587 drivers/scsi/lpfc/lpfc_bsg.c if (phba->cfg_poll & DISABLE_FCP_RING_INT) { phba 1588 drivers/scsi/lpfc/lpfc_bsg.c if (lpfc_readl(phba->HCregaddr, &creg_val)) { phba 1593 drivers/scsi/lpfc/lpfc_bsg.c writel(creg_val, phba->HCregaddr); phba 1594 drivers/scsi/lpfc/lpfc_bsg.c readl(phba->HCregaddr); /* flush */ phba 1597 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, ctiocb, 0); phba 1600 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->hbalock, flags); phba 1606 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 1614 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_release_iocbq(phba, ctiocb); phba 1629 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba = vport->phba; phba 1656 drivers/scsi/lpfc/lpfc_bsg.c bmp->virt = lpfc_mbuf_alloc(phba, 0, &bmp->phys); phba 1665 drivers/scsi/lpfc/lpfc_bsg.c cmp = lpfc_alloc_bsg_buffers(phba, job->request_payload.payload_len, phba 1674 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_issue_ct_rsp(phba, job, tag, cmp, bmp, bpl_entries); phba 1681 drivers/scsi/lpfc/lpfc_bsg.c lpfc_free_bsg_buffers(phba, cmp); phba 1685 drivers/scsi/lpfc/lpfc_bsg.c lpfc_mbuf_free(phba, bmp->virt, bmp->phys); phba 1702 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_diag_mode_enter(struct lpfc_hba *phba) phba 1711 drivers/scsi/lpfc/lpfc_bsg.c psli = &phba->sli; phba 1716 drivers/scsi/lpfc/lpfc_bsg.c if ((phba->link_state == LPFC_HBA_ERROR) || phba 1721 drivers/scsi/lpfc/lpfc_bsg.c vports = lpfc_create_vport_work_array(phba); phba 1723 drivers/scsi/lpfc/lpfc_bsg.c for (i = 0; i <= phba->max_vpi && vports[i] != NULL; i++) { phba 1727 drivers/scsi/lpfc/lpfc_bsg.c lpfc_destroy_vport_work_array(phba, vports); phba 1729 drivers/scsi/lpfc/lpfc_bsg.c shost = lpfc_shost_from_vport(phba->pport); phba 1733 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev != LPFC_SLI_REV4) { phba 1735 drivers/scsi/lpfc/lpfc_bsg.c lpfc_emptyq_wait(phba, &pring->txcmplq, &phba->hbalock); phba 1738 drivers/scsi/lpfc/lpfc_bsg.c list_for_each_entry(qp, &phba->sli4_hba.lpfc_wq_list, wq_list) { phba 1742 drivers/scsi/lpfc/lpfc_bsg.c if (!lpfc_emptyq_wait(phba, &pring->txcmplq, phba 1757 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_diag_mode_exit(struct lpfc_hba *phba) phba 1763 drivers/scsi/lpfc/lpfc_bsg.c vports = lpfc_create_vport_work_array(phba); phba 1765 drivers/scsi/lpfc/lpfc_bsg.c for (i = 0; i <= phba->max_vpi && vports[i] != NULL; i++) { phba 1769 drivers/scsi/lpfc/lpfc_bsg.c lpfc_destroy_vport_work_array(phba, vports); phba 1771 drivers/scsi/lpfc/lpfc_bsg.c shost = lpfc_shost_from_vport(phba->pport); phba 1791 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli3_bsg_diag_loopback_mode(struct lpfc_hba *phba, struct bsg_job *job) phba 1808 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 1818 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_bsg_diag_mode_enter(phba); phba 1828 drivers/scsi/lpfc/lpfc_bsg.c pmboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 1837 drivers/scsi/lpfc/lpfc_bsg.c mbxstatus = lpfc_sli_issue_mbox_wait(phba, pmboxq, LPFC_MBOX_TMO); phba 1842 drivers/scsi/lpfc/lpfc_bsg.c while (phba->link_state != LPFC_LINK_DOWN) { phba 1860 drivers/scsi/lpfc/lpfc_bsg.c mbxstatus = lpfc_sli_issue_mbox_wait(phba, pmboxq, phba 1866 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irq(&phba->hbalock); phba 1867 drivers/scsi/lpfc/lpfc_bsg.c phba->link_flag |= LS_LOOPBACK_MODE; phba 1868 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irq(&phba->hbalock); phba 1873 drivers/scsi/lpfc/lpfc_bsg.c while (phba->link_state != LPFC_HBA_READY) { phba 1887 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_diag_mode_exit(phba); phba 1893 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 1914 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli4_bsg_set_link_diag_state(struct lpfc_hba *phba, uint32_t diag) phba 1921 drivers/scsi/lpfc/lpfc_bsg.c pmboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 1927 drivers/scsi/lpfc/lpfc_bsg.c alloc_len = lpfc_sli4_config(phba, pmboxq, LPFC_MBOX_SUBSYSTEM_FCOE, phba 1934 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 1936 drivers/scsi/lpfc/lpfc_bsg.c diag, phba->sli4_hba.lnk_info.lnk_tp, phba 1937 drivers/scsi/lpfc/lpfc_bsg.c phba->sli4_hba.lnk_info.lnk_no); phba 1943 drivers/scsi/lpfc/lpfc_bsg.c phba->sli4_hba.lnk_info.lnk_no); phba 1945 drivers/scsi/lpfc/lpfc_bsg.c phba->sli4_hba.lnk_info.lnk_tp); phba 1953 drivers/scsi/lpfc/lpfc_bsg.c mbxstatus = lpfc_sli_issue_mbox_wait(phba, pmboxq, LPFC_MBOX_TMO); phba 1962 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 1977 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli4_bsg_set_loopback_mode(struct lpfc_hba *phba, int mode, phba 1985 drivers/scsi/lpfc/lpfc_bsg.c pmboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 1990 drivers/scsi/lpfc/lpfc_bsg.c alloc_len = lpfc_sli4_config(phba, pmboxq, LPFC_MBOX_SUBSYSTEM_FCOE, phba 1994 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 2001 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli4_hba.conf_trunk & (1 << link_no)) { phba 2007 drivers/scsi/lpfc/lpfc_bsg.c phba->sli4_hba.lnk_info.lnk_tp); phba 2013 drivers/scsi/lpfc/lpfc_bsg.c mbxstatus = lpfc_sli_issue_mbox_wait(phba, pmboxq, LPFC_MBOX_TMO); phba 2015 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 2022 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 2034 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli4_diag_fcport_reg_setup(struct lpfc_hba *phba) phba 2038 drivers/scsi/lpfc/lpfc_bsg.c if (phba->pport->fc_flag & FC_VFI_REGISTERED) { phba 2039 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 2042 drivers/scsi/lpfc/lpfc_bsg.c phba->pport->fc_myDID, phba->fcf.fcfi, phba 2043 drivers/scsi/lpfc/lpfc_bsg.c phba->sli4_hba.vfi_ids[phba->pport->vfi], phba 2044 drivers/scsi/lpfc/lpfc_bsg.c phba->vpi_ids[phba->pport->vpi]); phba 2047 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_issue_reg_vfi(phba->pport); phba 2060 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli4_bsg_diag_loopback_mode(struct lpfc_hba *phba, struct bsg_job *job) phba 2073 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 2089 drivers/scsi/lpfc/lpfc_bsg.c link_no = phba->sli4_hba.lnk_info.lnk_no; phba 2094 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli4_bsg_set_loopback_mode(phba, phba 2099 drivers/scsi/lpfc/lpfc_bsg.c phba->sli4_hba.conf_trunk &= ~((1 << link_no) << 4); phba 2104 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli4_hba.conf_trunk & ((1 << link_no) << 4)) { phba 2110 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_bsg_diag_mode_enter(phba); phba 2115 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irq(&phba->hbalock); phba 2116 drivers/scsi/lpfc/lpfc_bsg.c phba->link_flag |= LS_LOOPBACK_MODE; phba 2117 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irq(&phba->hbalock); phba 2120 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_selective_reset(phba); phba 2125 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 2128 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli4_bsg_set_link_diag_state(phba, 1); phba 2130 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 2138 drivers/scsi/lpfc/lpfc_bsg.c while (phba->link_state != LPFC_LINK_DOWN) { phba 2141 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 2151 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 2156 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli4_hba.conf_trunk & (1 << link_no)) { phba 2157 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli4_bsg_set_loopback_mode(phba, phba 2162 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli4_hba.conf_trunk) { phba 2167 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli4_bsg_set_loopback_mode(phba, phba 2174 drivers/scsi/lpfc/lpfc_bsg.c phba->sli4_hba.conf_trunk |= (1 << link_no) << 4; phba 2179 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli4_hba.conf_trunk & (1 << link_no)) { phba 2180 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli4_bsg_set_loopback_mode(phba, phba 2185 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli4_hba.conf_trunk) { phba 2190 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli4_bsg_set_loopback_mode(phba, phba 2197 drivers/scsi/lpfc/lpfc_bsg.c phba->sli4_hba.conf_trunk |= (1 << link_no) << 4; phba 2203 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 2213 drivers/scsi/lpfc/lpfc_bsg.c while (phba->link_state < LPFC_LINK_UP) { phba 2216 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 2229 drivers/scsi/lpfc/lpfc_bsg.c phba->pport->fc_myDID = 1; phba 2230 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli4_diag_fcport_reg_setup(phba); phba 2238 drivers/scsi/lpfc/lpfc_bsg.c while (phba->link_state != LPFC_HBA_READY) { phba 2241 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 2254 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irq(&phba->hbalock); phba 2255 drivers/scsi/lpfc/lpfc_bsg.c phba->link_flag &= ~LS_LOOPBACK_MODE; phba 2256 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irq(&phba->hbalock); phba 2258 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_diag_mode_exit(phba); phba 2282 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba; phba 2291 drivers/scsi/lpfc/lpfc_bsg.c phba = vport->phba; phba 2292 drivers/scsi/lpfc/lpfc_bsg.c if (!phba) phba 2295 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev < LPFC_SLI_REV4) phba 2296 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli3_bsg_diag_loopback_mode(phba, job); phba 2297 drivers/scsi/lpfc/lpfc_bsg.c else if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) >= phba 2299 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli4_bsg_diag_loopback_mode(phba, job); phba 2320 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba; phba 2331 drivers/scsi/lpfc/lpfc_bsg.c phba = vport->phba; phba 2332 drivers/scsi/lpfc/lpfc_bsg.c if (!phba) phba 2335 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev < LPFC_SLI_REV4) phba 2337 drivers/scsi/lpfc/lpfc_bsg.c if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) < phba 2342 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irq(&phba->hbalock); phba 2343 drivers/scsi/lpfc/lpfc_bsg.c phba->link_flag &= ~LS_LOOPBACK_MODE; phba 2344 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irq(&phba->hbalock); phba 2349 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli4_bsg_set_link_diag_state(phba, 0); phba 2351 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 2359 drivers/scsi/lpfc/lpfc_bsg.c while (phba->link_state != LPFC_LINK_DOWN) { phba 2361 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 2372 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_selective_reset(phba); phba 2373 drivers/scsi/lpfc/lpfc_bsg.c phba->pport->fc_myDID = 0; phba 2399 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba; phba 2419 drivers/scsi/lpfc/lpfc_bsg.c phba = vport->phba; phba 2420 drivers/scsi/lpfc/lpfc_bsg.c if (!phba) { phba 2425 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev < LPFC_SLI_REV4) { phba 2429 drivers/scsi/lpfc/lpfc_bsg.c if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) < phba 2437 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 2447 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_bsg_diag_mode_enter(phba); phba 2454 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli4_bsg_set_link_diag_state(phba, 1); phba 2459 drivers/scsi/lpfc/lpfc_bsg.c pmboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 2465 drivers/scsi/lpfc/lpfc_bsg.c alloc_len = lpfc_sli4_config(phba, pmboxq, LPFC_MBOX_SUBSYSTEM_FCOE, phba 2473 drivers/scsi/lpfc/lpfc_bsg.c phba->sli4_hba.lnk_info.lnk_no); phba 2475 drivers/scsi/lpfc/lpfc_bsg.c phba->sli4_hba.lnk_info.lnk_tp); phba 2485 drivers/scsi/lpfc/lpfc_bsg.c mbxstatus = lpfc_sli_issue_mbox(phba, pmboxq, MBX_POLL); phba 2492 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 2503 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 2518 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli4_bsg_set_link_diag_state(phba, 0); phba 2521 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 2523 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_diag_mode_exit(phba); phba 2543 drivers/scsi/lpfc/lpfc_bsg.c static int lpfcdiag_loop_self_reg(struct lpfc_hba *phba, uint16_t *rpi) phba 2549 drivers/scsi/lpfc/lpfc_bsg.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 2553 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev < LPFC_SLI_REV4) phba 2554 drivers/scsi/lpfc/lpfc_bsg.c status = lpfc_reg_rpi(phba, 0, phba->pport->fc_myDID, phba 2555 drivers/scsi/lpfc/lpfc_bsg.c (uint8_t *)&phba->pport->fc_sparam, phba 2558 drivers/scsi/lpfc/lpfc_bsg.c *rpi = lpfc_sli4_alloc_rpi(phba); phba 2560 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(mbox, phba->mbox_mem_pool); phba 2563 drivers/scsi/lpfc/lpfc_bsg.c status = lpfc_reg_rpi(phba, phba->pport->vpi, phba 2564 drivers/scsi/lpfc/lpfc_bsg.c phba->pport->fc_myDID, phba 2565 drivers/scsi/lpfc/lpfc_bsg.c (uint8_t *)&phba->pport->fc_sparam, phba 2570 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(mbox, phba->mbox_mem_pool); phba 2571 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev == LPFC_SLI_REV4) phba 2572 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli4_free_rpi(phba, *rpi); phba 2579 drivers/scsi/lpfc/lpfc_bsg.c status = lpfc_sli_issue_mbox_wait(phba, mbox, LPFC_MBOX_TMO); phba 2582 drivers/scsi/lpfc/lpfc_bsg.c lpfc_mbuf_free(phba, dmabuff->virt, dmabuff->phys); phba 2585 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(mbox, phba->mbox_mem_pool); phba 2586 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev == LPFC_SLI_REV4) phba 2587 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli4_free_rpi(phba, *rpi); phba 2591 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev < LPFC_SLI_REV4) phba 2594 drivers/scsi/lpfc/lpfc_bsg.c lpfc_mbuf_free(phba, dmabuff->virt, dmabuff->phys); phba 2596 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(mbox, phba->mbox_mem_pool); phba 2607 drivers/scsi/lpfc/lpfc_bsg.c static int lpfcdiag_loop_self_unreg(struct lpfc_hba *phba, uint16_t rpi) phba 2613 drivers/scsi/lpfc/lpfc_bsg.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 2617 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev < LPFC_SLI_REV4) phba 2618 drivers/scsi/lpfc/lpfc_bsg.c lpfc_unreg_login(phba, 0, rpi, mbox); phba 2620 drivers/scsi/lpfc/lpfc_bsg.c lpfc_unreg_login(phba, phba->pport->vpi, phba 2621 drivers/scsi/lpfc/lpfc_bsg.c phba->sli4_hba.rpi_ids[rpi], mbox); phba 2623 drivers/scsi/lpfc/lpfc_bsg.c status = lpfc_sli_issue_mbox_wait(phba, mbox, LPFC_MBOX_TMO); phba 2627 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(mbox, phba->mbox_mem_pool); phba 2630 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(mbox, phba->mbox_mem_pool); phba 2631 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev == LPFC_SLI_REV4) phba 2632 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli4_free_rpi(phba, rpi); phba 2648 drivers/scsi/lpfc/lpfc_bsg.c static int lpfcdiag_loop_get_xri(struct lpfc_hba *phba, uint16_t rpi, phba 2669 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 2670 drivers/scsi/lpfc/lpfc_bsg.c list_add(&evt->node, &phba->ct_ev_waiters); phba 2672 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 2674 drivers/scsi/lpfc/lpfc_bsg.c cmdiocbq = lpfc_sli_get_iocbq(phba); phba 2675 drivers/scsi/lpfc/lpfc_bsg.c rspiocbq = lpfc_sli_get_iocbq(phba); phba 2679 drivers/scsi/lpfc/lpfc_bsg.c dmabuf->virt = lpfc_mbuf_alloc(phba, 0, &dmabuf->phys); phba 2734 drivers/scsi/lpfc/lpfc_bsg.c cmdiocbq->vport = phba->pport; phba 2737 drivers/scsi/lpfc/lpfc_bsg.c iocb_stat = lpfc_sli_issue_iocb_wait(phba, LPFC_ELS_RING, cmdiocbq, phba 2739 drivers/scsi/lpfc/lpfc_bsg.c (phba->fc_ratov * 2) phba 2752 drivers/scsi/lpfc/lpfc_bsg.c ((phba->fc_ratov * 2) + LPFC_DRVR_TIMEOUT))); phba 2756 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 2758 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 2766 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 2769 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 2773 drivers/scsi/lpfc/lpfc_bsg.c lpfc_mbuf_free(phba, dmabuf->virt, dmabuf->phys); phba 2778 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_release_iocbq(phba, cmdiocbq); phba 2780 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_release_iocbq(phba, rspiocbq); phba 2792 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_dma_page_alloc(struct lpfc_hba *phba) phba 2795 drivers/scsi/lpfc/lpfc_bsg.c struct pci_dev *pcidev = phba->pcidev; phba 2825 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_dma_page_free(struct lpfc_hba *phba, struct lpfc_dmabuf *dmabuf) phba 2827 drivers/scsi/lpfc/lpfc_bsg.c struct pci_dev *pcidev = phba->pcidev; phba 2848 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_dma_page_list_free(struct lpfc_hba *phba, phba 2858 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_dma_page_free(phba, dmabuf); phba 2875 drivers/scsi/lpfc/lpfc_bsg.c diag_cmd_data_alloc(struct lpfc_hba *phba, phba 2884 drivers/scsi/lpfc/lpfc_bsg.c pcidev = phba->pcidev; phba 2941 drivers/scsi/lpfc/lpfc_bsg.c diag_cmd_data_free(phba, mlist); phba 2954 drivers/scsi/lpfc/lpfc_bsg.c static int lpfcdiag_loop_post_rxbufs(struct lpfc_hba *phba, uint16_t rxxri, phba 2971 drivers/scsi/lpfc/lpfc_bsg.c pring = lpfc_phba_elsring(phba); phba 2973 drivers/scsi/lpfc/lpfc_bsg.c cmdiocbq = lpfc_sli_get_iocbq(phba); phba 2976 drivers/scsi/lpfc/lpfc_bsg.c rxbmp->virt = lpfc_mbuf_alloc(phba, 0, &rxbmp->phys); phba 2980 drivers/scsi/lpfc/lpfc_bsg.c rxbuffer = diag_cmd_data_alloc(phba, rxbpl, len, 0); phba 3002 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli3_options & LPFC_SLI3_HBQ_ENABLED) { phba 3003 drivers/scsi/lpfc/lpfc_bsg.c mp[i]->buffer_tag = lpfc_sli_get_buffer_tag(phba); phba 3034 drivers/scsi/lpfc/lpfc_bsg.c iocb_stat = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, cmdiocbq, phba 3037 drivers/scsi/lpfc/lpfc_bsg.c diag_cmd_data_free(phba, phba 3040 drivers/scsi/lpfc/lpfc_bsg.c diag_cmd_data_free(phba, phba 3047 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_ringpostbuf_put(phba, pring, mp[0]); phba 3049 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_ringpostbuf_put(phba, pring, mp[1]); phba 3054 drivers/scsi/lpfc/lpfc_bsg.c cmdiocbq = lpfc_sli_get_iocbq(phba); phba 3070 drivers/scsi/lpfc/lpfc_bsg.c lpfc_mbuf_free(phba, rxbmp->virt, rxbmp->phys); phba 3075 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_release_iocbq(phba, cmdiocbq); phba 3103 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba = vport->phba; phba 3106 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_sli *psli = &phba->sli; phba 3134 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 3147 drivers/scsi/lpfc/lpfc_bsg.c if ((phba->link_state == LPFC_HBA_ERROR) || phba 3154 drivers/scsi/lpfc/lpfc_bsg.c if (!lpfc_is_link_up(phba) || !(phba->link_flag & LS_LOOPBACK_MODE)) { phba 3194 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfcdiag_loop_self_reg(phba, &rpi); phba 3198 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev < LPFC_SLI_REV4) { phba 3199 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfcdiag_loop_get_xri(phba, rpi, &txxri, &rxxri); phba 3201 drivers/scsi/lpfc/lpfc_bsg.c lpfcdiag_loop_self_unreg(phba, rpi); phba 3205 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfcdiag_loop_post_rxbufs(phba, rxxri, full_size); phba 3207 drivers/scsi/lpfc/lpfc_bsg.c lpfcdiag_loop_self_unreg(phba, rpi); phba 3214 drivers/scsi/lpfc/lpfc_bsg.c lpfcdiag_loop_self_unreg(phba, rpi); phba 3219 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 3220 drivers/scsi/lpfc/lpfc_bsg.c list_add(&evt->node, &phba->ct_ev_waiters); phba 3222 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 3224 drivers/scsi/lpfc/lpfc_bsg.c cmdiocbq = lpfc_sli_get_iocbq(phba); phba 3225 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev < LPFC_SLI_REV4) phba 3226 drivers/scsi/lpfc/lpfc_bsg.c rspiocbq = lpfc_sli_get_iocbq(phba); phba 3230 drivers/scsi/lpfc/lpfc_bsg.c txbmp->virt = lpfc_mbuf_alloc(phba, 0, &txbmp->phys); phba 3234 drivers/scsi/lpfc/lpfc_bsg.c txbuffer = diag_cmd_data_alloc(phba, phba 3243 drivers/scsi/lpfc/lpfc_bsg.c if ((phba->sli_rev < LPFC_SLI_REV4) && !rspiocbq) { phba 3249 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev < LPFC_SLI_REV4) phba 3297 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev < LPFC_SLI_REV4) { phba 3301 drivers/scsi/lpfc/lpfc_bsg.c cmd->un.ulpWord[3] = phba->sli4_hba.rpi_ids[rpi]; phba 3308 drivers/scsi/lpfc/lpfc_bsg.c cmdiocbq->vport = phba->pport; phba 3310 drivers/scsi/lpfc/lpfc_bsg.c iocb_stat = lpfc_sli_issue_iocb_wait(phba, LPFC_ELS_RING, cmdiocbq, phba 3311 drivers/scsi/lpfc/lpfc_bsg.c rspiocbq, (phba->fc_ratov * 2) + phba 3315 drivers/scsi/lpfc/lpfc_bsg.c ((phba->sli_rev < LPFC_SLI_REV4) && phba 3317 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 3328 drivers/scsi/lpfc/lpfc_bsg.c ((phba->fc_ratov * 2) + LPFC_DRVR_TIMEOUT))); phba 3332 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 3336 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 3340 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 3343 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 3364 drivers/scsi/lpfc/lpfc_bsg.c lpfcdiag_loop_self_unreg(phba, rpi); phba 3366 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 3369 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 3372 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_release_iocbq(phba, cmdiocbq); phba 3375 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_release_iocbq(phba, rspiocbq); phba 3380 drivers/scsi/lpfc/lpfc_bsg.c diag_cmd_data_free(phba, txbuffer); phba 3381 drivers/scsi/lpfc/lpfc_bsg.c lpfc_mbuf_free(phba, txbmp->virt, txbmp->phys); phba 3407 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba = vport->phba; phba 3413 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 3425 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 3454 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_issue_mbox_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmboxq) phba 3475 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 3481 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 3495 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(dd_data->context_un.mbox.pmboxq, phba->mbox_mem_pool); phba 3496 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_dma_page_free(phba, dd_data->context_un.mbox.dmabuffers); phba 3518 drivers/scsi/lpfc/lpfc_bsg.c static int lpfc_bsg_check_cmd_access(struct lpfc_hba *phba, phba 3536 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 3572 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 3578 drivers/scsi/lpfc/lpfc_bsg.c phba->wait_4_mlo_maint_flg = 1; phba 3580 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irq(&phba->hbalock); phba 3581 drivers/scsi/lpfc/lpfc_bsg.c phba->link_flag &= ~LS_LOOPBACK_MODE; phba 3582 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irq(&phba->hbalock); phba 3583 drivers/scsi/lpfc/lpfc_bsg.c phba->fc_topology = LPFC_TOPOLOGY_PT_PT; phba 3592 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 3609 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_mbox_ext_session_reset(struct lpfc_hba *phba) phba 3611 drivers/scsi/lpfc/lpfc_bsg.c if (phba->mbox_ext_buf_ctx.state == LPFC_BSG_MBOX_IDLE) phba 3615 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_dma_page_list_free(phba, phba 3616 drivers/scsi/lpfc/lpfc_bsg.c &phba->mbox_ext_buf_ctx.ext_dmabuf_list); phba 3617 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_dma_page_free(phba, phba->mbox_ext_buf_ctx.mbx_dmabuf); phba 3619 drivers/scsi/lpfc/lpfc_bsg.c memset((char *)&phba->mbox_ext_buf_ctx, 0, phba 3621 drivers/scsi/lpfc/lpfc_bsg.c INIT_LIST_HEAD(&phba->mbox_ext_buf_ctx.ext_dmabuf_list); phba 3635 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_issue_mbox_ext_handle_job(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmboxq) phba 3651 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 3658 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 3670 drivers/scsi/lpfc/lpfc_bsg.c dmabuf = phba->mbox_ext_buf_ctx.mbx_dmabuf; phba 3693 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 3696 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.nembType, phba 3697 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.mboxType, size); phba 3698 drivers/scsi/lpfc/lpfc_bsg.c lpfc_idiag_mbxacc_dump_bsg_mbox(phba, phba 3699 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.nembType, phba 3700 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.mboxType, phba 3702 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.mbx_dmabuf, 0); phba 3704 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 3707 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.nembType, phba 3708 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.mboxType, rc); phba 3713 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.state = LPFC_BSG_MBOX_DONE; phba 3727 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_issue_read_mbox_ext_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmboxq) phba 3732 drivers/scsi/lpfc/lpfc_bsg.c job = lpfc_bsg_issue_mbox_ext_handle_job(phba, pmboxq); phba 3738 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 3741 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.state, pmboxq->u.mb.mbxStatus); phba 3743 drivers/scsi/lpfc/lpfc_bsg.c if (pmboxq->u.mb.mbxStatus || phba->mbox_ext_buf_ctx.numBuf == 1) phba 3744 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_mbox_ext_session_reset(phba); phba 3747 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 3767 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_issue_write_mbox_ext_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmboxq) phba 3772 drivers/scsi/lpfc/lpfc_bsg.c job = lpfc_bsg_issue_mbox_ext_handle_job(phba, pmboxq); phba 3778 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 3781 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.state, pmboxq->u.mb.mbxStatus); phba 3784 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 3785 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_mbox_ext_session_reset(phba); phba 3798 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_sli_cfg_dma_desc_setup(struct lpfc_hba *phba, enum nemb_type nemb_tp, phba 3817 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 3834 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 3855 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 3874 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 3901 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_sli_cfg_read_cmd_ext(struct lpfc_hba *phba, struct bsg_job *job, phba 3927 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 3935 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 3940 drivers/scsi/lpfc/lpfc_bsg.c if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) < phba 3948 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 3956 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 3962 drivers/scsi/lpfc/lpfc_bsg.c lpfc_idiag_mbxacc_dump_bsg_mbox(phba, nemb_tp, mbox_rd, dma_mbox, phba 3972 drivers/scsi/lpfc/lpfc_bsg.c ext_dmabuf = lpfc_bsg_dma_page_alloc(phba); phba 3978 drivers/scsi/lpfc/lpfc_bsg.c &phba->mbox_ext_buf_ctx.ext_dmabuf_list); phba 3990 drivers/scsi/lpfc/lpfc_bsg.c pmboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 3998 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_sli_cfg_dma_desc_setup(phba, nemb_tp, 0, dmabuf, dmabuf); phba 4004 drivers/scsi/lpfc/lpfc_bsg.c &phba->mbox_ext_buf_ctx.ext_dmabuf_list, list) { phba 4005 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_sli_cfg_dma_desc_setup(phba, nemb_tp, phba 4013 drivers/scsi/lpfc/lpfc_bsg.c lpfc_idiag_mbxacc_dump_bsg_mbox(phba, nemb_tp, mbox_rd, dma_mbox, phba 4021 drivers/scsi/lpfc/lpfc_bsg.c pmboxq->vport = phba->pport; phba 4024 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.nembType = nemb_tp; phba 4025 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.mboxType = mbox_rd; phba 4026 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.numBuf = ext_buf_cnt; phba 4027 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.mbxTag = mbox_req->extMboxTag; phba 4028 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.seqNum = mbox_req->extSeqNum; phba 4029 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.mbx_dmabuf = dmabuf; phba 4043 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.state = LPFC_BSG_MBOX_PORT; phba 4057 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli_issue_mbox(phba, pmboxq, MBX_NOWAIT); phba 4059 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4064 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 4071 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 4072 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_dma_page_list_free(phba, phba 4073 drivers/scsi/lpfc/lpfc_bsg.c &phba->mbox_ext_buf_ctx.ext_dmabuf_list); phba 4075 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.state = LPFC_BSG_MBOX_IDLE; phba 4089 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_sli_cfg_write_cmd_ext(struct lpfc_hba *phba, struct bsg_job *job, phba 4114 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 4121 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4126 drivers/scsi/lpfc/lpfc_bsg.c if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) < phba 4132 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 4139 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4145 drivers/scsi/lpfc/lpfc_bsg.c lpfc_idiag_mbxacc_dump_bsg_mbox(phba, nemb_tp, mbox_wr, dma_mbox, phba 4152 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_sli_cfg_dma_desc_setup(phba, nemb_tp, 0, dmabuf, dmabuf); phba 4155 drivers/scsi/lpfc/lpfc_bsg.c lpfc_idiag_mbxacc_dump_bsg_mbox(phba, nemb_tp, mbox_wr, dma_mbox, phba 4161 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4166 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4174 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.nembType = nemb_tp; phba 4175 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.mboxType = mbox_wr; phba 4176 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.numBuf = ext_buf_cnt; phba 4177 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.mbxTag = mbox_req->extMboxTag; phba 4178 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.seqNum = mbox_req->extSeqNum; phba 4179 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.mbx_dmabuf = dmabuf; phba 4190 drivers/scsi/lpfc/lpfc_bsg.c pmboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 4200 drivers/scsi/lpfc/lpfc_bsg.c pmboxq->vport = phba->pport; phba 4215 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.state = LPFC_BSG_MBOX_PORT; phba 4216 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli_issue_mbox(phba, pmboxq, MBX_NOWAIT); phba 4218 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4223 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 4239 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 4256 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_handle_sli_cfg_mbox(struct lpfc_hba *phba, struct bsg_job *job, phba 4265 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.state = LPFC_BSG_MBOX_HOST; phba 4279 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4283 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_bsg_sli_cfg_read_cmd_ext(phba, job, phba 4289 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4293 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_bsg_sli_cfg_write_cmd_ext(phba, job, phba 4297 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4309 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4313 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_bsg_sli_cfg_read_cmd_ext(phba, job, phba 4317 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4325 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4340 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4344 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_bsg_sli_cfg_read_cmd_ext(phba, job, phba 4348 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4352 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_bsg_sli_cfg_write_cmd_ext(phba, job, phba 4356 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4364 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4374 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.state = LPFC_BSG_MBOX_IDLE; phba 4387 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_mbox_ext_abort(struct lpfc_hba *phba) phba 4389 drivers/scsi/lpfc/lpfc_bsg.c if (phba->mbox_ext_buf_ctx.state == LPFC_BSG_MBOX_PORT) phba 4390 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.state = LPFC_BSG_MBOX_ABTS; phba 4392 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_mbox_ext_session_reset(phba); phba 4405 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_read_ebuf_get(struct lpfc_hba *phba, struct bsg_job *job) phba 4414 drivers/scsi/lpfc/lpfc_bsg.c index = phba->mbox_ext_buf_ctx.seqNum; phba 4415 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.seqNum++; phba 4418 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.mbx_dmabuf->virt; phba 4420 drivers/scsi/lpfc/lpfc_bsg.c if (phba->mbox_ext_buf_ctx.nembType == nemb_mse) { phba 4423 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4429 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4433 drivers/scsi/lpfc/lpfc_bsg.c if (list_empty(&phba->mbox_ext_buf_ctx.ext_dmabuf_list)) phba 4435 drivers/scsi/lpfc/lpfc_bsg.c dmabuf = list_first_entry(&phba->mbox_ext_buf_ctx.ext_dmabuf_list, phba 4440 drivers/scsi/lpfc/lpfc_bsg.c lpfc_idiag_mbxacc_dump_bsg_mbox(phba, phba->mbox_ext_buf_ctx.nembType, phba 4450 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_dma_page_free(phba, dmabuf); phba 4452 drivers/scsi/lpfc/lpfc_bsg.c if (phba->mbox_ext_buf_ctx.seqNum == phba->mbox_ext_buf_ctx.numBuf) { phba 4453 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4456 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_mbox_ext_session_reset(phba); phba 4475 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_write_ebuf_set(struct lpfc_hba *phba, struct bsg_job *job, phba 4488 drivers/scsi/lpfc/lpfc_bsg.c index = phba->mbox_ext_buf_ctx.seqNum; phba 4489 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.seqNum++; phba 4490 drivers/scsi/lpfc/lpfc_bsg.c nemb_tp = phba->mbox_ext_buf_ctx.nembType; phba 4498 drivers/scsi/lpfc/lpfc_bsg.c if (phba->mbox_ext_buf_ctx.nembType == nemb_mse) { phba 4499 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4502 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.seqNum, size); phba 4505 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4508 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.seqNum, size); phba 4513 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_sli_cfg_dma_desc_setup(phba, nemb_tp, index, phba 4514 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.mbx_dmabuf, phba 4516 drivers/scsi/lpfc/lpfc_bsg.c list_add_tail(&dmabuf->list, &phba->mbox_ext_buf_ctx.ext_dmabuf_list); phba 4519 drivers/scsi/lpfc/lpfc_bsg.c lpfc_idiag_mbxacc_dump_bsg_mbox(phba, phba->mbox_ext_buf_ctx.nembType, phba 4523 drivers/scsi/lpfc/lpfc_bsg.c if (phba->mbox_ext_buf_ctx.seqNum == phba->mbox_ext_buf_ctx.numBuf) { phba 4524 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4527 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.numBuf); phba 4536 drivers/scsi/lpfc/lpfc_bsg.c pmboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 4542 drivers/scsi/lpfc/lpfc_bsg.c pbuf = (uint8_t *)phba->mbox_ext_buf_ctx.mbx_dmabuf->virt; phba 4546 drivers/scsi/lpfc/lpfc_bsg.c pmboxq->vport = phba->pport; phba 4560 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.state = LPFC_BSG_MBOX_PORT; phba 4562 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli_issue_mbox(phba, pmboxq, MBX_NOWAIT); phba 4564 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4569 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 4584 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 4585 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_dma_page_free(phba, dmabuf); phba 4601 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_handle_sli_cfg_ebuf(struct lpfc_hba *phba, struct bsg_job *job, phba 4606 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4608 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.mboxType); phba 4610 drivers/scsi/lpfc/lpfc_bsg.c if (phba->mbox_ext_buf_ctx.mboxType == mbox_rd) { phba 4611 drivers/scsi/lpfc/lpfc_bsg.c if (phba->mbox_ext_buf_ctx.state != LPFC_BSG_MBOX_DONE) { phba 4612 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 4615 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.state); phba 4616 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_mbox_ext_abort(phba); phba 4619 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_bsg_read_ebuf_get(phba, job); phba 4621 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_dma_page_free(phba, dmabuf); phba 4623 drivers/scsi/lpfc/lpfc_bsg.c if (phba->mbox_ext_buf_ctx.state != LPFC_BSG_MBOX_HOST) { phba 4624 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 4627 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.state); phba 4628 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_mbox_ext_abort(phba); phba 4631 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_bsg_write_ebuf_set(phba, job, dmabuf); phba 4646 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_handle_sli_cfg_ext(struct lpfc_hba *phba, struct bsg_job *job, phba 4661 drivers/scsi/lpfc/lpfc_bsg.c if (phba->mbox_ext_buf_ctx.state == LPFC_BSG_MBOX_IDLE) { phba 4663 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4667 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_bsg_handle_sli_cfg_mbox(phba, job, dmabuf); phba 4678 drivers/scsi/lpfc/lpfc_bsg.c if (mbox_req->extMboxTag != phba->mbox_ext_buf_ctx.mbxTag) phba 4680 drivers/scsi/lpfc/lpfc_bsg.c if (mbox_req->extSeqNum > phba->mbox_ext_buf_ctx.numBuf) phba 4682 drivers/scsi/lpfc/lpfc_bsg.c if (mbox_req->extSeqNum != phba->mbox_ext_buf_ctx.seqNum + 1) phba 4685 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 4688 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.state, mbox_req->extMboxTag, phba 4690 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_bsg_handle_sli_cfg_ebuf(phba, job, dmabuf); phba 4695 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 4699 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.state, phba 4700 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.numBuf, phba 4701 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.mbxTag, phba 4702 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.seqNum, phba 4705 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_mbox_ext_session_reset(phba); phba 4724 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_issue_mbox(struct lpfc_hba *phba, struct bsg_job *job, phba 4760 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli.sli_flag & LPFC_BLOCK_MGMT_IO) { phba 4775 drivers/scsi/lpfc/lpfc_bsg.c dmabuf = lpfc_bsg_dma_page_alloc(phba); phba 4788 drivers/scsi/lpfc/lpfc_bsg.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 4789 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_bsg_handle_sli_cfg_ext(phba, job, dmabuf); phba 4797 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_bsg_check_cmd_access(phba, (MAILBOX_t *)pmbx, vport); phba 4804 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 4810 drivers/scsi/lpfc/lpfc_bsg.c pmboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 4825 drivers/scsi/lpfc/lpfc_bsg.c if (phba->pport->stopped && phba 4830 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX, phba 4893 drivers/scsi/lpfc/lpfc_bsg.c } else if (phba->sli_rev == LPFC_SLI_REV4) { phba 4979 drivers/scsi/lpfc/lpfc_bsg.c (!(phba->sli.sli_flag & LPFC_SLI_ACTIVE))) { phba 4980 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli_issue_mbox(phba, pmboxq, MBX_POLL); phba 4997 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli_issue_mbox(phba, pmboxq, MBX_NOWAIT); phba 5004 drivers/scsi/lpfc/lpfc_bsg.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 5005 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_dma_page_free(phba, dmabuf); phba 5022 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba = vport->phba; phba 5030 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_INFO, LOG_LIBDFC, phba 5043 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_bsg_issue_mbox(phba, job, vport); phba 5081 drivers/scsi/lpfc/lpfc_bsg.c lpfc_bsg_menlo_cmd_cmp(struct lpfc_hba *phba, phba 5104 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 5111 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 5149 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_release_iocbq(phba, cmdiocbq); phba 5150 drivers/scsi/lpfc/lpfc_bsg.c lpfc_free_bsg_buffers(phba, cmp); phba 5151 drivers/scsi/lpfc/lpfc_bsg.c lpfc_free_bsg_buffers(phba, rmp); phba 5152 drivers/scsi/lpfc/lpfc_bsg.c lpfc_mbuf_free(phba, bmp->virt, bmp->phys); phba 5182 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba = vport->phba; phba 5199 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 5208 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 5215 drivers/scsi/lpfc/lpfc_bsg.c if (!(phba->menlo_flag & HBA_MENLO_SUPPORT)) { phba 5216 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 5229 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 5241 drivers/scsi/lpfc/lpfc_bsg.c bmp->virt = lpfc_mbuf_alloc(phba, 0, &bmp->phys); phba 5251 drivers/scsi/lpfc/lpfc_bsg.c cmp = lpfc_alloc_bsg_buffers(phba, job->request_payload.payload_len, phba 5262 drivers/scsi/lpfc/lpfc_bsg.c rmp = lpfc_alloc_bsg_buffers(phba, job->reply_payload.payload_len, 0, phba 5269 drivers/scsi/lpfc/lpfc_bsg.c cmdiocbq = lpfc_sli_get_iocbq(phba); phba 5291 drivers/scsi/lpfc/lpfc_bsg.c cmdiocbq->vport = phba->pport; phba 5316 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, cmdiocbq, phba 5321 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_release_iocbq(phba, cmdiocbq); phba 5324 drivers/scsi/lpfc/lpfc_bsg.c lpfc_free_bsg_buffers(phba, rmp); phba 5326 drivers/scsi/lpfc/lpfc_bsg.c lpfc_free_bsg_buffers(phba, cmp); phba 5329 drivers/scsi/lpfc/lpfc_bsg.c lpfc_mbuf_free(phba, bmp->virt, bmp->phys); phba 5345 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba = vport->phba; phba 5353 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 5366 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 5373 drivers/scsi/lpfc/lpfc_bsg.c forced_reply->supported = (phba->hba_flag & HBA_FORCED_LINK_SPEED) phba 5391 drivers/scsi/lpfc/lpfc_bsg.c lpfc_check_fwlog_support(struct lpfc_hba *phba) phba 5395 drivers/scsi/lpfc/lpfc_bsg.c ras_fwlog = &phba->ras_fwlog; phba 5417 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba = vport->phba; phba 5419 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_ras_fwlog *ras_fwlog = &phba->ras_fwlog; phba 5425 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 5433 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_check_fwlog_support(phba); phba 5446 drivers/scsi/lpfc/lpfc_bsg.c ras_reply->log_level = phba->ras_fwlog.fw_loglevel; phba 5447 drivers/scsi/lpfc/lpfc_bsg.c ras_reply->log_buff_sz = phba->cfg_ras_fwlog_buffsize; phba 5471 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba = vport->phba; phba 5474 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_ras_fwlog *ras_fwlog = &phba->ras_fwlog; phba 5482 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 5490 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_check_fwlog_support(phba); phba 5507 drivers/scsi/lpfc/lpfc_bsg.c lpfc_ras_stop_fwlog(phba); phba 5519 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_sli4_ras_fwlog_init(phba, log_level, phba 5555 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba = vport->phba; phba 5556 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_ras_fwlog *ras_fwlog = &phba->ras_fwlog; phba 5561 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_check_fwlog_support(phba); phba 5568 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 5579 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 5615 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba = vport->phba; phba 5625 drivers/scsi/lpfc/lpfc_bsg.c ras_fwlog = &phba->ras_fwlog; phba 5627 drivers/scsi/lpfc/lpfc_bsg.c rc = lpfc_check_fwlog_support(phba); phba 5640 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 5692 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba = vport->phba; phba 5699 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_ERR, LOG_LIBDFC, phba 5711 drivers/scsi/lpfc/lpfc_bsg.c lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC, phba 5723 drivers/scsi/lpfc/lpfc_bsg.c (phba->link_state >= LPFC_LINK_UP) ? 1 : 0); phba 5726 drivers/scsi/lpfc/lpfc_bsg.c (phba->trunk_link.link0.state == LPFC_LINK_UP) ? 1 : 0); phba 5729 drivers/scsi/lpfc/lpfc_bsg.c (phba->trunk_link.link1.state == LPFC_LINK_UP) ? 1 : 0); phba 5732 drivers/scsi/lpfc/lpfc_bsg.c (phba->trunk_link.link2.state == LPFC_LINK_UP) ? 1 : 0); phba 5735 drivers/scsi/lpfc/lpfc_bsg.c (phba->trunk_link.link3.state == LPFC_LINK_UP) ? 1 : 0); phba 5738 drivers/scsi/lpfc/lpfc_bsg.c bf_get(lpfc_conf_trunk_port0, &phba->sli4_hba)); phba 5741 drivers/scsi/lpfc/lpfc_bsg.c bf_get(lpfc_conf_trunk_port1, &phba->sli4_hba)); phba 5744 drivers/scsi/lpfc/lpfc_bsg.c bf_get(lpfc_conf_trunk_port2, &phba->sli4_hba)); phba 5747 drivers/scsi/lpfc/lpfc_bsg.c bf_get(lpfc_conf_trunk_port3, &phba->sli4_hba)); phba 5749 drivers/scsi/lpfc/lpfc_bsg.c event_reply->port_speed = phba->sli4_hba.link_state.speed / 1000; phba 5751 drivers/scsi/lpfc/lpfc_bsg.c phba->sli4_hba.link_state.logical_speed / 1000; phba 5879 drivers/scsi/lpfc/lpfc_bsg.c struct lpfc_hba *phba = vport->phba; phba 5888 drivers/scsi/lpfc/lpfc_bsg.c pring = lpfc_phba_elsring(phba); phba 5901 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->ct_ev_lock, flags); phba 5907 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 5918 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 5920 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->hbalock, flags); phba 5923 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 5934 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_issue_abort_iotag(phba, pring, cmdiocb); phba 5935 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 5937 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_cancel_iocbs(phba, &completions, phba 5944 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 5950 drivers/scsi/lpfc/lpfc_bsg.c if (phba->mbox_ext_buf_ctx.state == LPFC_BSG_MBOX_PORT) phba 5951 drivers/scsi/lpfc/lpfc_bsg.c phba->mbox_ext_buf_ctx.state = LPFC_BSG_MBOX_ABTS; phba 5952 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 5960 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 5962 drivers/scsi/lpfc/lpfc_bsg.c spin_lock_irqsave(&phba->hbalock, flags); phba 5971 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_issue_abort_iotag(phba, pring, cmdiocb); phba 5972 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 5974 drivers/scsi/lpfc/lpfc_bsg.c lpfc_sli_cancel_iocbs(phba, &completions, phba 5980 drivers/scsi/lpfc/lpfc_bsg.c spin_unlock_irqrestore(&phba->ct_ev_lock, flags); phba 77 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_init_iocb_list(struct lpfc_hba *phba, int cnt); phba 78 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_free_iocb_list(struct lpfc_hba *phba); phba 79 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_post_rq_buffer(struct lpfc_hba *phba, struct lpfc_queue *hrq, phba 200 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_emptyq_wait(struct lpfc_hba *phba, struct list_head *hd, phba 204 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_sli4_setup(struct lpfc_hba *phba); phba 205 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_sli_queue_init(struct lpfc_hba *phba); phba 206 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_sli4_queue_init(struct lpfc_hba *phba); phba 207 drivers/scsi/lpfc/lpfc_crtn.h struct lpfc_sli_ring *lpfc_sli4_calc_ring(struct lpfc_hba *phba, phba 218 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_sli4_cleanup_poll_list(struct lpfc_hba *phba); phba 241 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_reg_fcfi_mrq(struct lpfc_hba *phba, struct lpfcMboxq *mbox, int mode); phba 253 drivers/scsi/lpfc/lpfc_crtn.h struct rqb_dmabuf *lpfc_sli4_nvmet_alloc(struct lpfc_hba *phba); phba 254 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_sli4_nvmet_free(struct lpfc_hba *phba, struct rqb_dmabuf *dmab); phba 255 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_nvmet_ctxbuf_post(struct lpfc_hba *phba, phba 259 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_nvmet_wqfull_process(struct lpfc_hba *phba, struct lpfc_queue *wq); phba 260 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_sli_flush_nvme_rings(struct lpfc_hba *phba); phba 261 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_nvme_wait_for_io_drain(struct lpfc_hba *phba); phba 266 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_free_rq_buffer(struct lpfc_hba *phba, struct lpfc_queue *hq); phba 281 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_nvmet_mem_alloc(struct lpfc_hba *phba); phba 305 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_sli_chipset_init(struct lpfc_hba *phba); phba 325 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_sli4_issue_wqe(struct lpfc_hba *phba, struct lpfc_sli4_hdw_queue *qp, phba 327 drivers/scsi/lpfc/lpfc_crtn.h struct lpfc_sglq *__lpfc_clear_active_sglq(struct lpfc_hba *phba, uint16_t xri); phba 328 drivers/scsi/lpfc/lpfc_crtn.h struct lpfc_sglq *__lpfc_sli_get_nvmet_sglq(struct lpfc_hba *phba, phba 333 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_sli_abort_fcp_rings(struct lpfc_hba *phba); phba 335 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_sli_flush_io_rings(struct lpfc_hba *phba); phba 380 drivers/scsi/lpfc/lpfc_crtn.h void *lpfc_nvmet_buf_alloc(struct lpfc_hba *phba, int flags, phba 382 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_nvmet_buf_free(struct lpfc_hba *phba, void *virtp, dma_addr_t dma); phba 385 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_rq_buf_free(struct lpfc_hba *phba, struct lpfc_dmabuf *mp); phba 389 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_check_pci_resettable(const struct lpfc_hba *phba); phba 430 drivers/scsi/lpfc/lpfc_crtn.h extern void lpfc_debugfs_nvme_trc(struct lpfc_hba *phba, char *fmt, phba 463 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_start_fdiscs(struct lpfc_hba *phba); phba 513 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_sli4_els_sgl_update(struct lpfc_hba *phba); phba 514 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_sli4_nvmet_sgl_update(struct lpfc_hba *phba); phba 515 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_io_buf_flush(struct lpfc_hba *phba, struct list_head *sglist); phba 516 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_io_buf_replenish(struct lpfc_hba *phba, struct list_head *cbuf); phba 517 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_sli4_io_sgl_update(struct lpfc_hba *phba); phba 518 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_sli4_post_io_sgl_list(struct lpfc_hba *phba, phba 520 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_new_io_buf(struct lpfc_hba *phba, int num_to_alloc); phba 521 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_io_free(struct lpfc_hba *phba); phba 544 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_sli4_dump_page_a0(struct lpfc_hba *phba, struct lpfcMboxq *mbox); phba 545 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_mbx_cmpl_rdp_page_a0(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb); phba 548 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_sli4_ras_init(struct lpfc_hba *phba); phba 549 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_sli4_ras_setup(struct lpfc_hba *phba); phba 550 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_sli4_ras_fwlog_init(struct lpfc_hba *phba, uint32_t fwlog_level, phba 552 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_ras_stop_fwlog(struct lpfc_hba *phba); phba 553 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_check_fwlog_support(struct lpfc_hba *phba); phba 565 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_nvmet_create_targetport(struct lpfc_hba *phba); phba 566 drivers/scsi/lpfc/lpfc_crtn.h int lpfc_nvmet_update_targetport(struct lpfc_hba *phba); phba 567 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_nvmet_destroy_targetport(struct lpfc_hba *phba); phba 568 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_nvmet_unsol_ls_event(struct lpfc_hba *phba, phba 570 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_nvmet_unsol_fcp_event(struct lpfc_hba *phba, uint32_t idx, phba 573 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_nvme_mod_param_dep(struct lpfc_hba *phba); phba 574 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_nvme_abort_fcreq_cmpl(struct lpfc_hba *phba, phba 577 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_create_multixri_pools(struct lpfc_hba *phba); phba 578 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_create_destroy_pools(struct lpfc_hba *phba); phba 579 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_move_xri_pvt_to_pbl(struct lpfc_hba *phba, u32 hwqid); phba 580 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_move_xri_pbl_to_pvt(struct lpfc_hba *phba, u32 hwqid, u32 cnt); phba 581 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_adjust_high_watermark(struct lpfc_hba *phba, u32 hwqid); phba 582 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_keep_pvt_pool_above_lowwm(struct lpfc_hba *phba, u32 hwqid); phba 583 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_adjust_pvt_pool_count(struct lpfc_hba *phba, u32 hwqid); phba 587 drivers/scsi/lpfc/lpfc_crtn.h struct lpfc_io_buf *lpfc_get_io_buf(struct lpfc_hba *phba, phba 590 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_release_io_buf(struct lpfc_hba *phba, struct lpfc_io_buf *ncmd, phba 594 drivers/scsi/lpfc/lpfc_crtn.h void lpfc_nvme_cancel_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *pwqeIn); phba 81 drivers/scsi/lpfc/lpfc_ct.c lpfc_ct_ignore_hbq_buffer(struct lpfc_hba *phba, struct lpfc_iocbq *piocbq, phba 85 drivers/scsi/lpfc/lpfc_ct.c lpfc_printf_log(phba, KERN_INFO, LOG_ELS, phba 90 drivers/scsi/lpfc/lpfc_ct.c lpfc_printf_log(phba, KERN_INFO, LOG_ELS, phba 97 drivers/scsi/lpfc/lpfc_ct.c lpfc_ct_unsol_buffer(struct lpfc_hba *phba, struct lpfc_iocbq *piocbq, phba 100 drivers/scsi/lpfc/lpfc_ct.c lpfc_ct_ignore_hbq_buffer(phba, piocbq, mp, size); phba 104 drivers/scsi/lpfc/lpfc_ct.c lpfc_ct_unsol_event(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 116 drivers/scsi/lpfc/lpfc_ct.c if (lpfc_bsg_ct_unsol_event(phba, pring, piocbq) == 0) phba 120 drivers/scsi/lpfc/lpfc_ct.c lpfc_sli_hbqbuf_add_hbqs(phba, LPFC_ELS_HBQ); phba 125 drivers/scsi/lpfc/lpfc_ct.c phba->fc_stat.NoRcvBuf++; phba 126 drivers/scsi/lpfc/lpfc_ct.c if (!(phba->sli3_options & LPFC_SLI3_HBQ_ENABLED)) phba 127 drivers/scsi/lpfc/lpfc_ct.c lpfc_post_buffer(phba, pring, 2); phba 137 drivers/scsi/lpfc/lpfc_ct.c if (phba->sli3_options & LPFC_SLI3_HBQ_ENABLED) { phba 147 drivers/scsi/lpfc/lpfc_ct.c lpfc_ct_unsol_buffer(phba, piocbq, bdeBuf, size); phba 148 drivers/scsi/lpfc/lpfc_ct.c lpfc_in_buf_free(phba, bdeBuf); phba 153 drivers/scsi/lpfc/lpfc_ct.c lpfc_ct_unsol_buffer(phba, piocbq, bdeBuf, phba 155 drivers/scsi/lpfc/lpfc_ct.c lpfc_in_buf_free(phba, bdeBuf); phba 165 drivers/scsi/lpfc/lpfc_ct.c lpfc_ct_unsol_buffer(phba, iocbq, NULL, 0); phba 169 drivers/scsi/lpfc/lpfc_ct.c mp = lpfc_sli_ringpostbuf_get(phba, pring, phba 172 drivers/scsi/lpfc/lpfc_ct.c lpfc_ct_unsol_buffer(phba, iocbq, mp, size); phba 173 drivers/scsi/lpfc/lpfc_ct.c lpfc_in_buf_free(phba, mp); phba 175 drivers/scsi/lpfc/lpfc_ct.c lpfc_post_buffer(phba, pring, i); phba 192 drivers/scsi/lpfc/lpfc_ct.c lpfc_ct_handle_unsol_abort(struct lpfc_hba *phba, struct hbq_dmabuf *dmabuf) phba 197 drivers/scsi/lpfc/lpfc_ct.c handled = lpfc_bsg_ct_unsol_abort(phba, dmabuf); phba 203 drivers/scsi/lpfc/lpfc_ct.c lpfc_free_ct_rsp(struct lpfc_hba *phba, struct lpfc_dmabuf *mlist) phba 208 drivers/scsi/lpfc/lpfc_ct.c lpfc_mbuf_free(phba, mlast->virt, mlast->phys); phba 212 drivers/scsi/lpfc/lpfc_ct.c lpfc_mbuf_free(phba, mlist->virt, mlist->phys); phba 218 drivers/scsi/lpfc/lpfc_ct.c lpfc_alloc_ct_rsp(struct lpfc_hba *phba, int cmdcode, struct ulp_bde64 *bpl, phba 233 drivers/scsi/lpfc/lpfc_ct.c lpfc_free_ct_rsp(phba, mlist); phba 241 drivers/scsi/lpfc/lpfc_ct.c mp->virt = lpfc_mbuf_alloc(phba, MEM_PRI, &(mp->phys)); phba 243 drivers/scsi/lpfc/lpfc_ct.c mp->virt = lpfc_mbuf_alloc(phba, 0, &(mp->phys)); phba 248 drivers/scsi/lpfc/lpfc_ct.c lpfc_free_ct_rsp(phba, mlist); phba 275 drivers/scsi/lpfc/lpfc_ct.c lpfc_ct_free_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *ctiocb) phba 285 drivers/scsi/lpfc/lpfc_ct.c lpfc_mbuf_free(phba, buf_ptr->virt, buf_ptr->phys); phba 290 drivers/scsi/lpfc/lpfc_ct.c lpfc_free_ct_rsp(phba, (struct lpfc_dmabuf *) ctiocb->context2); phba 296 drivers/scsi/lpfc/lpfc_ct.c lpfc_mbuf_free(phba, buf_ptr->virt, buf_ptr->phys); phba 300 drivers/scsi/lpfc/lpfc_ct.c lpfc_sli_release_iocbq(phba, ctiocb); phba 323 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 329 drivers/scsi/lpfc/lpfc_ct.c geniocb = lpfc_sli_get_iocbq(phba); phba 362 drivers/scsi/lpfc/lpfc_ct.c tmo = (3 * phba->fc_ratov); phba 369 drivers/scsi/lpfc/lpfc_ct.c if (phba->sli_rev == LPFC_SLI_REV4) phba 370 drivers/scsi/lpfc/lpfc_ct.c icmd->ulpContext = phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]; phba 372 drivers/scsi/lpfc/lpfc_ct.c if (phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) { phba 388 drivers/scsi/lpfc/lpfc_ct.c rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, geniocb, 0); phba 391 drivers/scsi/lpfc/lpfc_ct.c lpfc_sli_release_iocbq(phba, geniocb); phba 415 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 425 drivers/scsi/lpfc/lpfc_ct.c outmp = lpfc_alloc_ct_rsp(phba, cmdcode, bpl, rsp_size, &cnt); phba 437 drivers/scsi/lpfc/lpfc_ct.c lpfc_free_ct_rsp(phba, outmp); phba 444 drivers/scsi/lpfc/lpfc_ct.c lpfc_find_vport_by_did(struct lpfc_hba *phba, uint32_t did) { phba 448 drivers/scsi/lpfc/lpfc_ct.c spin_lock_irqsave(&phba->port_list_lock, flags); phba 449 drivers/scsi/lpfc/lpfc_ct.c list_for_each_entry(vport_curr, &phba->port_list, listentry) { phba 451 drivers/scsi/lpfc/lpfc_ct.c spin_unlock_irqrestore(&phba->port_list_lock, flags); phba 455 drivers/scsi/lpfc/lpfc_ct.c spin_unlock_irqrestore(&phba->port_list_lock, flags); phba 550 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 555 drivers/scsi/lpfc/lpfc_ct.c if (phba->cfg_ns_query == LPFC_NS_QUERY_GID_FT) phba 569 drivers/scsi/lpfc/lpfc_ct.c (!lpfc_find_vport_by_did(phba, Did) || phba 571 drivers/scsi/lpfc/lpfc_ct.c if (!phba->nvmet_support) { phba 642 drivers/scsi/lpfc/lpfc_ct.c if (vport->phba->nvmet_support) { phba 660 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct_cmd_gid_ft(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 857 drivers/scsi/lpfc/lpfc_ct.c lpfc_ct_free_iocb(phba, cmdiocb); phba 862 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct_cmd_gid_pt(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 1050 drivers/scsi/lpfc/lpfc_ct.c lpfc_ct_free_iocb(phba, cmdiocb); phba 1054 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct_cmd_gff_id(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 1131 drivers/scsi/lpfc/lpfc_ct.c lpfc_ct_free_iocb(phba, cmdiocb); phba 1179 drivers/scsi/lpfc/lpfc_ct.c lpfc_ct_free_iocb(phba, cmdiocb); phba 1184 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct_cmd_gft_id(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 1262 drivers/scsi/lpfc/lpfc_ct.c lpfc_ct_free_iocb(phba, cmdiocb); phba 1266 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 1333 drivers/scsi/lpfc/lpfc_ct.c lpfc_ct_free_iocb(phba, cmdiocb); phba 1338 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct_cmd_rft_id(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 1354 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct(phba, cmdiocb, rspiocb); phba 1359 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct_cmd_rnn_id(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 1375 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct(phba, cmdiocb, rspiocb); phba 1380 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct_cmd_rspn_id(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 1396 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct(phba, cmdiocb, rspiocb); phba 1401 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct_cmd_rsnn_nn(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 1417 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct(phba, cmdiocb, rspiocb); phba 1422 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct_cmd_da_id(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 1429 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct(phba, cmdiocb, rspiocb); phba 1434 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct_cmd_rff_id(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 1450 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct(phba, cmdiocb, rspiocb); phba 1470 drivers/scsi/lpfc/lpfc_ct.c n = scnprintf(symbol, size, "%d", vport->phba->brd_no); phba 1484 drivers/scsi/lpfc/lpfc_ct.c scnprintf(tmp, sizeof(tmp), "Emulex %s", vport->phba->ModelName); phba 1488 drivers/scsi/lpfc/lpfc_ct.c lpfc_decode_firmware_rev(vport->phba, fwrev, 0); phba 1497 drivers/scsi/lpfc/lpfc_ct.c scnprintf(tmp, sizeof(tmp), " HN:%s", vport->phba->os_host_name); phba 1563 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 1590 drivers/scsi/lpfc/lpfc_ct.c mp->virt = lpfc_mbuf_alloc(phba, MEM_PRI, &(mp->phys)); phba 1604 drivers/scsi/lpfc/lpfc_ct.c bmp->virt = lpfc_mbuf_alloc(phba, MEM_PRI, &(bmp->phys)); phba 1777 drivers/scsi/lpfc/lpfc_ct.c if ((vport == phba->pport) && phba->nvmet_support) { phba 1780 drivers/scsi/lpfc/lpfc_ct.c lpfc_nvmet_update_targetport(phba); phba 1823 drivers/scsi/lpfc/lpfc_ct.c lpfc_mbuf_free(phba, bmp->virt, bmp->phys); phba 1827 drivers/scsi/lpfc/lpfc_ct.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 1847 drivers/scsi/lpfc/lpfc_ct.c lpfc_cmpl_ct_disc_fdmi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 1888 drivers/scsi/lpfc/lpfc_ct.c err = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, phba 1904 drivers/scsi/lpfc/lpfc_ct.c lpfc_ct_free_iocb(phba, cmdiocb); phba 1997 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 2001 drivers/scsi/lpfc/lpfc_ct.c if (!lpfc_is_link_up(phba)) phba 2013 drivers/scsi/lpfc/lpfc_ct.c if (strcmp(phba->os_host_name, init_utsname()->nodename)) { phba 2014 drivers/scsi/lpfc/lpfc_ct.c memset(phba->os_host_name, 0, sizeof(phba->os_host_name)); phba 2015 drivers/scsi/lpfc/lpfc_ct.c scnprintf(phba->os_host_name, sizeof(phba->os_host_name), "%s", phba 2097 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 2104 drivers/scsi/lpfc/lpfc_ct.c strncpy(ae->un.AttrString, phba->SerialNumber, phba 2119 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 2126 drivers/scsi/lpfc/lpfc_ct.c strncpy(ae->un.AttrString, phba->ModelName, phba 2140 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 2147 drivers/scsi/lpfc/lpfc_ct.c strncpy(ae->un.AttrString, phba->ModelDesc, phba 2162 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 2163 drivers/scsi/lpfc/lpfc_ct.c lpfc_vpd_t *vp = &phba->vpd; phba 2215 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 2222 drivers/scsi/lpfc/lpfc_ct.c if (phba->sli_rev == LPFC_SLI_REV4) phba 2223 drivers/scsi/lpfc/lpfc_ct.c lpfc_decode_firmware_rev(phba, ae->un.AttrString, 1); phba 2225 drivers/scsi/lpfc/lpfc_ct.c strncpy(ae->un.AttrString, phba->OptionROMVersion, phba 2240 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 2247 drivers/scsi/lpfc/lpfc_ct.c lpfc_decode_firmware_rev(phba, ae->un.AttrString, 1); phba 2371 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 2378 drivers/scsi/lpfc/lpfc_ct.c strlcat(ae->un.AttrString, phba->BIOSVersion, phba 2432 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 2444 drivers/scsi/lpfc/lpfc_ct.c if ((phba->sli_rev == LPFC_SLI_REV4) && (vport == phba->pport) && phba 2445 drivers/scsi/lpfc/lpfc_ct.c phba->sli4_hba.pc_sli4_params.nvme) phba 2458 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 2465 drivers/scsi/lpfc/lpfc_ct.c if (!(phba->hba_flag & HBA_FCOE_MODE)) { phba 2466 drivers/scsi/lpfc/lpfc_ct.c if (phba->lmt & LMT_128Gb) phba 2468 drivers/scsi/lpfc/lpfc_ct.c if (phba->lmt & LMT_64Gb) phba 2470 drivers/scsi/lpfc/lpfc_ct.c if (phba->lmt & LMT_32Gb) phba 2472 drivers/scsi/lpfc/lpfc_ct.c if (phba->lmt & LMT_16Gb) phba 2474 drivers/scsi/lpfc/lpfc_ct.c if (phba->lmt & LMT_10Gb) phba 2476 drivers/scsi/lpfc/lpfc_ct.c if (phba->lmt & LMT_8Gb) phba 2478 drivers/scsi/lpfc/lpfc_ct.c if (phba->lmt & LMT_4Gb) phba 2480 drivers/scsi/lpfc/lpfc_ct.c if (phba->lmt & LMT_2Gb) phba 2482 drivers/scsi/lpfc/lpfc_ct.c if (phba->lmt & LMT_1Gb) phba 2486 drivers/scsi/lpfc/lpfc_ct.c switch (phba->fc_linkspeed) { phba 2512 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 2518 drivers/scsi/lpfc/lpfc_ct.c if (!(phba->hba_flag & HBA_FCOE_MODE)) { phba 2519 drivers/scsi/lpfc/lpfc_ct.c switch (phba->fc_linkspeed) { phba 2552 drivers/scsi/lpfc/lpfc_ct.c switch (phba->fc_linkspeed) { phba 2631 drivers/scsi/lpfc/lpfc_ct.c vport->phba->os_host_name); phba 2699 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 2704 drivers/scsi/lpfc/lpfc_ct.c if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) phba 2762 drivers/scsi/lpfc/lpfc_ct.c if (vport->phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) phba 2885 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 2892 drivers/scsi/lpfc/lpfc_ct.c strncpy(ae->un.AttrString, phba->ModelName, phba 3018 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 3045 drivers/scsi/lpfc/lpfc_ct.c mp->virt = lpfc_mbuf_alloc(phba, 0, &(mp->phys)); phba 3054 drivers/scsi/lpfc/lpfc_ct.c bmp->virt = lpfc_mbuf_alloc(phba, 0, &(bmp->phys)); phba 3085 drivers/scsi/lpfc/lpfc_ct.c memcpy(&rh->hi.PortName, &phba->pport->fc_sparam.portName, phba 3092 drivers/scsi/lpfc/lpfc_ct.c memcpy(&rh->rpl.pe, &phba->pport->fc_sparam.portName, phba 3138 drivers/scsi/lpfc/lpfc_ct.c &phba->pport->fc_sparam.portName, phba 3234 drivers/scsi/lpfc/lpfc_ct.c lpfc_mbuf_free(phba, bmp->virt, bmp->phys); phba 3238 drivers/scsi/lpfc/lpfc_ct.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 3260 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_hba *phba = vport->phba; phba 3271 drivers/scsi/lpfc/lpfc_ct.c lpfc_worker_wake_up(phba); phba 3295 drivers/scsi/lpfc/lpfc_ct.c lpfc_do_scr_ns_plogi(vport->phba, vport); phba 3299 drivers/scsi/lpfc/lpfc_ct.c lpfc_decode_firmware_rev(struct lpfc_hba *phba, char *fwrevision, int flag) phba 3301 drivers/scsi/lpfc/lpfc_ct.c struct lpfc_sli *psli = &phba->sli; phba 3302 drivers/scsi/lpfc/lpfc_ct.c lpfc_vpd_t *vp = &phba->vpd; phba 3308 drivers/scsi/lpfc/lpfc_ct.c if (phba->sli_rev == LPFC_SLI_REV4) phba 214 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debugfs_slow_ring_trc_data(struct lpfc_hba *phba, char *buf, int size) phba 229 drivers/scsi/lpfc/lpfc_debugfs.c index = (atomic_read(&phba->slow_ring_trc_cnt) + 1) & phba 232 drivers/scsi/lpfc/lpfc_debugfs.c dtp = phba->slow_ring_trc + i; phba 243 drivers/scsi/lpfc/lpfc_debugfs.c dtp = phba->slow_ring_trc + i; phba 282 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debugfs_hbqinfo_data(struct lpfc_hba *phba, char *buf, int size) phba 293 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli_rev != 3) phba 296 drivers/scsi/lpfc/lpfc_debugfs.c spin_lock_irq(&phba->hbalock); phba 312 drivers/scsi/lpfc/lpfc_debugfs.c hbqs = &phba->hbqs[i]; phba 323 drivers/scsi/lpfc/lpfc_debugfs.c raw_index = phba->hbq_get[i]; phba 330 drivers/scsi/lpfc/lpfc_debugfs.c hbqe = (struct lpfc_hbq_entry *) phba->hbqs[i].hbq_virt; phba 379 drivers/scsi/lpfc/lpfc_debugfs.c spin_unlock_irq(&phba->hbalock); phba 406 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debugfs_commonxripools_data(struct lpfc_hba *phba, char *buf, int size) phba 413 drivers/scsi/lpfc/lpfc_debugfs.c for (i = 0; i < phba->cfg_hdw_queue; i++) { phba 416 drivers/scsi/lpfc/lpfc_debugfs.c qp = &phba->sli4_hba.hdwq[lpfc_debugfs_last_xripool]; phba 435 drivers/scsi/lpfc/lpfc_debugfs.c if (lpfc_debugfs_last_xripool >= phba->cfg_hdw_queue) phba 458 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debugfs_multixripools_data(struct lpfc_hba *phba, char *buf, int size) phba 469 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli_rev != LPFC_SLI_REV4) phba 472 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->sli4_hba.hdwq) phba 475 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->cfg_xri_rebalancing) { phba 476 drivers/scsi/lpfc/lpfc_debugfs.c i = lpfc_debugfs_commonxripools_data(phba, buf, size); phba 526 drivers/scsi/lpfc/lpfc_debugfs.c hwq_count = phba->cfg_hdw_queue; phba 528 drivers/scsi/lpfc/lpfc_debugfs.c qp = &phba->sli4_hba.hdwq[i]; phba 596 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debugfs_lockstat_data(struct lpfc_hba *phba, char *buf, int size) phba 602 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli_rev != LPFC_SLI_REV4) phba 605 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->sli4_hba.hdwq) phba 608 drivers/scsi/lpfc/lpfc_debugfs.c for (i = 0; i < phba->cfg_hdw_queue; i++) { phba 611 drivers/scsi/lpfc/lpfc_debugfs.c qp = &phba->sli4_hba.hdwq[lpfc_debugfs_last_lock]; phba 614 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->cfg_xri_rebalancing) { phba 636 drivers/scsi/lpfc/lpfc_debugfs.c if (lpfc_debugfs_last_lock >= phba->cfg_hdw_queue) phba 665 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debugfs_dumpHBASlim_data(struct lpfc_hba *phba, char *buf, int size) phba 677 drivers/scsi/lpfc/lpfc_debugfs.c spin_lock_irq(&phba->hbalock); phba 681 drivers/scsi/lpfc/lpfc_debugfs.c phba->MBslimaddr + lpfc_debugfs_last_hba_slim_off, 1024); phba 702 drivers/scsi/lpfc/lpfc_debugfs.c spin_unlock_irq(&phba->hbalock); phba 724 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debugfs_dumpHostSlim_data(struct lpfc_hba *phba, char *buf, int size) phba 731 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_sli *psli = &phba->sli; phba 735 drivers/scsi/lpfc/lpfc_debugfs.c spin_lock_irq(&phba->hbalock); phba 738 drivers/scsi/lpfc/lpfc_debugfs.c ptr = (uint32_t *)phba->slim2p.virt; phba 751 drivers/scsi/lpfc/lpfc_debugfs.c ptr = (uint32_t *)phba->pcb; phba 763 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli_rev <= LPFC_SLI_REV3) { phba 765 drivers/scsi/lpfc/lpfc_debugfs.c pgpp = &phba->port_gp[i]; phba 780 drivers/scsi/lpfc/lpfc_debugfs.c word0 = readl(phba->HAregaddr); phba 781 drivers/scsi/lpfc/lpfc_debugfs.c word1 = readl(phba->CAregaddr); phba 782 drivers/scsi/lpfc/lpfc_debugfs.c word2 = readl(phba->HSregaddr); phba 783 drivers/scsi/lpfc/lpfc_debugfs.c word3 = readl(phba->HCregaddr); phba 787 drivers/scsi/lpfc/lpfc_debugfs.c spin_unlock_irq(&phba->hbalock); phba 812 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = vport->phba; phba 920 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->nvmet_support && phba->targetport && (vport == phba->pport)) { phba 925 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->targetport->port_id) phba 936 drivers/scsi/lpfc/lpfc_debugfs.c phba->targetport->port_id); phba 962 drivers/scsi/lpfc/lpfc_debugfs.c spin_lock(&phba->hbalock); phba 968 drivers/scsi/lpfc/lpfc_debugfs.c spin_unlock(&phba->hbalock); phba 1035 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = vport->phba; phba 1046 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->nvmet_support) { phba 1047 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->targetport) phba 1049 drivers/scsi/lpfc/lpfc_debugfs.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 1129 drivers/scsi/lpfc/lpfc_debugfs.c spin_lock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 1131 drivers/scsi/lpfc/lpfc_debugfs.c &phba->sli4_hba.lpfc_abts_nvmet_ctx_list, phba 1135 drivers/scsi/lpfc/lpfc_debugfs.c spin_unlock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 1139 drivers/scsi/lpfc/lpfc_debugfs.c spin_lock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 1141 drivers/scsi/lpfc/lpfc_debugfs.c &phba->sli4_hba.lpfc_abts_nvmet_ctx_list, phba 1151 drivers/scsi/lpfc/lpfc_debugfs.c spin_unlock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 1162 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.nvmet_xri_cnt, phba 1163 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.nvmet_io_wait_cnt, phba 1164 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.nvmet_io_wait_total, phba 1187 drivers/scsi/lpfc/lpfc_debugfs.c for (i = 0; i < phba->cfg_hdw_queue; i++) { phba 1188 drivers/scsi/lpfc/lpfc_debugfs.c cstat = &phba->sli4_hba.hdwq[i].nvme_cstat; phba 1258 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = vport->phba; phba 1266 drivers/scsi/lpfc/lpfc_debugfs.c (phba->sli_rev != LPFC_SLI_REV4)) phba 1273 drivers/scsi/lpfc/lpfc_debugfs.c for (i = 0; i < phba->cfg_hdw_queue; i++) { phba 1274 drivers/scsi/lpfc/lpfc_debugfs.c cstat = &phba->sli4_hba.hdwq[i].scsi_cstat; phba 1318 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = vport->phba; phba 1321 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->nvmet_support == 0) { phba 1325 drivers/scsi/lpfc/lpfc_debugfs.c (phba->ktime_on ? "Enabled" : "Disabled"), phba 1326 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_data_samples); phba 1327 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->ktime_data_samples == 0) phba 1337 drivers/scsi/lpfc/lpfc_debugfs.c div_u64(phba->ktime_seg1_total, phba 1338 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_data_samples), phba 1339 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg1_min, phba 1340 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg1_max); phba 1348 drivers/scsi/lpfc/lpfc_debugfs.c div_u64(phba->ktime_seg2_total, phba 1349 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_data_samples), phba 1350 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg2_min, phba 1351 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg2_max); phba 1359 drivers/scsi/lpfc/lpfc_debugfs.c div_u64(phba->ktime_seg3_total, phba 1360 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_data_samples), phba 1361 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg3_min, phba 1362 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg3_max); phba 1370 drivers/scsi/lpfc/lpfc_debugfs.c div_u64(phba->ktime_seg4_total, phba 1371 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_data_samples), phba 1372 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg4_min, phba 1373 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg4_max); phba 1377 drivers/scsi/lpfc/lpfc_debugfs.c div_u64(phba->ktime_seg1_total + phba 1378 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg2_total + phba 1379 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg3_total + phba 1380 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg4_total, phba 1381 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_data_samples)); phba 1388 drivers/scsi/lpfc/lpfc_debugfs.c (phba->ktime_on ? "Enabled" : "Disabled"), phba 1389 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_data_samples, phba 1390 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_status_samples); phba 1391 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->ktime_data_samples == 0) phba 1399 drivers/scsi/lpfc/lpfc_debugfs.c div_u64(phba->ktime_seg1_total, phba 1400 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_data_samples), phba 1401 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg1_min, phba 1402 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg1_max); phba 1408 drivers/scsi/lpfc/lpfc_debugfs.c div_u64(phba->ktime_seg2_total, phba 1409 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_data_samples), phba 1410 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg2_min, phba 1411 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg2_max); phba 1417 drivers/scsi/lpfc/lpfc_debugfs.c div_u64(phba->ktime_seg3_total, phba 1418 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_data_samples), phba 1419 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg3_min, phba 1420 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg3_max); phba 1426 drivers/scsi/lpfc/lpfc_debugfs.c div_u64(phba->ktime_seg4_total, phba 1427 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_data_samples), phba 1428 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg4_min, phba 1429 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg4_max); phba 1435 drivers/scsi/lpfc/lpfc_debugfs.c div_u64(phba->ktime_seg5_total, phba 1436 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_data_samples), phba 1437 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg5_min, phba 1438 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg5_max); phba 1440 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->ktime_status_samples == 0) { phba 1447 drivers/scsi/lpfc/lpfc_debugfs.c div_u64(phba->ktime_seg10_total, phba 1448 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_data_samples), phba 1449 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg10_min, phba 1450 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg10_max); phba 1459 drivers/scsi/lpfc/lpfc_debugfs.c div_u64(phba->ktime_seg6_total, phba 1460 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_status_samples), phba 1461 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg6_min, phba 1462 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg6_max); phba 1468 drivers/scsi/lpfc/lpfc_debugfs.c div_u64(phba->ktime_seg7_total, phba 1469 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_status_samples), phba 1470 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg7_min, phba 1471 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg7_max); phba 1477 drivers/scsi/lpfc/lpfc_debugfs.c div_u64(phba->ktime_seg8_total, phba 1478 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_status_samples), phba 1479 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg8_min, phba 1480 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg8_max); phba 1486 drivers/scsi/lpfc/lpfc_debugfs.c div_u64(phba->ktime_seg9_total, phba 1487 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_status_samples), phba 1488 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg9_min, phba 1489 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg9_max); phba 1495 drivers/scsi/lpfc/lpfc_debugfs.c div_u64(phba->ktime_seg10_total, phba 1496 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_status_samples), phba 1497 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg10_min, phba 1498 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg10_max); phba 1516 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debugfs_nvmeio_trc_data(struct lpfc_hba *phba, char *buf, int size) phba 1522 drivers/scsi/lpfc/lpfc_debugfs.c state = phba->nvmeio_trc_on; phba 1524 drivers/scsi/lpfc/lpfc_debugfs.c index = (atomic_read(&phba->nvmeio_trc_cnt) + 1) & phba 1525 drivers/scsi/lpfc/lpfc_debugfs.c (phba->nvmeio_trc_size - 1); phba 1526 drivers/scsi/lpfc/lpfc_debugfs.c skip = phba->nvmeio_trc_output_idx; phba 1530 drivers/scsi/lpfc/lpfc_debugfs.c (phba->nvmet_support ? "NVME" : "NVMET"), phba 1532 drivers/scsi/lpfc/lpfc_debugfs.c index, skip, phba->nvmeio_trc_size); phba 1534 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->nvmeio_trc || state) phba 1539 drivers/scsi/lpfc/lpfc_debugfs.c for (i = index; i < phba->nvmeio_trc_size; i++) { phba 1544 drivers/scsi/lpfc/lpfc_debugfs.c dtp = phba->nvmeio_trc + i; phba 1545 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_output_idx++; phba 1553 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->nvmeio_trc_output_idx >= phba->nvmeio_trc_size) { phba 1554 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_output_idx = 0; phba 1563 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_output_idx, phba 1564 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_size); phba 1573 drivers/scsi/lpfc/lpfc_debugfs.c dtp = phba->nvmeio_trc + i; phba 1574 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_output_idx++; phba 1582 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->nvmeio_trc_output_idx >= phba->nvmeio_trc_size) { phba 1583 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_output_idx = 0; phba 1592 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_output_idx, phba 1593 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_size); phba 1620 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = vport->phba; phba 1630 drivers/scsi/lpfc/lpfc_debugfs.c (phba->cpucheck_on & LPFC_CHECK_NVME_IO ? phba 1632 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->nvmet_support) { phba 1635 drivers/scsi/lpfc/lpfc_debugfs.c (phba->cpucheck_on & LPFC_CHECK_NVMET_RCV ? phba 1642 drivers/scsi/lpfc/lpfc_debugfs.c for (i = 0; i < phba->cfg_hdw_queue; i++) { phba 1643 drivers/scsi/lpfc/lpfc_debugfs.c qp = &phba->sli4_hba.hdwq[i]; phba 1651 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->nvmet_support) phba 1667 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->nvmet_support) { phba 1751 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debugfs_slow_ring_trc(struct lpfc_hba *phba, char *fmt, phba 1759 drivers/scsi/lpfc/lpfc_debugfs.c !phba || !phba->slow_ring_trc) phba 1762 drivers/scsi/lpfc/lpfc_debugfs.c index = atomic_inc_return(&phba->slow_ring_trc_cnt) & phba 1764 drivers/scsi/lpfc/lpfc_debugfs.c dtp = phba->slow_ring_trc + index; phba 1789 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debugfs_nvme_trc(struct lpfc_hba *phba, char *fmt, phba 1796 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->nvmeio_trc_on || !phba->nvmeio_trc) phba 1799 drivers/scsi/lpfc/lpfc_debugfs.c index = atomic_inc_return(&phba->nvmeio_trc_cnt) & phba 1800 drivers/scsi/lpfc/lpfc_debugfs.c (phba->nvmeio_trc_size - 1); phba 1801 drivers/scsi/lpfc/lpfc_debugfs.c dtp = phba->nvmeio_trc + index; phba 1878 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = inode->i_private; phba 1902 drivers/scsi/lpfc/lpfc_debugfs.c debug->len = lpfc_debugfs_slow_ring_trc_data(phba, debug->buffer, size); phba 1928 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = inode->i_private; phba 1943 drivers/scsi/lpfc/lpfc_debugfs.c debug->len = lpfc_debugfs_hbqinfo_data(phba, debug->buffer, phba 1970 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = inode->i_private; phba 1986 drivers/scsi/lpfc/lpfc_debugfs.c phba, debug->buffer, LPFC_DUMP_MULTIXRIPOOL_SIZE); phba 2015 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = inode->i_private; phba 2030 drivers/scsi/lpfc/lpfc_debugfs.c debug->len = lpfc_debugfs_lockstat_data(phba, debug->buffer, phba 2044 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = (struct lpfc_hba *)debug->i_private; phba 2062 drivers/scsi/lpfc/lpfc_debugfs.c for (i = 0; i < phba->cfg_hdw_queue; i++) { phba 2063 drivers/scsi/lpfc/lpfc_debugfs.c qp = &phba->sli4_hba.hdwq[i]; phba 2099 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = inode->i_private; phba 2114 drivers/scsi/lpfc/lpfc_debugfs.c debug->len = lpfc_debugfs_dumpHBASlim_data(phba, debug->buffer, phba 2141 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = inode->i_private; phba 2156 drivers/scsi/lpfc/lpfc_debugfs.c debug->len = lpfc_debugfs_dumpHostSlim_data(phba, debug->buffer, phba 2170 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = file->private_data; phba 2175 drivers/scsi/lpfc/lpfc_debugfs.c if (dent == phba->debug_writeGuard) phba 2176 drivers/scsi/lpfc/lpfc_debugfs.c cnt = scnprintf(cbuf, 32, "%u\n", phba->lpfc_injerr_wgrd_cnt); phba 2177 drivers/scsi/lpfc/lpfc_debugfs.c else if (dent == phba->debug_writeApp) phba 2178 drivers/scsi/lpfc/lpfc_debugfs.c cnt = scnprintf(cbuf, 32, "%u\n", phba->lpfc_injerr_wapp_cnt); phba 2179 drivers/scsi/lpfc/lpfc_debugfs.c else if (dent == phba->debug_writeRef) phba 2180 drivers/scsi/lpfc/lpfc_debugfs.c cnt = scnprintf(cbuf, 32, "%u\n", phba->lpfc_injerr_wref_cnt); phba 2181 drivers/scsi/lpfc/lpfc_debugfs.c else if (dent == phba->debug_readGuard) phba 2182 drivers/scsi/lpfc/lpfc_debugfs.c cnt = scnprintf(cbuf, 32, "%u\n", phba->lpfc_injerr_rgrd_cnt); phba 2183 drivers/scsi/lpfc/lpfc_debugfs.c else if (dent == phba->debug_readApp) phba 2184 drivers/scsi/lpfc/lpfc_debugfs.c cnt = scnprintf(cbuf, 32, "%u\n", phba->lpfc_injerr_rapp_cnt); phba 2185 drivers/scsi/lpfc/lpfc_debugfs.c else if (dent == phba->debug_readRef) phba 2186 drivers/scsi/lpfc/lpfc_debugfs.c cnt = scnprintf(cbuf, 32, "%u\n", phba->lpfc_injerr_rref_cnt); phba 2187 drivers/scsi/lpfc/lpfc_debugfs.c else if (dent == phba->debug_InjErrNPortID) phba 2189 drivers/scsi/lpfc/lpfc_debugfs.c phba->lpfc_injerr_nportid); phba 2190 drivers/scsi/lpfc/lpfc_debugfs.c else if (dent == phba->debug_InjErrWWPN) { phba 2191 drivers/scsi/lpfc/lpfc_debugfs.c memcpy(&tmp, &phba->lpfc_injerr_wwpn, sizeof(struct lpfc_name)); phba 2194 drivers/scsi/lpfc/lpfc_debugfs.c } else if (dent == phba->debug_InjErrLBA) { phba 2195 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->lpfc_injerr_lba == (sector_t)(-1)) phba 2199 drivers/scsi/lpfc/lpfc_debugfs.c (uint64_t) phba->lpfc_injerr_lba); phba 2201 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 2212 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = file->private_data; phba 2222 drivers/scsi/lpfc/lpfc_debugfs.c if (dent == phba->debug_InjErrLBA) { phba 2230 drivers/scsi/lpfc/lpfc_debugfs.c if (dent == phba->debug_writeGuard) phba 2231 drivers/scsi/lpfc/lpfc_debugfs.c phba->lpfc_injerr_wgrd_cnt = (uint32_t)tmp; phba 2232 drivers/scsi/lpfc/lpfc_debugfs.c else if (dent == phba->debug_writeApp) phba 2233 drivers/scsi/lpfc/lpfc_debugfs.c phba->lpfc_injerr_wapp_cnt = (uint32_t)tmp; phba 2234 drivers/scsi/lpfc/lpfc_debugfs.c else if (dent == phba->debug_writeRef) phba 2235 drivers/scsi/lpfc/lpfc_debugfs.c phba->lpfc_injerr_wref_cnt = (uint32_t)tmp; phba 2236 drivers/scsi/lpfc/lpfc_debugfs.c else if (dent == phba->debug_readGuard) phba 2237 drivers/scsi/lpfc/lpfc_debugfs.c phba->lpfc_injerr_rgrd_cnt = (uint32_t)tmp; phba 2238 drivers/scsi/lpfc/lpfc_debugfs.c else if (dent == phba->debug_readApp) phba 2239 drivers/scsi/lpfc/lpfc_debugfs.c phba->lpfc_injerr_rapp_cnt = (uint32_t)tmp; phba 2240 drivers/scsi/lpfc/lpfc_debugfs.c else if (dent == phba->debug_readRef) phba 2241 drivers/scsi/lpfc/lpfc_debugfs.c phba->lpfc_injerr_rref_cnt = (uint32_t)tmp; phba 2242 drivers/scsi/lpfc/lpfc_debugfs.c else if (dent == phba->debug_InjErrLBA) phba 2243 drivers/scsi/lpfc/lpfc_debugfs.c phba->lpfc_injerr_lba = (sector_t)tmp; phba 2244 drivers/scsi/lpfc/lpfc_debugfs.c else if (dent == phba->debug_InjErrNPortID) phba 2245 drivers/scsi/lpfc/lpfc_debugfs.c phba->lpfc_injerr_nportid = (uint32_t)(tmp & Mask_DID); phba 2246 drivers/scsi/lpfc/lpfc_debugfs.c else if (dent == phba->debug_InjErrWWPN) { phba 2248 drivers/scsi/lpfc/lpfc_debugfs.c memcpy(&phba->lpfc_injerr_wwpn, &tmp, sizeof(struct lpfc_name)); phba 2250 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 2397 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = (struct lpfc_hba *)debug->i_private; phba 2419 drivers/scsi/lpfc/lpfc_debugfs.c hwq_count = phba->cfg_hdw_queue; phba 2421 drivers/scsi/lpfc/lpfc_debugfs.c qp = &phba->sli4_hba.hdwq[i]; phba 2482 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = vport->phba; phba 2487 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->targetport) phba 2499 drivers/scsi/lpfc/lpfc_debugfs.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 2570 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = vport->phba; phba 2584 drivers/scsi/lpfc/lpfc_debugfs.c for (i = 0; i < phba->cfg_hdw_queue; i++) { phba 2585 drivers/scsi/lpfc/lpfc_debugfs.c memset(&phba->sli4_hba.hdwq[i].scsi_cstat, 0, phba 2586 drivers/scsi/lpfc/lpfc_debugfs.c sizeof(phba->sli4_hba.hdwq[i].scsi_cstat)); phba 2628 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = vport->phba; phba 2642 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_data_samples = 0; phba 2643 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_status_samples = 0; phba 2644 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg1_total = 0; phba 2645 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg1_max = 0; phba 2646 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg1_min = 0xffffffff; phba 2647 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg2_total = 0; phba 2648 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg2_max = 0; phba 2649 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg2_min = 0xffffffff; phba 2650 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg3_total = 0; phba 2651 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg3_max = 0; phba 2652 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg3_min = 0xffffffff; phba 2653 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg4_total = 0; phba 2654 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg4_max = 0; phba 2655 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg4_min = 0xffffffff; phba 2656 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg5_total = 0; phba 2657 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg5_max = 0; phba 2658 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg5_min = 0xffffffff; phba 2659 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg6_total = 0; phba 2660 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg6_max = 0; phba 2661 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg6_min = 0xffffffff; phba 2662 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg7_total = 0; phba 2663 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg7_max = 0; phba 2664 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg7_min = 0xffffffff; phba 2665 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg8_total = 0; phba 2666 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg8_max = 0; phba 2667 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg8_min = 0xffffffff; phba 2668 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg9_total = 0; phba 2669 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg9_max = 0; phba 2670 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg9_min = 0xffffffff; phba 2671 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg10_total = 0; phba 2672 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg10_max = 0; phba 2673 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg10_min = 0xffffffff; phba 2675 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_on = 1; phba 2679 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_on = 0; phba 2683 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_data_samples = 0; phba 2684 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_status_samples = 0; phba 2685 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg1_total = 0; phba 2686 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg1_max = 0; phba 2687 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg1_min = 0xffffffff; phba 2688 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg2_total = 0; phba 2689 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg2_max = 0; phba 2690 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg2_min = 0xffffffff; phba 2691 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg3_total = 0; phba 2692 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg3_max = 0; phba 2693 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg3_min = 0xffffffff; phba 2694 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg4_total = 0; phba 2695 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg4_max = 0; phba 2696 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg4_min = 0xffffffff; phba 2697 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg5_total = 0; phba 2698 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg5_max = 0; phba 2699 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg5_min = 0xffffffff; phba 2700 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg6_total = 0; phba 2701 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg6_max = 0; phba 2702 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg6_min = 0xffffffff; phba 2703 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg7_total = 0; phba 2704 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg7_max = 0; phba 2705 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg7_min = 0xffffffff; phba 2706 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg8_total = 0; phba 2707 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg8_max = 0; phba 2708 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg8_min = 0xffffffff; phba 2709 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg9_total = 0; phba 2710 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg9_max = 0; phba 2711 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg9_min = 0xffffffff; phba 2712 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg10_total = 0; phba 2713 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg10_max = 0; phba 2714 drivers/scsi/lpfc/lpfc_debugfs.c phba->ktime_seg10_min = 0xffffffff; phba 2723 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = inode->i_private; phba 2738 drivers/scsi/lpfc/lpfc_debugfs.c debug->len = lpfc_debugfs_nvmeio_trc_data(phba, debug->buffer, phba 2754 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = (struct lpfc_hba *)debug->i_private; phba 2770 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 2772 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_output_idx = 0; phba 2773 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_on = 0; phba 2776 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 2778 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_output_idx = 0; phba 2779 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_on = 1; phba 2784 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->nvmeio_trc_on != 0) phba 2791 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_size = (uint32_t)sz; phba 2800 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->nvmeio_trc_size != sz) phba 2801 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 2804 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_size = (uint32_t)sz; phba 2807 drivers/scsi/lpfc/lpfc_debugfs.c kfree(phba->nvmeio_trc); phba 2810 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc = kzalloc((sizeof(struct lpfc_debugfs_nvmeio_trc) * phba 2812 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->nvmeio_trc) { phba 2813 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 2818 drivers/scsi/lpfc/lpfc_debugfs.c atomic_set(&phba->nvmeio_trc_cnt, 0); phba 2819 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_on = 0; phba 2820 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_output_idx = 0; phba 2860 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = vport->phba; phba 2876 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->nvmet_support) phba 2877 drivers/scsi/lpfc/lpfc_debugfs.c phba->cpucheck_on |= LPFC_CHECK_NVMET_IO; phba 2879 drivers/scsi/lpfc/lpfc_debugfs.c phba->cpucheck_on |= (LPFC_CHECK_NVME_IO | phba 2883 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->nvmet_support) phba 2884 drivers/scsi/lpfc/lpfc_debugfs.c phba->cpucheck_on |= LPFC_CHECK_NVMET_IO; phba 2886 drivers/scsi/lpfc/lpfc_debugfs.c phba->cpucheck_on |= LPFC_CHECK_NVME_IO; phba 2889 drivers/scsi/lpfc/lpfc_debugfs.c phba->cpucheck_on |= LPFC_CHECK_SCSI_IO; phba 2893 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->nvmet_support) phba 2894 drivers/scsi/lpfc/lpfc_debugfs.c phba->cpucheck_on |= LPFC_CHECK_NVMET_RCV; phba 2900 drivers/scsi/lpfc/lpfc_debugfs.c phba->cpucheck_on = LPFC_CHECK_OFF; phba 2904 drivers/scsi/lpfc/lpfc_debugfs.c for (i = 0; i < phba->cfg_hdw_queue; i++) { phba 2905 drivers/scsi/lpfc/lpfc_debugfs.c qp = &phba->sli4_hba.hdwq[i]; phba 3097 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = (struct lpfc_hba *)debug->i_private; phba 3106 drivers/scsi/lpfc/lpfc_debugfs.c pdev = phba->pcidev; phba 3219 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = (struct lpfc_hba *)debug->i_private; phba 3227 drivers/scsi/lpfc/lpfc_debugfs.c pdev = phba->pcidev; phba 3393 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = (struct lpfc_hba *)debug->i_private; phba 3402 drivers/scsi/lpfc/lpfc_debugfs.c pdev = phba->pcidev; phba 3429 drivers/scsi/lpfc/lpfc_debugfs.c if_type = bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf); phba 3432 drivers/scsi/lpfc/lpfc_debugfs.c mem_mapped_bar = phba->sli4_hba.conf_regs_memmap_p; phba 3434 drivers/scsi/lpfc/lpfc_debugfs.c mem_mapped_bar = phba->sli4_hba.ctrl_regs_memmap_p; phba 3436 drivers/scsi/lpfc/lpfc_debugfs.c mem_mapped_bar = phba->sli4_hba.drbl_regs_memmap_p; phba 3441 drivers/scsi/lpfc/lpfc_debugfs.c mem_mapped_bar = phba->sli4_hba.conf_regs_memmap_p; phba 3544 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = (struct lpfc_hba *)debug->i_private; phba 3552 drivers/scsi/lpfc/lpfc_debugfs.c pdev = phba->pcidev; phba 3563 drivers/scsi/lpfc/lpfc_debugfs.c if_type = bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf); phba 3581 drivers/scsi/lpfc/lpfc_debugfs.c mem_mapped_bar = phba->sli4_hba.conf_regs_memmap_p; phba 3585 drivers/scsi/lpfc/lpfc_debugfs.c mem_mapped_bar = phba->sli4_hba.ctrl_regs_memmap_p; phba 3589 drivers/scsi/lpfc/lpfc_debugfs.c mem_mapped_bar = phba->sli4_hba.drbl_regs_memmap_p; phba 3596 drivers/scsi/lpfc/lpfc_debugfs.c mem_mapped_bar = phba->sli4_hba.conf_regs_memmap_p; phba 3684 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_idiag_wqs_for_cq(struct lpfc_hba *phba, char *wqtype, char *pbuffer, phba 3690 drivers/scsi/lpfc/lpfc_debugfs.c for (qidx = 0; qidx < phba->cfg_hdw_queue; qidx++) { phba 3691 drivers/scsi/lpfc/lpfc_debugfs.c qp = phba->sli4_hba.hdwq[qidx].io_wq; phba 3757 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_idiag_cqs_for_eq(struct lpfc_hba *phba, char *pbuffer, phba 3763 drivers/scsi/lpfc/lpfc_debugfs.c qp = phba->sli4_hba.hdwq[eqidx].io_cq; phba 3773 drivers/scsi/lpfc/lpfc_debugfs.c rc = lpfc_idiag_wqs_for_cq(phba, "IO", pbuffer, len, phba 3778 drivers/scsi/lpfc/lpfc_debugfs.c if ((eqidx < phba->cfg_nvmet_mrq) && phba->nvmet_support) { phba 3780 drivers/scsi/lpfc/lpfc_debugfs.c qp = phba->sli4_hba.nvmet_cqset[eqidx]; phba 3790 drivers/scsi/lpfc/lpfc_debugfs.c qp = phba->sli4_hba.nvmet_mrq_hdr[eqidx]; phba 3792 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.nvmet_mrq_data[eqidx], phba 3849 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = (struct lpfc_hba *)debug->i_private; phba 3864 drivers/scsi/lpfc/lpfc_debugfs.c spin_lock_irq(&phba->hbalock); phba 3867 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli4_hba.hdwq && phba->cfg_hdw_queue) { phba 3869 drivers/scsi/lpfc/lpfc_debugfs.c x = phba->lpfc_idiag_last_eq; phba 3870 drivers/scsi/lpfc/lpfc_debugfs.c phba->lpfc_idiag_last_eq++; phba 3871 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->lpfc_idiag_last_eq >= phba->cfg_hdw_queue) phba 3872 drivers/scsi/lpfc/lpfc_debugfs.c phba->lpfc_idiag_last_eq = 0; phba 3877 drivers/scsi/lpfc/lpfc_debugfs.c x, phba->cfg_hdw_queue); phba 3880 drivers/scsi/lpfc/lpfc_debugfs.c qp = phba->sli4_hba.hdwq[x].hba_eq; phba 3893 drivers/scsi/lpfc/lpfc_debugfs.c rc = lpfc_idiag_cqs_for_eq(phba, pbuffer, &len, phba 3903 drivers/scsi/lpfc/lpfc_debugfs.c qp = phba->sli4_hba.mbx_cq; phba 3909 drivers/scsi/lpfc/lpfc_debugfs.c qp = phba->sli4_hba.mbx_wq; phba 3915 drivers/scsi/lpfc/lpfc_debugfs.c qp = phba->sli4_hba.els_cq; phba 3924 drivers/scsi/lpfc/lpfc_debugfs.c qp = phba->sli4_hba.els_wq; phba 3929 drivers/scsi/lpfc/lpfc_debugfs.c qp = phba->sli4_hba.hdr_rq; phba 3930 drivers/scsi/lpfc/lpfc_debugfs.c len = __lpfc_idiag_print_rqpair(qp, phba->sli4_hba.dat_rq, phba 3936 drivers/scsi/lpfc/lpfc_debugfs.c qp = phba->sli4_hba.nvmels_cq; phba 3946 drivers/scsi/lpfc/lpfc_debugfs.c qp = phba->sli4_hba.nvmels_wq; phba 3955 drivers/scsi/lpfc/lpfc_debugfs.c spin_unlock_irq(&phba->hbalock); phba 3962 drivers/scsi/lpfc/lpfc_debugfs.c spin_unlock_irq(&phba->hbalock); phba 4134 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = (struct lpfc_hba *)debug->i_private; phba 4172 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli4_hba.hdwq) { phba 4173 drivers/scsi/lpfc/lpfc_debugfs.c for (qidx = 0; qidx < phba->cfg_hdw_queue; qidx++) { phba 4174 drivers/scsi/lpfc/lpfc_debugfs.c qp = phba->sli4_hba.hdwq[qidx].hba_eq; phba 4190 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli4_hba.mbx_cq && phba 4191 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.mbx_cq->queue_id == queid) { phba 4194 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.mbx_cq, index, count); phba 4197 drivers/scsi/lpfc/lpfc_debugfs.c idiag.ptr_private = phba->sli4_hba.mbx_cq; phba 4201 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli4_hba.els_cq && phba 4202 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.els_cq->queue_id == queid) { phba 4205 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.els_cq, index, count); phba 4208 drivers/scsi/lpfc/lpfc_debugfs.c idiag.ptr_private = phba->sli4_hba.els_cq; phba 4212 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli4_hba.nvmels_cq && phba 4213 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.nvmels_cq->queue_id == queid) { phba 4216 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.nvmels_cq, index, count); phba 4219 drivers/scsi/lpfc/lpfc_debugfs.c idiag.ptr_private = phba->sli4_hba.nvmels_cq; phba 4223 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli4_hba.hdwq) { phba 4224 drivers/scsi/lpfc/lpfc_debugfs.c for (qidx = 0; qidx < phba->cfg_hdw_queue; phba 4226 drivers/scsi/lpfc/lpfc_debugfs.c qp = phba->sli4_hba.hdwq[qidx].io_cq; phba 4242 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli4_hba.mbx_wq && phba 4243 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.mbx_wq->queue_id == queid) { phba 4246 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.mbx_wq, index, count); phba 4249 drivers/scsi/lpfc/lpfc_debugfs.c idiag.ptr_private = phba->sli4_hba.mbx_wq; phba 4256 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli4_hba.els_wq && phba 4257 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.els_wq->queue_id == queid) { phba 4260 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.els_wq, index, count); phba 4263 drivers/scsi/lpfc/lpfc_debugfs.c idiag.ptr_private = phba->sli4_hba.els_wq; phba 4267 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli4_hba.nvmels_wq && phba 4268 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.nvmels_wq->queue_id == queid) { phba 4271 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.nvmels_wq, index, count); phba 4274 drivers/scsi/lpfc/lpfc_debugfs.c idiag.ptr_private = phba->sli4_hba.nvmels_wq; phba 4278 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli4_hba.hdwq) { phba 4280 drivers/scsi/lpfc/lpfc_debugfs.c for (qidx = 0; qidx < phba->cfg_hdw_queue; qidx++) { phba 4281 drivers/scsi/lpfc/lpfc_debugfs.c qp = phba->sli4_hba.hdwq[qidx].io_wq; phba 4298 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli4_hba.hdr_rq && phba 4299 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.hdr_rq->queue_id == queid) { phba 4302 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.hdr_rq, index, count); phba 4305 drivers/scsi/lpfc/lpfc_debugfs.c idiag.ptr_private = phba->sli4_hba.hdr_rq; phba 4309 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli4_hba.dat_rq && phba 4310 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.dat_rq->queue_id == queid) { phba 4313 drivers/scsi/lpfc/lpfc_debugfs.c phba->sli4_hba.dat_rq, index, count); phba 4316 drivers/scsi/lpfc/lpfc_debugfs.c idiag.ptr_private = phba->sli4_hba.dat_rq; phba 4372 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_idiag_drbacc_read_reg(struct lpfc_hba *phba, char *pbuffer, phba 4383 drivers/scsi/lpfc/lpfc_debugfs.c readl(phba->sli4_hba.EQDBregaddr)); phba 4388 drivers/scsi/lpfc/lpfc_debugfs.c readl(phba->sli4_hba.CQDBregaddr)); phba 4393 drivers/scsi/lpfc/lpfc_debugfs.c readl(phba->sli4_hba.MQDBregaddr)); phba 4398 drivers/scsi/lpfc/lpfc_debugfs.c readl(phba->sli4_hba.WQDBregaddr)); phba 4403 drivers/scsi/lpfc/lpfc_debugfs.c readl(phba->sli4_hba.RQDBregaddr)); phba 4434 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = (struct lpfc_hba *)debug->i_private; phba 4458 drivers/scsi/lpfc/lpfc_debugfs.c len = lpfc_idiag_drbacc_read_reg(phba, phba 4461 drivers/scsi/lpfc/lpfc_debugfs.c len = lpfc_idiag_drbacc_read_reg(phba, phba 4490 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = (struct lpfc_hba *)debug->i_private; phba 4528 drivers/scsi/lpfc/lpfc_debugfs.c drb_reg = phba->sli4_hba.EQDBregaddr; phba 4531 drivers/scsi/lpfc/lpfc_debugfs.c drb_reg = phba->sli4_hba.CQDBregaddr; phba 4534 drivers/scsi/lpfc/lpfc_debugfs.c drb_reg = phba->sli4_hba.MQDBregaddr; phba 4537 drivers/scsi/lpfc/lpfc_debugfs.c drb_reg = phba->sli4_hba.WQDBregaddr; phba 4540 drivers/scsi/lpfc/lpfc_debugfs.c drb_reg = phba->sli4_hba.RQDBregaddr; phba 4582 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_idiag_ctlacc_read_reg(struct lpfc_hba *phba, char *pbuffer, phba 4593 drivers/scsi/lpfc/lpfc_debugfs.c readl(phba->sli4_hba.conf_regs_memmap_p + phba 4599 drivers/scsi/lpfc/lpfc_debugfs.c readl(phba->sli4_hba.conf_regs_memmap_p + phba 4605 drivers/scsi/lpfc/lpfc_debugfs.c readl(phba->sli4_hba.conf_regs_memmap_p + phba 4611 drivers/scsi/lpfc/lpfc_debugfs.c readl(phba->sli4_hba.conf_regs_memmap_p + phba 4617 drivers/scsi/lpfc/lpfc_debugfs.c readl(phba->sli4_hba.conf_regs_memmap_p + phba 4623 drivers/scsi/lpfc/lpfc_debugfs.c readl(phba->sli4_hba.conf_regs_memmap_p + phba 4652 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = (struct lpfc_hba *)debug->i_private; phba 4676 drivers/scsi/lpfc/lpfc_debugfs.c len = lpfc_idiag_ctlacc_read_reg(phba, phba 4679 drivers/scsi/lpfc/lpfc_debugfs.c len = lpfc_idiag_ctlacc_read_reg(phba, phba 4705 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = (struct lpfc_hba *)debug->i_private; phba 4743 drivers/scsi/lpfc/lpfc_debugfs.c ctl_reg = phba->sli4_hba.conf_regs_memmap_p + phba 4747 drivers/scsi/lpfc/lpfc_debugfs.c ctl_reg = phba->sli4_hba.conf_regs_memmap_p + phba 4751 drivers/scsi/lpfc/lpfc_debugfs.c ctl_reg = phba->sli4_hba.conf_regs_memmap_p + phba 4755 drivers/scsi/lpfc/lpfc_debugfs.c ctl_reg = phba->sli4_hba.conf_regs_memmap_p + phba 4759 drivers/scsi/lpfc/lpfc_debugfs.c ctl_reg = phba->sli4_hba.conf_regs_memmap_p + phba 4763 drivers/scsi/lpfc/lpfc_debugfs.c ctl_reg = phba->sli4_hba.conf_regs_memmap_p + phba 4804 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_idiag_mbxacc_get_setup(struct lpfc_hba *phba, char *pbuffer) phba 4846 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = (struct lpfc_hba *)debug->i_private; phba 4866 drivers/scsi/lpfc/lpfc_debugfs.c len = lpfc_idiag_mbxacc_get_setup(phba, pbuffer); phba 4965 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_idiag_extacc_avail_get(struct lpfc_hba *phba, char *pbuffer, int len) phba 4974 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_sli4_get_avail_extnt_rsrc(phba, LPFC_RSC_TYPE_FCOE_VPI, phba 4981 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_sli4_get_avail_extnt_rsrc(phba, LPFC_RSC_TYPE_FCOE_VFI, phba 4988 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_sli4_get_avail_extnt_rsrc(phba, LPFC_RSC_TYPE_FCOE_RPI, phba 4995 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_sli4_get_avail_extnt_rsrc(phba, LPFC_RSC_TYPE_FCOE_XRI, phba 5016 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_idiag_extacc_alloc_get(struct lpfc_hba *phba, char *pbuffer, int len) phba 5026 drivers/scsi/lpfc/lpfc_debugfs.c rc = lpfc_sli4_get_allocated_extnts(phba, LPFC_RSC_TYPE_FCOE_VPI, phba 5031 drivers/scsi/lpfc/lpfc_debugfs.c phba->brd_no, ext_cnt, ext_size); phba 5038 drivers/scsi/lpfc/lpfc_debugfs.c rc = lpfc_sli4_get_allocated_extnts(phba, LPFC_RSC_TYPE_FCOE_VFI, phba 5043 drivers/scsi/lpfc/lpfc_debugfs.c phba->brd_no, ext_cnt, ext_size); phba 5050 drivers/scsi/lpfc/lpfc_debugfs.c rc = lpfc_sli4_get_allocated_extnts(phba, LPFC_RSC_TYPE_FCOE_RPI, phba 5055 drivers/scsi/lpfc/lpfc_debugfs.c phba->brd_no, ext_cnt, ext_size); phba 5062 drivers/scsi/lpfc/lpfc_debugfs.c rc = lpfc_sli4_get_allocated_extnts(phba, LPFC_RSC_TYPE_FCOE_XRI, phba 5067 drivers/scsi/lpfc/lpfc_debugfs.c phba->brd_no, ext_cnt, ext_size); phba 5088 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_idiag_extacc_drivr_get(struct lpfc_hba *phba, char *pbuffer, int len) phba 5099 drivers/scsi/lpfc/lpfc_debugfs.c list_for_each_entry(rsrc_blks, &phba->lpfc_vpi_blk_list, list) { phba 5109 drivers/scsi/lpfc/lpfc_debugfs.c list_for_each_entry(rsrc_blks, &phba->sli4_hba.lpfc_vfi_blk_list, phba 5121 drivers/scsi/lpfc/lpfc_debugfs.c list_for_each_entry(rsrc_blks, &phba->sli4_hba.lpfc_rpi_blk_list, phba 5133 drivers/scsi/lpfc/lpfc_debugfs.c list_for_each_entry(rsrc_blks, &phba->sli4_hba.lpfc_xri_blk_list, phba 5211 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = (struct lpfc_hba *)debug->i_private; phba 5231 drivers/scsi/lpfc/lpfc_debugfs.c len = lpfc_idiag_extacc_avail_get(phba, pbuffer, len); phba 5233 drivers/scsi/lpfc/lpfc_debugfs.c len = lpfc_idiag_extacc_alloc_get(phba, pbuffer, len); phba 5235 drivers/scsi/lpfc/lpfc_debugfs.c len = lpfc_idiag_extacc_drivr_get(phba, pbuffer, len); phba 5471 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_idiag_mbxacc_dump_bsg_mbox(struct lpfc_hba *phba, enum nemb_type nemb_tp, phba 5570 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_idiag_mbxacc_dump_issue_mbox(struct lpfc_hba *phba, MAILBOX_t *pmbox) phba 5672 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = vport->phba; phba 5689 drivers/scsi/lpfc/lpfc_debugfs.c snprintf(name, sizeof(name), "fn%d", phba->brd_no); phba 5690 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->hba_debugfs_root) { phba 5692 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root = phba 5695 drivers/scsi/lpfc/lpfc_debugfs.c atomic_set(&phba->debugfs_vport_count, 0); phba 5699 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_multixri_pools = phba 5701 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root, phba 5702 drivers/scsi/lpfc/lpfc_debugfs.c phba, phba 5704 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->debug_multixri_pools) { phba 5712 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_hbqinfo = phba 5714 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root, phba 5715 drivers/scsi/lpfc/lpfc_debugfs.c phba, &lpfc_debugfs_op_hbqinfo); phba 5720 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_lockstat = phba 5722 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root, phba 5723 drivers/scsi/lpfc/lpfc_debugfs.c phba, &lpfc_debugfs_op_lockstat); phba 5724 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->debug_lockstat) { phba 5732 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli_rev < LPFC_SLI_REV4) { phba 5734 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_dumpHBASlim = phba 5737 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root, phba 5738 drivers/scsi/lpfc/lpfc_debugfs.c phba, &lpfc_debugfs_op_dumpHBASlim); phba 5740 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_dumpHBASlim = NULL; phba 5743 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli_rev < LPFC_SLI_REV4) { phba 5745 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_dumpHostSlim = phba 5748 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root, phba 5749 drivers/scsi/lpfc/lpfc_debugfs.c phba, &lpfc_debugfs_op_dumpHostSlim); phba 5751 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_dumpHostSlim = NULL; phba 5755 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_InjErrLBA = phba 5757 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root, phba 5758 drivers/scsi/lpfc/lpfc_debugfs.c phba, &lpfc_debugfs_op_dif_err); phba 5759 drivers/scsi/lpfc/lpfc_debugfs.c phba->lpfc_injerr_lba = LPFC_INJERR_LBA_OFF; phba 5762 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_InjErrNPortID = phba 5764 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root, phba 5765 drivers/scsi/lpfc/lpfc_debugfs.c phba, &lpfc_debugfs_op_dif_err); phba 5768 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_InjErrWWPN = phba 5770 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root, phba 5771 drivers/scsi/lpfc/lpfc_debugfs.c phba, &lpfc_debugfs_op_dif_err); phba 5774 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_writeGuard = phba 5776 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root, phba 5777 drivers/scsi/lpfc/lpfc_debugfs.c phba, &lpfc_debugfs_op_dif_err); phba 5780 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_writeApp = phba 5782 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root, phba 5783 drivers/scsi/lpfc/lpfc_debugfs.c phba, &lpfc_debugfs_op_dif_err); phba 5786 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_writeRef = phba 5788 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root, phba 5789 drivers/scsi/lpfc/lpfc_debugfs.c phba, &lpfc_debugfs_op_dif_err); phba 5792 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_readGuard = phba 5794 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root, phba 5795 drivers/scsi/lpfc/lpfc_debugfs.c phba, &lpfc_debugfs_op_dif_err); phba 5798 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_readApp = phba 5800 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root, phba 5801 drivers/scsi/lpfc/lpfc_debugfs.c phba, &lpfc_debugfs_op_dif_err); phba 5804 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_readRef = phba 5806 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root, phba 5807 drivers/scsi/lpfc/lpfc_debugfs.c phba, &lpfc_debugfs_op_dif_err); phba 5827 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_slow_ring_trc = phba 5829 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root, phba 5830 drivers/scsi/lpfc/lpfc_debugfs.c phba, &lpfc_debugfs_op_slow_ring_trc); phba 5831 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->slow_ring_trc) { phba 5832 drivers/scsi/lpfc/lpfc_debugfs.c phba->slow_ring_trc = kmalloc( phba 5836 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->slow_ring_trc) { phba 5842 drivers/scsi/lpfc/lpfc_debugfs.c atomic_set(&phba->slow_ring_trc_cnt, 0); phba 5843 drivers/scsi/lpfc/lpfc_debugfs.c memset(phba->slow_ring_trc, 0, phba 5849 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_nvmeio_trc = phba 5851 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root, phba 5852 drivers/scsi/lpfc/lpfc_debugfs.c phba, &lpfc_debugfs_op_nvmeio_trc); phba 5854 drivers/scsi/lpfc/lpfc_debugfs.c atomic_set(&phba->nvmeio_trc_cnt, 0); phba 5866 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 5871 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_size = lpfc_debugfs_max_nvmeio_trc; phba 5874 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc = kzalloc( phba 5876 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_size), GFP_KERNEL); phba 5878 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->nvmeio_trc) { phba 5879 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 5884 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_on = 1; phba 5885 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_output_idx = 0; phba 5886 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc = NULL; phba 5889 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_size = 0; phba 5890 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_on = 0; phba 5891 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc_output_idx = 0; phba 5892 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc = NULL; phba 5899 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_create_dir(name, phba->hba_debugfs_root); phba 5900 drivers/scsi/lpfc/lpfc_debugfs.c atomic_inc(&phba->debugfs_vport_count); phba 5982 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli_rev < LPFC_SLI_REV4) phba 5986 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->idiag_root) { phba 5987 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_root = phba 5988 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_create_dir(name, phba->hba_debugfs_root); phba 5995 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->idiag_pci_cfg) { phba 5996 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_pci_cfg = phba 5998 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_root, phba, &lpfc_idiag_op_pciCfg); phba 6004 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->idiag_bar_acc) { phba 6005 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_bar_acc = phba 6007 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_root, phba, &lpfc_idiag_op_barAcc); phba 6013 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->idiag_que_info) { phba 6014 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_que_info = phba 6016 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_root, phba, &lpfc_idiag_op_queInfo); phba 6021 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->idiag_que_acc) { phba 6022 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_que_acc = phba 6024 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_root, phba, &lpfc_idiag_op_queAcc); phba 6029 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->idiag_drb_acc) { phba 6030 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_drb_acc = phba 6032 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_root, phba, &lpfc_idiag_op_drbAcc); phba 6037 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->idiag_ctl_acc) { phba 6038 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_ctl_acc = phba 6040 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_root, phba, &lpfc_idiag_op_ctlAcc); phba 6045 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->idiag_mbx_acc) { phba 6046 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_mbx_acc = phba 6048 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_root, phba, &lpfc_idiag_op_mbxAcc); phba 6052 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli4_hba.extents_in_use) { phba 6054 drivers/scsi/lpfc/lpfc_debugfs.c if (!phba->idiag_ext_acc) { phba 6055 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_ext_acc = phba 6058 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_root, phba, phba 6083 drivers/scsi/lpfc/lpfc_debugfs.c struct lpfc_hba *phba = vport->phba; phba 6109 drivers/scsi/lpfc/lpfc_debugfs.c atomic_dec(&phba->debugfs_vport_count); phba 6112 drivers/scsi/lpfc/lpfc_debugfs.c if (atomic_read(&phba->debugfs_vport_count) == 0) { phba 6114 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->debug_multixri_pools); /* multixripools*/ phba 6115 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_multixri_pools = NULL; phba 6117 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->debug_hbqinfo); /* hbqinfo */ phba 6118 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_hbqinfo = NULL; phba 6121 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->debug_lockstat); /* lockstat */ phba 6122 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_lockstat = NULL; phba 6124 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->debug_dumpHBASlim); /* HBASlim */ phba 6125 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_dumpHBASlim = NULL; phba 6127 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->debug_dumpHostSlim); /* HostSlim */ phba 6128 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_dumpHostSlim = NULL; phba 6130 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->debug_InjErrLBA); /* InjErrLBA */ phba 6131 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_InjErrLBA = NULL; phba 6133 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->debug_InjErrNPortID); phba 6134 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_InjErrNPortID = NULL; phba 6136 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->debug_InjErrWWPN); /* InjErrWWPN */ phba 6137 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_InjErrWWPN = NULL; phba 6139 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->debug_writeGuard); /* writeGuard */ phba 6140 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_writeGuard = NULL; phba 6142 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->debug_writeApp); /* writeApp */ phba 6143 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_writeApp = NULL; phba 6145 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->debug_writeRef); /* writeRef */ phba 6146 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_writeRef = NULL; phba 6148 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->debug_readGuard); /* readGuard */ phba 6149 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_readGuard = NULL; phba 6151 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->debug_readApp); /* readApp */ phba 6152 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_readApp = NULL; phba 6154 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->debug_readRef); /* readRef */ phba 6155 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_readRef = NULL; phba 6157 drivers/scsi/lpfc/lpfc_debugfs.c kfree(phba->slow_ring_trc); phba 6158 drivers/scsi/lpfc/lpfc_debugfs.c phba->slow_ring_trc = NULL; phba 6161 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->debug_slow_ring_trc); phba 6162 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_slow_ring_trc = NULL; phba 6164 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->debug_nvmeio_trc); phba 6165 drivers/scsi/lpfc/lpfc_debugfs.c phba->debug_nvmeio_trc = NULL; phba 6167 drivers/scsi/lpfc/lpfc_debugfs.c kfree(phba->nvmeio_trc); phba 6168 drivers/scsi/lpfc/lpfc_debugfs.c phba->nvmeio_trc = NULL; phba 6173 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 6175 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->idiag_ext_acc); phba 6176 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_ext_acc = NULL; phba 6179 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->idiag_mbx_acc); phba 6180 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_mbx_acc = NULL; phba 6183 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->idiag_ctl_acc); phba 6184 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_ctl_acc = NULL; phba 6187 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->idiag_drb_acc); phba 6188 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_drb_acc = NULL; phba 6191 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->idiag_que_acc); phba 6192 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_que_acc = NULL; phba 6195 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->idiag_que_info); phba 6196 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_que_info = NULL; phba 6199 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->idiag_bar_acc); phba 6200 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_bar_acc = NULL; phba 6203 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->idiag_pci_cfg); phba 6204 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_pci_cfg = NULL; phba 6207 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->idiag_root); phba 6208 drivers/scsi/lpfc/lpfc_debugfs.c phba->idiag_root = NULL; phba 6211 drivers/scsi/lpfc/lpfc_debugfs.c if (phba->hba_debugfs_root) { phba 6212 drivers/scsi/lpfc/lpfc_debugfs.c debugfs_remove(phba->hba_debugfs_root); /* fnX */ phba 6213 drivers/scsi/lpfc/lpfc_debugfs.c phba->hba_debugfs_root = NULL; phba 6239 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debug_dump_all_queues(struct lpfc_hba *phba) phba 6246 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debug_dump_wq(phba, DUMP_MBX, 0); phba 6247 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debug_dump_wq(phba, DUMP_ELS, 0); phba 6248 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debug_dump_wq(phba, DUMP_NVMELS, 0); phba 6250 drivers/scsi/lpfc/lpfc_debugfs.c for (idx = 0; idx < phba->cfg_hdw_queue; idx++) phba 6251 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debug_dump_wq(phba, DUMP_IO, idx); phba 6253 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debug_dump_hdr_rq(phba); phba 6254 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debug_dump_dat_rq(phba); phba 6258 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debug_dump_cq(phba, DUMP_MBX, 0); phba 6259 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debug_dump_cq(phba, DUMP_ELS, 0); phba 6260 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debug_dump_cq(phba, DUMP_NVMELS, 0); phba 6262 drivers/scsi/lpfc/lpfc_debugfs.c for (idx = 0; idx < phba->cfg_hdw_queue; idx++) phba 6263 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debug_dump_cq(phba, DUMP_IO, idx); phba 6268 drivers/scsi/lpfc/lpfc_debugfs.c for (idx = 0; idx < phba->cfg_hdw_queue; idx++) phba 6269 drivers/scsi/lpfc/lpfc_debugfs.c lpfc_debug_dump_hba_eq(phba, idx); phba 205 drivers/scsi/lpfc/lpfc_debugfs.h #define lpfc_nvmeio_data(phba, fmt, arg...) \ phba 207 drivers/scsi/lpfc/lpfc_debugfs.h if (phba->nvmeio_trc_on) \ phba 208 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debugfs_nvme_trc(phba, fmt, ##arg); \ phba 285 drivers/scsi/lpfc/lpfc_debugfs.h #define lpfc_nvmeio_data(phba, fmt, arg...) \ phba 389 drivers/scsi/lpfc/lpfc_debugfs.h dev_printk(KERN_ERR, &(((q->phba))->pcidev)->dev, phba 393 drivers/scsi/lpfc/lpfc_debugfs.h (q->phba)->brd_no, phba 412 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_wq(struct lpfc_hba *phba, int qtype, int wqidx) phba 418 drivers/scsi/lpfc/lpfc_debugfs.h wq = phba->sli4_hba.hdwq[wqidx].io_wq; phba 421 drivers/scsi/lpfc/lpfc_debugfs.h wq = phba->sli4_hba.mbx_wq; phba 424 drivers/scsi/lpfc/lpfc_debugfs.h wq = phba->sli4_hba.els_wq; phba 427 drivers/scsi/lpfc/lpfc_debugfs.h wq = phba->sli4_hba.nvmels_wq; phba 452 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_cq(struct lpfc_hba *phba, int qtype, int wqidx) phba 462 drivers/scsi/lpfc/lpfc_debugfs.h wq = phba->sli4_hba.hdwq[wqidx].io_wq; phba 463 drivers/scsi/lpfc/lpfc_debugfs.h cq = phba->sli4_hba.hdwq[wqidx].io_cq; phba 466 drivers/scsi/lpfc/lpfc_debugfs.h wq = phba->sli4_hba.mbx_wq; phba 467 drivers/scsi/lpfc/lpfc_debugfs.h cq = phba->sli4_hba.mbx_cq; phba 470 drivers/scsi/lpfc/lpfc_debugfs.h wq = phba->sli4_hba.els_wq; phba 471 drivers/scsi/lpfc/lpfc_debugfs.h cq = phba->sli4_hba.els_cq; phba 474 drivers/scsi/lpfc/lpfc_debugfs.h wq = phba->sli4_hba.nvmels_wq; phba 475 drivers/scsi/lpfc/lpfc_debugfs.h cq = phba->sli4_hba.nvmels_cq; phba 480 drivers/scsi/lpfc/lpfc_debugfs.h for (eqidx = 0; eqidx < phba->cfg_hdw_queue; eqidx++) { phba 481 drivers/scsi/lpfc/lpfc_debugfs.h eq = phba->sli4_hba.hdwq[eqidx].hba_eq; phba 485 drivers/scsi/lpfc/lpfc_debugfs.h if (eqidx == phba->cfg_hdw_queue) { phba 488 drivers/scsi/lpfc/lpfc_debugfs.h eq = phba->sli4_hba.hdwq[0].hba_eq; phba 514 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_hba_eq(struct lpfc_hba *phba, int qidx) phba 518 drivers/scsi/lpfc/lpfc_debugfs.h qp = phba->sli4_hba.hdwq[qidx].hba_eq; phba 532 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_dat_rq(struct lpfc_hba *phba) phba 535 drivers/scsi/lpfc/lpfc_debugfs.h phba->sli4_hba.dat_rq->queue_id); phba 536 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_q(phba->sli4_hba.dat_rq); phba 546 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_hdr_rq(struct lpfc_hba *phba) phba 549 drivers/scsi/lpfc/lpfc_debugfs.h phba->sli4_hba.hdr_rq->queue_id); phba 550 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_q(phba->sli4_hba.hdr_rq); phba 562 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_wq_by_id(struct lpfc_hba *phba, int qid) phba 566 drivers/scsi/lpfc/lpfc_debugfs.h for (wq_idx = 0; wq_idx < phba->cfg_hdw_queue; wq_idx++) phba 567 drivers/scsi/lpfc/lpfc_debugfs.h if (phba->sli4_hba.hdwq[wq_idx].io_wq->queue_id == qid) phba 569 drivers/scsi/lpfc/lpfc_debugfs.h if (wq_idx < phba->cfg_hdw_queue) { phba 571 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_q(phba->sli4_hba.hdwq[wq_idx].io_wq); phba 575 drivers/scsi/lpfc/lpfc_debugfs.h if (phba->sli4_hba.els_wq->queue_id == qid) { phba 577 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_q(phba->sli4_hba.els_wq); phba 581 drivers/scsi/lpfc/lpfc_debugfs.h if (phba->sli4_hba.nvmels_wq->queue_id == qid) { phba 583 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_q(phba->sli4_hba.nvmels_wq); phba 596 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_mq_by_id(struct lpfc_hba *phba, int qid) phba 598 drivers/scsi/lpfc/lpfc_debugfs.h if (phba->sli4_hba.mbx_wq->queue_id == qid) { phba 600 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_q(phba->sli4_hba.mbx_wq); phba 613 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_rq_by_id(struct lpfc_hba *phba, int qid) phba 615 drivers/scsi/lpfc/lpfc_debugfs.h if (phba->sli4_hba.hdr_rq->queue_id == qid) { phba 617 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_q(phba->sli4_hba.hdr_rq); phba 620 drivers/scsi/lpfc/lpfc_debugfs.h if (phba->sli4_hba.dat_rq->queue_id == qid) { phba 622 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_q(phba->sli4_hba.dat_rq); phba 635 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_cq_by_id(struct lpfc_hba *phba, int qid) phba 639 drivers/scsi/lpfc/lpfc_debugfs.h for (cq_idx = 0; cq_idx < phba->cfg_hdw_queue; cq_idx++) phba 640 drivers/scsi/lpfc/lpfc_debugfs.h if (phba->sli4_hba.hdwq[cq_idx].io_cq->queue_id == qid) phba 643 drivers/scsi/lpfc/lpfc_debugfs.h if (cq_idx < phba->cfg_hdw_queue) { phba 645 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_q(phba->sli4_hba.hdwq[cq_idx].io_cq); phba 649 drivers/scsi/lpfc/lpfc_debugfs.h if (phba->sli4_hba.els_cq->queue_id == qid) { phba 651 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_q(phba->sli4_hba.els_cq); phba 655 drivers/scsi/lpfc/lpfc_debugfs.h if (phba->sli4_hba.nvmels_cq->queue_id == qid) { phba 657 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_q(phba->sli4_hba.nvmels_cq); phba 661 drivers/scsi/lpfc/lpfc_debugfs.h if (phba->sli4_hba.mbx_cq->queue_id == qid) { phba 663 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_q(phba->sli4_hba.mbx_cq); phba 676 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_eq_by_id(struct lpfc_hba *phba, int qid) phba 680 drivers/scsi/lpfc/lpfc_debugfs.h for (eq_idx = 0; eq_idx < phba->cfg_hdw_queue; eq_idx++) phba 681 drivers/scsi/lpfc/lpfc_debugfs.h if (phba->sli4_hba.hdwq[eq_idx].hba_eq->queue_id == qid) phba 684 drivers/scsi/lpfc/lpfc_debugfs.h if (eq_idx < phba->cfg_hdw_queue) { phba 686 drivers/scsi/lpfc/lpfc_debugfs.h lpfc_debug_dump_q(phba->sli4_hba.hdwq[eq_idx].hba_eq); phba 125 drivers/scsi/lpfc/lpfc_disc.h struct lpfc_hba *phba; phba 156 drivers/scsi/lpfc/lpfc_disc.h #define lpfc_ndlp_check_qdepth(phba, ndlp) \ phba 157 drivers/scsi/lpfc/lpfc_disc.h (ndlp->cmd_qdepth < phba->sli4_hba.max_cfg_param.max_xri) phba 56 drivers/scsi/lpfc/lpfc_els.c static int lpfc_issue_fabric_iocb(struct lpfc_hba *phba, phba 87 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 91 drivers/scsi/lpfc/lpfc_els.c phba->link_state == LPFC_LINK_DOWN || phba 92 drivers/scsi/lpfc/lpfc_els.c phba->sli_rev > LPFC_SLI_REV3) phba 96 drivers/scsi/lpfc/lpfc_els.c if (lpfc_readl(phba->HAregaddr, &ha_copy)) phba 106 drivers/scsi/lpfc/lpfc_els.c phba->pport->port_state); phba 118 drivers/scsi/lpfc/lpfc_els.c if (phba->link_state != LPFC_CLEAR_LA) phba 119 drivers/scsi/lpfc/lpfc_els.c lpfc_issue_clear_la(phba, vport); phba 158 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 165 drivers/scsi/lpfc/lpfc_els.c if (!lpfc_is_link_up(phba)) phba 169 drivers/scsi/lpfc/lpfc_els.c elsiocb = lpfc_sli_get_iocbq(phba); phba 179 drivers/scsi/lpfc/lpfc_els.c (phba->hba_flag & HBA_FIP_SUPPORT) && phba 209 drivers/scsi/lpfc/lpfc_els.c pcmd->virt = lpfc_mbuf_alloc(phba, MEM_PRI, &pcmd->phys); phba 219 drivers/scsi/lpfc/lpfc_els.c prsp->virt = lpfc_mbuf_alloc(phba, MEM_PRI, phba 230 drivers/scsi/lpfc/lpfc_els.c pbuflist->virt = lpfc_mbuf_alloc(phba, MEM_PRI, phba 248 drivers/scsi/lpfc/lpfc_els.c icmd->ulpTimeout = phba->fc_ratov; phba 250 drivers/scsi/lpfc/lpfc_els.c icmd->ulpTimeout = phba->fc_ratov * 2; phba 268 drivers/scsi/lpfc/lpfc_els.c if ((phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) || phba 269 drivers/scsi/lpfc/lpfc_els.c ((phba->sli_rev == LPFC_SLI_REV4) && phba 276 drivers/scsi/lpfc/lpfc_els.c icmd->ulpContext = phba->vpi_ids[vport->vpi]; phba 311 drivers/scsi/lpfc/lpfc_els.c elsiocb->drvrTimeout = (phba->fc_ratov << 1) + LPFC_DRVR_TIMEOUT; phba 339 drivers/scsi/lpfc/lpfc_els.c lpfc_mbuf_free(phba, prsp->virt, prsp->phys); phba 343 drivers/scsi/lpfc/lpfc_els.c lpfc_mbuf_free(phba, pcmd->virt, pcmd->phys); phba 348 drivers/scsi/lpfc/lpfc_els.c lpfc_sli_release_iocbq(phba, elsiocb); phba 371 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 379 drivers/scsi/lpfc/lpfc_els.c sp = &phba->fc_fabparam; phba 386 drivers/scsi/lpfc/lpfc_els.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 393 drivers/scsi/lpfc/lpfc_els.c lpfc_config_link(phba, mbox); phba 397 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); phba 403 drivers/scsi/lpfc/lpfc_els.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 408 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_reg_rpi(phba, vport->vpi, Fabric_DID, (uint8_t *)sp, mbox, phba 422 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); phba 436 drivers/scsi/lpfc/lpfc_els.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 439 drivers/scsi/lpfc/lpfc_els.c mempool_free(mbox, phba->mbox_mem_pool); phba 462 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 469 drivers/scsi/lpfc/lpfc_els.c if ((phba->sli_rev == LPFC_SLI_REV4) && phba 470 drivers/scsi/lpfc/lpfc_els.c !(phba->link_flag & LS_LOOPBACK_MODE) && phba 479 drivers/scsi/lpfc/lpfc_els.c mboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 492 drivers/scsi/lpfc/lpfc_els.c dmabuf->virt = lpfc_mbuf_alloc(phba, MEM_PRI, &dmabuf->phys); phba 497 drivers/scsi/lpfc/lpfc_els.c memcpy(dmabuf->virt, &phba->fc_fabparam, phba 510 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_NOWAIT); phba 519 drivers/scsi/lpfc/lpfc_els.c mempool_free(mboxq, phba->mbox_mem_pool); phba 522 drivers/scsi/lpfc/lpfc_els.c lpfc_mbuf_free(phba, dmabuf->virt, dmabuf->phys); phba 546 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 551 drivers/scsi/lpfc/lpfc_els.c mboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 553 drivers/scsi/lpfc/lpfc_els.c lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY|LOG_MBOX, phba 555 drivers/scsi/lpfc/lpfc_els.c "HBA state x%x\n", phba->pport->port_state); phba 563 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_NOWAIT); phba 565 drivers/scsi/lpfc/lpfc_els.c lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY|LOG_MBOX, phba 568 drivers/scsi/lpfc/lpfc_els.c rc, phba->pport->port_state); phba 569 drivers/scsi/lpfc/lpfc_els.c mempool_free(mboxq, phba->mbox_mem_pool); phba 602 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 626 drivers/scsi/lpfc/lpfc_els.c (vport->fc_prevDID || phba->cfg_delay_discovery)) { phba 661 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 670 drivers/scsi/lpfc/lpfc_els.c phba->fc_edtov = be32_to_cpu(sp->cmn.e_d_tov); phba 672 drivers/scsi/lpfc/lpfc_els.c phba->fc_edtov = (phba->fc_edtov + 999999) / 1000000; phba 674 drivers/scsi/lpfc/lpfc_els.c phba->fc_edtovResol = sp->cmn.edtovResolution; phba 675 drivers/scsi/lpfc/lpfc_els.c phba->fc_ratov = (be32_to_cpu(sp->cmn.w2.r_a_tov) + 999) / 1000; phba 677 drivers/scsi/lpfc/lpfc_els.c if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { phba 701 drivers/scsi/lpfc/lpfc_els.c if (phba->cfg_enable_SmartSAN || phba 702 drivers/scsi/lpfc/lpfc_els.c (phba->cfg_fdmi_on == LPFC_FDMI_SUPPORT)) { phba 705 drivers/scsi/lpfc/lpfc_els.c if (phba->cfg_enable_SmartSAN) phba 719 drivers/scsi/lpfc/lpfc_els.c memcpy(&phba->fc_fabparam, sp, sizeof(struct serv_parm)); phba 721 drivers/scsi/lpfc/lpfc_els.c if (phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) { phba 728 drivers/scsi/lpfc/lpfc_els.c spin_lock_irq(&phba->hbalock); phba 729 drivers/scsi/lpfc/lpfc_els.c phba->link_flag |= LS_NPIV_FAB_SUPPORTED; phba 730 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irq(&phba->hbalock); phba 738 drivers/scsi/lpfc/lpfc_els.c spin_lock_irq(&phba->hbalock); phba 739 drivers/scsi/lpfc/lpfc_els.c phba->link_flag &= ~LS_NPIV_FAB_SUPPORTED; phba 740 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irq(&phba->hbalock); phba 748 drivers/scsi/lpfc/lpfc_els.c if ((phba->sli_rev == LPFC_SLI_REV4) && phba 749 drivers/scsi/lpfc/lpfc_els.c (phba->sli4_hba.lnk_info.lnk_tp == LPFC_LNK_TYPE_FC)) { phba 752 drivers/scsi/lpfc/lpfc_els.c lpfc_unregister_fcf_prep(phba); phba 779 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 794 drivers/scsi/lpfc/lpfc_els.c } else if ((phba->sli_rev == LPFC_SLI_REV4) && phba 801 drivers/scsi/lpfc/lpfc_els.c lpfc_register_new_vport(phba, vport, ndlp); phba 805 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev < LPFC_SLI_REV4) { phba 807 drivers/scsi/lpfc/lpfc_els.c if (phba->sli3_options & LPFC_SLI3_NPIV_ENABLED && phba 809 drivers/scsi/lpfc/lpfc_els.c lpfc_register_new_vport(phba, vport, ndlp); phba 817 drivers/scsi/lpfc/lpfc_els.c lpfc_start_fdiscs(phba); phba 818 drivers/scsi/lpfc/lpfc_els.c lpfc_do_scr_ns_plogi(phba, vport); phba 856 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 866 drivers/scsi/lpfc/lpfc_els.c phba->sli3_options &= ~LPFC_SLI3_NPIV_ENABLED; phba 869 drivers/scsi/lpfc/lpfc_els.c if ((phba->sli_rev == LPFC_SLI_REV4) && phba->fc_topology_changed) { phba 870 drivers/scsi/lpfc/lpfc_els.c lpfc_unregister_fcf_prep(phba); phba 875 drivers/scsi/lpfc/lpfc_els.c phba->fc_topology_changed = 0; phba 927 drivers/scsi/lpfc/lpfc_els.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 931 drivers/scsi/lpfc/lpfc_els.c lpfc_config_link(phba, mbox); phba 935 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); phba 937 drivers/scsi/lpfc/lpfc_els.c mempool_free(mbox, phba->mbox_mem_pool); phba 980 drivers/scsi/lpfc/lpfc_els.c lpfc_cmpl_els_flogi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 1011 drivers/scsi/lpfc/lpfc_els.c if ((phba->hba_flag & HBA_FIP_SUPPORT) && phba 1012 drivers/scsi/lpfc/lpfc_els.c (phba->fcf.fcf_flag & FCF_DISCOVERY)) { phba 1013 drivers/scsi/lpfc/lpfc_els.c if (phba->link_state < LPFC_LINK_UP) phba 1015 drivers/scsi/lpfc/lpfc_els.c if ((phba->fcoe_cvl_eventtag_attn == phba 1016 drivers/scsi/lpfc/lpfc_els.c phba->fcoe_cvl_eventtag) && phba 1022 drivers/scsi/lpfc/lpfc_els.c phba->fcoe_cvl_eventtag_attn = phba 1023 drivers/scsi/lpfc/lpfc_els.c phba->fcoe_cvl_eventtag; phba 1024 drivers/scsi/lpfc/lpfc_els.c lpfc_printf_log(phba, KERN_WARNING, LOG_FIP | LOG_ELS, phba 1028 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.fcf_indx, phba 1031 drivers/scsi/lpfc/lpfc_els.c lpfc_sli4_set_fcf_flogi_fail(phba, phba 1032 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.fcf_indx); phba 1033 drivers/scsi/lpfc/lpfc_els.c fcf_index = lpfc_sli4_fcf_rr_next_index_get(phba); phba 1048 drivers/scsi/lpfc/lpfc_els.c irsp->ulpTimeout, phba->hba_flag, phba 1049 drivers/scsi/lpfc/lpfc_els.c phba->fcf.fcf_flag); phba 1052 drivers/scsi/lpfc/lpfc_els.c if (lpfc_els_retry(phba, cmdiocb, rspiocb)) phba 1076 drivers/scsi/lpfc/lpfc_els.c if (phba->alpa_map[0] == 0) phba 1078 drivers/scsi/lpfc/lpfc_els.c if ((phba->sli_rev == LPFC_SLI_REV4) && phba 1081 drivers/scsi/lpfc/lpfc_els.c phba->fc_topology_changed)) { phba 1083 drivers/scsi/lpfc/lpfc_els.c if (phba->fc_topology_changed) { phba 1084 drivers/scsi/lpfc/lpfc_els.c lpfc_unregister_fcf_prep(phba); phba 1088 drivers/scsi/lpfc/lpfc_els.c phba->fc_topology_changed = 0; phba 1132 drivers/scsi/lpfc/lpfc_els.c else if (!(phba->hba_flag & HBA_FCOE_MODE)) phba 1142 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.fcf_indx, phba 1143 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.switch_name[0], phba 1144 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.switch_name[1], phba 1145 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.switch_name[2], phba 1146 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.switch_name[3], phba 1147 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.switch_name[4], phba 1148 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.switch_name[5], phba 1149 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.switch_name[6], phba 1150 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.switch_name[7], phba 1151 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.fabric_name[0], phba 1152 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.fabric_name[1], phba 1153 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.fabric_name[2], phba 1154 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.fabric_name[3], phba 1155 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.fabric_name[4], phba 1156 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.fabric_name[5], phba 1157 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.fabric_name[6], phba 1158 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.fabric_name[7]); phba 1160 drivers/scsi/lpfc/lpfc_els.c spin_lock_irq(&phba->hbalock); phba 1161 drivers/scsi/lpfc/lpfc_els.c phba->fcf.fcf_flag &= ~FCF_DISCOVERY; phba 1162 drivers/scsi/lpfc/lpfc_els.c phba->hba_flag &= ~(FCF_RR_INPROG | HBA_DEVLOSS_TMO); phba 1163 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irq(&phba->hbalock); phba 1164 drivers/scsi/lpfc/lpfc_els.c phba->fcf.fcf_redisc_attempted = 0; /* reset */ phba 1169 drivers/scsi/lpfc/lpfc_els.c if (phba->hba_flag & HBA_FIP_SUPPORT) phba 1174 drivers/scsi/lpfc/lpfc_els.c phba->fcf.current_rec.fcf_indx); phba 1175 drivers/scsi/lpfc/lpfc_els.c spin_lock_irq(&phba->hbalock); phba 1176 drivers/scsi/lpfc/lpfc_els.c phba->fcf.fcf_flag &= ~FCF_DISCOVERY; phba 1177 drivers/scsi/lpfc/lpfc_els.c phba->hba_flag &= ~(FCF_RR_INPROG | HBA_DEVLOSS_TMO); phba 1178 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irq(&phba->hbalock); phba 1179 drivers/scsi/lpfc/lpfc_els.c phba->fcf.fcf_redisc_attempted = 0; /* reset */ phba 1185 drivers/scsi/lpfc/lpfc_els.c spin_lock_irq(&phba->hbalock); phba 1186 drivers/scsi/lpfc/lpfc_els.c phba->fcf.fcf_flag &= ~FCF_DISCOVERY; phba 1187 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irq(&phba->hbalock); phba 1202 drivers/scsi/lpfc/lpfc_els.c (phba->link_state != LPFC_CLEAR_LA)) { phba 1204 drivers/scsi/lpfc/lpfc_els.c lpfc_issue_clear_la(phba, vport); phba 1207 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, cmdiocb); phba 1219 drivers/scsi/lpfc/lpfc_els.c lpfc_cmpl_els_link_down(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 1230 drivers/scsi/lpfc/lpfc_els.c lpfc_printf_log(phba, KERN_INFO, LOG_ELS, phba 1238 drivers/scsi/lpfc/lpfc_els.c atomic_dec(&phba->fabric_iocb_count); phba 1240 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, cmdiocb); phba 1269 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 1305 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 1306 drivers/scsi/lpfc/lpfc_els.c if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) == phba 1312 drivers/scsi/lpfc/lpfc_els.c elsiocb->iocb.ulpContext = phba->fcf.fcfi; phba 1321 drivers/scsi/lpfc/lpfc_els.c if (phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) { phba 1330 drivers/scsi/lpfc/lpfc_els.c if (phba->fc_topology != LPFC_TOPOLOGY_LOOP) { phba 1335 drivers/scsi/lpfc/lpfc_els.c tmo = phba->fc_ratov; phba 1336 drivers/scsi/lpfc/lpfc_els.c phba->fc_ratov = LPFC_DISC_FLOGI_TMO; phba 1338 drivers/scsi/lpfc/lpfc_els.c phba->fc_ratov = tmo; phba 1340 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitFLOGI++; phba 1345 drivers/scsi/lpfc/lpfc_els.c phba->sli3_options, 0, 0); phba 1347 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_issue_fabric_iocb(phba, elsiocb); phba 1349 drivers/scsi/lpfc/lpfc_els.c phba->hba_flag |= HBA_FLOGI_ISSUED; phba 1352 drivers/scsi/lpfc/lpfc_els.c if (phba->defer_flogi_acc_flag) { phba 1358 drivers/scsi/lpfc/lpfc_els.c defer_flogi_acc.iocb.ulpContext = phba->defer_flogi_acc_rx_id; phba 1360 drivers/scsi/lpfc/lpfc_els.c phba->defer_flogi_acc_ox_id; phba 1365 drivers/scsi/lpfc/lpfc_els.c phba->defer_flogi_acc_rx_id, phba 1366 drivers/scsi/lpfc/lpfc_els.c phba->defer_flogi_acc_ox_id, phba->hba_flag); phba 1372 drivers/scsi/lpfc/lpfc_els.c phba->defer_flogi_acc_flag = false; phba 1378 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 1399 drivers/scsi/lpfc/lpfc_els.c lpfc_els_abort_flogi(struct lpfc_hba *phba) phba 1407 drivers/scsi/lpfc/lpfc_els.c lpfc_printf_log(phba, KERN_INFO, LOG_DISCOVERY, phba 1411 drivers/scsi/lpfc/lpfc_els.c pring = lpfc_phba_elsring(phba); phba 1419 drivers/scsi/lpfc/lpfc_els.c spin_lock_irq(&phba->hbalock); phba 1426 drivers/scsi/lpfc/lpfc_els.c lpfc_sli_issue_abort_iotag(phba, pring, iocb); phba 1429 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irq(&phba->hbalock); phba 1596 drivers/scsi/lpfc/lpfc_els.c lpfc_plogi_confirm_nport(struct lpfc_hba *phba, uint32_t *prsp, phba 1633 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 1634 drivers/scsi/lpfc/lpfc_els.c active_rrqs_xri_bitmap = mempool_alloc(phba->active_rrq_pool, phba 1638 drivers/scsi/lpfc/lpfc_els.c phba->cfg_rrq_xri_bitmap_sz); phba 1655 drivers/scsi/lpfc/lpfc_els.c phba->active_rrq_pool); phba 1662 drivers/scsi/lpfc/lpfc_els.c phba->active_rrq_pool); phba 1671 drivers/scsi/lpfc/lpfc_els.c phba->active_rrq_pool); phba 1679 drivers/scsi/lpfc/lpfc_els.c phba->active_rrq_pool); phba 1683 drivers/scsi/lpfc/lpfc_els.c if ((phba->sli_rev == LPFC_SLI_REV4) && active_rrqs_xri_bitmap) phba 1686 drivers/scsi/lpfc/lpfc_els.c phba->cfg_rrq_xri_bitmap_sz); phba 1689 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4 && phba 1693 drivers/scsi/lpfc/lpfc_els.c phba->cfg_rrq_xri_bitmap_sz); phba 1709 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4) phba 1712 drivers/scsi/lpfc/lpfc_els.c phba->cfg_rrq_xri_bitmap_sz); phba 1789 drivers/scsi/lpfc/lpfc_els.c spin_lock_irq(&phba->ndlp_lock); phba 1791 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irq(&phba->ndlp_lock); phba 1800 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4 && phba 1804 drivers/scsi/lpfc/lpfc_els.c phba->cfg_rrq_xri_bitmap_sz); phba 1823 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4 && phba 1827 drivers/scsi/lpfc/lpfc_els.c phba->cfg_rrq_xri_bitmap_sz); phba 1859 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4 && phba 1862 drivers/scsi/lpfc/lpfc_els.c phba->active_rrq_pool); phba 1917 drivers/scsi/lpfc/lpfc_els.c lpfc_cmpl_els_rrq(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 1959 drivers/scsi/lpfc/lpfc_els.c (phba)->pport->cfg_log_verbose & LOG_ELS) phba 1967 drivers/scsi/lpfc/lpfc_els.c lpfc_clr_rrq_active(phba, rrq->xritag, rrq); phba 1968 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, cmdiocb); phba 1992 drivers/scsi/lpfc/lpfc_els.c lpfc_cmpl_els_plogi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 2048 drivers/scsi/lpfc/lpfc_els.c if (lpfc_els_retry(phba, cmdiocb, rspiocb)) { phba 2061 drivers/scsi/lpfc/lpfc_els.c (phba)->pport->cfg_log_verbose & LOG_ELS) phba 2075 drivers/scsi/lpfc/lpfc_els.c ndlp = lpfc_plogi_confirm_nport(phba, prsp->virt, ndlp); phba 2095 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, cmdiocb); phba 2123 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 2201 drivers/scsi/lpfc/lpfc_els.c if (phba->sli.sli_flag & LPFC_SLI_SUPPRESS_RSP) { phba 2207 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitPLOGI++; phba 2209 drivers/scsi/lpfc/lpfc_els.c ret = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); phba 2212 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 2232 drivers/scsi/lpfc/lpfc_els.c lpfc_cmpl_els_prli(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 2272 drivers/scsi/lpfc/lpfc_els.c if (lpfc_els_retry(phba, cmdiocb, rspiocb)) { phba 2310 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, cmdiocb); phba 2340 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 2354 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4 && phba 2388 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV3 && phba 2421 drivers/scsi/lpfc/lpfc_els.c if (phba->vpd.rev.feaLevelHigh >= 0x02) { phba 2448 drivers/scsi/lpfc/lpfc_els.c if (phba->nsler) { phba 2454 drivers/scsi/lpfc/lpfc_els.c if ((phba->cfg_nvme_enable_fb) && phba 2455 drivers/scsi/lpfc/lpfc_els.c !phba->nvmet_support) phba 2458 drivers/scsi/lpfc/lpfc_els.c if (phba->nvmet_support) { phba 2478 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitPRLI++; phba 2490 drivers/scsi/lpfc/lpfc_els.c if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == phba 2495 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 2503 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4 && phba 2550 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 2556 drivers/scsi/lpfc/lpfc_els.c if ((phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) && phba 2558 drivers/scsi/lpfc/lpfc_els.c (phba->sli_rev < LPFC_SLI_REV4)) { phba 2567 drivers/scsi/lpfc/lpfc_els.c lpfc_issue_clear_la(phba, vport); phba 2568 drivers/scsi/lpfc/lpfc_els.c lpfc_issue_reg_vpi(phba, vport); phba 2577 drivers/scsi/lpfc/lpfc_els.c lpfc_issue_clear_la(phba, vport); phba 2644 drivers/scsi/lpfc/lpfc_els.c lpfc_cmpl_els_adisc(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 2687 drivers/scsi/lpfc/lpfc_els.c if (lpfc_els_retry(phba, cmdiocb, rspiocb)) { phba 2715 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, cmdiocb); phba 2744 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 2764 drivers/scsi/lpfc/lpfc_els.c ap->hardAL_PA = phba->fc_pref_ALPA; phba 2773 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitADISC++; phba 2778 drivers/scsi/lpfc/lpfc_els.c if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == phba 2783 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 2802 drivers/scsi/lpfc/lpfc_els.c lpfc_cmpl_els_logo(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 2871 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, cmdiocb); phba 2875 drivers/scsi/lpfc/lpfc_els.c phba->pport->fc_myDID = 0; phba 2879 drivers/scsi/lpfc/lpfc_els.c if (phba->nvmet_support) phba 2880 drivers/scsi/lpfc/lpfc_els.c lpfc_nvmet_update_targetport(phba); phba 2882 drivers/scsi/lpfc/lpfc_els.c lpfc_nvme_update_localport(phba->pport); phba 2885 drivers/scsi/lpfc/lpfc_els.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 2887 drivers/scsi/lpfc/lpfc_els.c lpfc_config_link(phba, mbox); phba 2890 drivers/scsi/lpfc/lpfc_els.c if (lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT) == phba 2892 drivers/scsi/lpfc/lpfc_els.c mempool_free(mbox, phba->mbox_mem_pool); phba 2948 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 2980 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitLOGO++; phba 2986 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); phba 2991 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 3019 drivers/scsi/lpfc/lpfc_els.c lpfc_cmpl_els_cmd(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 3038 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, cmdiocb); phba 3067 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 3111 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitSCR++; phba 3113 drivers/scsi/lpfc/lpfc_els.c if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == phba 3120 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 3154 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 3165 drivers/scsi/lpfc/lpfc_els.c if (phba->fc_topology == LPFC_TOPOLOGY_LOOP && phba 3220 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitRSCN++; phba 3222 drivers/scsi/lpfc/lpfc_els.c if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == phba 3229 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 3266 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 3327 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitFARPR++; phba 3329 drivers/scsi/lpfc/lpfc_els.c if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == phba 3336 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 3420 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 3424 drivers/scsi/lpfc/lpfc_els.c spin_lock_irqsave(&phba->hbalock, flags); phba 3426 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 3436 drivers/scsi/lpfc/lpfc_els.c list_add_tail(&evtp->evt_listp, &phba->work_list); phba 3437 drivers/scsi/lpfc/lpfc_els.c lpfc_worker_wake_up(phba); phba 3439 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 3531 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 3538 drivers/scsi/lpfc/lpfc_els.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 3540 drivers/scsi/lpfc/lpfc_els.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, phba 3546 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev <= LPFC_SLI_REV3) { phba 3547 drivers/scsi/lpfc/lpfc_els.c spin_lock_irq(&phba->hbalock); phba 3548 drivers/scsi/lpfc/lpfc_els.c phba->sli.sli_flag |= LPFC_PROCESS_LA; phba 3549 drivers/scsi/lpfc/lpfc_els.c control = readl(phba->HCregaddr); phba 3551 drivers/scsi/lpfc/lpfc_els.c writel(control, phba->HCregaddr); phba 3552 drivers/scsi/lpfc/lpfc_els.c readl(phba->HCregaddr); /* flush */ phba 3553 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irq(&phba->hbalock); phba 3556 drivers/scsi/lpfc/lpfc_els.c lpfc_init_link(phba, mbox, phba->cfg_topology, phba 3557 drivers/scsi/lpfc/lpfc_els.c phba->cfg_link_speed); phba 3560 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); phba 3562 drivers/scsi/lpfc/lpfc_els.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, phba 3565 drivers/scsi/lpfc/lpfc_els.c mempool_free(mbox, phba->mbox_mem_pool); phba 3594 drivers/scsi/lpfc/lpfc_els.c lpfc_els_retry(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 3639 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 3644 drivers/scsi/lpfc/lpfc_els.c lpfc_set_rrq_active(phba, ndlp, phba 3653 drivers/scsi/lpfc/lpfc_els.c phba->pcidev->device) { phba 3654 drivers/scsi/lpfc/lpfc_els.c phba->fc_topology = LPFC_TOPOLOGY_LOOP; phba 3655 drivers/scsi/lpfc/lpfc_els.c phba->pport->fc_myDID = 0; phba 3656 drivers/scsi/lpfc/lpfc_els.c phba->alpa_map[0] = 0; phba 3657 drivers/scsi/lpfc/lpfc_els.c phba->alpa_map[1] = 0; phba 3773 drivers/scsi/lpfc/lpfc_els.c if ((phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) && phba 3823 drivers/scsi/lpfc/lpfc_els.c if ((phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) && phba 3885 drivers/scsi/lpfc/lpfc_els.c (phba->fc_topology != LPFC_TOPOLOGY_LOOP) && phba 3890 drivers/scsi/lpfc/lpfc_els.c if (phba->link_flag != LS_LOOPBACK_MODE) phba 3908 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRetryExceeded++; phba 3919 drivers/scsi/lpfc/lpfc_els.c if (phba->fcf.fcf_flag & FCF_DISCOVERY) { phba 3947 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitRetry++; phba 3949 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsDelayRetry++; phba 4037 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_data(struct lpfc_hba *phba, struct lpfc_dmabuf *buf_ptr1) phba 4046 drivers/scsi/lpfc/lpfc_els.c lpfc_mbuf_free(phba, buf_ptr->virt, buf_ptr->phys); phba 4049 drivers/scsi/lpfc/lpfc_els.c lpfc_mbuf_free(phba, buf_ptr1->virt, buf_ptr1->phys); phba 4067 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_bpl(struct lpfc_hba *phba, struct lpfc_dmabuf *buf_ptr) phba 4069 drivers/scsi/lpfc/lpfc_els.c lpfc_mbuf_free(phba, buf_ptr->virt, buf_ptr->phys); phba 4102 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *elsiocb) phba 4138 drivers/scsi/lpfc/lpfc_els.c spin_lock_irq(&phba->hbalock); phba 4145 drivers/scsi/lpfc/lpfc_els.c &phba->elsbuf); phba 4146 drivers/scsi/lpfc/lpfc_els.c phba->elsbuf_cnt++; phba 4149 drivers/scsi/lpfc/lpfc_els.c list_add_tail(&buf_ptr->list, &phba->elsbuf); phba 4150 drivers/scsi/lpfc/lpfc_els.c phba->elsbuf_cnt++; phba 4151 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irq(&phba->hbalock); phba 4155 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_data(phba, buf_ptr1); phba 4162 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_bpl(phba, buf_ptr); phba 4165 drivers/scsi/lpfc/lpfc_els.c lpfc_sli_release_iocbq(phba, elsiocb); phba 4187 drivers/scsi/lpfc/lpfc_els.c lpfc_cmpl_els_logo_acc(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 4224 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, cmdiocb); phba 4241 drivers/scsi/lpfc/lpfc_els.c lpfc_mbx_cmpl_dflt_rpi(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 4249 drivers/scsi/lpfc/lpfc_els.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 4251 drivers/scsi/lpfc/lpfc_els.c mempool_free(pmb, phba->mbox_mem_pool); phba 4290 drivers/scsi/lpfc/lpfc_els.c lpfc_cmpl_els_rsp(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 4325 drivers/scsi/lpfc/lpfc_els.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 4328 drivers/scsi/lpfc/lpfc_els.c mempool_free(mbox, phba->mbox_mem_pool); phba 4370 drivers/scsi/lpfc/lpfc_els.c lpfc_mbuf_free(phba, mp->virt, phba 4374 drivers/scsi/lpfc/lpfc_els.c mempool_free(mbox, phba->mbox_mem_pool); phba 4395 drivers/scsi/lpfc/lpfc_els.c if (lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT) phba 4437 drivers/scsi/lpfc/lpfc_els.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 4440 drivers/scsi/lpfc/lpfc_els.c mempool_free(mbox, phba->mbox_mem_pool); phba 4463 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, cmdiocb); phba 4498 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 4555 drivers/scsi/lpfc/lpfc_els.c memcpy(sp, &phba->fc_fabparam, phba 4584 drivers/scsi/lpfc/lpfc_els.c if (phba->sli.sli_flag & LPFC_SLI_SUPPRESS_RSP) { phba 4632 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitACC++; phba 4633 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); phba 4635 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 4668 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 4707 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitLSRJT++; phba 4709 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); phba 4712 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 4741 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 4773 drivers/scsi/lpfc/lpfc_els.c ap->hardAL_PA = phba->fc_pref_ALPA; phba 4782 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitACC++; phba 4784 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); phba 4786 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 4824 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 4885 drivers/scsi/lpfc/lpfc_els.c vpd = &phba->vpd; phba 4912 drivers/scsi/lpfc/lpfc_els.c if (phba->nvmet_support) { phba 4915 drivers/scsi/lpfc/lpfc_els.c if (phba->cfg_nvme_enable_fb) { phba 4923 drivers/scsi/lpfc/lpfc_els.c phba->cfg_nvmet_fb_size); phba 4949 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitACC++; phba 4952 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); phba 4954 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 4990 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 5049 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitACC++; phba 5052 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); phba 5054 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 5072 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 5103 drivers/scsi/lpfc/lpfc_els.c lpfc_clr_rrq_active(phba, xri, prrq); phba 5122 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 5156 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitACC++; phba 5159 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); phba 5161 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 5401 drivers/scsi/lpfc/lpfc_els.c if (vport->phba->fc_topology != LPFC_TOPOLOGY_LOOP) { phba 5402 drivers/scsi/lpfc/lpfc_els.c bbCredit = vport->phba->fc_fabparam.cmn.bbCreditLsb | phba 5403 drivers/scsi/lpfc/lpfc_els.c (vport->phba->fc_fabparam.cmn.bbCreditMsb << 8); phba 5416 drivers/scsi/lpfc/lpfc_els.c lpfc_rdp_res_oed_temp_desc(struct lpfc_hba *phba, phba 5428 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_alarm & LPFC_TRANSGRESSION_HIGH_TEMPERATURE) phba 5430 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_alarm & LPFC_TRANSGRESSION_LOW_TEMPERATURE) phba 5432 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_warning & LPFC_TRANSGRESSION_HIGH_TEMPERATURE) phba 5434 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_warning & LPFC_TRANSGRESSION_LOW_TEMPERATURE) phba 5444 drivers/scsi/lpfc/lpfc_els.c lpfc_rdp_res_oed_voltage_desc(struct lpfc_hba *phba, phba 5457 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_alarm & LPFC_TRANSGRESSION_HIGH_VOLTAGE) phba 5459 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_alarm & LPFC_TRANSGRESSION_LOW_VOLTAGE) phba 5461 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_warning & LPFC_TRANSGRESSION_HIGH_VOLTAGE) phba 5463 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_warning & LPFC_TRANSGRESSION_LOW_VOLTAGE) phba 5473 drivers/scsi/lpfc/lpfc_els.c lpfc_rdp_res_oed_txbias_desc(struct lpfc_hba *phba, phba 5486 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_alarm & LPFC_TRANSGRESSION_HIGH_TXBIAS) phba 5488 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_alarm & LPFC_TRANSGRESSION_LOW_TXBIAS) phba 5490 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_warning & LPFC_TRANSGRESSION_HIGH_TXBIAS) phba 5492 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_warning & LPFC_TRANSGRESSION_LOW_TXBIAS) phba 5502 drivers/scsi/lpfc/lpfc_els.c lpfc_rdp_res_oed_txpower_desc(struct lpfc_hba *phba, phba 5515 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_alarm & LPFC_TRANSGRESSION_HIGH_TXPOWER) phba 5517 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_alarm & LPFC_TRANSGRESSION_LOW_TXPOWER) phba 5519 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_warning & LPFC_TRANSGRESSION_HIGH_TXPOWER) phba 5521 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_warning & LPFC_TRANSGRESSION_LOW_TXPOWER) phba 5532 drivers/scsi/lpfc/lpfc_els.c lpfc_rdp_res_oed_rxpower_desc(struct lpfc_hba *phba, phba 5545 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_alarm & LPFC_TRANSGRESSION_HIGH_RXPOWER) phba 5547 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_alarm & LPFC_TRANSGRESSION_LOW_RXPOWER) phba 5549 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_warning & LPFC_TRANSGRESSION_HIGH_RXPOWER) phba 5551 drivers/scsi/lpfc/lpfc_els.c if (phba->sfp_warning & LPFC_TRANSGRESSION_LOW_RXPOWER) phba 5592 drivers/scsi/lpfc/lpfc_els.c lpfc_rdp_res_speed(struct fc_rdp_port_speed_desc *desc, struct lpfc_hba *phba) phba 5599 drivers/scsi/lpfc/lpfc_els.c switch (phba->fc_linkspeed) { phba 5631 drivers/scsi/lpfc/lpfc_els.c if (phba->lmt & LMT_128Gb) phba 5633 drivers/scsi/lpfc/lpfc_els.c if (phba->lmt & LMT_64Gb) phba 5635 drivers/scsi/lpfc/lpfc_els.c if (phba->lmt & LMT_32Gb) phba 5637 drivers/scsi/lpfc/lpfc_els.c if (phba->lmt & LMT_16Gb) phba 5639 drivers/scsi/lpfc/lpfc_els.c if (phba->lmt & LMT_10Gb) phba 5641 drivers/scsi/lpfc/lpfc_els.c if (phba->lmt & LMT_8Gb) phba 5643 drivers/scsi/lpfc/lpfc_els.c if (phba->lmt & LMT_4Gb) phba 5645 drivers/scsi/lpfc/lpfc_els.c if (phba->lmt & LMT_2Gb) phba 5647 drivers/scsi/lpfc/lpfc_els.c if (phba->lmt & LMT_1Gb) phba 5652 drivers/scsi/lpfc/lpfc_els.c if (phba->cfg_link_speed != LPFC_USER_LINK_SPEED_AUTO) phba 5702 drivers/scsi/lpfc/lpfc_els.c lpfc_els_rdp_cmpl(struct lpfc_hba *phba, struct lpfc_rdp_context *rdp_context, phba 5748 drivers/scsi/lpfc/lpfc_els.c phba->sfp_alarm |= *flag_ptr; phba 5750 drivers/scsi/lpfc/lpfc_els.c phba->sfp_warning |= *flag_ptr; phba 5760 drivers/scsi/lpfc/lpfc_els.c phba); phba 5771 drivers/scsi/lpfc/lpfc_els.c len += lpfc_rdp_res_oed_temp_desc(phba, phba 5774 drivers/scsi/lpfc/lpfc_els.c len += lpfc_rdp_res_oed_voltage_desc(phba, phba 5777 drivers/scsi/lpfc/lpfc_els.c len += lpfc_rdp_res_oed_txbias_desc(phba, phba 5780 drivers/scsi/lpfc/lpfc_els.c len += lpfc_rdp_res_oed_txpower_desc(phba, phba 5783 drivers/scsi/lpfc/lpfc_els.c len += lpfc_rdp_res_oed_rxpower_desc(phba, phba 5799 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitACC++; phba 5800 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); phba 5802 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 5824 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitLSRJT++; phba 5826 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); phba 5829 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 5835 drivers/scsi/lpfc/lpfc_els.c lpfc_get_rdp_info(struct lpfc_hba *phba, struct lpfc_rdp_context *rdp_context) phba 5840 drivers/scsi/lpfc/lpfc_els.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 5842 drivers/scsi/lpfc/lpfc_els.c lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX | LOG_ELS, phba 5847 drivers/scsi/lpfc/lpfc_els.c if (lpfc_sli4_dump_page_a0(phba, mbox)) phba 5852 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); phba 5860 drivers/scsi/lpfc/lpfc_els.c mempool_free(mbox, phba->mbox_mem_pool); phba 5885 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 5893 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev < LPFC_SLI_REV4 || phba 5894 drivers/scsi/lpfc/lpfc_els.c bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) < phba 5901 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev < LPFC_SLI_REV4 || (phba->hba_flag & HBA_FCOE_MODE)) { phba 5937 drivers/scsi/lpfc/lpfc_els.c if (lpfc_get_rdp_info(phba, rdp_context)) { phba 5961 drivers/scsi/lpfc/lpfc_els.c lpfc_els_lcb_rsp(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 5986 drivers/scsi/lpfc/lpfc_els.c lpfc_printf_log(phba, KERN_INFO, LOG_MBOX, phba 5995 drivers/scsi/lpfc/lpfc_els.c mempool_free(pmb, phba->mbox_mem_pool); phba 5999 drivers/scsi/lpfc/lpfc_els.c mempool_free(pmb, phba->mbox_mem_pool); phba 6001 drivers/scsi/lpfc/lpfc_els.c elsiocb = lpfc_prep_els_iocb(phba->pport, 0, cmdsize, phba 6027 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitACC++; phba 6028 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); phba 6030 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 6037 drivers/scsi/lpfc/lpfc_els.c elsiocb = lpfc_prep_els_iocb(phba->pport, 0, cmdsize, phba 6057 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitLSRJT++; phba 6058 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); phba 6060 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 6070 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 6076 drivers/scsi/lpfc/lpfc_els.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 6083 drivers/scsi/lpfc/lpfc_els.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_COMMON, phba 6087 drivers/scsi/lpfc/lpfc_els.c mbox->vport = phba->pport; phba 6090 drivers/scsi/lpfc/lpfc_els.c phba->sli4_hba.physical_port); phba 6101 drivers/scsi/lpfc/lpfc_els.c if (phba->sli4_hba.pc_sli4_params.bv1s) { phba 6113 drivers/scsi/lpfc/lpfc_els.c mempool_free(mbox, phba->mbox_mem_pool); phba 6127 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); phba 6129 drivers/scsi/lpfc/lpfc_els.c mempool_free(mbox, phba->mbox_mem_pool); phba 6155 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 6183 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev < LPFC_SLI_REV4 || phba 6184 drivers/scsi/lpfc/lpfc_els.c phba->hba_flag & HBA_FCOE_MODE || phba 6185 drivers/scsi/lpfc/lpfc_els.c (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) < phba 6236 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 6250 drivers/scsi/lpfc/lpfc_els.c lpfc_in_buf_free(phba, vport->fc_rscn_id_list[i]); phba 6363 drivers/scsi/lpfc/lpfc_els.c if (vport->phba->nvmet_support) phba 6462 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 6520 drivers/scsi/lpfc/lpfc_els.c if ((phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) && phba 6529 drivers/scsi/lpfc/lpfc_els.c if (lpfc_find_vport_by_did(phba, nportid)) phba 6577 drivers/scsi/lpfc/lpfc_els.c tmo = ((phba->fc_ratov * 3) + 3); phba 6670 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 6699 drivers/scsi/lpfc/lpfc_els.c if (phba->cfg_ns_query == LPFC_NS_QUERY_GID_FT) { phba 6702 drivers/scsi/lpfc/lpfc_els.c } else if (phba->cfg_ns_query == LPFC_NS_QUERY_GID_PT) { phba 6769 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 6787 drivers/scsi/lpfc/lpfc_els.c if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { phba 6811 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev < LPFC_SLI_REV4) { phba 6812 drivers/scsi/lpfc/lpfc_els.c mbox = mempool_alloc(phba->mbox_mem_pool, phba 6816 drivers/scsi/lpfc/lpfc_els.c lpfc_linkdown(phba); phba 6817 drivers/scsi/lpfc/lpfc_els.c lpfc_init_link(phba, mbox, phba 6818 drivers/scsi/lpfc/lpfc_els.c phba->cfg_topology, phba 6819 drivers/scsi/lpfc/lpfc_els.c phba->cfg_link_speed); phba 6823 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_mbox(phba, mbox, phba 6825 drivers/scsi/lpfc/lpfc_els.c lpfc_set_loopback_flag(phba); phba 6827 drivers/scsi/lpfc/lpfc_els.c mempool_free(mbox, phba->mbox_mem_pool); phba 6834 drivers/scsi/lpfc/lpfc_els.c lpfc_els_abort_flogi(phba); phba 6881 drivers/scsi/lpfc/lpfc_els.c memcpy(&phba->fc_fabparam, sp, sizeof(struct serv_parm)); phba 6884 drivers/scsi/lpfc/lpfc_els.c if (!(phba->hba_flag & HBA_FLOGI_ISSUED)) { phba 6885 drivers/scsi/lpfc/lpfc_els.c phba->defer_flogi_acc_rx_id = cmdiocb->iocb.ulpContext; phba 6886 drivers/scsi/lpfc/lpfc_els.c phba->defer_flogi_acc_ox_id = phba 6894 drivers/scsi/lpfc/lpfc_els.c phba->defer_flogi_acc_rx_id, phba 6895 drivers/scsi/lpfc/lpfc_els.c phba->defer_flogi_acc_ox_id, phba->hba_flag); phba 6897 drivers/scsi/lpfc/lpfc_els.c phba->defer_flogi_acc_flag = true; phba 7035 drivers/scsi/lpfc/lpfc_els.c if (vport->phba->sli_rev == LPFC_SLI_REV4) phba 7059 drivers/scsi/lpfc/lpfc_els.c lpfc_els_rsp_rls_acc(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 7080 drivers/scsi/lpfc/lpfc_els.c mempool_free(pmb, phba->mbox_mem_pool); phba 7085 drivers/scsi/lpfc/lpfc_els.c elsiocb = lpfc_prep_els_iocb(phba->pport, 0, cmdsize, phba 7093 drivers/scsi/lpfc/lpfc_els.c mempool_free(pmb, phba->mbox_mem_pool); phba 7112 drivers/scsi/lpfc/lpfc_els.c mempool_free(pmb, phba->mbox_mem_pool); phba 7121 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitACC++; phba 7122 drivers/scsi/lpfc/lpfc_els.c if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == IOCB_ERROR) phba 7123 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 7146 drivers/scsi/lpfc/lpfc_els.c lpfc_els_rsp_rps_acc(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 7168 drivers/scsi/lpfc/lpfc_els.c mempool_free(pmb, phba->mbox_mem_pool); phba 7173 drivers/scsi/lpfc/lpfc_els.c mempool_free(pmb, phba->mbox_mem_pool); phba 7174 drivers/scsi/lpfc/lpfc_els.c elsiocb = lpfc_prep_els_iocb(phba->pport, 0, cmdsize, phba 7193 drivers/scsi/lpfc/lpfc_els.c if (phba->fc_topology != LPFC_TOPOLOGY_LOOP) phba 7197 drivers/scsi/lpfc/lpfc_els.c if (phba->pport->fc_flag & FC_FABRIC) phba 7216 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitACC++; phba 7217 drivers/scsi/lpfc/lpfc_els.c if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == IOCB_ERROR) phba 7218 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 7244 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 7253 drivers/scsi/lpfc/lpfc_els.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_ATOMIC); phba 7255 drivers/scsi/lpfc/lpfc_els.c lpfc_read_lnk_stat(phba, mbox); phba 7262 drivers/scsi/lpfc/lpfc_els.c if (lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT) phba 7270 drivers/scsi/lpfc/lpfc_els.c mempool_free(mbox, phba->mbox_mem_pool); phba 7307 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 7321 drivers/scsi/lpfc/lpfc_els.c elsiocb = lpfc_prep_els_iocb(phba->pport, 0, cmdsize, phba 7339 drivers/scsi/lpfc/lpfc_els.c rtv_rsp->ratov = cpu_to_be32(phba->fc_ratov * 1000); /* report msecs */ phba 7340 drivers/scsi/lpfc/lpfc_els.c rtv_rsp->edtov = cpu_to_be32(phba->fc_edtov); phba 7341 drivers/scsi/lpfc/lpfc_els.c bf_set(qtov_edtovres, rtv_rsp, phba->fc_edtovResol ? 1 : 0); phba 7355 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitACC++; phba 7356 drivers/scsi/lpfc/lpfc_els.c if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == IOCB_ERROR) phba 7357 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 7391 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 7416 drivers/scsi/lpfc/lpfc_els.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_ATOMIC); phba 7418 drivers/scsi/lpfc/lpfc_els.c lpfc_read_lnk_stat(phba, mbox); phba 7425 drivers/scsi/lpfc/lpfc_els.c if (lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT) phba 7433 drivers/scsi/lpfc/lpfc_els.c mempool_free(mbox, phba->mbox_mem_pool); phba 7464 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 7491 drivers/scsi/lpfc/lpfc_els.c bf_set(rrq_oxid, els_rrq, phba->sli4_hba.xri_ids[rrq->xritag]); phba 7503 drivers/scsi/lpfc/lpfc_els.c ret = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0); phba 7506 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 7525 drivers/scsi/lpfc/lpfc_els.c lpfc_send_rrq(struct lpfc_hba *phba, struct lpfc_node_rrq *rrq) phba 7532 drivers/scsi/lpfc/lpfc_els.c if (lpfc_test_rrq_active(phba, ndlp, rrq->xritag)) phba 7562 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 7602 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitACC++; phba 7603 drivers/scsi/lpfc/lpfc_els.c if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == phba 7605 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 7813 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 7821 drivers/scsi/lpfc/lpfc_els.c if ((vport == phba->pport) && phba 7823 drivers/scsi/lpfc/lpfc_els.c if ((memcmp(&phba->fc_fabparam.nodeName, &fp->FnodeName, phba 7825 drivers/scsi/lpfc/lpfc_els.c (memcmp(&phba->fc_fabparam.portName, &fp->FportName, phba 7832 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev < LPFC_SLI_REV4) phba 7859 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 7870 drivers/scsi/lpfc/lpfc_els.c lpfc_worker_wake_up(phba); phba 7887 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 7898 drivers/scsi/lpfc/lpfc_els.c timeout = (uint32_t)(phba->fc_ratov << 1); phba 7900 drivers/scsi/lpfc/lpfc_els.c pring = lpfc_phba_elsring(phba); phba 7904 drivers/scsi/lpfc/lpfc_els.c if ((phba->pport->load_flag & FC_UNLOADING)) phba 7906 drivers/scsi/lpfc/lpfc_els.c spin_lock_irq(&phba->hbalock); phba 7907 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4) phba 7910 drivers/scsi/lpfc/lpfc_els.c if ((phba->pport->load_flag & FC_UNLOADING)) { phba 7911 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4) phba 7913 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irq(&phba->hbalock); phba 7956 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4) phba 7958 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irq(&phba->hbalock); phba 7966 drivers/scsi/lpfc/lpfc_els.c spin_lock_irq(&phba->hbalock); phba 7968 drivers/scsi/lpfc/lpfc_els.c lpfc_sli_issue_abort_iotag(phba, pring, piocb); phba 7969 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irq(&phba->hbalock); phba 7973 drivers/scsi/lpfc/lpfc_els.c if (!(phba->pport->load_flag & FC_UNLOADING)) phba 8002 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 8016 drivers/scsi/lpfc/lpfc_els.c spin_lock_irqsave(&phba->hbalock, iflags); phba 8017 drivers/scsi/lpfc/lpfc_els.c pring = lpfc_phba_elsring(phba); phba 8021 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 8025 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4) phba 8053 drivers/scsi/lpfc/lpfc_els.c if (phba->link_state == LPFC_LINK_DOWN) phba 8060 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4) phba 8062 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 8066 drivers/scsi/lpfc/lpfc_els.c spin_lock_irqsave(&phba->hbalock, iflags); phba 8068 drivers/scsi/lpfc/lpfc_els.c lpfc_sli_issue_abort_iotag(phba, pring, piocb); phba 8069 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 8076 drivers/scsi/lpfc/lpfc_els.c spin_lock_irqsave(&phba->hbalock, iflags); phba 8077 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4) phba 8105 drivers/scsi/lpfc/lpfc_els.c if (vport == phba->pport) { phba 8107 drivers/scsi/lpfc/lpfc_els.c &phba->fabric_iocb_list, list) { phba 8114 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4) phba 8116 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 8119 drivers/scsi/lpfc/lpfc_els.c lpfc_sli_cancel_iocbs(phba, &abort_list, phba 8143 drivers/scsi/lpfc/lpfc_els.c lpfc_els_flush_all_cmd(struct lpfc_hba *phba) phba 8147 drivers/scsi/lpfc/lpfc_els.c spin_lock_irq(&phba->port_list_lock); phba 8148 drivers/scsi/lpfc/lpfc_els.c list_for_each_entry(vport, &phba->port_list, listentry) phba 8150 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irq(&phba->port_list_lock); phba 8165 drivers/scsi/lpfc/lpfc_els.c lpfc_send_els_failure_event(struct lpfc_hba *phba, phba 8317 drivers/scsi/lpfc/lpfc_els.c lpfc_els_unsol_buffer(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 8335 drivers/scsi/lpfc/lpfc_els.c if ((phba->sli3_options & LPFC_SLI3_HBQ_ENABLED) == 0) phba 8336 drivers/scsi/lpfc/lpfc_els.c lpfc_post_buffer(phba, pring, 1); phba 8387 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvFrame++; phba 8429 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvPLOGI++; phba 8430 drivers/scsi/lpfc/lpfc_els.c ndlp = lpfc_plogi_confirm_nport(phba, payload, ndlp); phba 8431 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4 && phba 8432 drivers/scsi/lpfc/lpfc_els.c (phba->pport->fc_flag & FC_PT2PT)) { phba 8455 drivers/scsi/lpfc/lpfc_els.c if (!(phba->pport->fc_flag & FC_PT2PT) || phba 8456 drivers/scsi/lpfc/lpfc_els.c (phba->pport->fc_flag & FC_PT2PT_PLOGI)) { phba 8476 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvFLOGI++; phba 8499 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvLOGO++; phba 8513 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvPRLO++; phba 8523 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvLCB++; phba 8527 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvRDP++; phba 8531 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvRSCN++; phba 8542 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvADISC++; phba 8556 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvPDISC++; phba 8570 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvFARPR++; phba 8578 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvFARP++; phba 8586 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvFAN++; phba 8595 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvPRLI++; phba 8609 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvLIRR++; phba 8619 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvRLS++; phba 8629 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvRPS++; phba 8639 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvRPL++; phba 8649 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvRNID++; phba 8658 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvRTV++; phba 8668 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvRRQ++; phba 8678 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvECHO++; phba 8732 drivers/scsi/lpfc/lpfc_els.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 8735 drivers/scsi/lpfc/lpfc_els.c lpfc_linkdown(phba); phba 8736 drivers/scsi/lpfc/lpfc_els.c lpfc_init_link(phba, mbox, phba 8737 drivers/scsi/lpfc/lpfc_els.c phba->cfg_topology, phba 8738 drivers/scsi/lpfc/lpfc_els.c phba->cfg_link_speed); phba 8742 drivers/scsi/lpfc/lpfc_els.c if (lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT) == phba 8744 drivers/scsi/lpfc/lpfc_els.c mempool_free(mbox, phba->mbox_mem_pool); phba 8755 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsRcvDrop++; phba 8771 drivers/scsi/lpfc/lpfc_els.c lpfc_els_unsol_event(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 8774 drivers/scsi/lpfc/lpfc_els.c struct lpfc_vport *vport = phba->pport; phba 8785 drivers/scsi/lpfc/lpfc_els.c lpfc_sli_hbqbuf_add_hbqs(phba, LPFC_ELS_HBQ); phba 8789 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.NoRcvBuf++; phba 8791 drivers/scsi/lpfc/lpfc_els.c if (!(phba->sli3_options & LPFC_SLI3_HBQ_ENABLED)) phba 8792 drivers/scsi/lpfc/lpfc_els.c lpfc_post_buffer(phba, pring, 0); phba 8796 drivers/scsi/lpfc/lpfc_els.c if ((phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) && phba 8800 drivers/scsi/lpfc/lpfc_els.c vport = phba->pport; phba 8802 drivers/scsi/lpfc/lpfc_els.c vport = lpfc_find_vport_by_vpid(phba, phba 8815 drivers/scsi/lpfc/lpfc_els.c if (phba->sli3_options & LPFC_SLI3_HBQ_ENABLED) { phba 8820 drivers/scsi/lpfc/lpfc_els.c elsiocb->context2 = lpfc_sli_ringpostbuf_get(phba, pring, phba 8824 drivers/scsi/lpfc/lpfc_els.c lpfc_els_unsol_buffer(phba, pring, vport, elsiocb); phba 8830 drivers/scsi/lpfc/lpfc_els.c lpfc_in_buf_free(phba, (struct lpfc_dmabuf *)elsiocb->context2); phba 8835 drivers/scsi/lpfc/lpfc_els.c if ((phba->sli3_options & LPFC_SLI3_HBQ_ENABLED) && phba 8838 drivers/scsi/lpfc/lpfc_els.c lpfc_els_unsol_buffer(phba, pring, vport, elsiocb); phba 8841 drivers/scsi/lpfc/lpfc_els.c lpfc_in_buf_free(phba, elsiocb->context2); phba 8888 drivers/scsi/lpfc/lpfc_els.c lpfc_do_scr_ns_plogi(struct lpfc_hba *phba, struct lpfc_vport *vport) phba 8901 drivers/scsi/lpfc/lpfc_els.c lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY, phba 8903 drivers/scsi/lpfc/lpfc_els.c phba->fc_ratov); phba 8905 drivers/scsi/lpfc/lpfc_els.c jiffies + msecs_to_jiffies(1000 * phba->fc_ratov)); phba 8914 drivers/scsi/lpfc/lpfc_els.c if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { phba 8926 drivers/scsi/lpfc/lpfc_els.c if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { phba 8947 drivers/scsi/lpfc/lpfc_els.c if ((phba->cfg_enable_SmartSAN || phba 8948 drivers/scsi/lpfc/lpfc_els.c (phba->cfg_fdmi_on == LPFC_FDMI_SUPPORT)) && phba 8966 drivers/scsi/lpfc/lpfc_els.c lpfc_cmpl_reg_new_vport(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 8983 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4 && phba 9003 drivers/scsi/lpfc/lpfc_els.c lpfc_init_vpi(phba, pmb, vport->vpi); phba 9006 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_sli_issue_mbox(phba, pmb, phba 9020 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4) phba 9030 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4) phba 9043 drivers/scsi/lpfc/lpfc_els.c if (vport == phba->pport) { phba 9044 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev < LPFC_SLI_REV4) phba 9052 drivers/scsi/lpfc/lpfc_els.c lpfc_start_fdiscs(phba); phba 9053 drivers/scsi/lpfc/lpfc_els.c lpfc_do_scr_ns_plogi(phba, vport); phba 9056 drivers/scsi/lpfc/lpfc_els.c lpfc_do_scr_ns_plogi(phba, vport); phba 9064 drivers/scsi/lpfc/lpfc_els.c mempool_free(pmb, phba->mbox_mem_pool); phba 9078 drivers/scsi/lpfc/lpfc_els.c lpfc_register_new_vport(struct lpfc_hba *phba, struct lpfc_vport *vport, phba 9084 drivers/scsi/lpfc/lpfc_els.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 9090 drivers/scsi/lpfc/lpfc_els.c if (lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT) phba 9096 drivers/scsi/lpfc/lpfc_els.c mempool_free(mbox, phba->mbox_mem_pool); phba 9124 drivers/scsi/lpfc/lpfc_els.c lpfc_cancel_all_vport_retry_delay_timer(struct lpfc_hba *phba) phba 9132 drivers/scsi/lpfc/lpfc_els.c link_state = phba->link_state; phba 9133 drivers/scsi/lpfc/lpfc_els.c lpfc_linkdown(phba); phba 9134 drivers/scsi/lpfc/lpfc_els.c phba->link_state = link_state; phba 9136 drivers/scsi/lpfc/lpfc_els.c vports = lpfc_create_vport_work_array(phba); phba 9139 drivers/scsi/lpfc/lpfc_els.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 9145 drivers/scsi/lpfc/lpfc_els.c lpfc_destroy_vport_work_array(phba, vports); phba 9158 drivers/scsi/lpfc/lpfc_els.c lpfc_retry_pport_discovery(struct lpfc_hba *phba) phba 9164 drivers/scsi/lpfc/lpfc_els.c lpfc_cancel_all_vport_retry_delay_timer(phba); phba 9167 drivers/scsi/lpfc/lpfc_els.c ndlp = lpfc_findnode_did(phba->pport, Fabric_DID); phba 9171 drivers/scsi/lpfc/lpfc_els.c shost = lpfc_shost_from_vport(phba->pport); phba 9177 drivers/scsi/lpfc/lpfc_els.c phba->pport->port_state = LPFC_FLOGI; phba 9191 drivers/scsi/lpfc/lpfc_els.c lpfc_fabric_login_reqd(struct lpfc_hba *phba, phba 9224 drivers/scsi/lpfc/lpfc_els.c lpfc_cmpl_els_fdisc(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 9246 drivers/scsi/lpfc/lpfc_els.c list_for_each_entry(piocb, &phba->fabric_iocb_list, list) { phba 9256 drivers/scsi/lpfc/lpfc_els.c if (lpfc_fabric_login_reqd(phba, cmdiocb, rspiocb)) { phba 9257 drivers/scsi/lpfc/lpfc_els.c lpfc_retry_pport_discovery(phba); phba 9262 drivers/scsi/lpfc/lpfc_els.c if (lpfc_els_retry(phba, cmdiocb, rspiocb)) phba 9274 drivers/scsi/lpfc/lpfc_els.c if (vport->phba->fc_topology == LPFC_TOPOLOGY_LOOP) phba 9308 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4) phba 9314 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV4) phba 9319 drivers/scsi/lpfc/lpfc_els.c } else if ((phba->sli_rev == LPFC_SLI_REV4) && phba 9325 drivers/scsi/lpfc/lpfc_els.c lpfc_register_new_vport(phba, vport, ndlp); phba 9332 drivers/scsi/lpfc/lpfc_els.c lpfc_register_new_vport(phba, vport, ndlp); phba 9334 drivers/scsi/lpfc/lpfc_els.c lpfc_do_scr_ns_plogi(phba, vport); phba 9344 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, cmdiocb); phba 9371 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 9400 drivers/scsi/lpfc/lpfc_els.c if (phba->sli_rev == LPFC_SLI_REV3) { phba 9408 drivers/scsi/lpfc/lpfc_els.c memcpy(pcmd, &vport->phba->pport->fc_sparam, sizeof(struct serv_parm)); phba 9430 drivers/scsi/lpfc/lpfc_els.c phba->fc_stat.elsXmitFDISC++; phba 9437 drivers/scsi/lpfc/lpfc_els.c rc = lpfc_issue_fabric_iocb(phba, elsiocb); phba 9439 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 9464 drivers/scsi/lpfc/lpfc_els.c lpfc_cmpl_els_npiv_logo(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 9478 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, cmdiocb); phba 9520 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 9548 drivers/scsi/lpfc/lpfc_els.c if (lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0) == phba 9553 drivers/scsi/lpfc/lpfc_els.c lpfc_els_free_iocb(phba, elsiocb); phba 9573 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = from_timer(phba, t, fabric_block_timer); phba 9577 drivers/scsi/lpfc/lpfc_els.c spin_lock_irqsave(&phba->pport->work_port_lock, iflags); phba 9578 drivers/scsi/lpfc/lpfc_els.c tmo_posted = phba->pport->work_port_events & WORKER_FABRIC_BLOCK_TMO; phba 9580 drivers/scsi/lpfc/lpfc_els.c phba->pport->work_port_events |= WORKER_FABRIC_BLOCK_TMO; phba 9581 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irqrestore(&phba->pport->work_port_lock, iflags); phba 9584 drivers/scsi/lpfc/lpfc_els.c lpfc_worker_wake_up(phba); phba 9599 drivers/scsi/lpfc/lpfc_els.c lpfc_resume_fabric_iocbs(struct lpfc_hba *phba) phba 9608 drivers/scsi/lpfc/lpfc_els.c spin_lock_irqsave(&phba->hbalock, iflags); phba 9610 drivers/scsi/lpfc/lpfc_els.c if (atomic_read(&phba->fabric_iocb_count) == 0) { phba 9611 drivers/scsi/lpfc/lpfc_els.c list_remove_head(&phba->fabric_iocb_list, iocb, typeof(*iocb), phba 9615 drivers/scsi/lpfc/lpfc_els.c atomic_inc(&phba->fabric_iocb_count); phba 9617 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 9627 drivers/scsi/lpfc/lpfc_els.c ret = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, iocb, 0); phba 9636 drivers/scsi/lpfc/lpfc_els.c iocb->iocb_cmpl(phba, iocb, iocb); phba 9638 drivers/scsi/lpfc/lpfc_els.c atomic_dec(&phba->fabric_iocb_count); phba 9656 drivers/scsi/lpfc/lpfc_els.c lpfc_unblock_fabric_iocbs(struct lpfc_hba *phba) phba 9658 drivers/scsi/lpfc/lpfc_els.c clear_bit(FABRIC_COMANDS_BLOCKED, &phba->bit_flags); phba 9660 drivers/scsi/lpfc/lpfc_els.c lpfc_resume_fabric_iocbs(phba); phba 9674 drivers/scsi/lpfc/lpfc_els.c lpfc_block_fabric_iocbs(struct lpfc_hba *phba) phba 9678 drivers/scsi/lpfc/lpfc_els.c blocked = test_and_set_bit(FABRIC_COMANDS_BLOCKED, &phba->bit_flags); phba 9681 drivers/scsi/lpfc/lpfc_els.c mod_timer(&phba->fabric_block_timer, phba 9701 drivers/scsi/lpfc/lpfc_els.c lpfc_cmpl_fabric_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 9712 drivers/scsi/lpfc/lpfc_els.c lpfc_block_fabric_iocbs(phba); phba 9718 drivers/scsi/lpfc/lpfc_els.c lpfc_block_fabric_iocbs(phba); phba 9726 drivers/scsi/lpfc/lpfc_els.c lpfc_block_fabric_iocbs(phba); phba 9730 drivers/scsi/lpfc/lpfc_els.c BUG_ON(atomic_read(&phba->fabric_iocb_count) == 0); phba 9735 drivers/scsi/lpfc/lpfc_els.c cmdiocb->iocb_cmpl(phba, cmdiocb, rspiocb); phba 9737 drivers/scsi/lpfc/lpfc_els.c atomic_dec(&phba->fabric_iocb_count); phba 9738 drivers/scsi/lpfc/lpfc_els.c if (!test_bit(FABRIC_COMANDS_BLOCKED, &phba->bit_flags)) { phba 9740 drivers/scsi/lpfc/lpfc_els.c lpfc_resume_fabric_iocbs(phba); phba 9769 drivers/scsi/lpfc/lpfc_els.c lpfc_issue_fabric_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *iocb) phba 9775 drivers/scsi/lpfc/lpfc_els.c BUG_ON(atomic_read(&phba->fabric_iocb_count) > 1); phba 9777 drivers/scsi/lpfc/lpfc_els.c spin_lock_irqsave(&phba->hbalock, iflags); phba 9778 drivers/scsi/lpfc/lpfc_els.c ready = atomic_read(&phba->fabric_iocb_count) == 0 && phba 9779 drivers/scsi/lpfc/lpfc_els.c !test_bit(FABRIC_COMANDS_BLOCKED, &phba->bit_flags); phba 9783 drivers/scsi/lpfc/lpfc_els.c atomic_inc(&phba->fabric_iocb_count); phba 9784 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 9794 drivers/scsi/lpfc/lpfc_els.c ret = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, iocb, 0); phba 9800 drivers/scsi/lpfc/lpfc_els.c atomic_dec(&phba->fabric_iocb_count); phba 9803 drivers/scsi/lpfc/lpfc_els.c spin_lock_irqsave(&phba->hbalock, iflags); phba 9804 drivers/scsi/lpfc/lpfc_els.c list_add_tail(&iocb->list, &phba->fabric_iocb_list); phba 9805 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 9825 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 9828 drivers/scsi/lpfc/lpfc_els.c spin_lock_irq(&phba->hbalock); phba 9829 drivers/scsi/lpfc/lpfc_els.c list_for_each_entry_safe(piocb, tmp_iocb, &phba->fabric_iocb_list, phba 9837 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irq(&phba->hbalock); phba 9840 drivers/scsi/lpfc/lpfc_els.c lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT, phba 9858 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = ndlp->phba; phba 9862 drivers/scsi/lpfc/lpfc_els.c pring = lpfc_phba_elsring(phba); phba 9867 drivers/scsi/lpfc/lpfc_els.c spin_lock_irq(&phba->hbalock); phba 9868 drivers/scsi/lpfc/lpfc_els.c list_for_each_entry_safe(piocb, tmp_iocb, &phba->fabric_iocb_list, phba 9870 drivers/scsi/lpfc/lpfc_els.c if ((lpfc_check_sli_ndlp(phba, pring, piocb, ndlp))) { phba 9875 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irq(&phba->hbalock); phba 9878 drivers/scsi/lpfc/lpfc_els.c lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT, phba 9893 drivers/scsi/lpfc/lpfc_els.c void lpfc_fabric_abort_hba(struct lpfc_hba *phba) phba 9897 drivers/scsi/lpfc/lpfc_els.c spin_lock_irq(&phba->hbalock); phba 9898 drivers/scsi/lpfc/lpfc_els.c list_splice_init(&phba->fabric_iocb_list, &completions); phba 9899 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irq(&phba->hbalock); phba 9902 drivers/scsi/lpfc/lpfc_els.c lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT, phba 9916 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba = vport->phba; phba 9920 drivers/scsi/lpfc/lpfc_els.c spin_lock_irqsave(&phba->hbalock, iflag); phba 9921 drivers/scsi/lpfc/lpfc_els.c spin_lock(&phba->sli4_hba.sgl_list_lock); phba 9923 drivers/scsi/lpfc/lpfc_els.c &phba->sli4_hba.lpfc_abts_els_sgl_list, list) { phba 9927 drivers/scsi/lpfc/lpfc_els.c spin_unlock(&phba->sli4_hba.sgl_list_lock); phba 9928 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 9941 drivers/scsi/lpfc/lpfc_els.c lpfc_sli4_els_xri_aborted(struct lpfc_hba *phba, phba 9953 drivers/scsi/lpfc/lpfc_els.c pring = lpfc_phba_elsring(phba); phba 9955 drivers/scsi/lpfc/lpfc_els.c spin_lock_irqsave(&phba->hbalock, iflag); phba 9956 drivers/scsi/lpfc/lpfc_els.c spin_lock(&phba->sli4_hba.sgl_list_lock); phba 9958 drivers/scsi/lpfc/lpfc_els.c &phba->sli4_hba.lpfc_abts_els_sgl_list, list) { phba 9964 drivers/scsi/lpfc/lpfc_els.c &phba->sli4_hba.lpfc_els_sgl_list); phba 9966 drivers/scsi/lpfc/lpfc_els.c spin_unlock(&phba->sli4_hba.sgl_list_lock); phba 9967 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 9968 drivers/scsi/lpfc/lpfc_els.c lpfc_set_rrq_active(phba, ndlp, phba 9974 drivers/scsi/lpfc/lpfc_els.c lpfc_worker_wake_up(phba); phba 9978 drivers/scsi/lpfc/lpfc_els.c spin_unlock(&phba->sli4_hba.sgl_list_lock); phba 9979 drivers/scsi/lpfc/lpfc_els.c lxri = lpfc_sli4_xri_inrange(phba, xri); phba 9981 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 9984 drivers/scsi/lpfc/lpfc_els.c spin_lock(&phba->sli4_hba.sgl_list_lock); phba 9985 drivers/scsi/lpfc/lpfc_els.c sglq_entry = __lpfc_get_active_sglq(phba, lxri); phba 9987 drivers/scsi/lpfc/lpfc_els.c spin_unlock(&phba->sli4_hba.sgl_list_lock); phba 9988 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 9992 drivers/scsi/lpfc/lpfc_els.c spin_unlock(&phba->sli4_hba.sgl_list_lock); phba 9993 drivers/scsi/lpfc/lpfc_els.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 10011 drivers/scsi/lpfc/lpfc_els.c struct lpfc_hba *phba; phba 10015 drivers/scsi/lpfc/lpfc_els.c phba = vport->phba; phba 10017 drivers/scsi/lpfc/lpfc_els.c lpfc_printf_log(phba, KERN_INFO, phba 10022 drivers/scsi/lpfc/lpfc_els.c lpfc_printf_log(phba, KERN_ERR, phba 82 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba; phba 95 drivers/scsi/lpfc/lpfc_hbadisc.c phba = ndlp->phba; phba 103 drivers/scsi/lpfc/lpfc_hbadisc.c &phba->sli.sli3_ring[LPFC_FCP_RING], phba 118 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba; phba 130 drivers/scsi/lpfc/lpfc_hbadisc.c phba = vport->phba; phba 184 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irqsave(&phba->hbalock, iflags); phba 187 drivers/scsi/lpfc/lpfc_hbadisc.c list_add_tail(&evtp->evt_listp, &phba->work_list); phba 188 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_worker_wake_up(phba); phba 190 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 211 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba; phba 231 drivers/scsi/lpfc/lpfc_hbadisc.c phba = vport->phba; phba 233 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 234 drivers/scsi/lpfc/lpfc_hbadisc.c fcf_inuse = lpfc_fcf_inuse(phba); phba 259 drivers/scsi/lpfc/lpfc_hbadisc.c &phba->sli.sli3_ring[LPFC_FCP_RING], phba 295 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli_abort_iocb(vport, &phba->sli.sli3_ring[LPFC_FCP_RING], phba 348 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_post_dev_loss_tmo_handler(struct lpfc_hba *phba, int fcf_inuse, phba 357 drivers/scsi/lpfc/lpfc_hbadisc.c if ((phba->hba_flag & HBA_FIP_SUPPORT) && !lpfc_fcf_inuse(phba)) { phba 358 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 359 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fcf.fcf_flag & FCF_DISCOVERY) { phba 360 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->hba_flag & HBA_DEVLOSS_TMO) { phba 361 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 364 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag |= HBA_DEVLOSS_TMO; phba 365 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 369 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fcf.fcf_flag & FCF_REDISC_PROG) { phba 370 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 371 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 376 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->hba_flag & (FCF_TS_INPROG | FCF_RR_INPROG))) { phba 377 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 378 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 382 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unregister_fcf_rescan(phba); phba 385 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 386 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->hba_flag & FCF_TS_INPROG) phba 387 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 389 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->hba_flag & FCF_RR_INPROG) phba 390 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 394 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unregister_unused_fcf(phba); phba 408 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_alloc_fast_evt(struct lpfc_hba *phba) { phba 412 drivers/scsi/lpfc/lpfc_hbadisc.c if (atomic_read(&phba->fast_event_count) > LPFC_MAX_EVT_COUNT) phba 418 drivers/scsi/lpfc/lpfc_hbadisc.c atomic_inc(&phba->fast_event_count); phba 434 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_free_fast_evt(struct lpfc_hba *phba, phba 437 drivers/scsi/lpfc/lpfc_hbadisc.c atomic_dec(&phba->fast_event_count); phba 451 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_send_fastpath_evt(struct lpfc_hba *phba, phba 477 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_free_fast_evt(phba, fast_evt_data); phba 498 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_free_fast_evt(phba, fast_evt_data); phba 502 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_free_fast_evt(phba, fast_evt_data); phba 506 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->cfg_enable_fc4_type != LPFC_ENABLE_NVME) phba 513 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_free_fast_evt(phba, fast_evt_data); phba 518 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_work_list_done(struct lpfc_hba *phba) phba 526 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 527 drivers/scsi/lpfc/lpfc_hbadisc.c while (!list_empty(&phba->work_list)) { phba 528 drivers/scsi/lpfc/lpfc_hbadisc.c list_remove_head((&phba->work_list), evtp, typeof(*evtp), phba 530 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 551 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 552 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_post_dev_loss_tmo_handler(phba, phba 557 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->link_state < LPFC_LINK_DOWN) phba 558 drivers/scsi/lpfc/lpfc_hbadisc.c *(int *) (evtp->evt_arg1) = lpfc_online(phba); phba 564 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->link_state >= LPFC_LINK_DOWN) phba 565 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_offline_prep(phba, LPFC_MBX_WAIT); phba 570 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_offline(phba); phba 571 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli_brdrestart(phba); phba 573 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli_brdready(phba, HS_FFRDY | HS_MBRDY); phba 574 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unblock_mgmt_io(phba); phba 578 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_offline(phba); phba 579 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_reset_barrier(phba); phba 580 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli_brdreset(phba); phba 581 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_hba_down_post(phba); phba 583 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli_brdready(phba, HS_MBRDY); phba 584 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unblock_mgmt_io(phba); phba 588 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_offline(phba); phba 590 drivers/scsi/lpfc/lpfc_hbadisc.c = (phba->pport->stopped) phba 591 drivers/scsi/lpfc/lpfc_hbadisc.c ? 0 : lpfc_sli_brdkill(phba); phba 592 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unblock_mgmt_io(phba); phba 596 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_send_fastpath_evt(phba, evtp); phba 600 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->pport->load_flag & FC_UNLOADING)) phba 601 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_reset_hba(phba); phba 606 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 608 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 613 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_work_done(struct lpfc_hba *phba) phba 621 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 622 drivers/scsi/lpfc/lpfc_hbadisc.c ha_copy = phba->work_ha; phba 623 drivers/scsi/lpfc/lpfc_hbadisc.c phba->work_ha = 0; phba 624 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 627 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->pci_dev_grp == LPFC_PCI_DEV_OC) phba 628 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_post_async_mbox(phba); phba 632 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_handle_eratt(phba); phba 635 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli_handle_mb_event(phba); phba 638 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_handle_latt(phba); phba 641 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->pci_dev_grp == LPFC_PCI_DEV_OC) { phba 642 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->hba_flag & HBA_RRQ_ACTIVE) phba 643 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_handle_rrq_active(phba); phba 644 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->hba_flag & ELS_XRI_ABORT_EVENT) phba 645 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_els_xri_abort_event_proc(phba); phba 646 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->hba_flag & ASYNC_EVENT) phba 647 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_async_event_proc(phba); phba 648 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->hba_flag & HBA_POST_RECEIVE_BUFFER) { phba 649 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 650 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag &= ~HBA_POST_RECEIVE_BUFFER; phba 651 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 652 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli_hbqbuf_add_hbqs(phba, LPFC_ELS_HBQ); phba 654 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fcf.fcf_flag & FCF_REDISC_EVT) phba 655 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_fcf_redisc_event_proc(phba); phba 658 drivers/scsi/lpfc/lpfc_hbadisc.c vports = lpfc_create_vport_work_array(phba); phba 660 drivers/scsi/lpfc/lpfc_hbadisc.c for (i = 0; i <= phba->max_vports; i++) { phba 666 drivers/scsi/lpfc/lpfc_hbadisc.c vport = phba->pport; phba 680 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_hb_timeout_handler(phba); phba 682 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbox_timeout_handler(phba); phba 684 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unblock_fabric_iocbs(phba); phba 686 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_ramp_down_queue_handler(phba); phba 690 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_destroy_vport_work_array(phba, vports); phba 692 drivers/scsi/lpfc/lpfc_hbadisc.c pring = lpfc_phba_elsring(phba); phba 697 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag & HBA_SP_QUEUE_EVT)) { phba 701 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->hba_flag & HBA_SP_QUEUE_EVT)) phba 702 drivers/scsi/lpfc/lpfc_hbadisc.c set_bit(LPFC_DATA_READY, &phba->data_flags); phba 707 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->link_state >= LPFC_LINK_DOWN || phba 708 drivers/scsi/lpfc/lpfc_hbadisc.c phba->link_flag & LS_MDS_LOOPBACK) { phba 710 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli_handle_slow_ring_event(phba, pring, phba 715 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 716 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_drain_txq(phba); phba 720 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev <= LPFC_SLI_REV3) { phba 721 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 722 drivers/scsi/lpfc/lpfc_hbadisc.c control = readl(phba->HCregaddr); phba 724 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_debugfs_slow_ring_trc(phba, phba 729 drivers/scsi/lpfc/lpfc_hbadisc.c writel(control, phba->HCregaddr); phba 730 drivers/scsi/lpfc/lpfc_hbadisc.c readl(phba->HCregaddr); /* flush */ phba 732 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_debugfs_slow_ring_trc(phba, phba 736 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 739 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_work_list_done(phba); phba 745 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = p; phba 750 drivers/scsi/lpfc/lpfc_hbadisc.c phba->data_flags = 0; phba 754 drivers/scsi/lpfc/lpfc_hbadisc.c rc = wait_event_interruptible(phba->work_waitq, phba 756 drivers/scsi/lpfc/lpfc_hbadisc.c &phba->data_flags) phba 760 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_ELS, phba 766 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_work_done(phba); phba 768 drivers/scsi/lpfc/lpfc_hbadisc.c phba->worker_thread = NULL; phba 769 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_ELS, phba 780 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_workq_post_event(struct lpfc_hba *phba, void *arg1, void *arg2, phba 798 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irqsave(&phba->hbalock, flags); phba 799 drivers/scsi/lpfc/lpfc_hbadisc.c list_add_tail(&evtp->evt_listp, &phba->work_list); phba 800 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 802 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_worker_wake_up(phba); phba 811 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 819 drivers/scsi/lpfc/lpfc_hbadisc.c if ((phba->sli3_options & LPFC_SLI3_VPORT_TEARDOWN) || phba 825 drivers/scsi/lpfc/lpfc_hbadisc.c if ((phba->sli_rev < LPFC_SLI_REV4) && phba 833 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli3_options & LPFC_SLI3_VPORT_TEARDOWN) { phba 834 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 886 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_linkdown(struct lpfc_hba *phba) phba 888 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_vport *vport = phba->pport; phba 894 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->link_state == LPFC_LINK_DOWN) phba 898 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_scsi_dev_block(phba); phba 900 drivers/scsi/lpfc/lpfc_hbadisc.c phba->defer_flogi_acc_flag = false; phba 902 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 903 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag &= ~(FCF_AVAILABLE | FCF_SCAN_DONE); phba 904 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 905 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->link_state > LPFC_LINK_DOWN) { phba 906 drivers/scsi/lpfc/lpfc_hbadisc.c phba->link_state = LPFC_LINK_DOWN; phba 907 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli4_hba.conf_trunk) { phba 908 drivers/scsi/lpfc/lpfc_hbadisc.c phba->trunk_link.link0.state = 0; phba 909 drivers/scsi/lpfc/lpfc_hbadisc.c phba->trunk_link.link1.state = 0; phba 910 drivers/scsi/lpfc/lpfc_hbadisc.c phba->trunk_link.link2.state = 0; phba 911 drivers/scsi/lpfc/lpfc_hbadisc.c phba->trunk_link.link3.state = 0; phba 912 drivers/scsi/lpfc/lpfc_hbadisc.c phba->sli4_hba.link_state.logical_speed = phba 916 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->fc_flag &= ~FC_LBIT; phba 919 drivers/scsi/lpfc/lpfc_hbadisc.c vports = lpfc_create_vport_work_array(phba); phba 921 drivers/scsi/lpfc/lpfc_hbadisc.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 929 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->nvmet_support) phba 930 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_nvmet_update_targetport(phba); phba 936 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_destroy_vport_work_array(phba, vports); phba 939 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev > LPFC_SLI_REV3) phba 942 drivers/scsi/lpfc/lpfc_hbadisc.c mb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 944 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unreg_did(phba, 0xffff, LPFC_UNREG_ALL_DFLT_RPIS, mb); phba 947 drivers/scsi/lpfc/lpfc_hbadisc.c if (lpfc_sli_issue_mbox(phba, mb, MBX_NOWAIT) phba 949 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mb, phba->mbox_mem_pool); phba 955 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->pport->fc_flag & FC_PT2PT) { phba 956 drivers/scsi/lpfc/lpfc_hbadisc.c mb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 958 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_config_link(phba, mb); phba 961 drivers/scsi/lpfc/lpfc_hbadisc.c if (lpfc_sli_issue_mbox(phba, mb, MBX_NOWAIT) phba 963 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mb, phba->mbox_mem_pool); phba 967 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->fc_flag &= ~(FC_PT2PT | FC_PT2PT_PLOGI); phba 968 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->rcv_flogi_cnt = 0; phba 1005 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 1012 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_topology, phba->fc_linkspeed, phba->link_flag); phba 1015 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) && phba 1016 drivers/scsi/lpfc/lpfc_hbadisc.c (vport != phba->pport)) phba 1036 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_linkup(struct lpfc_hba *phba) phba 1040 drivers/scsi/lpfc/lpfc_hbadisc.c struct Scsi_Host *shost = lpfc_shost_from_vport(phba->pport); phba 1042 drivers/scsi/lpfc/lpfc_hbadisc.c phba->link_state = LPFC_LINK_UP; phba 1045 drivers/scsi/lpfc/lpfc_hbadisc.c clear_bit(FABRIC_COMANDS_BLOCKED, &phba->bit_flags); phba 1046 drivers/scsi/lpfc/lpfc_hbadisc.c del_timer_sync(&phba->fabric_block_timer); phba 1048 drivers/scsi/lpfc/lpfc_hbadisc.c vports = lpfc_create_vport_work_array(phba); phba 1050 drivers/scsi/lpfc/lpfc_hbadisc.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) phba 1052 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_destroy_vport_work_array(phba, vports); phba 1059 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->rcv_flogi_cnt = 0; phba 1063 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag &= ~(HBA_FLOGI_ISSUED); phba 1064 drivers/scsi/lpfc/lpfc_hbadisc.c phba->defer_flogi_acc_flag = false; phba 1076 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_cmpl_clear_la(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 1080 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_sli *psli = &phba->sli; phba 1095 drivers/scsi/lpfc/lpfc_hbadisc.c phba->link_state = LPFC_HBA_ERROR; phba 1100 drivers/scsi/lpfc/lpfc_hbadisc.c phba->link_state = LPFC_HBA_READY; phba 1102 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 1104 drivers/scsi/lpfc/lpfc_hbadisc.c control = readl(phba->HCregaddr); phba 1106 drivers/scsi/lpfc/lpfc_hbadisc.c writel(control, phba->HCregaddr); phba 1107 drivers/scsi/lpfc/lpfc_hbadisc.c readl(phba->HCregaddr); /* flush */ phba 1108 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 1109 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 1116 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 1126 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 1128 drivers/scsi/lpfc/lpfc_hbadisc.c control = readl(phba->HCregaddr); phba 1130 drivers/scsi/lpfc/lpfc_hbadisc.c writel(control, phba->HCregaddr); phba 1131 drivers/scsi/lpfc/lpfc_hbadisc.c readl(phba->HCregaddr); /* flush */ phba 1132 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 1139 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_cmpl_local_config_link(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 1146 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 1149 drivers/scsi/lpfc/lpfc_hbadisc.c if ((phba->sli_rev == LPFC_SLI_REV4) && phba 1150 drivers/scsi/lpfc/lpfc_hbadisc.c !(phba->hba_flag & HBA_FCOE_MODE) && phba 1151 drivers/scsi/lpfc/lpfc_hbadisc.c (phba->link_flag & LS_LOOPBACK_MODE)) phba 1154 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fc_topology == LPFC_TOPOLOGY_LOOP && phba 1170 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->hba_flag & HBA_DEFER_FLOGI)) phba 1183 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 1185 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_linkdown(phba); phba 1191 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_issue_clear_la(phba, vport); phba 1204 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_clear_fcf_rr_bmask(struct lpfc_hba *phba) phba 1208 drivers/scsi/lpfc/lpfc_hbadisc.c memset(phba->fcf.fcf_rr_bmask, 0, sizeof(*phba->fcf.fcf_rr_bmask)); phba 1209 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 1211 drivers/scsi/lpfc/lpfc_hbadisc.c &phba->fcf.fcf_pri_list, list) { phba 1215 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 1218 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_cmpl_reg_fcfi(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 1231 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcfi = bf_get(lpfc_reg_fcfi_fcfi, &mboxq->u.mqe.un.reg_fcfi); phba 1233 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 1234 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag |= FCF_REGISTERED; phba 1235 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 1238 drivers/scsi/lpfc/lpfc_hbadisc.c if ((!(phba->hba_flag & FCF_RR_INPROG)) && phba 1239 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_check_pending_fcoe_event(phba, LPFC_UNREG_FCF)) phba 1243 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 1244 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag |= (FCF_SCAN_DONE | FCF_IN_USE); phba 1245 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag &= ~FCF_TS_INPROG; phba 1247 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag |= FCF_RR_INPROG; phba 1248 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 1252 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 1256 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 1257 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag &= ~FCF_RR_INPROG; phba 1258 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 1260 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mboxq, phba->mbox_mem_pool); phba 1369 drivers/scsi/lpfc/lpfc_hbadisc.c __lpfc_update_fcf_record_pri(struct lpfc_hba *phba, uint16_t fcf_index, phba 1375 drivers/scsi/lpfc/lpfc_hbadisc.c lockdep_assert_held(&phba->hbalock); phba 1377 drivers/scsi/lpfc/lpfc_hbadisc.c fcf_pri = &phba->fcf.fcf_pri[fcf_index]; phba 1457 drivers/scsi/lpfc/lpfc_hbadisc.c __lpfc_update_fcf_record(struct lpfc_hba *phba, struct lpfc_fcf_rec *fcf_rec, phba 1461 drivers/scsi/lpfc/lpfc_hbadisc.c lockdep_assert_held(&phba->hbalock); phba 1469 drivers/scsi/lpfc/lpfc_hbadisc.c __lpfc_update_fcf_record_pri(phba, phba 1482 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_register_fcf(struct lpfc_hba *phba) phba 1487 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 1489 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->fcf.fcf_flag & FCF_AVAILABLE)) { phba 1490 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag &= ~(FCF_TS_INPROG | FCF_RR_INPROG); phba 1491 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 1496 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fcf.fcf_flag & FCF_REGISTERED) { phba 1497 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag |= (FCF_SCAN_DONE | FCF_IN_USE); phba 1498 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag &= ~FCF_TS_INPROG; phba 1499 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->pport->port_state != LPFC_FLOGI && phba 1500 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->fc_flag & FC_FABRIC) { phba 1501 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag |= FCF_RR_INPROG; phba 1502 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 1503 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_initial_flogi(phba->pport); phba 1506 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 1509 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 1511 drivers/scsi/lpfc/lpfc_hbadisc.c fcf_mbxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 1513 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 1514 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag &= ~(FCF_TS_INPROG | FCF_RR_INPROG); phba 1515 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 1519 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_reg_fcfi(phba, fcf_mbxq); phba 1520 drivers/scsi/lpfc/lpfc_hbadisc.c fcf_mbxq->vport = phba->pport; phba 1522 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli_issue_mbox(phba, fcf_mbxq, MBX_NOWAIT); phba 1524 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 1525 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag &= ~(FCF_TS_INPROG | FCF_RR_INPROG); phba 1526 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 1527 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(fcf_mbxq, phba->mbox_mem_pool); phba 1552 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_match_fcf_conn_list(struct lpfc_hba *phba, phba 1579 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->hba_flag & HBA_FIP_SUPPORT)) { phba 1583 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->valid_vlan) phba 1584 drivers/scsi/lpfc/lpfc_hbadisc.c *vlan_id = phba->vlan_id; phba 1594 drivers/scsi/lpfc/lpfc_hbadisc.c if (list_empty(&phba->fcf_conn_rec_list)) { phba 1615 drivers/scsi/lpfc/lpfc_hbadisc.c &phba->fcf_conn_rec_list, list) { phba 1737 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_check_pending_fcoe_event(struct lpfc_hba *phba, uint8_t unreg_fcf) phba 1743 drivers/scsi/lpfc/lpfc_hbadisc.c if ((phba->link_state >= LPFC_LINK_UP) && phba 1744 drivers/scsi/lpfc/lpfc_hbadisc.c (phba->fcoe_eventtag == phba->fcoe_eventtag_at_fcf_scan)) phba 1747 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 1751 drivers/scsi/lpfc/lpfc_hbadisc.c phba->link_state, phba->fcoe_eventtag_at_fcf_scan, phba 1752 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcoe_eventtag); phba 1754 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 1755 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag &= ~FCF_AVAILABLE; phba 1756 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 1758 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->link_state >= LPFC_LINK_UP) { phba 1759 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP | LOG_DISCOVERY, phba 1763 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcoe_eventtag_at_fcf_scan, phba 1764 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcoe_eventtag); phba 1765 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_fcf_scan_read_fcf_rec(phba, LPFC_FCOE_FCF_GET_FIRST); phba 1771 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP | LOG_DISCOVERY, phba 1773 drivers/scsi/lpfc/lpfc_hbadisc.c "state change (x%x)\n", phba->link_state); phba 1774 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 1775 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag &= ~(FCF_TS_INPROG | FCF_RR_INPROG); phba 1776 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag &= ~(FCF_REDISC_FOV | FCF_DISCOVERY); phba 1777 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 1782 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 1783 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag &= ~FCF_REGISTERED; phba 1784 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 1785 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_unregister_fcf(phba); phba 1806 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_new_fcf_random_select(struct lpfc_hba *phba, uint32_t fcf_cnt) phba 1834 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_fcf_rec_mbox_parse(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq, phba 1849 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, phba 1860 drivers/scsi/lpfc/lpfc_hbadisc.c if_type = bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf); phba 1865 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP, phba 1869 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP, phba 1902 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_log_fcf_record_info(struct lpfc_hba *phba, phba 1907 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 1966 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_fcf_record_match(struct lpfc_hba *phba, phba 1998 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 2002 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 2003 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->hba_flag & HBA_DEVLOSS_TMO) { phba 2004 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2005 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 2009 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.current_rec.fcf_indx); phba 2010 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unregister_fcf_rescan(phba); phba 2014 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag &= ~FCF_RR_INPROG; phba 2016 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag &= ~(FCF_AVAILABLE | FCF_SCAN_DONE); phba 2017 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2018 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 2021 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->port_state, LPFC_VPORT_UNKNOWN); phba 2022 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->port_state = LPFC_VPORT_UNKNOWN; phba 2024 drivers/scsi/lpfc/lpfc_hbadisc.c if (!phba->fcf.fcf_redisc_attempted) { phba 2025 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unregister_fcf(phba); phba 2027 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli4_redisc_fcf_table(phba); phba 2029 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 2031 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_redisc_attempted = 1; phba 2032 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_clear_fcf_rr_bmask(phba); phba 2034 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_WARNING, LOG_FIP, phba 2039 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_WARNING, LOG_FIP, phba 2045 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP | LOG_ELS, phba 2048 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli4_fcf_rr_read_fcf_rec(phba, fcf_index); phba 2050 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_WARNING, LOG_FIP | LOG_ELS, phba 2053 drivers/scsi/lpfc/lpfc_hbadisc.c rc, phba->fcf.current_rec.fcf_indx); phba 2073 drivers/scsi/lpfc/lpfc_hbadisc.c static void lpfc_sli4_fcf_pri_list_del(struct lpfc_hba *phba, phba 2078 drivers/scsi/lpfc/lpfc_hbadisc.c new_fcf_pri = &phba->fcf.fcf_pri[fcf_index]; phba 2079 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 2083 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 2085 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fcf.current_rec.priority == phba 2087 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.eligible_fcf_cnt--; phba 2091 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2105 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_set_fcf_flogi_fail(struct lpfc_hba *phba, uint16_t fcf_index) phba 2108 drivers/scsi/lpfc/lpfc_hbadisc.c new_fcf_pri = &phba->fcf.fcf_pri[fcf_index]; phba 2109 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 2111 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2129 drivers/scsi/lpfc/lpfc_hbadisc.c static int lpfc_sli4_fcf_pri_list_add(struct lpfc_hba *phba, phba 2140 drivers/scsi/lpfc/lpfc_hbadisc.c new_fcf_pri = &phba->fcf.fcf_pri[fcf_index]; phba 2141 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 2145 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 2150 drivers/scsi/lpfc/lpfc_hbadisc.c if (list_empty(&phba->fcf.fcf_pri_list)) { phba 2151 drivers/scsi/lpfc/lpfc_hbadisc.c list_add(&new_fcf_pri->list, &phba->fcf.fcf_pri_list); phba 2152 drivers/scsi/lpfc/lpfc_hbadisc.c ret = lpfc_sli4_fcf_rr_index_set(phba, phba 2157 drivers/scsi/lpfc/lpfc_hbadisc.c last_index = find_first_bit(phba->fcf.fcf_rr_bmask, phba 2163 drivers/scsi/lpfc/lpfc_hbadisc.c current_fcf_pri = phba->fcf.fcf_pri[last_index].fcf_rec.priority; phba 2165 drivers/scsi/lpfc/lpfc_hbadisc.c list_add(&new_fcf_pri->list, &phba->fcf.fcf_pri_list); phba 2167 drivers/scsi/lpfc/lpfc_hbadisc.c memset(phba->fcf.fcf_rr_bmask, 0, phba 2168 drivers/scsi/lpfc/lpfc_hbadisc.c sizeof(*phba->fcf.fcf_rr_bmask)); phba 2170 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.eligible_fcf_cnt = 1; phba 2173 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.eligible_fcf_cnt++; phba 2174 drivers/scsi/lpfc/lpfc_hbadisc.c ret = lpfc_sli4_fcf_rr_index_set(phba, phba 2180 drivers/scsi/lpfc/lpfc_hbadisc.c &phba->fcf.fcf_pri_list, list) { phba 2183 drivers/scsi/lpfc/lpfc_hbadisc.c if (fcf_pri->list.prev == &phba->fcf.fcf_pri_list) phba 2185 drivers/scsi/lpfc/lpfc_hbadisc.c &phba->fcf.fcf_pri_list); phba 2192 drivers/scsi/lpfc/lpfc_hbadisc.c } else if (fcf_pri->list.next == &phba->fcf.fcf_pri_list phba 2207 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2227 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_cmpl_fcf_scan_read_fcf_rec(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 2238 drivers/scsi/lpfc/lpfc_hbadisc.c if (lpfc_check_pending_fcoe_event(phba, LPFC_SKIP_UNREG_FCF)) { phba 2239 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_mbox_cmd_free(phba, mboxq); phba 2244 drivers/scsi/lpfc/lpfc_hbadisc.c new_fcf_record = lpfc_sli4_fcf_rec_mbox_parse(phba, mboxq, phba 2247 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP, phba 2251 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 2252 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag &= ~FCF_TS_INPROG; phba 2253 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2254 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_mbox_cmd_free(phba, mboxq); phba 2259 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_match_fcf_conn_list(phba, new_fcf_record, &boot_flag, phba 2263 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_log_fcf_record_info(phba, new_fcf_record, vlan_id, phba 2272 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_fcf_pri_list_del(phba, phba 2275 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_WARNING, LOG_FIP, phba 2286 drivers/scsi/lpfc/lpfc_hbadisc.c if ((phba->fcf.fcf_flag & FCF_IN_USE) && phba 2287 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_fcf_record_match(phba, &phba->fcf.current_rec, phba 2290 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.current_rec.fcf_indx) { phba 2291 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP, phba 2296 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.current_rec.fcf_indx); phba 2305 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->fcf.fcf_flag & FCF_REDISC_PEND) && phba 2306 drivers/scsi/lpfc/lpfc_hbadisc.c !(phba->fcf.fcf_flag & FCF_REDISC_FOV)) { phba 2307 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_WARNING, LOG_FIP, phba 2311 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.current_rec.fcf_indx); phba 2312 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 2313 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag |= FCF_REDISC_FOV; phba 2314 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2315 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_mbox_cmd_free(phba, mboxq); phba 2316 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_fcf_scan_read_fcf_rec(phba, phba 2324 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli4_fcf_pri_list_add(phba, fcf_index, phba 2336 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 2337 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fcf.fcf_flag & FCF_IN_USE) { phba 2338 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->cfg_fcf_failover_policy == LPFC_FCF_FOV && phba 2339 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_fcf_record_match(phba, &phba->fcf.current_rec, phba 2342 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.current_rec.fcf_indx) { phba 2343 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag |= FCF_AVAILABLE; phba 2344 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fcf.fcf_flag & FCF_REDISC_PEND) phba 2347 drivers/scsi/lpfc/lpfc_hbadisc.c phba); phba 2348 drivers/scsi/lpfc/lpfc_hbadisc.c else if (phba->fcf.fcf_flag & FCF_REDISC_FOV) phba 2350 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag &= ~FCF_REDISC_FOV; phba 2351 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2352 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 2356 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.current_rec.fcf_indx, phba 2357 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->port_state, phba 2358 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->fc_flag); phba 2361 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP, phba 2366 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.current_rec.fcf_indx); phba 2375 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->fcf.fcf_flag & FCF_REDISC_FOV)) { phba 2376 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2384 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fcf.fcf_flag & FCF_REDISC_FOV) phba 2385 drivers/scsi/lpfc/lpfc_hbadisc.c fcf_rec = &phba->fcf.failover_rec; phba 2387 drivers/scsi/lpfc/lpfc_hbadisc.c fcf_rec = &phba->fcf.current_rec; phba 2389 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fcf.fcf_flag & FCF_AVAILABLE) { phba 2397 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 2403 drivers/scsi/lpfc/lpfc_hbadisc.c __lpfc_update_fcf_record(phba, fcf_rec, new_fcf_record, phba 2405 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2414 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2423 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 2429 drivers/scsi/lpfc/lpfc_hbadisc.c __lpfc_update_fcf_record(phba, fcf_rec, new_fcf_record, phba 2432 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.eligible_fcf_cnt = 1; phba 2435 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.eligible_fcf_cnt++; phba 2436 drivers/scsi/lpfc/lpfc_hbadisc.c select_new_fcf = lpfc_sli4_new_fcf_random_select(phba, phba 2437 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.eligible_fcf_cnt); phba 2439 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 2446 drivers/scsi/lpfc/lpfc_hbadisc.c __lpfc_update_fcf_record(phba, fcf_rec, phba 2451 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2459 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 2464 drivers/scsi/lpfc/lpfc_hbadisc.c __lpfc_update_fcf_record(phba, fcf_rec, new_fcf_record, phba 2467 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag |= FCF_AVAILABLE; phba 2469 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.eligible_fcf_cnt = 1; phba 2471 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2475 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_mbox_cmd_free(phba, mboxq); phba 2477 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fcf.fcf_flag & FCF_REDISC_FOV) { phba 2486 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->fcf.failover_rec.flag & RECORD_VALID)) { phba 2487 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_WARNING, LOG_FIP, phba 2490 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcoe_eventtag_at_fcf_scan, phba 2493 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 2494 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->hba_flag & HBA_DEVLOSS_TMO) { phba 2495 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag &= ~FCF_TS_INPROG; phba 2496 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2498 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, phba 2503 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unregister_fcf_rescan(phba); phba 2509 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag &= ~FCF_TS_INPROG; phba 2510 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2523 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unregister_fcf(phba); phba 2526 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 2529 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.current_rec.fcf_indx, phba 2530 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.failover_rec.fcf_indx); phba 2531 drivers/scsi/lpfc/lpfc_hbadisc.c memcpy(&phba->fcf.current_rec, phba 2532 drivers/scsi/lpfc/lpfc_hbadisc.c &phba->fcf.failover_rec, phba 2539 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 2540 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag &= ~FCF_REDISC_FOV; phba 2541 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2543 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_register_fcf(phba); phba 2549 drivers/scsi/lpfc/lpfc_hbadisc.c if ((phba->fcf.fcf_flag & FCF_REDISC_EVT) || phba 2550 drivers/scsi/lpfc/lpfc_hbadisc.c (phba->fcf.fcf_flag & FCF_REDISC_PEND)) phba 2553 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->cfg_fcf_failover_policy == LPFC_FCF_FOV && phba 2554 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag & FCF_IN_USE) { phba 2561 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 2565 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.current_rec.fcf_indx); phba 2566 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 2567 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag |= FCF_REDISC_FOV; phba 2568 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2569 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_fcf_scan_read_fcf_rec(phba, phba 2574 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_register_fcf(phba); phba 2577 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_fcf_scan_read_fcf_rec(phba, next_fcf_index); phba 2581 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_mbox_cmd_free(phba, mboxq); phba 2582 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_register_fcf(phba); phba 2603 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_cmpl_fcf_rr_read_fcf_rec(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 2613 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->link_state < LPFC_LINK_UP) { phba 2614 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 2615 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag &= ~FCF_DISCOVERY; phba 2616 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag &= ~FCF_RR_INPROG; phba 2617 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2622 drivers/scsi/lpfc/lpfc_hbadisc.c new_fcf_record = lpfc_sli4_fcf_rec_mbox_parse(phba, mboxq, phba 2625 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_WARNING, LOG_FIP, phba 2628 drivers/scsi/lpfc/lpfc_hbadisc.c "hba_flg x%x fcf_flg x%x\n", phba->hba_flag, phba 2629 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag); phba 2630 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unregister_fcf_rescan(phba); phba 2635 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_match_fcf_conn_list(phba, new_fcf_record, &boot_flag, phba 2639 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_log_fcf_record_info(phba, new_fcf_record, vlan_id, phba 2644 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 2648 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_fcf_rr_index_clear(phba, fcf_index); phba 2650 drivers/scsi/lpfc/lpfc_hbadisc.c fcf_index = lpfc_sli4_fcf_rr_next_index_get(phba); phba 2651 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli4_fcf_rr_next_proc(phba->pport, fcf_index); phba 2657 drivers/scsi/lpfc/lpfc_hbadisc.c if (fcf_index == phba->fcf.current_rec.fcf_indx) { phba 2658 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 2661 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.current_rec.fcf_indx, fcf_index); phba 2664 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_issue_init_vfi(phba->pport); phba 2669 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 2671 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.failover_rec.fcf_indx, fcf_index); phba 2672 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 2673 drivers/scsi/lpfc/lpfc_hbadisc.c __lpfc_update_fcf_record(phba, &phba->fcf.failover_rec, phba 2676 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 2678 drivers/scsi/lpfc/lpfc_hbadisc.c current_fcf_index = phba->fcf.current_rec.fcf_indx; phba 2681 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unregister_fcf(phba); phba 2684 drivers/scsi/lpfc/lpfc_hbadisc.c memcpy(&phba->fcf.current_rec, &phba->fcf.failover_rec, phba 2687 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 2692 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_register_fcf(phba); phba 2694 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_mbox_cmd_free(phba, mboxq); phba 2709 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_cmpl_read_fcf_rec(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 2718 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->link_state < LPFC_LINK_UP) phba 2722 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->fcf.fcf_flag & FCF_DISCOVERY)) phba 2726 drivers/scsi/lpfc/lpfc_hbadisc.c new_fcf_record = lpfc_sli4_fcf_rec_mbox_parse(phba, mboxq, phba 2729 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 2736 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_match_fcf_conn_list(phba, new_fcf_record, &boot_flag, phba 2740 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_log_fcf_record_info(phba, new_fcf_record, vlan_id, phba 2749 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli4_fcf_pri_list_add(phba, fcf_index, new_fcf_record); phba 2752 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_mbox_cmd_free(phba, mboxq); phba 2763 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_init_vfi_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 2772 drivers/scsi/lpfc/lpfc_hbadisc.c (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) != phba 2779 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mboxq, phba->mbox_mem_pool); phba 2785 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mboxq, phba->mbox_mem_pool); phba 2801 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 2803 drivers/scsi/lpfc/lpfc_hbadisc.c mboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 2812 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_NOWAIT); phba 2816 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mboxq, vport->phba->mbox_mem_pool); phba 2828 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_init_vpi_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 2839 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mboxq, phba->mbox_mem_pool); phba 2848 drivers/scsi/lpfc/lpfc_hbadisc.c if ((phba->pport == vport) || (vport->port_state == LPFC_FDISC)) { phba 2856 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_register_new_vport(phba, vport, ndlp); phba 2857 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mboxq, phba->mbox_mem_pool); phba 2861 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->link_flag & LS_NPIV_FAB_SUPPORTED) phba 2868 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mboxq, phba->mbox_mem_pool); phba 2886 drivers/scsi/lpfc/lpfc_hbadisc.c vpi = lpfc_alloc_vpi(vport->phba); phba 2897 drivers/scsi/lpfc/lpfc_hbadisc.c mboxq = mempool_alloc(vport->phba->mbox_mem_pool, GFP_KERNEL); phba 2904 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_init_vpi(vport->phba, mboxq, vport->vpi); phba 2907 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli_issue_mbox(vport->phba, mboxq, MBX_NOWAIT); phba 2911 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mboxq, vport->phba->mbox_mem_pool); phba 2923 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_start_fdiscs(struct lpfc_hba *phba) phba 2928 drivers/scsi/lpfc/lpfc_hbadisc.c vports = lpfc_create_vport_work_array(phba); phba 2930 drivers/scsi/lpfc/lpfc_hbadisc.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 2934 drivers/scsi/lpfc/lpfc_hbadisc.c if (vports[i]->vpi > phba->max_vpi) { phba 2939 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { phba 2948 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->link_flag & LS_NPIV_FAB_SUPPORTED) phba 2960 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_destroy_vport_work_array(phba, vports); phba 2964 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_cmpl_reg_vfi(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 2975 drivers/scsi/lpfc/lpfc_hbadisc.c (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) != phba 2982 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { phba 2998 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->sli_rev == LPFC_SLI_REV4 && phba 3011 drivers/scsi/lpfc/lpfc_hbadisc.c if ((phba->sli_rev == LPFC_SLI_REV4) && phba 3012 drivers/scsi/lpfc/lpfc_hbadisc.c (phba->link_flag & LS_LOOPBACK_MODE)) { phba 3013 drivers/scsi/lpfc/lpfc_hbadisc.c phba->link_state = LPFC_HBA_READY; phba 3021 drivers/scsi/lpfc/lpfc_hbadisc.c vport->phba->alpa_map[0], phba 3022 drivers/scsi/lpfc/lpfc_hbadisc.c phba->link_state, phba->fc_topology); phba 3030 drivers/scsi/lpfc/lpfc_hbadisc.c ((phba->fc_topology == LPFC_TOPOLOGY_LOOP) && phba 3041 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_start_fdiscs(phba); phba 3042 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_do_scr_ns_plogi(phba, vport); phba 3047 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mboxq, phba->mbox_mem_pool); phba 3049 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbuf_free(phba, dmabuf->virt, dmabuf->phys); phba 3056 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_cmpl_read_sparam(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 3072 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_linkdown(phba); phba 3083 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_edtov = ed_tov; phba 3084 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_ratov = (2 * ed_tov) / 1000; phba 3085 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fc_ratov < FF_DEF_RATOV) { phba 3087 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_ratov = FF_DEF_RATOV; phba 3093 drivers/scsi/lpfc/lpfc_hbadisc.c memcpy(&phba->wwnn, &vport->fc_nodename, sizeof(phba->wwnn)); phba 3094 drivers/scsi/lpfc/lpfc_hbadisc.c memcpy(&phba->wwpn, &vport->fc_portname, sizeof(phba->wwnn)); phba 3097 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 3099 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 3104 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->hba_flag & HBA_DEFER_FLOGI) { phba 3106 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag &= ~HBA_DEFER_FLOGI; phba 3112 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 3114 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_issue_clear_la(phba, vport); phba 3115 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 3120 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_process_link_up(struct lpfc_hba *phba, struct lpfc_mbx_read_top *la) phba 3122 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_vport *vport = phba->pport; phba 3132 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irqsave(&phba->hbalock, iflags); phba 3133 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_linkspeed = bf_get(lpfc_mbx_read_top_link_spd, la); phba 3135 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->hba_flag & HBA_FCOE_MODE)) { phba 3148 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_linkspeed = LPFC_LINK_SPEED_UNKNOWN; phba 3153 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fc_topology && phba 3154 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_topology != bf_get(lpfc_mbx_read_top_topology, la)) { phba 3155 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 3157 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_topology, phba 3159 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_topology_changed = 1; phba 3162 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_topology = bf_get(lpfc_mbx_read_top_topology, la); phba 3163 drivers/scsi/lpfc/lpfc_hbadisc.c phba->link_flag &= ~LS_NPIV_FAB_SUPPORTED; phba 3166 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { phba 3167 drivers/scsi/lpfc/lpfc_hbadisc.c phba->sli3_options &= ~LPFC_SLI3_NPIV_ENABLED; phba 3172 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->cfg_enable_npiv && phba->max_vpi) phba 3173 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_LINK_EVENT, phba 3184 drivers/scsi/lpfc/lpfc_hbadisc.c phba->alpa_map[0] = 0; phba 3197 drivers/scsi/lpfc/lpfc_hbadisc.c numalpa = phba->alpa_map[0]; phba 3203 drivers/scsi/lpfc/lpfc_hbadisc.c phba->alpa_map[j + 1]; phba 3209 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, phba 3221 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->sli3_options & LPFC_SLI3_NPIV_ENABLED)) { phba 3222 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->max_vpi && phba->cfg_enable_npiv && phba 3223 drivers/scsi/lpfc/lpfc_hbadisc.c (phba->sli_rev >= LPFC_SLI_REV3)) phba 3224 drivers/scsi/lpfc/lpfc_hbadisc.c phba->sli3_options |= LPFC_SLI3_NPIV_ENABLED; phba 3226 drivers/scsi/lpfc/lpfc_hbadisc.c vport->fc_myDID = phba->fc_pref_DID; phba 3229 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 3237 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_linkup(phba); phba 3240 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->hba_flag & HBA_FCOE_MODE)) { phba 3241 drivers/scsi/lpfc/lpfc_hbadisc.c cfglink_mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 3245 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_config_link(phba, cfglink_mbox); phba 3248 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli_issue_mbox(phba, cfglink_mbox, MBX_NOWAIT); phba 3250 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(cfglink_mbox, phba->mbox_mem_pool); phba 3255 drivers/scsi/lpfc/lpfc_hbadisc.c sparam_mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 3259 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_read_sparam(phba, sparam_mbox, 0); phba 3261 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(sparam_mbox, phba->mbox_mem_pool); phba 3266 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli_issue_mbox(phba, sparam_mbox, MBX_NOWAIT); phba 3269 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 3271 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(sparam_mbox, phba->mbox_mem_pool); phba 3275 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->hba_flag & HBA_FCOE_MODE) { phba 3282 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->hba_flag & HBA_FIP_SUPPORT)) { phba 3286 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, phba 3294 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_build_dflt_fcf_record(phba, fcf_record, phba 3296 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli4_add_fcf_record(phba, fcf_record); phba 3298 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, phba 3312 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irqsave(&phba->hbalock, iflags); phba 3313 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->hba_flag & FCF_TS_INPROG) { phba 3314 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 3318 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag |= FCF_INIT_DISC; phba 3319 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 3320 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP | LOG_DISCOVERY, phba 3322 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli4_fcf_scan_read_fcf_rec(phba, phba 3325 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irqsave(&phba->hbalock, iflags); phba 3326 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag &= ~FCF_INIT_DISC; phba 3327 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 3331 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_clear_fcf_rr_bmask(phba); phba 3333 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->bbcredit_support && phba->cfg_enable_bbcr && phba 3334 drivers/scsi/lpfc/lpfc_hbadisc.c !(phba->link_flag & LS_LOOPBACK_MODE)) phba 3335 drivers/scsi/lpfc/lpfc_hbadisc.c phba->hba_flag |= HBA_DEFER_FLOGI; phba 3339 drivers/scsi/lpfc/lpfc_hbadisc.c memset(phba->os_host_name, 0, sizeof(phba->os_host_name)); phba 3340 drivers/scsi/lpfc/lpfc_hbadisc.c scnprintf(phba->os_host_name, sizeof(phba->os_host_name), "%s", phba 3348 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_issue_clear_la(phba, vport); phba 3353 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_enable_la(struct lpfc_hba *phba) phba 3356 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_sli *psli = &phba->sli; phba 3357 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 3359 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev <= LPFC_SLI_REV3) { phba 3360 drivers/scsi/lpfc/lpfc_hbadisc.c control = readl(phba->HCregaddr); phba 3362 drivers/scsi/lpfc/lpfc_hbadisc.c writel(control, phba->HCregaddr); phba 3363 drivers/scsi/lpfc/lpfc_hbadisc.c readl(phba->HCregaddr); /* flush */ phba 3365 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 3369 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_issue_link_down(struct lpfc_hba *phba) phba 3371 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_linkdown(phba); phba 3372 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_enable_la(phba); phba 3373 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unregister_unused_fcf(phba); phba 3385 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_cmpl_read_topology(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 3397 drivers/scsi/lpfc/lpfc_hbadisc.c pring = lpfc_phba_elsring(phba); phba 3403 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_LINK_EVENT, phba 3406 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_issue_link_down(phba); phba 3407 drivers/scsi/lpfc/lpfc_hbadisc.c phba->link_state = LPFC_HBA_ERROR; phba 3414 drivers/scsi/lpfc/lpfc_hbadisc.c memcpy(&phba->alpa_map[0], mp->virt, 128); phba 3423 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fc_eventTag <= la->eventTag) { phba 3424 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_stat.LinkMultiEvent++; phba 3426 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fc_eventTag != 0) phba 3427 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_linkdown(phba); phba 3430 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_eventTag = la->eventTag; phba 3431 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev < LPFC_SLI_REV4) { phba 3432 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irqsave(&phba->hbalock, iflags); phba 3434 drivers/scsi/lpfc/lpfc_hbadisc.c phba->sli.sli_flag |= LPFC_MENLO_MAINT; phba 3436 drivers/scsi/lpfc/lpfc_hbadisc.c phba->sli.sli_flag &= ~LPFC_MENLO_MAINT; phba 3437 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 3440 drivers/scsi/lpfc/lpfc_hbadisc.c phba->link_events++; phba 3442 drivers/scsi/lpfc/lpfc_hbadisc.c !(phba->sli.sli_flag & LPFC_MENLO_MAINT)) { phba 3443 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_stat.LinkUp++; phba 3444 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->link_flag & LS_LOOPBACK_MODE) { phba 3445 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_LINK_EVENT, phba 3448 drivers/scsi/lpfc/lpfc_hbadisc.c la->eventTag, phba->fc_eventTag, phba 3452 drivers/scsi/lpfc/lpfc_hbadisc.c phba->alpa_map[0]); phba 3454 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_LINK_EVENT, phba 3457 drivers/scsi/lpfc/lpfc_hbadisc.c la->eventTag, phba->fc_eventTag, phba 3461 drivers/scsi/lpfc/lpfc_hbadisc.c phba->alpa_map[0], phba 3464 drivers/scsi/lpfc/lpfc_hbadisc.c phba->wait_4_mlo_maint_flg); phba 3466 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_process_link_up(phba, la); phba 3469 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_stat.LinkDown++; phba 3470 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->link_flag & LS_LOOPBACK_MODE) phba 3471 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_LINK_EVENT, phba 3475 drivers/scsi/lpfc/lpfc_hbadisc.c la->eventTag, phba->fc_eventTag, phba 3476 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->port_state, vport->fc_flag); phba 3478 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_LINK_EVENT, phba 3481 drivers/scsi/lpfc/lpfc_hbadisc.c la->eventTag, phba->fc_eventTag, phba 3482 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->port_state, vport->fc_flag, phba 3486 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_LINK_EVENT, phba 3489 drivers/scsi/lpfc/lpfc_hbadisc.c la->eventTag, phba->fc_eventTag, phba 3490 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->port_state, vport->fc_flag, phba 3493 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_issue_link_down(phba); phba 3495 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli.sli_flag & LPFC_MENLO_MAINT && phba 3497 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->link_state != LPFC_LINK_DOWN) { phba 3498 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_stat.LinkDown++; phba 3499 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_LINK_EVENT, phba 3502 drivers/scsi/lpfc/lpfc_hbadisc.c la->eventTag, phba->fc_eventTag, phba 3503 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->port_state, vport->fc_flag); phba 3504 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_issue_link_down(phba); phba 3506 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_enable_la(phba); phba 3508 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_LINK_EVENT, phba 3511 drivers/scsi/lpfc/lpfc_hbadisc.c la->eventTag, phba->fc_eventTag, phba 3512 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->port_state, vport->fc_flag); phba 3518 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->wait_4_mlo_maint_flg) { phba 3519 drivers/scsi/lpfc/lpfc_hbadisc.c phba->wait_4_mlo_maint_flg = 0; phba 3520 drivers/scsi/lpfc/lpfc_hbadisc.c wake_up_interruptible(&phba->wait_4_mlo_m_q); phba 3524 drivers/scsi/lpfc/lpfc_hbadisc.c if ((phba->sli_rev < LPFC_SLI_REV4) && phba 3526 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli.sli_flag & LPFC_MENLO_MAINT) phba 3527 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_issue_clear_la(phba, vport); phba 3528 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_LINK_EVENT, phba 3534 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 3536 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 3547 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_cmpl_reg_login(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 3591 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 3593 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 3603 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_cmpl_unreg_vpi(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 3621 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->pport->load_flag & FC_UNLOADING)) phba 3622 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_workq_post_event(phba, NULL, NULL, phba 3630 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 3636 drivers/scsi/lpfc/lpfc_hbadisc.c if ((vport->load_flag & FC_UNLOADING) && (vport != phba->pport)) phba 3643 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 3647 drivers/scsi/lpfc/lpfc_hbadisc.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 3651 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unreg_vpi(phba, vport->vpi, mbox); phba 3654 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); phba 3658 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mbox, phba->mbox_mem_pool); phba 3666 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_cmpl_reg_vpi(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 3687 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->nvmet_support) phba 3688 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_nvmet_update_targetport(phba); phba 3713 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 3726 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_create_static_vport(struct lpfc_hba *phba) phba 3741 drivers/scsi/lpfc/lpfc_hbadisc.c pmb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 3743 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 3753 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 3756 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 3765 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 3768 drivers/scsi/lpfc/lpfc_hbadisc.c if (lpfc_dump_static_vport(phba, pmb, offset)) phba 3771 drivers/scsi/lpfc/lpfc_hbadisc.c pmb->vport = phba->pport; phba 3772 drivers/scsi/lpfc/lpfc_hbadisc.c mbx_wait_rc = lpfc_sli_issue_mbox_wait(phba, pmb, phba 3776 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 3784 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 3814 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 3823 drivers/scsi/lpfc/lpfc_hbadisc.c shost = lpfc_shost_from_vport(phba->pport); phba 3838 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 3853 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 3856 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 3869 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_cmpl_fabric_reg_login(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 3885 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 3887 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 3889 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { phba 3910 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev < LPFC_SLI_REV4) phba 3920 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_start_fdiscs(phba); phba 3927 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_do_scr_ns_plogi(phba, vport); phba 3930 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 3932 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 4021 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_cmpl_ns_reg_login(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 4042 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 4044 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 4049 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { phba 4064 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev < LPFC_SLI_REV4) phba 4107 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 4109 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 4121 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 4163 drivers/scsi/lpfc/lpfc_hbadisc.c dev_printk(KERN_WARNING, &phba->pcidev->dev, phba 4279 drivers/scsi/lpfc/lpfc_hbadisc.c vport->phba->nport_event_cnt++; phba 4284 drivers/scsi/lpfc/lpfc_hbadisc.c vport->phba->nport_event_cnt++; phba 4285 drivers/scsi/lpfc/lpfc_hbadisc.c if (vport->phba->nvmet_support == 0) { phba 4304 drivers/scsi/lpfc/lpfc_hbadisc.c vport->phba->nport_event_cnt++; phba 4312 drivers/scsi/lpfc/lpfc_hbadisc.c if (vport->phba->sli_rev >= LPFC_SLI_REV4 && phba 4314 drivers/scsi/lpfc/lpfc_hbadisc.c if (vport->phba->nvmet_support == 0) { phba 4320 drivers/scsi/lpfc/lpfc_hbadisc.c vport->phba->nport_event_cnt++; phba 4485 drivers/scsi/lpfc/lpfc_hbadisc.c ndlp->phba = vport->phba; phba 4499 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 4509 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 4511 drivers/scsi/lpfc/lpfc_hbadisc.c rpi = lpfc_sli4_alloc_rpi(vport->phba); phba 4527 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irqsave(&phba->ndlp_lock, flags); phba 4530 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->ndlp_lock, flags); phba 4540 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->ndlp_lock, flags); phba 4554 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 4566 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 4569 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->ndlp_lock, flags); phba 4570 drivers/scsi/lpfc/lpfc_hbadisc.c if (vport->phba->sli_rev == LPFC_SLI_REV4) { phba 4598 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 4599 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_free_rpi(vport->phba, rpi); phba 4616 drivers/scsi/lpfc/lpfc_hbadisc.c if (vport->phba->sli_rev == LPFC_SLI_REV4) { phba 4632 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 4637 drivers/scsi/lpfc/lpfc_hbadisc.c tmo = (((phba->fc_edtov + 999) / 1000) + 1); phba 4642 drivers/scsi/lpfc/lpfc_hbadisc.c tmo = ((phba->fc_ratov * 3) + 3); phba 4706 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_check_sli_ndlp(struct lpfc_hba *phba, phba 4746 drivers/scsi/lpfc/lpfc_hbadisc.c __lpfc_dequeue_nport_iocbs(struct lpfc_hba *phba, phba 4754 drivers/scsi/lpfc/lpfc_hbadisc.c if (lpfc_check_sli_ndlp(phba, pring, iocb, ndlp)) phba 4761 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli3_dequeue_nport_iocbs(struct lpfc_hba *phba, phba 4764 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_sli *psli = &phba->sli; phba 4767 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 4769 drivers/scsi/lpfc/lpfc_hbadisc.c __lpfc_dequeue_nport_iocbs(phba, ndlp, &psli->sli3_ring[i], phba 4771 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 4775 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_dequeue_nport_iocbs(struct lpfc_hba *phba, phba 4781 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 4782 drivers/scsi/lpfc/lpfc_hbadisc.c list_for_each_entry(qp, &phba->sli4_hba.lpfc_wq_list, wq_list) { phba 4787 drivers/scsi/lpfc/lpfc_hbadisc.c __lpfc_dequeue_nport_iocbs(phba, ndlp, pring, dequeue_list); phba 4790 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 4798 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_no_rpi(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp) phba 4809 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev != LPFC_SLI_REV4) phba 4810 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli3_dequeue_nport_iocbs(phba, ndlp, &completions); phba 4812 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_dequeue_nport_iocbs(phba, ndlp, &completions); phba 4816 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT, phba 4831 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_nlp_logo_unreg(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 4840 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 4856 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_free_rpi(vport->phba, ndlp->nlp_rpi); phba 4869 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_set_unreg_login_mbx_cmpl(struct lpfc_hba *phba, struct lpfc_vport *vport, phba 4878 drivers/scsi/lpfc/lpfc_hbadisc.c } else if (phba->sli_rev == LPFC_SLI_REV4 && phba 4880 drivers/scsi/lpfc/lpfc_hbadisc.c (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) >= phba 4887 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 4888 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irqsave(&vport->phba->ndlp_lock, phba 4891 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&vport->phba->ndlp_lock, phba 4913 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 4942 drivers/scsi/lpfc/lpfc_hbadisc.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 4946 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 4947 drivers/scsi/lpfc/lpfc_hbadisc.c rpi = phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]; phba 4949 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unreg_login(phba, vport->vpi, rpi, mbox); phba 4951 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_set_unreg_login_mbx_cmpl(phba, vport, ndlp, mbox); phba 4969 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); phba 4971 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mbox, phba->mbox_mem_pool); phba 4975 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_no_rpi(phba, ndlp); phba 4977 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev != LPFC_SLI_REV4) phba 4997 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unreg_hba_rpis(struct lpfc_hba *phba) phba 5004 drivers/scsi/lpfc/lpfc_hbadisc.c vports = lpfc_create_vport_work_array(phba); phba 5006 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY, phba 5010 drivers/scsi/lpfc/lpfc_hbadisc.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 5023 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_destroy_vport_work_array(phba, vports); phba 5029 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 5033 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 5038 drivers/scsi/lpfc/lpfc_hbadisc.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 5040 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unreg_login(phba, vport->vpi, LPFC_UNREG_ALL_RPIS_VPORT, phba 5045 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli_issue_mbox_wait(phba, mbox, LPFC_MBOX_TMO); phba 5047 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mbox, phba->mbox_mem_pool); phba 5059 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 5064 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev > LPFC_SLI_REV3) phba 5067 drivers/scsi/lpfc/lpfc_hbadisc.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 5069 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unreg_did(phba, vport->vpi, LPFC_UNREG_ALL_DFLT_RPIS, phba 5074 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli_issue_mbox_wait(phba, mbox, LPFC_MBOX_TMO); phba 5076 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mbox, phba->mbox_mem_pool); phba 5094 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 5125 drivers/scsi/lpfc/lpfc_hbadisc.c if ((mb = phba->sli.mbox_active)) { phba 5134 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 5136 drivers/scsi/lpfc/lpfc_hbadisc.c list_for_each_entry(mb, &phba->sli.mboxq_cmpl, list) { phba 5146 drivers/scsi/lpfc/lpfc_hbadisc.c list_for_each_entry_safe(mb, nextmb, &phba->sli.mboxq, list) { phba 5152 drivers/scsi/lpfc/lpfc_hbadisc.c __lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 5156 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mb, phba->mbox_mem_pool); phba 5163 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 5165 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_els_abort(phba, ndlp); phba 5177 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 5183 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_free_rpi(vport->phba, phba 5185 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irqsave(&vport->phba->ndlp_lock, phba 5189 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&vport->phba->ndlp_lock, phba 5204 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 5214 drivers/scsi/lpfc/lpfc_hbadisc.c phba->sli_rev != LPFC_SLI_REV4) { phba 5223 drivers/scsi/lpfc/lpfc_hbadisc.c if ((mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL)) phba 5225 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_reg_rpi(phba, vport->vpi, ndlp->nlp_DID, phba 5228 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mbox, phba->mbox_mem_pool); phba 5235 drivers/scsi/lpfc/lpfc_hbadisc.c rc =lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); phba 5237 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mbox, phba->mbox_mem_pool); phba 5301 drivers/scsi/lpfc/lpfc_hbadisc.c vport->phba->fc_topology == phba 5406 drivers/scsi/lpfc/lpfc_hbadisc.c if (vport->phba->nvmet_support) phba 5420 drivers/scsi/lpfc/lpfc_hbadisc.c if (vport->phba->nvmet_support) phba 5452 drivers/scsi/lpfc/lpfc_hbadisc.c if (vport->phba->nvmet_support) phba 5478 drivers/scsi/lpfc/lpfc_hbadisc.c (!vport->phba->nvmet_support && phba 5482 drivers/scsi/lpfc/lpfc_hbadisc.c if (vport->phba->nvmet_support) phba 5501 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 5505 drivers/scsi/lpfc/lpfc_hbadisc.c if (!lpfc_is_link_up(phba)) phba 5508 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->fc_topology != LPFC_TOPOLOGY_LOOP) phba 5512 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->alpa_map[0]) { phba 5513 drivers/scsi/lpfc/lpfc_hbadisc.c for (j = 1; j <= phba->alpa_map[0]; j++) { phba 5514 drivers/scsi/lpfc/lpfc_hbadisc.c alpa = phba->alpa_map[j]; phba 5540 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_issue_clear_la(struct lpfc_hba *phba, struct lpfc_vport *vport) phba 5543 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_sli *psli = &phba->sli; phba 5552 drivers/scsi/lpfc/lpfc_hbadisc.c if ((phba->link_state >= LPFC_CLEAR_LA) || phba 5554 drivers/scsi/lpfc/lpfc_hbadisc.c (phba->sli_rev == LPFC_SLI_REV4)) phba 5558 drivers/scsi/lpfc/lpfc_hbadisc.c if ((mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL)) != NULL) { phba 5559 drivers/scsi/lpfc/lpfc_hbadisc.c phba->link_state = LPFC_CLEAR_LA; phba 5560 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_clear_la(phba, mbox); phba 5563 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); phba 5565 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mbox, phba->mbox_mem_pool); phba 5569 drivers/scsi/lpfc/lpfc_hbadisc.c phba->link_state = LPFC_HBA_ERROR; phba 5576 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_issue_reg_vpi(struct lpfc_hba *phba, struct lpfc_vport *vport) phba 5580 drivers/scsi/lpfc/lpfc_hbadisc.c regvpimbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 5585 drivers/scsi/lpfc/lpfc_hbadisc.c if (lpfc_sli_issue_mbox(phba, regvpimbox, MBX_NOWAIT) phba 5587 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(regvpimbox, phba->mbox_mem_pool); phba 5597 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 5601 drivers/scsi/lpfc/lpfc_hbadisc.c if (!lpfc_is_link_up(phba)) { phba 5604 drivers/scsi/lpfc/lpfc_hbadisc.c phba->link_state); phba 5608 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->link_state == LPFC_CLEAR_LA) phba 5635 drivers/scsi/lpfc/lpfc_hbadisc.c if ((phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) && phba 5638 drivers/scsi/lpfc/lpfc_hbadisc.c (phba->sli_rev < LPFC_SLI_REV4)) { phba 5639 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_issue_clear_la(phba, vport); phba 5640 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_issue_reg_vpi(phba, vport); phba 5650 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_issue_clear_la(phba, vport); phba 5695 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_free_tx(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp) phba 5702 drivers/scsi/lpfc/lpfc_hbadisc.c pring = lpfc_phba_elsring(phba); phba 5709 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 5730 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli_issue_abort_iotag(phba, pring, iocb); phba 5733 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 5736 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT, phba 5744 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 5753 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_free_tx(phba, ndlp); phba 5786 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 5790 drivers/scsi/lpfc/lpfc_hbadisc.c if (unlikely(!phba)) phba 5800 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_worker_wake_up(phba); phba 5808 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba = vport->phba; phba 5809 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_sli *psli = &phba->sli; phba 5854 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev <= LPFC_SLI_REV3) phba 5890 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_els_abort(phba, ndlp); phba 5918 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev < LPFC_SLI_REV4) { phba 5919 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) phba 5920 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_issue_reg_vpi(phba, vport); phba 5922 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_issue_clear_la(phba, vport); phba 5928 drivers/scsi/lpfc/lpfc_hbadisc.c initlinkmbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 5933 drivers/scsi/lpfc/lpfc_hbadisc.c phba->link_state = LPFC_HBA_ERROR; phba 5937 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_linkdown(phba); phba 5938 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_init_link(phba, initlinkmbox, phba->cfg_topology, phba 5939 drivers/scsi/lpfc/lpfc_hbadisc.c phba->cfg_link_speed); phba 5943 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli_issue_mbox(phba, initlinkmbox, MBX_NOWAIT); phba 5944 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_set_loopback_flag(phba); phba 5946 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(initlinkmbox, phba->mbox_mem_pool); phba 5960 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev < LPFC_SLI_REV4) { phba 5961 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) phba 5962 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_issue_reg_vpi(phba, vport); phba 5964 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_issue_clear_la(phba, vport); phba 5992 drivers/scsi/lpfc/lpfc_hbadisc.c switch (phba->link_state) { phba 6001 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_issue_clear_la(phba, vport); phba 6011 drivers/scsi/lpfc/lpfc_hbadisc.c "state x%x\n", phba->link_state); phba 6021 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev != LPFC_SLI_REV4) { phba 6039 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_cmpl_fdmi_reg_login(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 6049 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev < LPFC_SLI_REV4) phba 6075 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 6077 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 6182 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_find_vport_by_vpid(struct lpfc_hba *phba, uint16_t vpi) phba 6194 drivers/scsi/lpfc/lpfc_hbadisc.c for (i = 0; i < phba->max_vpi; i++) { phba 6195 drivers/scsi/lpfc/lpfc_hbadisc.c if (vpi == phba->vpi_ids[i]) phba 6199 drivers/scsi/lpfc/lpfc_hbadisc.c if (i >= phba->max_vpi) { phba 6200 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_ELS, phba 6207 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irqsave(&phba->port_list_lock, flags); phba 6208 drivers/scsi/lpfc/lpfc_hbadisc.c list_for_each_entry(vport, &phba->port_list, listentry) { phba 6210 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->port_list_lock, flags); phba 6214 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->port_list_lock, flags); phba 6224 drivers/scsi/lpfc/lpfc_hbadisc.c if (vport->phba->sli_rev == LPFC_SLI_REV4) { phba 6225 drivers/scsi/lpfc/lpfc_hbadisc.c rpi = lpfc_sli4_alloc_rpi(vport->phba); phba 6230 drivers/scsi/lpfc/lpfc_hbadisc.c ndlp = mempool_alloc(vport->phba->nlp_mem_pool, GFP_KERNEL); phba 6232 drivers/scsi/lpfc/lpfc_hbadisc.c if (vport->phba->sli_rev == LPFC_SLI_REV4) phba 6233 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_free_rpi(vport->phba, rpi); phba 6241 drivers/scsi/lpfc/lpfc_hbadisc.c if (vport->phba->sli_rev == LPFC_SLI_REV4) { phba 6251 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_alloc(vport->phba->active_rrq_pool, phba 6255 drivers/scsi/lpfc/lpfc_hbadisc.c ndlp->phba->cfg_rrq_xri_bitmap_sz); phba 6273 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba; phba 6293 drivers/scsi/lpfc/lpfc_hbadisc.c phba = ndlp->phba; phba 6294 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irqsave(&phba->ndlp_lock, flags); phba 6296 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->ndlp_lock, flags); phba 6301 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 6303 drivers/scsi/lpfc/lpfc_hbadisc.c ndlp->phba->active_rrq_pool); phba 6304 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(ndlp, ndlp->phba->nlp_mem_pool); phba 6315 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba; phba 6327 drivers/scsi/lpfc/lpfc_hbadisc.c phba = ndlp->phba; phba 6328 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irqsave(&phba->ndlp_lock, flags); phba 6330 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->ndlp_lock, flags); phba 6339 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->ndlp_lock, flags); phba 6353 drivers/scsi/lpfc/lpfc_hbadisc.c struct lpfc_hba *phba; phba 6363 drivers/scsi/lpfc/lpfc_hbadisc.c phba = ndlp->phba; phba 6364 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irqsave(&phba->ndlp_lock, flags); phba 6370 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->ndlp_lock, flags); phba 6383 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->ndlp_lock, flags); phba 6403 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irqrestore(&phba->ndlp_lock, flags); phba 6442 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_fcf_inuse(struct lpfc_hba *phba) phba 6449 drivers/scsi/lpfc/lpfc_hbadisc.c vports = lpfc_create_vport_work_array(phba); phba 6455 drivers/scsi/lpfc/lpfc_hbadisc.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 6477 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_ELS, phba 6487 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_destroy_vport_work_array(phba, vports); phba 6499 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unregister_vfi_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 6505 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY|LOG_MBOX, phba 6511 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->fc_flag &= ~FC_VFI_REGISTERED; phba 6513 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mboxq, phba->mbox_mem_pool); phba 6525 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unregister_fcfi_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 6530 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY|LOG_MBOX, phba 6535 drivers/scsi/lpfc/lpfc_hbadisc.c mempool_free(mboxq, phba->mbox_mem_pool); phba 6548 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unregister_fcf_prep(struct lpfc_hba *phba) phba 6556 drivers/scsi/lpfc/lpfc_hbadisc.c if (lpfc_fcf_inuse(phba)) phba 6557 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unreg_hba_rpis(phba); phba 6560 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->port_state = LPFC_VPORT_UNKNOWN; phba 6563 drivers/scsi/lpfc/lpfc_hbadisc.c vports = lpfc_create_vport_work_array(phba); phba 6564 drivers/scsi/lpfc/lpfc_hbadisc.c if (vports && (phba->sli3_options & LPFC_SLI3_NPIV_ENABLED)) phba 6565 drivers/scsi/lpfc/lpfc_hbadisc.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 6571 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 6580 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_destroy_vport_work_array(phba, vports); phba 6581 drivers/scsi/lpfc/lpfc_hbadisc.c if (i == 0 && (!(phba->sli3_options & LPFC_SLI3_NPIV_ENABLED))) { phba 6582 drivers/scsi/lpfc/lpfc_hbadisc.c ndlp = lpfc_findnode_did(phba->pport, Fabric_DID); phba 6584 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_cancel_retry_delay_tmo(phba->pport, ndlp); phba 6585 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_cleanup_pending_mbox(phba->pport); phba 6586 drivers/scsi/lpfc/lpfc_hbadisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 6587 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_unreg_all_rpis(phba->pport); phba 6588 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_mbx_unreg_vpi(phba->pport); phba 6589 drivers/scsi/lpfc/lpfc_hbadisc.c shost = lpfc_shost_from_vport(phba->pport); phba 6591 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->fc_flag |= FC_VPORT_NEEDS_INIT_VPI; phba 6592 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->vpi_state &= ~LPFC_VPI_REGISTERED; phba 6597 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_els_flush_all_cmd(phba); phba 6600 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_issue_unreg_vfi(phba->pport); phba 6615 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_unregister_fcf(struct lpfc_hba *phba) phba 6620 drivers/scsi/lpfc/lpfc_hbadisc.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 6622 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY|LOG_MBOX, phba 6624 drivers/scsi/lpfc/lpfc_hbadisc.c "HBA state x%x\n", phba->pport->port_state); phba 6627 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unreg_fcfi(mbox, phba->fcf.fcfi); phba 6628 drivers/scsi/lpfc/lpfc_hbadisc.c mbox->vport = phba->pport; phba 6630 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); phba 6633 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 6636 drivers/scsi/lpfc/lpfc_hbadisc.c rc, phba->pport->port_state); phba 6650 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unregister_fcf_rescan(struct lpfc_hba *phba) phba 6655 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_unregister_fcf_prep(phba); phba 6657 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY, phba 6664 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli4_unregister_fcf(phba); phba 6668 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag = 0; phba 6669 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.current_rec.flag = 0; phba 6675 drivers/scsi/lpfc/lpfc_hbadisc.c if ((phba->pport->load_flag & FC_UNLOADING) || phba 6676 drivers/scsi/lpfc/lpfc_hbadisc.c (phba->link_state < LPFC_LINK_UP)) phba 6680 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 6681 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag |= FCF_INIT_DISC; phba 6682 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 6685 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_sli4_clear_fcf_rr_bmask(phba); phba 6687 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli4_fcf_scan_read_fcf_rec(phba, LPFC_FCOE_FCF_GET_FIRST); phba 6690 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 6691 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag &= ~FCF_INIT_DISC; phba 6692 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 6693 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY|LOG_MBOX, phba 6696 drivers/scsi/lpfc/lpfc_hbadisc.c phba->pport->port_state); phba 6708 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unregister_fcf(struct lpfc_hba *phba) phba 6713 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_unregister_fcf_prep(phba); phba 6715 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_DISCOVERY, phba 6722 drivers/scsi/lpfc/lpfc_hbadisc.c rc = lpfc_sli4_unregister_fcf(phba); phba 6726 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 6727 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fcf.fcf_flag &= ~FCF_REGISTERED; phba 6728 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 6740 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unregister_unused_fcf(struct lpfc_hba *phba) phba 6747 drivers/scsi/lpfc/lpfc_hbadisc.c spin_lock_irq(&phba->hbalock); phba 6748 drivers/scsi/lpfc/lpfc_hbadisc.c if (!(phba->hba_flag & HBA_FCOE_MODE) || phba 6749 drivers/scsi/lpfc/lpfc_hbadisc.c !(phba->fcf.fcf_flag & FCF_REGISTERED) || phba 6750 drivers/scsi/lpfc/lpfc_hbadisc.c !(phba->hba_flag & HBA_FIP_SUPPORT) || phba 6751 drivers/scsi/lpfc/lpfc_hbadisc.c (phba->fcf.fcf_flag & FCF_DISCOVERY) || phba 6752 drivers/scsi/lpfc/lpfc_hbadisc.c (phba->pport->port_state == LPFC_FLOGI)) { phba 6753 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 6756 drivers/scsi/lpfc/lpfc_hbadisc.c spin_unlock_irq(&phba->hbalock); phba 6758 drivers/scsi/lpfc/lpfc_hbadisc.c if (lpfc_fcf_inuse(phba)) phba 6761 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_unregister_fcf_rescan(phba); phba 6773 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_read_fcf_conn_tbl(struct lpfc_hba *phba, phba 6784 drivers/scsi/lpfc/lpfc_hbadisc.c &phba->fcf_conn_rec_list, list) { phba 6802 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6811 drivers/scsi/lpfc/lpfc_hbadisc.c &phba->fcf_conn_rec_list); phba 6814 drivers/scsi/lpfc/lpfc_hbadisc.c if (!list_empty(&phba->fcf_conn_rec_list)) { phba 6816 drivers/scsi/lpfc/lpfc_hbadisc.c list_for_each_entry(conn_entry, &phba->fcf_conn_rec_list, phba 6819 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 6856 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_read_fcoe_param(struct lpfc_hba *phba, phba 6872 drivers/scsi/lpfc/lpfc_hbadisc.c phba->valid_vlan = 1; phba 6873 drivers/scsi/lpfc/lpfc_hbadisc.c phba->vlan_id = le16_to_cpu(fcoe_param->vlan_tag) & phba 6877 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_map[0] = fcoe_param->fc_map[0]; phba 6878 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_map[1] = fcoe_param->fc_map[1]; phba 6879 drivers/scsi/lpfc/lpfc_hbadisc.c phba->fc_map[2] = fcoe_param->fc_map[2]; phba 6932 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_parse_fcoe_conf(struct lpfc_hba *phba, phba 6948 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6957 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6967 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_read_fcoe_param(phba, rec_ptr); phba 6973 drivers/scsi/lpfc/lpfc_hbadisc.c lpfc_read_fcf_conn_tbl(phba, rec_ptr); phba 74 drivers/scsi/lpfc/lpfc_init.c static void __lpfc_cpuhp_remove(struct lpfc_hba *phba); phba 75 drivers/scsi/lpfc/lpfc_init.c static void lpfc_cpuhp_remove(struct lpfc_hba *phba); phba 76 drivers/scsi/lpfc/lpfc_init.c static void lpfc_cpuhp_add(struct lpfc_hba *phba); phba 88 drivers/scsi/lpfc/lpfc_init.c static int lpfc_hba_down_post_s3(struct lpfc_hba *phba); phba 89 drivers/scsi/lpfc/lpfc_init.c static int lpfc_hba_down_post_s4(struct lpfc_hba *phba); phba 95 drivers/scsi/lpfc/lpfc_init.c static void lpfc_sli4_oas_verify(struct lpfc_hba *phba); phba 119 drivers/scsi/lpfc/lpfc_init.c lpfc_config_port_prep(struct lpfc_hba *phba) phba 121 drivers/scsi/lpfc/lpfc_init.c lpfc_vpd_t *vp = &phba->vpd; phba 131 drivers/scsi/lpfc/lpfc_init.c pmb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 133 drivers/scsi/lpfc/lpfc_init.c phba->link_state = LPFC_HBA_ERROR; phba 138 drivers/scsi/lpfc/lpfc_init.c phba->link_state = LPFC_INIT_MBX_CMDS; phba 140 drivers/scsi/lpfc/lpfc_init.c if (lpfc_is_LC_HBA(phba->pcidev->device)) { phba 149 drivers/scsi/lpfc/lpfc_init.c lpfc_read_nv(phba, pmb); phba 155 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_POLL); phba 158 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, phba 163 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 166 drivers/scsi/lpfc/lpfc_init.c memcpy(phba->wwnn, (char *)mb->un.varRDnvp.nodename, phba 167 drivers/scsi/lpfc/lpfc_init.c sizeof(phba->wwnn)); phba 168 drivers/scsi/lpfc/lpfc_init.c memcpy(phba->wwpn, (char *)mb->un.varRDnvp.portname, phba 169 drivers/scsi/lpfc/lpfc_init.c sizeof(phba->wwpn)); phba 176 drivers/scsi/lpfc/lpfc_init.c phba->sli3_options &= (uint32_t)LPFC_SLI3_BG_ENABLED; phba 179 drivers/scsi/lpfc/lpfc_init.c lpfc_read_rev(phba, pmb); phba 180 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_POLL); phba 182 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 186 drivers/scsi/lpfc/lpfc_init.c mempool_free( pmb, phba->mbox_mem_pool); phba 197 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 200 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 204 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev == 3 && !mb->un.varRdRev.v3rsp) { phba 205 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 232 drivers/scsi/lpfc/lpfc_init.c phba->sli3_options |= LPFC_SLI3_VPORT_TEARDOWN; phba 234 drivers/scsi/lpfc/lpfc_init.c if (lpfc_is_LC_HBA(phba->pcidev->device)) phba 235 drivers/scsi/lpfc/lpfc_init.c memcpy(phba->RandomData, (char *)&mb->un.varWords[24], phba 236 drivers/scsi/lpfc/lpfc_init.c sizeof (phba->RandomData)); phba 243 drivers/scsi/lpfc/lpfc_init.c lpfc_dump_mem(phba, pmb, offset, DMP_REGION_VPD); phba 244 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_POLL); phba 247 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 265 drivers/scsi/lpfc/lpfc_init.c lpfc_parse_vpd(phba, lpfc_vpd_data, offset); phba 269 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 284 drivers/scsi/lpfc/lpfc_init.c lpfc_config_async_cmpl(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmboxq) phba 287 drivers/scsi/lpfc/lpfc_init.c phba->temp_sensor_support = 1; phba 289 drivers/scsi/lpfc/lpfc_init.c phba->temp_sensor_support = 0; phba 290 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 305 drivers/scsi/lpfc/lpfc_init.c lpfc_dump_wakeup_param_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmboxq) phba 314 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 328 drivers/scsi/lpfc/lpfc_init.c snprintf(phba->OptionROMVersion, 32, "%d.%d%d", phba 331 drivers/scsi/lpfc/lpfc_init.c snprintf(phba->OptionROMVersion, 32, "%d.%d%d%c%d", phba 334 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 354 drivers/scsi/lpfc/lpfc_init.c if (vport->phba->cfg_soft_wwnn) phba 355 drivers/scsi/lpfc/lpfc_init.c u64_to_wwn(vport->phba->cfg_soft_wwnn, phba 357 drivers/scsi/lpfc/lpfc_init.c if (vport->phba->cfg_soft_wwpn) phba 358 drivers/scsi/lpfc/lpfc_init.c u64_to_wwn(vport->phba->cfg_soft_wwpn, phba 365 drivers/scsi/lpfc/lpfc_init.c if (vport->fc_nodename.u.wwn[0] == 0 || vport->phba->cfg_soft_wwnn) phba 382 drivers/scsi/lpfc/lpfc_init.c vport->phba->cfg_soft_wwpn || phba 410 drivers/scsi/lpfc/lpfc_init.c lpfc_config_port_post(struct lpfc_hba *phba) phba 412 drivers/scsi/lpfc/lpfc_init.c struct lpfc_vport *vport = phba->pport; phba 417 drivers/scsi/lpfc/lpfc_init.c struct lpfc_sli *psli = &phba->sli; phba 422 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 427 drivers/scsi/lpfc/lpfc_init.c if (phba->over_temp_state == HBA_OVER_TEMP) phba 428 drivers/scsi/lpfc/lpfc_init.c phba->over_temp_state = HBA_NORMAL_TEMP; phba 429 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 431 drivers/scsi/lpfc/lpfc_init.c pmb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 433 drivers/scsi/lpfc/lpfc_init.c phba->link_state = LPFC_HBA_ERROR; phba 439 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_read_sparam(phba, pmb, 0); phba 441 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 446 drivers/scsi/lpfc/lpfc_init.c if (lpfc_sli_issue_mbox(phba, pmb, MBX_POLL) != MBX_SUCCESS) { phba 447 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 451 drivers/scsi/lpfc/lpfc_init.c phba->link_state = LPFC_HBA_ERROR; phba 453 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 454 drivers/scsi/lpfc/lpfc_init.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 462 drivers/scsi/lpfc/lpfc_init.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 470 drivers/scsi/lpfc/lpfc_init.c fc_host_max_npiv_vports(shost) = phba->max_vpi; phba 474 drivers/scsi/lpfc/lpfc_init.c if (phba->SerialNumber[0] == 0) { phba 482 drivers/scsi/lpfc/lpfc_init.c phba->SerialNumber[i] = phba 485 drivers/scsi/lpfc/lpfc_init.c phba->SerialNumber[i] = phba 490 drivers/scsi/lpfc/lpfc_init.c phba->SerialNumber[i] = phba 493 drivers/scsi/lpfc/lpfc_init.c phba->SerialNumber[i] = phba 498 drivers/scsi/lpfc/lpfc_init.c lpfc_read_config(phba, pmb); phba 500 drivers/scsi/lpfc/lpfc_init.c if (lpfc_sli_issue_mbox(phba, pmb, MBX_POLL) != MBX_SUCCESS) { phba 501 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 505 drivers/scsi/lpfc/lpfc_init.c phba->link_state = LPFC_HBA_ERROR; phba 506 drivers/scsi/lpfc/lpfc_init.c mempool_free( pmb, phba->mbox_mem_pool); phba 511 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_read_link_ste(phba); phba 515 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_hba_queue_depth > i) { phba 516 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 518 drivers/scsi/lpfc/lpfc_init.c phba->cfg_hba_queue_depth, i); phba 519 drivers/scsi/lpfc/lpfc_init.c phba->cfg_hba_queue_depth = i; phba 524 drivers/scsi/lpfc/lpfc_init.c if (phba->pport->cfg_lun_queue_depth > i) { phba 525 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 527 drivers/scsi/lpfc/lpfc_init.c phba->pport->cfg_lun_queue_depth, i); phba 528 drivers/scsi/lpfc/lpfc_init.c phba->pport->cfg_lun_queue_depth = i; phba 531 drivers/scsi/lpfc/lpfc_init.c phba->lmt = mb->un.varRdConfig.lmt; phba 534 drivers/scsi/lpfc/lpfc_init.c lpfc_get_hba_model_desc(phba, phba->ModelName, phba->ModelDesc); phba 536 drivers/scsi/lpfc/lpfc_init.c phba->link_state = LPFC_LINK_DOWN; phba 545 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev != 3) phba 546 drivers/scsi/lpfc/lpfc_init.c lpfc_post_rcv_buf(phba); phba 551 drivers/scsi/lpfc/lpfc_init.c if (phba->intr_type == MSIX) { phba 552 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_config_msi(phba, pmb); phba 554 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 557 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_POLL); phba 559 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, phba 564 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 569 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 571 drivers/scsi/lpfc/lpfc_init.c phba->hba_flag &= ~HBA_ERATT_HANDLED; phba 574 drivers/scsi/lpfc/lpfc_init.c if (lpfc_readl(phba->HCregaddr, &status)) { phba 575 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 588 drivers/scsi/lpfc/lpfc_init.c if ((phba->cfg_poll & ENABLE_FCP_RING_POLLING) && phba 589 drivers/scsi/lpfc/lpfc_init.c (phba->cfg_poll & DISABLE_FCP_RING_INT)) phba 592 drivers/scsi/lpfc/lpfc_init.c writel(status, phba->HCregaddr); phba 593 drivers/scsi/lpfc/lpfc_init.c readl(phba->HCregaddr); /* flush */ phba 594 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 597 drivers/scsi/lpfc/lpfc_init.c timeout = phba->fc_ratov * 2; phba 601 drivers/scsi/lpfc/lpfc_init.c mod_timer(&phba->hb_tmofunc, phba 603 drivers/scsi/lpfc/lpfc_init.c phba->hb_outstanding = 0; phba 604 drivers/scsi/lpfc/lpfc_init.c phba->last_completion_time = jiffies; phba 606 drivers/scsi/lpfc/lpfc_init.c mod_timer(&phba->eratt_poll, phba 607 drivers/scsi/lpfc/lpfc_init.c jiffies + msecs_to_jiffies(1000 * phba->eratt_poll_interval)); phba 609 drivers/scsi/lpfc/lpfc_init.c if (phba->hba_flag & LINK_DISABLED) { phba 610 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, phba 613 drivers/scsi/lpfc/lpfc_init.c lpfc_down_link(phba, pmb); phba 615 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_NOWAIT); phba 617 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, phba 622 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 625 drivers/scsi/lpfc/lpfc_init.c } else if (phba->cfg_suppress_link_up == LPFC_INITIALIZE_LINK) { phba 626 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 627 drivers/scsi/lpfc/lpfc_init.c rc = phba->lpfc_hba_init_link(phba, MBX_NOWAIT); phba 632 drivers/scsi/lpfc/lpfc_init.c pmb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 634 drivers/scsi/lpfc/lpfc_init.c phba->link_state = LPFC_HBA_ERROR; phba 638 drivers/scsi/lpfc/lpfc_init.c lpfc_config_async(phba, pmb, LPFC_ELS_RING); phba 640 drivers/scsi/lpfc/lpfc_init.c pmb->vport = phba->pport; phba 641 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_NOWAIT); phba 644 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, phba 650 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 654 drivers/scsi/lpfc/lpfc_init.c pmb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 656 drivers/scsi/lpfc/lpfc_init.c phba->link_state = LPFC_HBA_ERROR; phba 660 drivers/scsi/lpfc/lpfc_init.c lpfc_dump_wakeup_param(phba, pmb); phba 662 drivers/scsi/lpfc/lpfc_init.c pmb->vport = phba->pport; phba 663 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_NOWAIT); phba 666 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, "0435 Adapter failed " phba 668 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 689 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_init_link(struct lpfc_hba *phba, uint32_t flag) phba 691 drivers/scsi/lpfc/lpfc_init.c return lpfc_hba_init_link_fc_topology(phba, phba->cfg_topology, flag); phba 710 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_init_link_fc_topology(struct lpfc_hba *phba, uint32_t fc_topology, phba 713 drivers/scsi/lpfc/lpfc_init.c struct lpfc_vport *vport = phba->pport; phba 718 drivers/scsi/lpfc/lpfc_init.c pmb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 720 drivers/scsi/lpfc/lpfc_init.c phba->link_state = LPFC_HBA_ERROR; phba 726 drivers/scsi/lpfc/lpfc_init.c if ((phba->cfg_link_speed > LPFC_USER_LINK_SPEED_MAX) || phba 727 drivers/scsi/lpfc/lpfc_init.c ((phba->cfg_link_speed == LPFC_USER_LINK_SPEED_1G) && phba 728 drivers/scsi/lpfc/lpfc_init.c !(phba->lmt & LMT_1Gb)) || phba 729 drivers/scsi/lpfc/lpfc_init.c ((phba->cfg_link_speed == LPFC_USER_LINK_SPEED_2G) && phba 730 drivers/scsi/lpfc/lpfc_init.c !(phba->lmt & LMT_2Gb)) || phba 731 drivers/scsi/lpfc/lpfc_init.c ((phba->cfg_link_speed == LPFC_USER_LINK_SPEED_4G) && phba 732 drivers/scsi/lpfc/lpfc_init.c !(phba->lmt & LMT_4Gb)) || phba 733 drivers/scsi/lpfc/lpfc_init.c ((phba->cfg_link_speed == LPFC_USER_LINK_SPEED_8G) && phba 734 drivers/scsi/lpfc/lpfc_init.c !(phba->lmt & LMT_8Gb)) || phba 735 drivers/scsi/lpfc/lpfc_init.c ((phba->cfg_link_speed == LPFC_USER_LINK_SPEED_10G) && phba 736 drivers/scsi/lpfc/lpfc_init.c !(phba->lmt & LMT_10Gb)) || phba 737 drivers/scsi/lpfc/lpfc_init.c ((phba->cfg_link_speed == LPFC_USER_LINK_SPEED_16G) && phba 738 drivers/scsi/lpfc/lpfc_init.c !(phba->lmt & LMT_16Gb)) || phba 739 drivers/scsi/lpfc/lpfc_init.c ((phba->cfg_link_speed == LPFC_USER_LINK_SPEED_32G) && phba 740 drivers/scsi/lpfc/lpfc_init.c !(phba->lmt & LMT_32Gb)) || phba 741 drivers/scsi/lpfc/lpfc_init.c ((phba->cfg_link_speed == LPFC_USER_LINK_SPEED_64G) && phba 742 drivers/scsi/lpfc/lpfc_init.c !(phba->lmt & LMT_64Gb))) { phba 744 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_LINK_EVENT, phba 747 drivers/scsi/lpfc/lpfc_init.c phba->cfg_link_speed); phba 748 drivers/scsi/lpfc/lpfc_init.c phba->cfg_link_speed = LPFC_USER_LINK_SPEED_AUTO; phba 750 drivers/scsi/lpfc/lpfc_init.c lpfc_init_link(phba, pmb, fc_topology, phba->cfg_link_speed); phba 752 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev < LPFC_SLI_REV4) phba 753 drivers/scsi/lpfc/lpfc_init.c lpfc_set_loopback_flag(phba); phba 754 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, pmb, flag); phba 756 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 760 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev <= LPFC_SLI_REV3) { phba 762 drivers/scsi/lpfc/lpfc_init.c writel(0, phba->HCregaddr); phba 763 drivers/scsi/lpfc/lpfc_init.c readl(phba->HCregaddr); /* flush */ phba 765 drivers/scsi/lpfc/lpfc_init.c writel(0xffffffff, phba->HAregaddr); phba 766 drivers/scsi/lpfc/lpfc_init.c readl(phba->HAregaddr); /* flush */ phba 768 drivers/scsi/lpfc/lpfc_init.c phba->link_state = LPFC_HBA_ERROR; phba 770 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 773 drivers/scsi/lpfc/lpfc_init.c phba->cfg_suppress_link_up = LPFC_INITIALIZE_LINK; phba 775 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 794 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_down_link(struct lpfc_hba *phba, uint32_t flag) phba 799 drivers/scsi/lpfc/lpfc_init.c pmb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 801 drivers/scsi/lpfc/lpfc_init.c phba->link_state = LPFC_HBA_ERROR; phba 805 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, phba 808 drivers/scsi/lpfc/lpfc_init.c lpfc_down_link(phba, pmb); phba 810 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, pmb, flag); phba 812 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, phba 817 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 821 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 838 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_down_prep(struct lpfc_hba *phba) phba 843 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev <= LPFC_SLI_REV3) { phba 845 drivers/scsi/lpfc/lpfc_init.c writel(0, phba->HCregaddr); phba 846 drivers/scsi/lpfc/lpfc_init.c readl(phba->HCregaddr); /* flush */ phba 849 drivers/scsi/lpfc/lpfc_init.c if (phba->pport->load_flag & FC_UNLOADING) phba 850 drivers/scsi/lpfc/lpfc_init.c lpfc_cleanup_discovery_resources(phba->pport); phba 852 drivers/scsi/lpfc/lpfc_init.c vports = lpfc_create_vport_work_array(phba); phba 854 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i <= phba->max_vports && phba 857 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_vport_work_array(phba, vports); phba 876 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_free_sp_events(struct lpfc_hba *phba) phba 882 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 883 drivers/scsi/lpfc/lpfc_init.c phba->hba_flag &= ~HBA_SP_QUEUE_EVT; phba 884 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 886 drivers/scsi/lpfc/lpfc_init.c while (!list_empty(&phba->sli4_hba.sp_queue_event)) { phba 888 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 889 drivers/scsi/lpfc/lpfc_init.c list_remove_head(&phba->sli4_hba.sp_queue_event, phba 891 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 897 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_release_iocbq(phba, rspiocbq); phba 903 drivers/scsi/lpfc/lpfc_init.c lpfc_in_buf_free(phba, &dmabuf->dbuf); phba 920 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_free_post_buf(struct lpfc_hba *phba) phba 922 drivers/scsi/lpfc/lpfc_init.c struct lpfc_sli *psli = &phba->sli; phba 928 drivers/scsi/lpfc/lpfc_init.c if (phba->sli3_options & LPFC_SLI3_HBQ_ENABLED) phba 929 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_hbqbuf_free_all(phba); phba 933 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 935 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 941 drivers/scsi/lpfc/lpfc_init.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 945 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 947 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 962 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_clean_txcmplq(struct lpfc_hba *phba) phba 964 drivers/scsi/lpfc/lpfc_init.c struct lpfc_sli *psli = &phba->sli; phba 971 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev != LPFC_SLI_REV4) { phba 974 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 981 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 983 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_abort_iocb_ring(phba, pring); phba 986 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_cancel_iocbs(phba, &completions, phba 990 drivers/scsi/lpfc/lpfc_init.c list_for_each_entry(qp, &phba->sli4_hba.lpfc_wq_list, wq_list) { phba 1001 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_abort_iocb_ring(phba, pring); phba 1004 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_cancel_iocbs(phba, &completions, phba 1021 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_down_post_s3(struct lpfc_hba *phba) phba 1023 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_free_post_buf(phba); phba 1024 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_clean_txcmplq(phba); phba 1040 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_down_post_s4(struct lpfc_hba *phba) phba 1052 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_hbqbuf_free_all(phba); phba 1053 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_clean_txcmplq(phba); phba 1061 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); /* required for lpfc_els_sgl_list and */ phba 1066 drivers/scsi/lpfc/lpfc_init.c spin_lock(&phba->sli4_hba.sgl_list_lock); phba 1068 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.lpfc_abts_els_sgl_list, list) phba 1071 drivers/scsi/lpfc/lpfc_init.c list_splice_init(&phba->sli4_hba.lpfc_abts_els_sgl_list, phba 1072 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.lpfc_els_sgl_list); phba 1075 drivers/scsi/lpfc/lpfc_init.c spin_unlock(&phba->sli4_hba.sgl_list_lock); phba 1081 drivers/scsi/lpfc/lpfc_init.c for (idx = 0; idx < phba->cfg_hdw_queue; idx++) { phba 1082 drivers/scsi/lpfc/lpfc_init.c qp = &phba->sli4_hba.hdwq[idx]; phba 1102 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 1104 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) { phba 1105 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 1106 drivers/scsi/lpfc/lpfc_init.c list_splice_init(&phba->sli4_hba.lpfc_abts_nvmet_ctx_list, phba 1108 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 1111 drivers/scsi/lpfc/lpfc_init.c lpfc_nvmet_ctxbuf_post(phba, ctxp->ctxbuf); phba 1115 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_free_sp_events(phba); phba 1131 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_down_post(struct lpfc_hba *phba) phba 1133 drivers/scsi/lpfc/lpfc_init.c return (*phba->lpfc_hba_down_post)(phba); phba 1151 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba; phba 1155 drivers/scsi/lpfc/lpfc_init.c phba = from_timer(phba, t, hb_tmofunc); phba 1158 drivers/scsi/lpfc/lpfc_init.c spin_lock_irqsave(&phba->pport->work_port_lock, iflag); phba 1159 drivers/scsi/lpfc/lpfc_init.c tmo_posted = phba->pport->work_port_events & WORKER_HB_TMO; phba 1161 drivers/scsi/lpfc/lpfc_init.c phba->pport->work_port_events |= WORKER_HB_TMO; phba 1162 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irqrestore(&phba->pport->work_port_lock, iflag); phba 1166 drivers/scsi/lpfc/lpfc_init.c lpfc_worker_wake_up(phba); phba 1185 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba; phba 1188 drivers/scsi/lpfc/lpfc_init.c phba = from_timer(phba, t, rrq_tmr); phba 1189 drivers/scsi/lpfc/lpfc_init.c spin_lock_irqsave(&phba->pport->work_port_lock, iflag); phba 1190 drivers/scsi/lpfc/lpfc_init.c if (!(phba->pport->load_flag & FC_UNLOADING)) phba 1191 drivers/scsi/lpfc/lpfc_init.c phba->hba_flag |= HBA_RRQ_ACTIVE; phba 1193 drivers/scsi/lpfc/lpfc_init.c phba->hba_flag &= ~HBA_RRQ_ACTIVE; phba 1194 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irqrestore(&phba->pport->work_port_lock, iflag); phba 1196 drivers/scsi/lpfc/lpfc_init.c if (!(phba->pport->load_flag & FC_UNLOADING)) phba 1197 drivers/scsi/lpfc/lpfc_init.c lpfc_worker_wake_up(phba); phba 1217 drivers/scsi/lpfc/lpfc_init.c lpfc_hb_mbox_cmpl(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmboxq) phba 1221 drivers/scsi/lpfc/lpfc_init.c spin_lock_irqsave(&phba->hbalock, drvr_flag); phba 1222 drivers/scsi/lpfc/lpfc_init.c phba->hb_outstanding = 0; phba 1223 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irqrestore(&phba->hbalock, drvr_flag); phba 1226 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmboxq, phba->mbox_mem_pool); phba 1227 drivers/scsi/lpfc/lpfc_init.c if (!(phba->pport->fc_flag & FC_OFFLINE_MODE) && phba 1228 drivers/scsi/lpfc/lpfc_init.c !(phba->link_state == LPFC_HBA_ERROR) && phba 1229 drivers/scsi/lpfc/lpfc_init.c !(phba->pport->load_flag & FC_UNLOADING)) phba 1230 drivers/scsi/lpfc/lpfc_init.c mod_timer(&phba->hb_tmofunc, phba 1239 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = container_of(to_delayed_work(work), phba 1248 drivers/scsi/lpfc/lpfc_init.c if (!phba->cfg_auto_imax || phba->pport->load_flag & FC_UNLOADING) phba 1251 drivers/scsi/lpfc/lpfc_init.c if (phba->link_state == LPFC_HBA_ERROR || phba 1252 drivers/scsi/lpfc/lpfc_init.c phba->pport->fc_flag & FC_OFFLINE_MODE) phba 1260 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_irq_chann > 1) { phba 1262 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i < phba->cfg_irq_chann; i++) { phba 1264 drivers/scsi/lpfc/lpfc_init.c eq = phba->sli4_hba.hba_eq_hdl[i].eq; phba 1278 drivers/scsi/lpfc/lpfc_init.c eqi = per_cpu_ptr(phba->sli4_hba.eq_info, i); phba 1293 drivers/scsi/lpfc/lpfc_init.c eqi_new = per_cpu_ptr(phba->sli4_hba.eq_info, phba 1299 drivers/scsi/lpfc/lpfc_init.c lpfc_modify_hba_eq_delay(phba, eq->hdwq, 1, phba 1307 drivers/scsi/lpfc/lpfc_init.c queue_delayed_work(phba->wq, &phba->eq_delay_work, phba 1318 drivers/scsi/lpfc/lpfc_init.c static void lpfc_hb_mxp_handler(struct lpfc_hba *phba) phba 1323 drivers/scsi/lpfc/lpfc_init.c hwq_count = phba->cfg_hdw_queue; phba 1326 drivers/scsi/lpfc/lpfc_init.c lpfc_adjust_pvt_pool_count(phba, i); phba 1329 drivers/scsi/lpfc/lpfc_init.c lpfc_adjust_high_watermark(phba, i); phba 1333 drivers/scsi/lpfc/lpfc_init.c lpfc_snapshot_mxp(phba, i); phba 1355 drivers/scsi/lpfc/lpfc_init.c lpfc_hb_timeout_handler(struct lpfc_hba *phba) phba 1361 drivers/scsi/lpfc/lpfc_init.c struct lpfc_sli *psli = &phba->sli; phba 1364 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_xri_rebalancing) { phba 1366 drivers/scsi/lpfc/lpfc_init.c lpfc_hb_mxp_handler(phba); phba 1369 drivers/scsi/lpfc/lpfc_init.c vports = lpfc_create_vport_work_array(phba); phba 1371 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 1375 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_vport_work_array(phba, vports); phba 1377 drivers/scsi/lpfc/lpfc_init.c if ((phba->link_state == LPFC_HBA_ERROR) || phba 1378 drivers/scsi/lpfc/lpfc_init.c (phba->pport->load_flag & FC_UNLOADING) || phba 1379 drivers/scsi/lpfc/lpfc_init.c (phba->pport->fc_flag & FC_OFFLINE_MODE)) phba 1382 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->pport->work_port_lock); phba 1384 drivers/scsi/lpfc/lpfc_init.c if (time_after(phba->last_completion_time + phba 1387 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->pport->work_port_lock); phba 1388 drivers/scsi/lpfc/lpfc_init.c if (!phba->hb_outstanding) phba 1389 drivers/scsi/lpfc/lpfc_init.c mod_timer(&phba->hb_tmofunc, phba 1393 drivers/scsi/lpfc/lpfc_init.c mod_timer(&phba->hb_tmofunc, phba 1398 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->pport->work_port_lock); phba 1400 drivers/scsi/lpfc/lpfc_init.c if (phba->elsbuf_cnt && phba 1401 drivers/scsi/lpfc/lpfc_init.c (phba->elsbuf_cnt == phba->elsbuf_prev_cnt)) { phba 1402 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 1403 drivers/scsi/lpfc/lpfc_init.c list_splice_init(&phba->elsbuf, &completions); phba 1404 drivers/scsi/lpfc/lpfc_init.c phba->elsbuf_cnt = 0; phba 1405 drivers/scsi/lpfc/lpfc_init.c phba->elsbuf_prev_cnt = 0; phba 1406 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 1411 drivers/scsi/lpfc/lpfc_init.c lpfc_mbuf_free(phba, buf_ptr->virt, buf_ptr->phys); phba 1415 drivers/scsi/lpfc/lpfc_init.c phba->elsbuf_prev_cnt = phba->elsbuf_cnt; phba 1418 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_hba_heartbeat) { phba 1419 drivers/scsi/lpfc/lpfc_init.c if (!phba->hb_outstanding) { phba 1422 drivers/scsi/lpfc/lpfc_init.c pmboxq = mempool_alloc(phba->mbox_mem_pool, phba 1425 drivers/scsi/lpfc/lpfc_init.c mod_timer(&phba->hb_tmofunc, phba 1432 drivers/scsi/lpfc/lpfc_init.c lpfc_heart_beat(phba, pmboxq); phba 1434 drivers/scsi/lpfc/lpfc_init.c pmboxq->vport = phba->pport; phba 1435 drivers/scsi/lpfc/lpfc_init.c retval = lpfc_sli_issue_mbox(phba, pmboxq, phba 1441 drivers/scsi/lpfc/lpfc_init.c phba->mbox_mem_pool); phba 1442 drivers/scsi/lpfc/lpfc_init.c mod_timer(&phba->hb_tmofunc, phba 1448 drivers/scsi/lpfc/lpfc_init.c phba->skipped_hb = 0; phba 1449 drivers/scsi/lpfc/lpfc_init.c phba->hb_outstanding = 1; phba 1450 drivers/scsi/lpfc/lpfc_init.c } else if (time_before_eq(phba->last_completion_time, phba 1451 drivers/scsi/lpfc/lpfc_init.c phba->skipped_hb)) { phba 1452 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 1456 drivers/scsi/lpfc/lpfc_init.c - phba->last_completion_time)); phba 1458 drivers/scsi/lpfc/lpfc_init.c phba->skipped_hb = jiffies; phba 1460 drivers/scsi/lpfc/lpfc_init.c mod_timer(&phba->hb_tmofunc, phba 1470 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 1474 drivers/scsi/lpfc/lpfc_init.c - phba->last_completion_time)); phba 1475 drivers/scsi/lpfc/lpfc_init.c mod_timer(&phba->hb_tmofunc, phba 1480 drivers/scsi/lpfc/lpfc_init.c mod_timer(&phba->hb_tmofunc, phba 1494 drivers/scsi/lpfc/lpfc_init.c lpfc_offline_eratt(struct lpfc_hba *phba) phba 1496 drivers/scsi/lpfc/lpfc_init.c struct lpfc_sli *psli = &phba->sli; phba 1498 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 1500 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 1501 drivers/scsi/lpfc/lpfc_init.c lpfc_offline_prep(phba, LPFC_MBX_NO_WAIT); phba 1503 drivers/scsi/lpfc/lpfc_init.c lpfc_offline(phba); phba 1504 drivers/scsi/lpfc/lpfc_init.c lpfc_reset_barrier(phba); phba 1505 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 1506 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_brdreset(phba); phba 1507 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 1508 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_down_post(phba); phba 1509 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_brdready(phba, HS_MBRDY); phba 1510 drivers/scsi/lpfc/lpfc_init.c lpfc_unblock_mgmt_io(phba); phba 1511 drivers/scsi/lpfc/lpfc_init.c phba->link_state = LPFC_HBA_ERROR; phba 1523 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_offline_eratt(struct lpfc_hba *phba) phba 1525 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 1526 drivers/scsi/lpfc/lpfc_init.c phba->link_state = LPFC_HBA_ERROR; phba 1527 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 1529 drivers/scsi/lpfc/lpfc_init.c lpfc_offline_prep(phba, LPFC_MBX_NO_WAIT); phba 1530 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_flush_io_rings(phba); phba 1531 drivers/scsi/lpfc/lpfc_init.c lpfc_offline(phba); phba 1532 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_down_post(phba); phba 1533 drivers/scsi/lpfc/lpfc_init.c lpfc_unblock_mgmt_io(phba); phba 1546 drivers/scsi/lpfc/lpfc_init.c lpfc_handle_deferred_eratt(struct lpfc_hba *phba) phba 1548 drivers/scsi/lpfc/lpfc_init.c uint32_t old_host_status = phba->work_hs; phba 1549 drivers/scsi/lpfc/lpfc_init.c struct lpfc_sli *psli = &phba->sli; phba 1554 drivers/scsi/lpfc/lpfc_init.c if (pci_channel_offline(phba->pcidev)) { phba 1555 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 1556 drivers/scsi/lpfc/lpfc_init.c phba->hba_flag &= ~DEFER_ERATT; phba 1557 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 1561 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1564 drivers/scsi/lpfc/lpfc_init.c phba->work_hs, phba 1565 drivers/scsi/lpfc/lpfc_init.c phba->work_status[0], phba->work_status[1]); phba 1567 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 1569 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 1577 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_abort_fcp_rings(phba); phba 1583 drivers/scsi/lpfc/lpfc_init.c lpfc_offline_prep(phba, LPFC_MBX_WAIT); phba 1584 drivers/scsi/lpfc/lpfc_init.c lpfc_offline(phba); phba 1587 drivers/scsi/lpfc/lpfc_init.c while (phba->work_hs & HS_FFER1) { phba 1589 drivers/scsi/lpfc/lpfc_init.c if (lpfc_readl(phba->HSregaddr, &phba->work_hs)) { phba 1590 drivers/scsi/lpfc/lpfc_init.c phba->work_hs = UNPLUG_ERR ; phba 1594 drivers/scsi/lpfc/lpfc_init.c if (phba->pport->load_flag & FC_UNLOADING) { phba 1595 drivers/scsi/lpfc/lpfc_init.c phba->work_hs = 0; phba 1605 drivers/scsi/lpfc/lpfc_init.c if ((!phba->work_hs) && (!(phba->pport->load_flag & FC_UNLOADING))) phba 1606 drivers/scsi/lpfc/lpfc_init.c phba->work_hs = old_host_status & ~HS_FFER1; phba 1608 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 1609 drivers/scsi/lpfc/lpfc_init.c phba->hba_flag &= ~DEFER_ERATT; phba 1610 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 1611 drivers/scsi/lpfc/lpfc_init.c phba->work_status[0] = readl(phba->MBslimaddr + 0xa8); phba 1612 drivers/scsi/lpfc/lpfc_init.c phba->work_status[1] = readl(phba->MBslimaddr + 0xac); phba 1616 drivers/scsi/lpfc/lpfc_init.c lpfc_board_errevt_to_mgmt(struct lpfc_hba *phba) phba 1623 drivers/scsi/lpfc/lpfc_init.c shost = lpfc_shost_from_vport(phba->pport); phba 1641 drivers/scsi/lpfc/lpfc_init.c lpfc_handle_eratt_s3(struct lpfc_hba *phba) phba 1643 drivers/scsi/lpfc/lpfc_init.c struct lpfc_vport *vport = phba->pport; phba 1644 drivers/scsi/lpfc/lpfc_init.c struct lpfc_sli *psli = &phba->sli; phba 1653 drivers/scsi/lpfc/lpfc_init.c if (pci_channel_offline(phba->pcidev)) { phba 1654 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 1655 drivers/scsi/lpfc/lpfc_init.c phba->hba_flag &= ~DEFER_ERATT; phba 1656 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 1661 drivers/scsi/lpfc/lpfc_init.c if (!phba->cfg_enable_hba_reset) phba 1665 drivers/scsi/lpfc/lpfc_init.c lpfc_board_errevt_to_mgmt(phba); phba 1667 drivers/scsi/lpfc/lpfc_init.c if (phba->hba_flag & DEFER_ERATT) phba 1668 drivers/scsi/lpfc/lpfc_init.c lpfc_handle_deferred_eratt(phba); phba 1670 drivers/scsi/lpfc/lpfc_init.c if ((phba->work_hs & HS_FFER6) || (phba->work_hs & HS_FFER8)) { phba 1671 drivers/scsi/lpfc/lpfc_init.c if (phba->work_hs & HS_FFER6) phba 1673 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_LINK_EVENT, phba 1676 drivers/scsi/lpfc/lpfc_init.c phba->work_hs, phba->work_status[0], phba 1677 drivers/scsi/lpfc/lpfc_init.c phba->work_status[1]); phba 1678 drivers/scsi/lpfc/lpfc_init.c if (phba->work_hs & HS_FFER8) phba 1680 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_LINK_EVENT, phba 1683 drivers/scsi/lpfc/lpfc_init.c phba->work_hs, phba->work_status[0], phba 1684 drivers/scsi/lpfc/lpfc_init.c phba->work_status[1]); phba 1686 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 1688 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 1696 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_abort_fcp_rings(phba); phba 1702 drivers/scsi/lpfc/lpfc_init.c lpfc_offline_prep(phba, LPFC_MBX_NO_WAIT); phba 1703 drivers/scsi/lpfc/lpfc_init.c lpfc_offline(phba); phba 1704 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_brdrestart(phba); phba 1705 drivers/scsi/lpfc/lpfc_init.c if (lpfc_online(phba) == 0) { /* Initialize the HBA */ phba 1706 drivers/scsi/lpfc/lpfc_init.c lpfc_unblock_mgmt_io(phba); phba 1709 drivers/scsi/lpfc/lpfc_init.c lpfc_unblock_mgmt_io(phba); phba 1710 drivers/scsi/lpfc/lpfc_init.c } else if (phba->work_hs & HS_CRIT_TEMP) { phba 1711 drivers/scsi/lpfc/lpfc_init.c temperature = readl(phba->MBslimaddr + TEMPERATURE_OFFSET); phba 1716 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1720 drivers/scsi/lpfc/lpfc_init.c temperature, phba->work_hs, phba 1721 drivers/scsi/lpfc/lpfc_init.c phba->work_status[0], phba->work_status[1]); phba 1723 drivers/scsi/lpfc/lpfc_init.c shost = lpfc_shost_from_vport(phba->pport); phba 1730 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 1731 drivers/scsi/lpfc/lpfc_init.c phba->over_temp_state = HBA_OVER_TEMP; phba 1732 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 1733 drivers/scsi/lpfc/lpfc_init.c lpfc_offline_eratt(phba); phba 1740 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1743 drivers/scsi/lpfc/lpfc_init.c phba->work_hs, phba 1744 drivers/scsi/lpfc/lpfc_init.c phba->work_status[0], phba->work_status[1]); phba 1752 drivers/scsi/lpfc/lpfc_init.c lpfc_offline_eratt(phba); phba 1769 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_port_sta_fn_reset(struct lpfc_hba *phba, int mbx_action, phba 1775 drivers/scsi/lpfc/lpfc_init.c if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) >= phba 1781 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli4_pdev_status_reg_wait(phba); phba 1788 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1791 drivers/scsi/lpfc/lpfc_init.c lpfc_offline_prep(phba, mbx_action); phba 1792 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_flush_io_rings(phba); phba 1793 drivers/scsi/lpfc/lpfc_init.c lpfc_offline(phba); phba 1795 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_disable_intr(phba); phba 1796 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_brdrestart(phba); phba 1798 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1803 drivers/scsi/lpfc/lpfc_init.c intr_mode = lpfc_sli4_enable_intr(phba, phba->intr_mode); phba 1805 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1809 drivers/scsi/lpfc/lpfc_init.c phba->intr_mode = intr_mode; phba 1810 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_online(phba); phba 1812 drivers/scsi/lpfc/lpfc_init.c lpfc_unblock_mgmt_io(phba); phba 1825 drivers/scsi/lpfc/lpfc_init.c lpfc_handle_eratt_s4(struct lpfc_hba *phba) phba 1827 drivers/scsi/lpfc/lpfc_init.c struct lpfc_vport *vport = phba->pport; phba 1843 drivers/scsi/lpfc/lpfc_init.c if (pci_channel_offline(phba->pcidev)) { phba 1844 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1846 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_offline_eratt(phba); phba 1851 drivers/scsi/lpfc/lpfc_init.c if_type = bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf); phba 1855 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type0.UERRLOregaddr, phba 1858 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type0.UEMASKLOregaddr, phba 1863 drivers/scsi/lpfc/lpfc_init.c if (!(phba->hba_flag & HBA_RECOVERABLE_UE)) { phba 1864 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_offline_eratt(phba); phba 1867 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1870 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i < phba->sli4_hba.ue_to_sr / 1000; i++) { phba 1871 drivers/scsi/lpfc/lpfc_init.c if (lpfc_readl(phba->sli4_hba.PSMPHRregaddr, phba 1884 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1893 drivers/scsi/lpfc/lpfc_init.c if (!lpfc_readl(phba->sli4_hba.PSMPHRregaddr, phba 1898 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli4_port_sta_fn_reset(phba, phba 1902 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, phba 1909 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1912 drivers/scsi/lpfc/lpfc_init.c phba->link_state = LPFC_HBA_ERROR; phba 1918 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type2.STATUSregaddr, phba 1922 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1924 drivers/scsi/lpfc/lpfc_init.c readl(phba->sli4_hba.u.if_type2.STATUSregaddr)); phba 1925 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_offline_eratt(phba); phba 1928 drivers/scsi/lpfc/lpfc_init.c reg_err1 = readl(phba->sli4_hba.u.if_type2.ERR1regaddr); phba 1929 drivers/scsi/lpfc/lpfc_init.c reg_err2 = readl(phba->sli4_hba.u.if_type2.ERR2regaddr); phba 1931 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1936 drivers/scsi/lpfc/lpfc_init.c phba->sfp_alarm |= LPFC_TRANSGRESSION_HIGH_TEMPERATURE; phba 1941 drivers/scsi/lpfc/lpfc_init.c shost = lpfc_shost_from_vport(phba->pport); phba 1948 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 1949 drivers/scsi/lpfc/lpfc_init.c phba->over_temp_state = HBA_OVER_TEMP; phba 1950 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 1951 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_offline_eratt(phba); phba 1956 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1962 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1966 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1970 drivers/scsi/lpfc/lpfc_init.c if (!phba->cfg_enable_hba_reset) phba 1974 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli4_port_sta_fn_reset(phba, LPFC_MBX_NO_WAIT, phba 1985 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1987 drivers/scsi/lpfc/lpfc_init.c phba->link_state = LPFC_HBA_ERROR; phba 1993 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 1996 drivers/scsi/lpfc/lpfc_init.c lpfc_board_errevt_to_mgmt(phba); phba 2017 drivers/scsi/lpfc/lpfc_init.c lpfc_handle_eratt(struct lpfc_hba *phba) phba 2019 drivers/scsi/lpfc/lpfc_init.c (*phba->lpfc_handle_eratt)(phba); phba 2030 drivers/scsi/lpfc/lpfc_init.c lpfc_handle_latt(struct lpfc_hba *phba) phba 2032 drivers/scsi/lpfc/lpfc_init.c struct lpfc_vport *vport = phba->pport; phba 2033 drivers/scsi/lpfc/lpfc_init.c struct lpfc_sli *psli = &phba->sli; phba 2039 drivers/scsi/lpfc/lpfc_init.c pmb = (LPFC_MBOXQ_t *)mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 2051 drivers/scsi/lpfc/lpfc_init.c mp->virt = lpfc_mbuf_alloc(phba, 0, &mp->phys); phba 2058 drivers/scsi/lpfc/lpfc_init.c lpfc_els_flush_all_cmd(phba); phba 2061 drivers/scsi/lpfc/lpfc_init.c lpfc_read_topology(phba, pmb, mp); phba 2065 drivers/scsi/lpfc/lpfc_init.c phba->sli.sli3_ring[LPFC_ELS_RING].flag |= LPFC_STOP_IOCB_EVENT; phba 2066 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox (phba, pmb, MBX_NOWAIT); phba 2073 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 2074 drivers/scsi/lpfc/lpfc_init.c writel(HA_LATT, phba->HAregaddr); phba 2075 drivers/scsi/lpfc/lpfc_init.c readl(phba->HAregaddr); /* flush */ phba 2076 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 2081 drivers/scsi/lpfc/lpfc_init.c phba->sli.sli3_ring[LPFC_ELS_RING].flag &= ~LPFC_STOP_IOCB_EVENT; phba 2082 drivers/scsi/lpfc/lpfc_init.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 2086 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 2089 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 2091 drivers/scsi/lpfc/lpfc_init.c control = readl(phba->HCregaddr); phba 2093 drivers/scsi/lpfc/lpfc_init.c writel(control, phba->HCregaddr); phba 2094 drivers/scsi/lpfc/lpfc_init.c readl(phba->HCregaddr); /* flush */ phba 2097 drivers/scsi/lpfc/lpfc_init.c writel(HA_LATT, phba->HAregaddr); phba 2098 drivers/scsi/lpfc/lpfc_init.c readl(phba->HAregaddr); /* flush */ phba 2099 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 2100 drivers/scsi/lpfc/lpfc_init.c lpfc_linkdown(phba); phba 2101 drivers/scsi/lpfc/lpfc_init.c phba->link_state = LPFC_HBA_ERROR; phba 2103 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, phba 2124 drivers/scsi/lpfc/lpfc_init.c lpfc_parse_vpd(struct lpfc_hba *phba, uint8_t *vpd, int len) phba 2136 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 2170 drivers/scsi/lpfc/lpfc_init.c phba->SerialNumber[j++] = vpd[index++]; phba 2174 drivers/scsi/lpfc/lpfc_init.c phba->SerialNumber[j] = 0; phba 2178 drivers/scsi/lpfc/lpfc_init.c phba->vpd_flag |= VPD_MODEL_DESC; phba 2185 drivers/scsi/lpfc/lpfc_init.c phba->ModelDesc[j++] = vpd[index++]; phba 2189 drivers/scsi/lpfc/lpfc_init.c phba->ModelDesc[j] = 0; phba 2193 drivers/scsi/lpfc/lpfc_init.c phba->vpd_flag |= VPD_MODEL_NAME; phba 2200 drivers/scsi/lpfc/lpfc_init.c phba->ModelName[j++] = vpd[index++]; phba 2204 drivers/scsi/lpfc/lpfc_init.c phba->ModelName[j] = 0; phba 2208 drivers/scsi/lpfc/lpfc_init.c phba->vpd_flag |= VPD_PROGRAM_TYPE; phba 2215 drivers/scsi/lpfc/lpfc_init.c phba->ProgramType[j++] = vpd[index++]; phba 2219 drivers/scsi/lpfc/lpfc_init.c phba->ProgramType[j] = 0; phba 2223 drivers/scsi/lpfc/lpfc_init.c phba->vpd_flag |= VPD_PORT; phba 2230 drivers/scsi/lpfc/lpfc_init.c if ((phba->sli_rev == LPFC_SLI_REV4) && phba 2231 drivers/scsi/lpfc/lpfc_init.c (phba->sli4_hba.pport_name_sta == phba 2236 drivers/scsi/lpfc/lpfc_init.c phba->Port[j++] = vpd[index++]; phba 2240 drivers/scsi/lpfc/lpfc_init.c if ((phba->sli_rev != LPFC_SLI_REV4) || phba 2241 drivers/scsi/lpfc/lpfc_init.c (phba->sli4_hba.pport_name_sta == phba 2243 drivers/scsi/lpfc/lpfc_init.c phba->Port[j] = 0; phba 2281 drivers/scsi/lpfc/lpfc_init.c lpfc_get_hba_model_desc(struct lpfc_hba *phba, uint8_t *mdp, uint8_t *descp) phba 2284 drivers/scsi/lpfc/lpfc_init.c uint16_t dev_id = phba->pcidev->device; phba 2298 drivers/scsi/lpfc/lpfc_init.c if (phba->lmt & LMT_64Gb) phba 2300 drivers/scsi/lpfc/lpfc_init.c else if (phba->lmt & LMT_32Gb) phba 2302 drivers/scsi/lpfc/lpfc_init.c else if (phba->lmt & LMT_16Gb) phba 2304 drivers/scsi/lpfc/lpfc_init.c else if (phba->lmt & LMT_10Gb) phba 2306 drivers/scsi/lpfc/lpfc_init.c else if (phba->lmt & LMT_8Gb) phba 2308 drivers/scsi/lpfc/lpfc_init.c else if (phba->lmt & LMT_4Gb) phba 2310 drivers/scsi/lpfc/lpfc_init.c else if (phba->lmt & LMT_2Gb) phba 2312 drivers/scsi/lpfc/lpfc_init.c else if (phba->lmt & LMT_1Gb) phba 2317 drivers/scsi/lpfc/lpfc_init.c vp = &phba->vpd; phba 2523 drivers/scsi/lpfc/lpfc_init.c phba->Port); phba 2549 drivers/scsi/lpfc/lpfc_init.c lpfc_post_buffer(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, int cnt) phba 2560 drivers/scsi/lpfc/lpfc_init.c iocb = lpfc_sli_get_iocbq(phba); phba 2571 drivers/scsi/lpfc/lpfc_init.c mp1->virt = lpfc_mbuf_alloc(phba, MEM_PRI, &mp1->phys); phba 2574 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_release_iocbq(phba, iocb); phba 2584 drivers/scsi/lpfc/lpfc_init.c mp2->virt = lpfc_mbuf_alloc(phba, MEM_PRI, phba 2588 drivers/scsi/lpfc/lpfc_init.c lpfc_mbuf_free(phba, mp1->virt, mp1->phys); phba 2590 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_release_iocbq(phba, iocb); phba 2616 drivers/scsi/lpfc/lpfc_init.c if (lpfc_sli_issue_iocb(phba, pring->ringno, iocb, 0) == phba 2618 drivers/scsi/lpfc/lpfc_init.c lpfc_mbuf_free(phba, mp1->virt, mp1->phys); phba 2622 drivers/scsi/lpfc/lpfc_init.c lpfc_mbuf_free(phba, mp2->virt, mp2->phys); phba 2626 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_release_iocbq(phba, iocb); phba 2630 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_ringpostbuf_put(phba, pring, mp1); phba 2632 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_ringpostbuf_put(phba, pring, mp2); phba 2650 drivers/scsi/lpfc/lpfc_init.c lpfc_post_rcv_buf(struct lpfc_hba *phba) phba 2652 drivers/scsi/lpfc/lpfc_init.c struct lpfc_sli *psli = &phba->sli; phba 2655 drivers/scsi/lpfc/lpfc_init.c lpfc_post_buffer(phba, &psli->sli3_ring[LPFC_ELS_RING], LPFC_BUF_RING0); phba 2761 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_init(struct lpfc_hba *phba, uint32_t *hbainit) phba 2765 drivers/scsi/lpfc/lpfc_init.c uint32_t *pwwnn = (uint32_t *) phba->wwnn; phba 2775 drivers/scsi/lpfc/lpfc_init.c lpfc_challenge_key(phba->RandomData + t, HashWorking + t); phba 2794 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = vport->phba; phba 2798 drivers/scsi/lpfc/lpfc_init.c if (phba->link_state > LPFC_LINK_DOWN) phba 2807 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->ndlp_lock); phba 2809 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->ndlp_lock); phba 2814 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->ndlp_lock); phba 2817 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->ndlp_lock); phba 2822 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->ndlp_lock); phba 2899 drivers/scsi/lpfc/lpfc_init.c __lpfc_sli4_stop_fcf_redisc_wait_timer(struct lpfc_hba *phba) phba 2902 drivers/scsi/lpfc/lpfc_init.c phba->fcf.fcf_flag &= ~FCF_REDISC_PEND; phba 2905 drivers/scsi/lpfc/lpfc_init.c del_timer(&phba->fcf.redisc_wait); phba 2918 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_stop_fcf_redisc_wait_timer(struct lpfc_hba *phba) phba 2920 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 2921 drivers/scsi/lpfc/lpfc_init.c if (!(phba->fcf.fcf_flag & FCF_REDISC_PEND)) { phba 2923 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 2926 drivers/scsi/lpfc/lpfc_init.c __lpfc_sli4_stop_fcf_redisc_wait_timer(phba); phba 2928 drivers/scsi/lpfc/lpfc_init.c phba->fcf.fcf_flag &= ~(FCF_DEAD_DISC | FCF_ACVL_DISC); phba 2929 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 2940 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_hba_timers(struct lpfc_hba *phba) phba 2942 drivers/scsi/lpfc/lpfc_init.c if (phba->pport) phba 2943 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_vport_timers(phba->pport); phba 2944 drivers/scsi/lpfc/lpfc_init.c cancel_delayed_work_sync(&phba->eq_delay_work); phba 2945 drivers/scsi/lpfc/lpfc_init.c del_timer_sync(&phba->sli.mbox_tmo); phba 2946 drivers/scsi/lpfc/lpfc_init.c del_timer_sync(&phba->fabric_block_timer); phba 2947 drivers/scsi/lpfc/lpfc_init.c del_timer_sync(&phba->eratt_poll); phba 2948 drivers/scsi/lpfc/lpfc_init.c del_timer_sync(&phba->hb_tmofunc); phba 2949 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 2950 drivers/scsi/lpfc/lpfc_init.c del_timer_sync(&phba->rrq_tmr); phba 2951 drivers/scsi/lpfc/lpfc_init.c phba->hba_flag &= ~HBA_RRQ_ACTIVE; phba 2953 drivers/scsi/lpfc/lpfc_init.c phba->hb_outstanding = 0; phba 2955 drivers/scsi/lpfc/lpfc_init.c switch (phba->pci_dev_grp) { phba 2958 drivers/scsi/lpfc/lpfc_init.c del_timer_sync(&phba->fcp_poll_timer); phba 2962 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_stop_fcf_redisc_wait_timer(phba); phba 2965 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 2967 drivers/scsi/lpfc/lpfc_init.c phba->pci_dev_grp); phba 2984 drivers/scsi/lpfc/lpfc_init.c lpfc_block_mgmt_io(struct lpfc_hba *phba, int mbx_action) phba 2990 drivers/scsi/lpfc/lpfc_init.c spin_lock_irqsave(&phba->hbalock, iflag); phba 2991 drivers/scsi/lpfc/lpfc_init.c phba->sli.sli_flag |= LPFC_BLOCK_MGMT_IO; phba 2992 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 2996 drivers/scsi/lpfc/lpfc_init.c spin_lock_irqsave(&phba->hbalock, iflag); phba 2997 drivers/scsi/lpfc/lpfc_init.c if (phba->sli.mbox_active) { phba 2998 drivers/scsi/lpfc/lpfc_init.c actcmd = phba->sli.mbox_active->u.mb.mbxCommand; phba 3002 drivers/scsi/lpfc/lpfc_init.c timeout = msecs_to_jiffies(lpfc_mbox_tmo_val(phba, phba 3003 drivers/scsi/lpfc/lpfc_init.c phba->sli.mbox_active) * 1000) + jiffies; phba 3005 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3008 drivers/scsi/lpfc/lpfc_init.c while (phba->sli.mbox_active) { phba 3012 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 3015 drivers/scsi/lpfc/lpfc_init.c phba->sli.sli_flag, actcmd); phba 3030 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_node_prep(struct lpfc_hba *phba) phba 3037 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev != LPFC_SLI_REV4) phba 3040 drivers/scsi/lpfc/lpfc_init.c vports = lpfc_create_vport_work_array(phba); phba 3044 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 3053 drivers/scsi/lpfc/lpfc_init.c rpi = lpfc_sli4_alloc_rpi(phba); phba 3055 drivers/scsi/lpfc/lpfc_init.c spin_lock_irqsave(&phba->ndlp_lock, flags); phba 3057 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irqrestore(&phba->ndlp_lock, flags); phba 3068 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_vport_work_array(phba, vports); phba 3078 drivers/scsi/lpfc/lpfc_init.c static void lpfc_create_expedite_pool(struct lpfc_hba *phba) phba 3086 drivers/scsi/lpfc/lpfc_init.c epd_pool = &phba->epd_pool; phba 3087 drivers/scsi/lpfc/lpfc_init.c qp = &phba->sli4_hba.hdwq[0]; phba 3113 drivers/scsi/lpfc/lpfc_init.c static void lpfc_destroy_expedite_pool(struct lpfc_hba *phba) phba 3121 drivers/scsi/lpfc/lpfc_init.c epd_pool = &phba->epd_pool; phba 3122 drivers/scsi/lpfc/lpfc_init.c qp = &phba->sli4_hba.hdwq[0]; phba 3146 drivers/scsi/lpfc/lpfc_init.c void lpfc_create_multixri_pools(struct lpfc_hba *phba) phba 3159 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 3161 drivers/scsi/lpfc/lpfc_init.c phba->cfg_hdw_queue, phba->sli4_hba.num_present_cpu, phba 3162 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.io_xri_cnt); phba 3164 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) phba 3165 drivers/scsi/lpfc/lpfc_init.c lpfc_create_expedite_pool(phba); phba 3167 drivers/scsi/lpfc/lpfc_init.c hwq_count = phba->cfg_hdw_queue; phba 3168 drivers/scsi/lpfc/lpfc_init.c count_per_hwq = phba->sli4_hba.io_xri_cnt / hwq_count; phba 3174 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 3178 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) phba 3179 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_expedite_pool(phba); phba 3183 drivers/scsi/lpfc/lpfc_init.c qp = &phba->sli4_hba.hdwq[j]; phba 3187 drivers/scsi/lpfc/lpfc_init.c phba->cfg_xri_rebalancing = 0; phba 3191 drivers/scsi/lpfc/lpfc_init.c qp = &phba->sli4_hba.hdwq[i]; phba 3209 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 3233 drivers/scsi/lpfc/lpfc_init.c static void lpfc_destroy_multixri_pools(struct lpfc_hba *phba) phba 3245 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) phba 3246 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_expedite_pool(phba); phba 3248 drivers/scsi/lpfc/lpfc_init.c if (!(phba->pport->load_flag & FC_UNLOADING)) phba 3249 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_flush_io_rings(phba); phba 3251 drivers/scsi/lpfc/lpfc_init.c hwq_count = phba->cfg_hdw_queue; phba 3254 drivers/scsi/lpfc/lpfc_init.c qp = &phba->sli4_hba.hdwq[i]; phba 3267 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 3288 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 3323 drivers/scsi/lpfc/lpfc_init.c lpfc_online(struct lpfc_hba *phba) phba 3330 drivers/scsi/lpfc/lpfc_init.c if (!phba) phba 3332 drivers/scsi/lpfc/lpfc_init.c vport = phba->pport; phba 3337 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 3340 drivers/scsi/lpfc/lpfc_init.c lpfc_block_mgmt_io(phba, LPFC_MBX_WAIT); phba 3342 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 3343 drivers/scsi/lpfc/lpfc_init.c if (lpfc_sli4_hba_setup(phba)) { /* Initialize SLI4 HBA */ phba 3344 drivers/scsi/lpfc/lpfc_init.c lpfc_unblock_mgmt_io(phba); phba 3347 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 3348 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.max_cfg_param.vpi_used) phba 3350 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 3355 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME && phba 3356 drivers/scsi/lpfc/lpfc_init.c !phba->nvmet_support) { phba 3357 drivers/scsi/lpfc/lpfc_init.c error = lpfc_nvme_create_localport(phba->pport); phba 3359 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 3364 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_queue_init(phba); phba 3365 drivers/scsi/lpfc/lpfc_init.c if (lpfc_sli_hba_setup(phba)) { /* Initialize SLI2/SLI3 HBA */ phba 3366 drivers/scsi/lpfc/lpfc_init.c lpfc_unblock_mgmt_io(phba); phba 3371 drivers/scsi/lpfc/lpfc_init.c vports = lpfc_create_vport_work_array(phba); phba 3373 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 3378 drivers/scsi/lpfc/lpfc_init.c if (phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) phba 3380 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 3390 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_vport_work_array(phba, vports); phba 3392 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_xri_rebalancing) phba 3393 drivers/scsi/lpfc/lpfc_init.c lpfc_create_multixri_pools(phba); phba 3395 drivers/scsi/lpfc/lpfc_init.c lpfc_cpuhp_add(phba); phba 3397 drivers/scsi/lpfc/lpfc_init.c lpfc_unblock_mgmt_io(phba); phba 3413 drivers/scsi/lpfc/lpfc_init.c lpfc_unblock_mgmt_io(struct lpfc_hba * phba) phba 3417 drivers/scsi/lpfc/lpfc_init.c spin_lock_irqsave(&phba->hbalock, iflag); phba 3418 drivers/scsi/lpfc/lpfc_init.c phba->sli.sli_flag &= ~LPFC_BLOCK_MGMT_IO; phba 3419 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3431 drivers/scsi/lpfc/lpfc_init.c lpfc_offline_prep(struct lpfc_hba *phba, int mbx_action) phba 3433 drivers/scsi/lpfc/lpfc_init.c struct lpfc_vport *vport = phba->pport; phba 3442 drivers/scsi/lpfc/lpfc_init.c lpfc_block_mgmt_io(phba, mbx_action); phba 3444 drivers/scsi/lpfc/lpfc_init.c lpfc_linkdown(phba); phba 3447 drivers/scsi/lpfc/lpfc_init.c vports = lpfc_create_vport_work_array(phba); phba 3449 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 3481 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 3491 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_free_rpi(phba, ndlp->nlp_rpi); phba 3497 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_vport_work_array(phba, vports); phba 3499 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_mbox_sys_shutdown(phba, mbx_action); phba 3501 drivers/scsi/lpfc/lpfc_init.c if (phba->wq) phba 3502 drivers/scsi/lpfc/lpfc_init.c flush_workqueue(phba->wq); phba 3514 drivers/scsi/lpfc/lpfc_init.c lpfc_offline(struct lpfc_hba *phba) phba 3520 drivers/scsi/lpfc/lpfc_init.c if (phba->pport->fc_flag & FC_OFFLINE_MODE) phba 3524 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_port(phba); phba 3529 drivers/scsi/lpfc/lpfc_init.c lpfc_nvmet_destroy_targetport(phba); phba 3530 drivers/scsi/lpfc/lpfc_init.c lpfc_nvme_destroy_localport(phba->pport); phba 3532 drivers/scsi/lpfc/lpfc_init.c vports = lpfc_create_vport_work_array(phba); phba 3534 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) phba 3536 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_vport_work_array(phba, vports); phba 3537 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 3541 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_hba_down(phba); phba 3542 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 3543 drivers/scsi/lpfc/lpfc_init.c phba->work_ha = 0; phba 3544 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 3545 drivers/scsi/lpfc/lpfc_init.c vports = lpfc_create_vport_work_array(phba); phba 3547 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 3554 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_vport_work_array(phba, vports); phba 3555 drivers/scsi/lpfc/lpfc_init.c __lpfc_cpuhp_remove(phba); phba 3557 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_xri_rebalancing) phba 3558 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_multixri_pools(phba); phba 3570 drivers/scsi/lpfc/lpfc_init.c lpfc_scsi_free(struct lpfc_hba *phba) phba 3574 drivers/scsi/lpfc/lpfc_init.c if (!(phba->cfg_enable_fc4_type & LPFC_ENABLE_FCP)) phba 3577 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 3581 drivers/scsi/lpfc/lpfc_init.c spin_lock(&phba->scsi_buf_list_put_lock); phba 3582 drivers/scsi/lpfc/lpfc_init.c list_for_each_entry_safe(sb, sb_next, &phba->lpfc_scsi_buf_list_put, phba 3585 drivers/scsi/lpfc/lpfc_init.c dma_pool_free(phba->lpfc_sg_dma_buf_pool, sb->data, phba 3588 drivers/scsi/lpfc/lpfc_init.c phba->total_scsi_bufs--; phba 3590 drivers/scsi/lpfc/lpfc_init.c spin_unlock(&phba->scsi_buf_list_put_lock); phba 3592 drivers/scsi/lpfc/lpfc_init.c spin_lock(&phba->scsi_buf_list_get_lock); phba 3593 drivers/scsi/lpfc/lpfc_init.c list_for_each_entry_safe(sb, sb_next, &phba->lpfc_scsi_buf_list_get, phba 3596 drivers/scsi/lpfc/lpfc_init.c dma_pool_free(phba->lpfc_sg_dma_buf_pool, sb->data, phba 3599 drivers/scsi/lpfc/lpfc_init.c phba->total_scsi_bufs--; phba 3601 drivers/scsi/lpfc/lpfc_init.c spin_unlock(&phba->scsi_buf_list_get_lock); phba 3602 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 3614 drivers/scsi/lpfc/lpfc_init.c lpfc_io_free(struct lpfc_hba *phba) phba 3620 drivers/scsi/lpfc/lpfc_init.c for (idx = 0; idx < phba->cfg_hdw_queue; idx++) { phba 3621 drivers/scsi/lpfc/lpfc_init.c qp = &phba->sli4_hba.hdwq[idx]; phba 3629 drivers/scsi/lpfc/lpfc_init.c dma_pool_free(phba->lpfc_sg_dma_buf_pool, phba 3631 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_xpsgl && !phba->nvmet_support) phba 3632 drivers/scsi/lpfc/lpfc_init.c lpfc_put_sgl_per_hdwq(phba, lpfc_ncmd); phba 3633 drivers/scsi/lpfc/lpfc_init.c lpfc_put_cmd_rsp_buf_per_hdwq(phba, lpfc_ncmd); phba 3645 drivers/scsi/lpfc/lpfc_init.c dma_pool_free(phba->lpfc_sg_dma_buf_pool, phba 3647 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_xpsgl && !phba->nvmet_support) phba 3648 drivers/scsi/lpfc/lpfc_init.c lpfc_put_sgl_per_hdwq(phba, lpfc_ncmd); phba 3649 drivers/scsi/lpfc/lpfc_init.c lpfc_put_cmd_rsp_buf_per_hdwq(phba, lpfc_ncmd); phba 3670 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_els_sgl_update(struct lpfc_hba *phba) phba 3680 drivers/scsi/lpfc/lpfc_init.c els_xri_cnt = lpfc_sli4_get_els_iocb_cnt(phba); phba 3682 drivers/scsi/lpfc/lpfc_init.c if (els_xri_cnt > phba->sli4_hba.els_xri_cnt) { phba 3684 drivers/scsi/lpfc/lpfc_init.c xri_cnt = els_xri_cnt - phba->sli4_hba.els_xri_cnt; phba 3685 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 3687 drivers/scsi/lpfc/lpfc_init.c "%d to %d\n", phba->sli4_hba.els_xri_cnt, phba 3694 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 3701 drivers/scsi/lpfc/lpfc_init.c sglq_entry->virt = lpfc_mbuf_alloc(phba, 0, phba 3705 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 3716 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 3717 drivers/scsi/lpfc/lpfc_init.c spin_lock(&phba->sli4_hba.sgl_list_lock); phba 3719 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.lpfc_els_sgl_list); phba 3720 drivers/scsi/lpfc/lpfc_init.c spin_unlock(&phba->sli4_hba.sgl_list_lock); phba 3721 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 3722 drivers/scsi/lpfc/lpfc_init.c } else if (els_xri_cnt < phba->sli4_hba.els_xri_cnt) { phba 3724 drivers/scsi/lpfc/lpfc_init.c xri_cnt = phba->sli4_hba.els_xri_cnt - els_xri_cnt; phba 3725 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 3727 drivers/scsi/lpfc/lpfc_init.c "%d to %d\n", phba->sli4_hba.els_xri_cnt, phba 3729 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 3730 drivers/scsi/lpfc/lpfc_init.c spin_lock(&phba->sli4_hba.sgl_list_lock); phba 3731 drivers/scsi/lpfc/lpfc_init.c list_splice_init(&phba->sli4_hba.lpfc_els_sgl_list, phba 3738 drivers/scsi/lpfc/lpfc_init.c __lpfc_mbuf_free(phba, sglq_entry->virt, phba 3744 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.lpfc_els_sgl_list); phba 3745 drivers/scsi/lpfc/lpfc_init.c spin_unlock(&phba->sli4_hba.sgl_list_lock); phba 3746 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 3748 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 3751 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.els_xri_cnt = els_xri_cnt; phba 3757 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.lpfc_els_sgl_list, list) { phba 3758 drivers/scsi/lpfc/lpfc_init.c lxri = lpfc_sli4_next_xritag(phba); phba 3760 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 3767 drivers/scsi/lpfc/lpfc_init.c sglq_entry->sli4_xritag = phba->sli4_hba.xri_ids[lxri]; phba 3772 drivers/scsi/lpfc/lpfc_init.c lpfc_free_els_sgl_list(phba); phba 3789 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_nvmet_sgl_update(struct lpfc_hba *phba) phba 3800 drivers/scsi/lpfc/lpfc_init.c els_xri_cnt = lpfc_sli4_get_els_iocb_cnt(phba); phba 3803 drivers/scsi/lpfc/lpfc_init.c nvmet_xri_cnt = phba->sli4_hba.max_cfg_param.max_xri - els_xri_cnt; phba 3804 drivers/scsi/lpfc/lpfc_init.c if (nvmet_xri_cnt > phba->sli4_hba.nvmet_xri_cnt) { phba 3806 drivers/scsi/lpfc/lpfc_init.c xri_cnt = nvmet_xri_cnt - phba->sli4_hba.nvmet_xri_cnt; phba 3807 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 3809 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_xri_cnt, nvmet_xri_cnt); phba 3815 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 3822 drivers/scsi/lpfc/lpfc_init.c sglq_entry->virt = lpfc_nvmet_buf_alloc(phba, 0, phba 3826 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 3834 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sg_dma_buf_size); phba 3838 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 3839 drivers/scsi/lpfc/lpfc_init.c spin_lock(&phba->sli4_hba.sgl_list_lock); phba 3841 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.lpfc_nvmet_sgl_list); phba 3842 drivers/scsi/lpfc/lpfc_init.c spin_unlock(&phba->sli4_hba.sgl_list_lock); phba 3843 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 3844 drivers/scsi/lpfc/lpfc_init.c } else if (nvmet_xri_cnt < phba->sli4_hba.nvmet_xri_cnt) { phba 3846 drivers/scsi/lpfc/lpfc_init.c xri_cnt = phba->sli4_hba.nvmet_xri_cnt - nvmet_xri_cnt; phba 3847 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 3849 drivers/scsi/lpfc/lpfc_init.c "%d to %d\n", phba->sli4_hba.nvmet_xri_cnt, phba 3851 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 3852 drivers/scsi/lpfc/lpfc_init.c spin_lock(&phba->sli4_hba.sgl_list_lock); phba 3853 drivers/scsi/lpfc/lpfc_init.c list_splice_init(&phba->sli4_hba.lpfc_nvmet_sgl_list, phba 3860 drivers/scsi/lpfc/lpfc_init.c lpfc_nvmet_buf_free(phba, sglq_entry->virt, phba 3866 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.lpfc_nvmet_sgl_list); phba 3867 drivers/scsi/lpfc/lpfc_init.c spin_unlock(&phba->sli4_hba.sgl_list_lock); phba 3868 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 3870 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 3873 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_xri_cnt = nvmet_xri_cnt; phba 3879 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.lpfc_nvmet_sgl_list, list) { phba 3880 drivers/scsi/lpfc/lpfc_init.c lxri = lpfc_sli4_next_xritag(phba); phba 3882 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 3889 drivers/scsi/lpfc/lpfc_init.c sglq_entry->sli4_xritag = phba->sli4_hba.xri_ids[lxri]; phba 3894 drivers/scsi/lpfc/lpfc_init.c lpfc_free_nvmet_sgl_list(phba); phba 3899 drivers/scsi/lpfc/lpfc_init.c lpfc_io_buf_flush(struct lpfc_hba *phba, struct list_head *cbuf) phba 3908 drivers/scsi/lpfc/lpfc_init.c for (idx = 0; idx < phba->cfg_hdw_queue; idx++) { phba 3909 drivers/scsi/lpfc/lpfc_init.c qp = &phba->sli4_hba.hdwq[idx]; phba 3961 drivers/scsi/lpfc/lpfc_init.c lpfc_io_buf_replenish(struct lpfc_hba *phba, struct list_head *cbuf) phba 3967 drivers/scsi/lpfc/lpfc_init.c qp = phba->sli4_hba.hdwq; phba 3970 drivers/scsi/lpfc/lpfc_init.c for (idx = 0; idx < phba->cfg_hdw_queue; idx++) { phba 3976 drivers/scsi/lpfc/lpfc_init.c qp = &phba->sli4_hba.hdwq[idx]; phba 4005 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_io_sgl_update(struct lpfc_hba *phba) phba 4018 drivers/scsi/lpfc/lpfc_init.c els_xri_cnt = lpfc_sli4_get_els_iocb_cnt(phba); phba 4019 drivers/scsi/lpfc/lpfc_init.c io_xri_max = phba->sli4_hba.max_cfg_param.max_xri - els_xri_cnt; phba 4020 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.io_xri_max = io_xri_max; phba 4022 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 4025 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.io_xri_cnt, phba 4026 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.io_xri_max); phba 4028 drivers/scsi/lpfc/lpfc_init.c cnt = lpfc_io_buf_flush(phba, &io_sgl_list); phba 4030 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.io_xri_cnt > phba->sli4_hba.io_xri_max) { phba 4032 drivers/scsi/lpfc/lpfc_init.c io_xri_cnt = phba->sli4_hba.io_xri_cnt - phba 4033 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.io_xri_max; phba 4039 drivers/scsi/lpfc/lpfc_init.c dma_pool_free(phba->lpfc_sg_dma_buf_pool, phba 4045 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.io_xri_cnt -= io_xri_cnt; phba 4051 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.io_xri_cnt = cnt; phba 4054 drivers/scsi/lpfc/lpfc_init.c lxri = lpfc_sli4_next_xritag(phba); phba 4056 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 4063 drivers/scsi/lpfc/lpfc_init.c lpfc_ncmd->cur_iocbq.sli4_xritag = phba->sli4_hba.xri_ids[lxri]; phba 4065 drivers/scsi/lpfc/lpfc_init.c cnt = lpfc_io_buf_replenish(phba, &io_sgl_list); phba 4069 drivers/scsi/lpfc/lpfc_init.c lpfc_io_free(phba); phba 4088 drivers/scsi/lpfc/lpfc_init.c lpfc_new_io_buf(struct lpfc_hba *phba, int num_to_alloc) phba 4098 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.io_xri_cnt = 0; phba 4108 drivers/scsi/lpfc/lpfc_init.c lpfc_ncmd->data = dma_pool_zalloc(phba->lpfc_sg_dma_buf_pool, phba 4116 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_xpsgl && !phba->nvmet_support) { phba 4123 drivers/scsi/lpfc/lpfc_init.c if ((phba->sli3_options & LPFC_SLI3_BG_ENABLED) && phba 4126 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_FCP, phba 4130 drivers/scsi/lpfc/lpfc_init.c dma_pool_free(phba->lpfc_sg_dma_buf_pool, phba 4140 drivers/scsi/lpfc/lpfc_init.c lxri = lpfc_sli4_next_xritag(phba); phba 4142 drivers/scsi/lpfc/lpfc_init.c dma_pool_free(phba->lpfc_sg_dma_buf_pool, phba 4150 drivers/scsi/lpfc/lpfc_init.c iotag = lpfc_sli_next_iotag(phba, pwqeq); phba 4152 drivers/scsi/lpfc/lpfc_init.c dma_pool_free(phba->lpfc_sg_dma_buf_pool, phba 4155 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 4158 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_free_xri(phba, lxri); phba 4162 drivers/scsi/lpfc/lpfc_init.c pwqeq->sli4_xritag = phba->sli4_hba.xri_ids[lxri]; phba 4173 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.io_xri_cnt++; phba 4175 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME, phba 4182 drivers/scsi/lpfc/lpfc_init.c phba, &post_nblist, bcnt); phba 4190 drivers/scsi/lpfc/lpfc_init.c lpfc_get_wwpn(struct lpfc_hba *phba) phba 4197 drivers/scsi/lpfc/lpfc_init.c mboxq = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, phba 4203 drivers/scsi/lpfc/lpfc_init.c lpfc_read_nv(phba, mboxq); phba 4204 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 4206 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 4211 drivers/scsi/lpfc/lpfc_init.c mempool_free(mboxq, phba->mbox_mem_pool); phba 4217 drivers/scsi/lpfc/lpfc_init.c mempool_free(mboxq, phba->mbox_mem_pool); phba 4218 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev == LPFC_SLI_REV4) phba 4241 drivers/scsi/lpfc/lpfc_init.c lpfc_create_port(struct lpfc_hba *phba, int instance, struct device *dev) phba 4252 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev < LPFC_SLI_REV4 && phba 4253 drivers/scsi/lpfc/lpfc_init.c dev == &phba->pcidev->dev) { phba 4255 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_brdrestart(phba); phba 4256 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_chipset_init(phba); phba 4260 drivers/scsi/lpfc/lpfc_init.c wwn = lpfc_get_wwpn(phba); phba 4265 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 4273 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_FCP) { phba 4274 drivers/scsi/lpfc/lpfc_init.c if (dev != &phba->pcidev->dev) { phba 4285 drivers/scsi/lpfc/lpfc_init.c } else if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) { phba 4293 drivers/scsi/lpfc/lpfc_init.c vport->phba = phba; phba 4300 drivers/scsi/lpfc/lpfc_init.c vport->cfg_enable_fc4_type = phba->cfg_enable_fc4_type; phba 4308 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 4309 drivers/scsi/lpfc/lpfc_init.c if (!phba->cfg_fcp_mq_threshold || phba 4310 drivers/scsi/lpfc/lpfc_init.c phba->cfg_fcp_mq_threshold > phba->cfg_hdw_queue) phba 4311 drivers/scsi/lpfc/lpfc_init.c phba->cfg_fcp_mq_threshold = phba->cfg_hdw_queue; phba 4314 drivers/scsi/lpfc/lpfc_init.c phba->cfg_fcp_mq_threshold); phba 4317 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.pc_sli4_params.sge_supp_len-1; phba 4319 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_xpsgl && !phba->nvmet_support) phba 4322 drivers/scsi/lpfc/lpfc_init.c shost->sg_tablesize = phba->cfg_scsi_seg_cnt; phba 4334 drivers/scsi/lpfc/lpfc_init.c shost->can_queue = phba->cfg_hba_queue_depth - 10; phba 4335 drivers/scsi/lpfc/lpfc_init.c if (dev != &phba->pcidev->dev) { phba 4354 drivers/scsi/lpfc/lpfc_init.c if (phba->sli3_options & LPFC_SLI3_BG_ENABLED) phba 4355 drivers/scsi/lpfc/lpfc_init.c lpfc_setup_bg(phba, shost); phba 4357 drivers/scsi/lpfc/lpfc_init.c error = scsi_add_host_with_dma(shost, dev, &phba->pcidev->dev); phba 4361 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->port_list_lock); phba 4362 drivers/scsi/lpfc/lpfc_init.c list_add_tail(&vport->listentry, &phba->port_list); phba 4363 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->port_list_lock); phba 4383 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = vport->phba; phba 4389 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->port_list_lock); phba 4391 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->port_list_lock); phba 4434 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = vport->phba; phba 4444 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 4451 drivers/scsi/lpfc/lpfc_init.c phba->link_state <= LPFC_LINK_DOWN) { phba 4452 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 4465 drivers/scsi/lpfc/lpfc_init.c if ((phba->sli.sli_flag & LPFC_SLI_MBOX_ACTIVE) != 0) phba 4478 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = vport->phba; phba 4481 drivers/scsi/lpfc/lpfc_init.c if (phba->lmt & LMT_128Gb) phba 4483 drivers/scsi/lpfc/lpfc_init.c if (phba->lmt & LMT_64Gb) phba 4485 drivers/scsi/lpfc/lpfc_init.c if (phba->lmt & LMT_32Gb) phba 4487 drivers/scsi/lpfc/lpfc_init.c if (phba->lmt & LMT_16Gb) phba 4489 drivers/scsi/lpfc/lpfc_init.c if (phba->lmt & LMT_10Gb) phba 4491 drivers/scsi/lpfc/lpfc_init.c if (phba->lmt & LMT_8Gb) phba 4493 drivers/scsi/lpfc/lpfc_init.c if (phba->lmt & LMT_4Gb) phba 4495 drivers/scsi/lpfc/lpfc_init.c if (phba->lmt & LMT_2Gb) phba 4497 drivers/scsi/lpfc/lpfc_init.c if (phba->lmt & LMT_1Gb) phba 4511 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = vport->phba; phba 4542 drivers/scsi/lpfc/lpfc_init.c fc_host_max_npiv_vports(shost) = phba->max_vpi; phba 4557 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_port_s3(struct lpfc_hba *phba) phba 4560 drivers/scsi/lpfc/lpfc_init.c writel(0, phba->HCregaddr); phba 4561 drivers/scsi/lpfc/lpfc_init.c readl(phba->HCregaddr); /* flush */ phba 4563 drivers/scsi/lpfc/lpfc_init.c writel(0xffffffff, phba->HAregaddr); phba 4564 drivers/scsi/lpfc/lpfc_init.c readl(phba->HAregaddr); /* flush */ phba 4567 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_hba_timers(phba); phba 4568 drivers/scsi/lpfc/lpfc_init.c phba->pport->work_port_events = 0; phba 4580 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_port_s4(struct lpfc_hba *phba) phba 4583 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_hba_timers(phba); phba 4584 drivers/scsi/lpfc/lpfc_init.c if (phba->pport) phba 4585 drivers/scsi/lpfc/lpfc_init.c phba->pport->work_port_events = 0; phba 4586 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.intr_enable = 0; phba 4597 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_port(struct lpfc_hba *phba) phba 4599 drivers/scsi/lpfc/lpfc_init.c phba->lpfc_stop_port(phba); phba 4601 drivers/scsi/lpfc/lpfc_init.c if (phba->wq) phba 4602 drivers/scsi/lpfc/lpfc_init.c flush_workqueue(phba->wq); phba 4612 drivers/scsi/lpfc/lpfc_init.c lpfc_fcf_redisc_wait_start_timer(struct lpfc_hba *phba) phba 4617 drivers/scsi/lpfc/lpfc_init.c mod_timer(&phba->fcf.redisc_wait, fcf_redisc_wait_tmo); phba 4618 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 4620 drivers/scsi/lpfc/lpfc_init.c phba->fcf.fcf_flag &= ~(FCF_AVAILABLE | FCF_SCAN_DONE); phba 4622 drivers/scsi/lpfc/lpfc_init.c phba->fcf.fcf_flag |= FCF_REDISC_PEND; phba 4623 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 4639 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = from_timer(phba, t, fcf.redisc_wait); phba 4642 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 4643 drivers/scsi/lpfc/lpfc_init.c if (!(phba->fcf.fcf_flag & FCF_REDISC_PEND)) { phba 4644 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 4648 drivers/scsi/lpfc/lpfc_init.c phba->fcf.fcf_flag &= ~FCF_REDISC_PEND; phba 4650 drivers/scsi/lpfc/lpfc_init.c phba->fcf.fcf_flag |= FCF_REDISC_EVT; phba 4651 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 4652 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 4655 drivers/scsi/lpfc/lpfc_init.c lpfc_worker_wake_up(phba); phba 4666 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_parse_latt_fault(struct lpfc_hba *phba, phba 4676 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 4694 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_parse_latt_type(struct lpfc_hba *phba, phba 4712 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 4730 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_port_speed_get(struct lpfc_hba *phba) phba 4734 drivers/scsi/lpfc/lpfc_init.c if (!lpfc_is_link_up(phba)) phba 4737 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev <= LPFC_SLI_REV3) { phba 4738 drivers/scsi/lpfc/lpfc_init.c switch (phba->fc_linkspeed) { phba 4761 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.link_state.logical_speed) phba 4763 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.logical_speed; phba 4765 drivers/scsi/lpfc/lpfc_init.c link_speed = phba->sli4_hba.link_state.speed; phba 4782 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_port_speed_parse(struct lpfc_hba *phba, uint32_t evt_code, phba 4868 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_async_link_evt(struct lpfc_hba *phba, phba 4878 drivers/scsi/lpfc/lpfc_init.c att_type = lpfc_sli4_parse_latt_type(phba, acqe_link); phba 4881 drivers/scsi/lpfc/lpfc_init.c phba->fcoe_eventtag = acqe_link->event_tag; phba 4882 drivers/scsi/lpfc/lpfc_init.c pmb = (LPFC_MBOXQ_t *)mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 4884 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 4890 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 4894 drivers/scsi/lpfc/lpfc_init.c mp->virt = lpfc_mbuf_alloc(phba, 0, &mp->phys); phba 4896 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 4902 drivers/scsi/lpfc/lpfc_init.c lpfc_els_flush_all_cmd(phba); phba 4905 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.els_wq->pring->flag |= LPFC_STOP_IOCB_EVENT; phba 4908 drivers/scsi/lpfc/lpfc_init.c phba->sli.slistat.link_event++; phba 4911 drivers/scsi/lpfc/lpfc_init.c lpfc_read_topology(phba, pmb, mp); phba 4913 drivers/scsi/lpfc/lpfc_init.c pmb->vport = phba->pport; phba 4916 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.speed = phba 4917 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_port_speed_parse(phba, LPFC_TRAILER_CODE_LINK, phba 4919 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.duplex = phba 4921 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.status = phba 4923 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.type = phba 4925 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.number = phba 4927 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.fault = phba 4929 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.logical_speed = phba 4932 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 4936 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.speed, phba 4937 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.topology, phba 4938 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.status, phba 4939 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.type, phba 4940 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.number, phba 4941 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.logical_speed, phba 4942 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.fault); phba 4947 drivers/scsi/lpfc/lpfc_init.c if (!(phba->hba_flag & HBA_FCOE_MODE)) { phba 4948 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_NOWAIT); phba 4963 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_parse_latt_fault(phba, acqe_link); phba 4981 drivers/scsi/lpfc/lpfc_init.c lpfc_mbx_cmpl_read_topology(phba, pmb); phba 4988 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 5004 drivers/scsi/lpfc/lpfc_init.c lpfc_async_link_speed_to_read_top(struct lpfc_hba *phba, uint8_t speed_code) phba 5046 drivers/scsi/lpfc/lpfc_init.c ((phba->trunk_link.link##__idx.state == LPFC_LINK_UP) ?\ phba 5054 drivers/scsi/lpfc/lpfc_init.c lpfc_update_trunk_link_status(struct lpfc_hba *phba, phba 5060 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.speed = phba 5061 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_port_speed_parse(phba, LPFC_TRAILER_CODE_FC, phba 5064 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.logical_speed = phba 5067 drivers/scsi/lpfc/lpfc_init.c phba->fc_linkspeed = phba 5069 drivers/scsi/lpfc/lpfc_init.c phba, phba 5073 drivers/scsi/lpfc/lpfc_init.c phba->trunk_link.link0.state = phba 5076 drivers/scsi/lpfc/lpfc_init.c phba->trunk_link.link0.fault = port_fault & 0x1 ? err : 0; phba 5079 drivers/scsi/lpfc/lpfc_init.c phba->trunk_link.link1.state = phba 5082 drivers/scsi/lpfc/lpfc_init.c phba->trunk_link.link1.fault = port_fault & 0x2 ? err : 0; phba 5085 drivers/scsi/lpfc/lpfc_init.c phba->trunk_link.link2.state = phba 5088 drivers/scsi/lpfc/lpfc_init.c phba->trunk_link.link2.fault = port_fault & 0x4 ? err : 0; phba 5091 drivers/scsi/lpfc/lpfc_init.c phba->trunk_link.link3.state = phba 5094 drivers/scsi/lpfc/lpfc_init.c phba->trunk_link.link3.fault = port_fault & 0x8 ? err : 0; phba 5097 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 5101 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.speed, phba 5102 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.logical_speed, phba 5107 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 5131 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_async_fc_evt(struct lpfc_hba *phba, struct lpfc_acqe_fc_la *acqe_fc) phba 5141 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 5149 drivers/scsi/lpfc/lpfc_init.c lpfc_update_trunk_link_status(phba, acqe_fc); phba 5154 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.speed = phba 5155 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_port_speed_parse(phba, LPFC_TRAILER_CODE_FC, phba 5157 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.duplex = LPFC_ASYNC_LINK_DUPLEX_FULL; phba 5158 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.topology = phba 5160 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.status = phba 5162 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.type = phba 5164 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.number = phba 5166 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.fault = phba 5171 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.logical_speed = 0; phba 5172 drivers/scsi/lpfc/lpfc_init.c else if (!phba->sli4_hba.conf_trunk) phba 5173 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.logical_speed = phba 5176 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 5180 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.speed, phba 5181 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.topology, phba 5182 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.status, phba 5183 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.type, phba 5184 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.number, phba 5185 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.logical_speed, phba 5186 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.fault); phba 5187 drivers/scsi/lpfc/lpfc_init.c pmb = (LPFC_MBOXQ_t *)mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 5189 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 5195 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 5199 drivers/scsi/lpfc/lpfc_init.c mp->virt = lpfc_mbuf_alloc(phba, 0, &mp->phys); phba 5201 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 5207 drivers/scsi/lpfc/lpfc_init.c lpfc_els_flush_all_cmd(phba); phba 5210 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.els_wq->pring->flag |= LPFC_STOP_IOCB_EVENT; phba 5213 drivers/scsi/lpfc/lpfc_init.c phba->sli.slistat.link_event++; phba 5216 drivers/scsi/lpfc/lpfc_init.c lpfc_read_topology(phba, pmb, mp); phba 5218 drivers/scsi/lpfc/lpfc_init.c pmb->vport = phba->pport; phba 5220 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.link_state.status != LPFC_FC_LA_TYPE_LINK_UP) { phba 5221 drivers/scsi/lpfc/lpfc_init.c phba->link_flag &= ~(LS_MDS_LINK_DOWN | LS_MDS_LOOPBACK); phba 5223 drivers/scsi/lpfc/lpfc_init.c switch (phba->sli4_hba.link_state.status) { phba 5225 drivers/scsi/lpfc/lpfc_init.c phba->link_flag |= LS_MDS_LINK_DOWN; phba 5228 drivers/scsi/lpfc/lpfc_init.c phba->link_flag |= LS_MDS_LOOPBACK; phba 5239 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_parse_latt_fault(phba, (void *)acqe_fc); phba 5245 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.link_state.status == phba 5254 drivers/scsi/lpfc/lpfc_init.c lpfc_mbx_cmpl_read_topology(phba, pmb); phba 5259 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_NOWAIT); phba 5267 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 5278 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_async_sli_evt(struct lpfc_hba *phba, struct lpfc_acqe_sli *acqe_sli) phba 5293 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 5299 drivers/scsi/lpfc/lpfc_init.c port_name = phba->Port[0]; phba 5309 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 5313 drivers/scsi/lpfc/lpfc_init.c phba->sfp_warning |= LPFC_TRANSGRESSION_HIGH_TEMPERATURE; phba 5314 drivers/scsi/lpfc/lpfc_init.c shost = lpfc_shost_from_vport(phba->pport); phba 5326 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 5330 drivers/scsi/lpfc/lpfc_init.c shost = lpfc_shost_from_vport(phba->pport); phba 5342 drivers/scsi/lpfc/lpfc_init.c switch (phba->sli4_hba.lnk_info.lnk_no) { phba 5368 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 5372 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.lnk_info.lnk_no); phba 5377 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.lnk_info.optic_state == status) phba 5417 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli4_read_config(phba); phba 5419 drivers/scsi/lpfc/lpfc_init.c phba->lmt = 0; phba 5420 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 5424 drivers/scsi/lpfc/lpfc_init.c vports = lpfc_create_vport_work_array(phba); phba 5426 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; phba 5432 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_vport_work_array(phba, vports); phba 5434 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.lnk_info.optic_state = status; phba 5435 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 5439 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 5445 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 5469 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba; phba 5473 drivers/scsi/lpfc/lpfc_init.c phba = vport->phba; phba 5474 drivers/scsi/lpfc/lpfc_init.c if (!phba) phba 5492 drivers/scsi/lpfc/lpfc_init.c if ((phba->pport->port_state < LPFC_FLOGI) && phba 5493 drivers/scsi/lpfc/lpfc_init.c (phba->pport->port_state != LPFC_VPORT_FAILED)) phba 5496 drivers/scsi/lpfc/lpfc_init.c if ((vport != phba->pport) && (vport->port_state < LPFC_FDISC) phba 5519 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_perform_all_vport_cvl(struct lpfc_hba *phba) phba 5524 drivers/scsi/lpfc/lpfc_init.c vports = lpfc_create_vport_work_array(phba); phba 5526 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) phba 5528 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_vport_work_array(phba, vports); phba 5539 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_async_fip_evt(struct lpfc_hba *phba, phba 5551 drivers/scsi/lpfc/lpfc_init.c phba->fc_eventTag = acqe_fip->event_tag; phba 5552 drivers/scsi/lpfc/lpfc_init.c phba->fcoe_eventtag = acqe_fip->event_tag; phba 5557 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP | phba 5564 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_FIP | phba 5570 drivers/scsi/lpfc/lpfc_init.c if (phba->fcf.fcf_flag & FCF_DISCOVERY) { phba 5576 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP | phba 5581 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli4_read_fcf_rec(phba, acqe_fip->index); phba 5585 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 5586 drivers/scsi/lpfc/lpfc_init.c if (phba->hba_flag & FCF_TS_INPROG) { phba 5587 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 5591 drivers/scsi/lpfc/lpfc_init.c if (phba->fcf.fcf_flag & (FCF_REDISC_EVT | FCF_REDISC_PEND)) { phba 5592 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 5597 drivers/scsi/lpfc/lpfc_init.c if (phba->fcf.fcf_flag & FCF_SCAN_DONE) { phba 5598 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 5601 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 5604 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP | LOG_DISCOVERY, phba 5608 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli4_fcf_scan_read_fcf_rec(phba, phba 5611 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP | LOG_DISCOVERY, phba 5617 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 5624 drivers/scsi/lpfc/lpfc_init.c phba->fcoe_cvl_eventtag = acqe_fip->event_tag; phba 5625 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP | LOG_DISCOVERY, phba 5632 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 5633 drivers/scsi/lpfc/lpfc_init.c if ((phba->fcf.fcf_flag & FCF_DISCOVERY) && phba 5634 drivers/scsi/lpfc/lpfc_init.c (phba->fcf.current_rec.fcf_indx != acqe_fip->index)) { phba 5635 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 5637 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_fcf_rr_index_clear(phba, acqe_fip->index); phba 5640 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 5643 drivers/scsi/lpfc/lpfc_init.c if (phba->fcf.current_rec.fcf_indx != acqe_fip->index) phba 5652 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 5654 drivers/scsi/lpfc/lpfc_init.c phba->fcf.fcf_flag |= FCF_DEAD_DISC; phba 5655 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 5657 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP | LOG_DISCOVERY, phba 5661 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli4_redisc_fcf_table(phba); phba 5663 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP | phba 5668 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 5669 drivers/scsi/lpfc/lpfc_init.c phba->fcf.fcf_flag &= ~FCF_DEAD_DISC; phba 5670 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 5675 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_fcf_dead_failthrough(phba); phba 5678 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_clear_fcf_rr_bmask(phba); phba 5683 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_perform_all_vport_cvl(phba); phba 5687 drivers/scsi/lpfc/lpfc_init.c phba->fcoe_cvl_eventtag = acqe_fip->event_tag; phba 5688 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP | LOG_DISCOVERY, phba 5692 drivers/scsi/lpfc/lpfc_init.c vport = lpfc_find_vport_by_vpid(phba, phba 5699 drivers/scsi/lpfc/lpfc_init.c vports = lpfc_create_vport_work_array(phba); phba 5701 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; phba 5710 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_vport_work_array(phba, vports); phba 5740 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 5741 drivers/scsi/lpfc/lpfc_init.c if (phba->fcf.fcf_flag & FCF_DISCOVERY) { phba 5742 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 5746 drivers/scsi/lpfc/lpfc_init.c phba->fcf.fcf_flag |= FCF_ACVL_DISC; phba 5747 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 5748 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP | phba 5752 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli4_redisc_fcf_table(phba); phba 5754 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP | phba 5759 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 5760 drivers/scsi/lpfc/lpfc_init.c phba->fcf.fcf_flag &= ~FCF_ACVL_DISC; phba 5761 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 5766 drivers/scsi/lpfc/lpfc_init.c lpfc_retry_pport_discovery(phba); phba 5772 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_clear_fcf_rr_bmask(phba); phba 5776 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 5791 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_async_dcbx_evt(struct lpfc_hba *phba, phba 5794 drivers/scsi/lpfc/lpfc_init.c phba->fc_eventTag = acqe_dcbx->event_tag; phba 5795 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 5810 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_async_grp5_evt(struct lpfc_hba *phba, phba 5815 drivers/scsi/lpfc/lpfc_init.c phba->fc_eventTag = acqe_grp5->event_tag; phba 5816 drivers/scsi/lpfc/lpfc_init.c phba->fcoe_eventtag = acqe_grp5->event_tag; phba 5817 drivers/scsi/lpfc/lpfc_init.c prev_ll_spd = phba->sli4_hba.link_state.logical_speed; phba 5818 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.logical_speed = phba 5820 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 5823 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.link_state.logical_speed); phba 5833 drivers/scsi/lpfc/lpfc_init.c void lpfc_sli4_async_event_proc(struct lpfc_hba *phba) phba 5838 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 5839 drivers/scsi/lpfc/lpfc_init.c phba->hba_flag &= ~ASYNC_EVENT; phba 5840 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 5842 drivers/scsi/lpfc/lpfc_init.c while (!list_empty(&phba->sli4_hba.sp_asynce_work_queue)) { phba 5844 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 5845 drivers/scsi/lpfc/lpfc_init.c list_remove_head(&phba->sli4_hba.sp_asynce_work_queue, phba 5847 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 5851 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_async_link_evt(phba, phba 5855 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_async_fip_evt(phba, &cq_event->cqe.acqe_fip); phba 5858 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_async_dcbx_evt(phba, phba 5862 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_async_grp5_evt(phba, phba 5866 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_async_fc_evt(phba, &cq_event->cqe.acqe_fc); phba 5869 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_async_sli_evt(phba, &cq_event->cqe.acqe_sli); phba 5872 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 5879 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_cq_event_release(phba, cq_event); phba 5890 drivers/scsi/lpfc/lpfc_init.c void lpfc_sli4_fcf_redisc_event_proc(struct lpfc_hba *phba) phba 5894 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 5896 drivers/scsi/lpfc/lpfc_init.c phba->fcf.fcf_flag &= ~FCF_REDISC_EVT; phba 5898 drivers/scsi/lpfc/lpfc_init.c phba->fcf.failover_rec.flag = 0; phba 5900 drivers/scsi/lpfc/lpfc_init.c phba->fcf.fcf_flag |= FCF_REDISC_FOV; phba 5901 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 5904 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP | LOG_DISCOVERY, phba 5906 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli4_fcf_scan_read_fcf_rec(phba, LPFC_FCOE_FCF_GET_FIRST); phba 5908 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP | LOG_DISCOVERY, phba 5924 drivers/scsi/lpfc/lpfc_init.c lpfc_api_table_setup(struct lpfc_hba *phba, uint8_t dev_grp) phba 5929 drivers/scsi/lpfc/lpfc_init.c phba->pci_dev_grp = dev_grp; phba 5933 drivers/scsi/lpfc/lpfc_init.c phba->sli_rev = LPFC_SLI_REV4; phba 5936 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_init_api_table_setup(phba, dev_grp); phba 5940 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_scsi_api_table_setup(phba, dev_grp); phba 5944 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_api_table_setup(phba, dev_grp); phba 5948 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_mbox_api_table_setup(phba, dev_grp); phba 5963 drivers/scsi/lpfc/lpfc_init.c static void lpfc_log_intr_mode(struct lpfc_hba *phba, uint32_t intr_mode) phba 5967 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 5971 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 5975 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 5979 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 5998 drivers/scsi/lpfc/lpfc_init.c lpfc_enable_pci_dev(struct lpfc_hba *phba) phba 6003 drivers/scsi/lpfc/lpfc_init.c if (!phba->pcidev) phba 6006 drivers/scsi/lpfc/lpfc_init.c pdev = phba->pcidev; phba 6027 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6040 drivers/scsi/lpfc/lpfc_init.c lpfc_disable_pci_dev(struct lpfc_hba *phba) phba 6045 drivers/scsi/lpfc/lpfc_init.c if (!phba->pcidev) phba 6048 drivers/scsi/lpfc/lpfc_init.c pdev = phba->pcidev; phba 6066 drivers/scsi/lpfc/lpfc_init.c lpfc_reset_hba(struct lpfc_hba *phba) phba 6069 drivers/scsi/lpfc/lpfc_init.c if (!phba->cfg_enable_hba_reset) { phba 6070 drivers/scsi/lpfc/lpfc_init.c phba->link_state = LPFC_HBA_ERROR; phba 6073 drivers/scsi/lpfc/lpfc_init.c if (phba->sli.sli_flag & LPFC_SLI_ACTIVE) phba 6074 drivers/scsi/lpfc/lpfc_init.c lpfc_offline_prep(phba, LPFC_MBX_WAIT); phba 6076 drivers/scsi/lpfc/lpfc_init.c lpfc_offline_prep(phba, LPFC_MBX_NO_WAIT); phba 6077 drivers/scsi/lpfc/lpfc_init.c lpfc_offline(phba); phba 6078 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_brdrestart(phba); phba 6079 drivers/scsi/lpfc/lpfc_init.c lpfc_online(phba); phba 6080 drivers/scsi/lpfc/lpfc_init.c lpfc_unblock_mgmt_io(phba); phba 6094 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_sriov_nr_virtfn_get(struct lpfc_hba *phba) phba 6096 drivers/scsi/lpfc/lpfc_init.c struct pci_dev *pdev = phba->pcidev; phba 6120 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_probe_sriov_nr_virtfn(struct lpfc_hba *phba, int nr_vfn) phba 6122 drivers/scsi/lpfc/lpfc_init.c struct pci_dev *pdev = phba->pcidev; phba 6126 drivers/scsi/lpfc/lpfc_init.c max_nr_vfn = lpfc_sli_sriov_nr_virtfn_get(phba); phba 6128 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6136 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 6141 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 6159 drivers/scsi/lpfc/lpfc_init.c lpfc_setup_driver_resource_phase1(struct lpfc_hba *phba) phba 6161 drivers/scsi/lpfc/lpfc_init.c struct lpfc_sli *psli = &phba->sli; phba 6166 drivers/scsi/lpfc/lpfc_init.c atomic_set(&phba->fast_event_count, 0); phba 6167 drivers/scsi/lpfc/lpfc_init.c spin_lock_init(&phba->hbalock); phba 6170 drivers/scsi/lpfc/lpfc_init.c spin_lock_init(&phba->ndlp_lock); phba 6173 drivers/scsi/lpfc/lpfc_init.c spin_lock_init(&phba->port_list_lock); phba 6174 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->port_list); phba 6176 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->work_list); phba 6177 drivers/scsi/lpfc/lpfc_init.c init_waitqueue_head(&phba->wait_4_mlo_m_q); phba 6180 drivers/scsi/lpfc/lpfc_init.c init_waitqueue_head(&phba->work_waitq); phba 6182 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 6184 drivers/scsi/lpfc/lpfc_init.c ((phba->cfg_enable_fc4_type & LPFC_ENABLE_FCP) ? phba 6186 drivers/scsi/lpfc/lpfc_init.c ((phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) ? phba 6188 drivers/scsi/lpfc/lpfc_init.c (phba->nvmet_support ? "NVMET" : " ")); phba 6191 drivers/scsi/lpfc/lpfc_init.c spin_lock_init(&phba->scsi_buf_list_get_lock); phba 6192 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->lpfc_scsi_buf_list_get); phba 6193 drivers/scsi/lpfc/lpfc_init.c spin_lock_init(&phba->scsi_buf_list_put_lock); phba 6194 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->lpfc_scsi_buf_list_put); phba 6197 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->fabric_iocb_list); phba 6200 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->elsbuf); phba 6203 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->fcf_conn_rec_list); phba 6206 drivers/scsi/lpfc/lpfc_init.c spin_lock_init(&phba->devicelock); phba 6207 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->luns); phba 6212 drivers/scsi/lpfc/lpfc_init.c timer_setup(&phba->fabric_block_timer, lpfc_fabric_block_timeout, 0); phba 6214 drivers/scsi/lpfc/lpfc_init.c timer_setup(&phba->eratt_poll, lpfc_poll_eratt, 0); phba 6216 drivers/scsi/lpfc/lpfc_init.c timer_setup(&phba->hb_tmofunc, lpfc_hb_timeout, 0); phba 6218 drivers/scsi/lpfc/lpfc_init.c INIT_DELAYED_WORK(&phba->eq_delay_work, lpfc_hb_eq_delay_work); phba 6235 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_driver_resource_setup(struct lpfc_hba *phba) phba 6244 drivers/scsi/lpfc/lpfc_init.c timer_setup(&phba->fcp_poll_timer, lpfc_poll_timeout, 0); phba 6247 drivers/scsi/lpfc/lpfc_init.c phba->work_ha_mask = (HA_ERATT | HA_MBATT | HA_LATT); phba 6248 drivers/scsi/lpfc/lpfc_init.c phba->work_ha_mask |= (HA_RXMASK << (LPFC_ELS_RING * 4)); phba 6251 drivers/scsi/lpfc/lpfc_init.c lpfc_get_cfgparam(phba); phba 6254 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_setup_driver_resource_phase1(phba); phba 6258 drivers/scsi/lpfc/lpfc_init.c if (phba->pcidev->device == PCI_DEVICE_ID_HORNET) { phba 6259 drivers/scsi/lpfc/lpfc_init.c phba->menlo_flag |= HBA_MENLO_SUPPORT; phba 6261 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_sg_seg_cnt < LPFC_DEFAULT_MENLO_SG_SEG_CNT) phba 6262 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sg_seg_cnt = LPFC_DEFAULT_MENLO_SG_SEG_CNT; phba 6265 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli.sli3_ring) phba 6266 drivers/scsi/lpfc/lpfc_init.c phba->sli.sli3_ring = kcalloc(LPFC_SLI3_MAX_RING, phba 6269 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli.sli3_ring) phba 6278 drivers/scsi/lpfc/lpfc_init.c lpfc_vport_template.sg_tablesize = phba->cfg_sg_seg_cnt; phba 6279 drivers/scsi/lpfc/lpfc_init.c lpfc_template_no_hr.sg_tablesize = phba->cfg_sg_seg_cnt; phba 6280 drivers/scsi/lpfc/lpfc_init.c lpfc_template.sg_tablesize = phba->cfg_sg_seg_cnt; phba 6282 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev == LPFC_SLI_REV4) phba 6288 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_bg) { phba 6298 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sg_dma_buf_size = sizeof(struct fcp_cmnd) + phba 6302 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_sg_seg_cnt > LPFC_MAX_SG_SEG_CNT_DIF) phba 6303 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sg_seg_cnt = LPFC_MAX_SG_SEG_CNT_DIF; phba 6306 drivers/scsi/lpfc/lpfc_init.c phba->cfg_total_seg_cnt = LPFC_MAX_SG_SEG_CNT; phba 6313 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sg_dma_buf_size = sizeof(struct fcp_cmnd) + phba 6315 drivers/scsi/lpfc/lpfc_init.c ((phba->cfg_sg_seg_cnt + 2) * entry_sz); phba 6318 drivers/scsi/lpfc/lpfc_init.c phba->cfg_total_seg_cnt = phba->cfg_sg_seg_cnt + 2; phba 6321 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT | LOG_FCP, phba 6323 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sg_seg_cnt, phba->cfg_sg_dma_buf_size, phba 6324 drivers/scsi/lpfc/lpfc_init.c phba->cfg_total_seg_cnt); phba 6326 drivers/scsi/lpfc/lpfc_init.c phba->max_vpi = LPFC_MAX_VPI; phba 6328 drivers/scsi/lpfc/lpfc_init.c phba->max_vports = 0; phba 6333 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_setup(phba); phba 6334 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_queue_init(phba); phba 6337 drivers/scsi/lpfc/lpfc_init.c if (lpfc_mem_alloc(phba, BPL_ALIGN_SZ)) phba 6340 drivers/scsi/lpfc/lpfc_init.c phba->lpfc_sg_dma_buf_pool = phba 6342 drivers/scsi/lpfc/lpfc_init.c &phba->pcidev->dev, phba->cfg_sg_dma_buf_size, phba 6345 drivers/scsi/lpfc/lpfc_init.c if (!phba->lpfc_sg_dma_buf_pool) phba 6348 drivers/scsi/lpfc/lpfc_init.c phba->lpfc_cmd_rsp_buf_pool = phba 6350 drivers/scsi/lpfc/lpfc_init.c &phba->pcidev->dev, phba 6355 drivers/scsi/lpfc/lpfc_init.c if (!phba->lpfc_cmd_rsp_buf_pool) phba 6362 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_sriov_nr_virtfn > 0) { phba 6363 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_probe_sriov_nr_virtfn(phba, phba 6364 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sriov_nr_virtfn); phba 6366 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 6370 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sriov_nr_virtfn); phba 6371 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sriov_nr_virtfn = 0; phba 6378 drivers/scsi/lpfc/lpfc_init.c dma_pool_destroy(phba->lpfc_sg_dma_buf_pool); phba 6379 drivers/scsi/lpfc/lpfc_init.c phba->lpfc_sg_dma_buf_pool = NULL; phba 6381 drivers/scsi/lpfc/lpfc_init.c lpfc_mem_free(phba); phba 6393 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_driver_resource_unset(struct lpfc_hba *phba) phba 6396 drivers/scsi/lpfc/lpfc_init.c lpfc_mem_free_all(phba); phba 6413 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_driver_resource_setup(struct lpfc_hba *phba) phba 6426 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.num_present_cpu = lpfc_present_cpu; phba 6427 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.num_possible_cpu = num_possible_cpus(); phba 6428 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.curr_disp_cpu = 0; phba 6431 drivers/scsi/lpfc/lpfc_init.c lpfc_get_cfgparam(phba); phba 6434 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_setup_driver_resource_phase1(phba); phba 6439 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli4_post_status_check(phba); phba 6446 drivers/scsi/lpfc/lpfc_init.c phba->wq = alloc_workqueue("lpfc_wq", WQ_MEM_RECLAIM, 0); phba 6452 drivers/scsi/lpfc/lpfc_init.c timer_setup(&phba->rrq_tmr, lpfc_rrq_timeout, 0); phba 6455 drivers/scsi/lpfc/lpfc_init.c timer_setup(&phba->fcf.redisc_wait, lpfc_sli4_fcf_redisc_wait_tmo, 0); phba 6461 drivers/scsi/lpfc/lpfc_init.c memset((uint8_t *)&phba->mbox_ext_buf_ctx, 0, phba 6463 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->mbox_ext_buf_ctx.ext_dmabuf_list); phba 6465 drivers/scsi/lpfc/lpfc_init.c phba->max_vpi = LPFC_MAX_VPI; phba 6468 drivers/scsi/lpfc/lpfc_init.c phba->max_vports = 0; phba 6471 drivers/scsi/lpfc/lpfc_init.c phba->valid_vlan = 0; phba 6472 drivers/scsi/lpfc/lpfc_init.c phba->fc_map[0] = LPFC_FCOE_FCF_MAP0; phba 6473 drivers/scsi/lpfc/lpfc_init.c phba->fc_map[1] = LPFC_FCOE_FCF_MAP1; phba 6474 drivers/scsi/lpfc/lpfc_init.c phba->fc_map[2] = LPFC_FCOE_FCF_MAP2; phba 6483 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->hbqs[LPFC_ELS_HBQ].hbq_buffer_list); phba 6484 drivers/scsi/lpfc/lpfc_init.c phba->hbqs[LPFC_ELS_HBQ].hbq_alloc_buffer = lpfc_sli4_rb_alloc; phba 6485 drivers/scsi/lpfc/lpfc_init.c phba->hbqs[LPFC_ELS_HBQ].hbq_free_buffer = lpfc_sli4_rb_free; phba 6491 drivers/scsi/lpfc/lpfc_init.c spin_lock_init(&phba->sli4_hba.abts_io_buf_list_lock); phba 6492 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.lpfc_abts_io_buf_list); phba 6494 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) { phba 6496 drivers/scsi/lpfc/lpfc_init.c spin_lock_init(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 6497 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.lpfc_abts_nvmet_ctx_list); phba 6498 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.lpfc_nvmet_io_wait_list); phba 6499 drivers/scsi/lpfc/lpfc_init.c spin_lock_init(&phba->sli4_hba.t_active_list_lock); phba 6500 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.t_active_ctx_list); phba 6504 drivers/scsi/lpfc/lpfc_init.c spin_lock_init(&phba->sli4_hba.sgl_list_lock); phba 6505 drivers/scsi/lpfc/lpfc_init.c spin_lock_init(&phba->sli4_hba.nvmet_io_wait_lock); phba 6512 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.sp_cqe_event_pool); phba 6514 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.sp_queue_event); phba 6516 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.sp_asynce_work_queue); phba 6518 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.sp_fcp_xri_aborted_work_queue); phba 6520 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.sp_els_xri_aborted_work_queue); phba 6522 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.sp_unsol_work_queue); phba 6525 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.lpfc_rpi_blk_list); phba 6526 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.lpfc_xri_blk_list); phba 6527 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.lpfc_vfi_blk_list); phba 6528 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->lpfc_vpi_blk_list); phba 6533 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli.mboxq); phba 6534 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli.mboxq_cmpl); phba 6537 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.lnk_info.optic_state = 0xff; phba 6540 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_mem_alloc(phba, SGL_ALIGN_SZ); phba 6545 drivers/scsi/lpfc/lpfc_init.c if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) >= phba 6547 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_pci_function_reset(phba); phba 6552 drivers/scsi/lpfc/lpfc_init.c phba->temp_sensor_support = 1; phba 6556 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_create_bootstrap_mbox(phba); phba 6561 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_setup_endian_order(phba); phba 6566 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli4_read_config(phba); phba 6569 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_mem_alloc_active_rrq_pool_s4(phba); phba 6574 drivers/scsi/lpfc/lpfc_init.c if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) == phba 6576 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_pci_function_reset(phba); phba 6581 drivers/scsi/lpfc/lpfc_init.c mboxq = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, phba 6589 drivers/scsi/lpfc/lpfc_init.c phba->nvmet_support = 0; phba 6593 drivers/scsi/lpfc/lpfc_init.c lpfc_read_nv(phba, mboxq); phba 6594 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 6596 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 6601 drivers/scsi/lpfc/lpfc_init.c mempool_free(mboxq, phba->mbox_mem_pool); phba 6609 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.wwnn.u.name = wwn; phba 6614 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.wwpn.u.name = wwn; phba 6620 drivers/scsi/lpfc/lpfc_init.c if (lpfc_nvmet_mem_alloc(phba)) phba 6623 drivers/scsi/lpfc/lpfc_init.c phba->nvmet_support = 1; /* a match */ phba 6625 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6629 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6635 drivers/scsi/lpfc/lpfc_init.c phba->cfg_xri_rebalancing = 0; phba 6641 drivers/scsi/lpfc/lpfc_init.c lpfc_nvme_mod_param_dep(phba); phba 6645 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 6653 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.pc_sli4_params.supported = 1; phba 6660 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.pc_sli4_params.supported) phba 6661 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_pc_sli4_params_get(phba, mboxq); phba 6663 drivers/scsi/lpfc/lpfc_init.c mempool_free(mboxq, phba->mbox_mem_pool); phba 6674 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_get_sli4_parameters(phba, mboxq); phba 6677 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.sli_intf); phba 6679 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.sli_intf); phba 6680 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.extents_in_use && phba 6681 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.rpi_hdrs_in_use) { phba 6682 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6687 drivers/scsi/lpfc/lpfc_init.c mempool_free(mboxq, phba->mbox_mem_pool); phba 6694 drivers/scsi/lpfc/lpfc_init.c mempool_free(mboxq, phba->mbox_mem_pool); phba 6705 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) phba 6719 drivers/scsi/lpfc/lpfc_init.c if (phba->sli3_options & LPFC_SLI3_BG_ENABLED) { phba 6731 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sg_dma_buf_size = sizeof(struct fcp_cmnd) + phba 6735 drivers/scsi/lpfc/lpfc_init.c phba->cfg_total_seg_cnt = LPFC_MAX_SGL_SEG_CNT; phba 6741 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_bg && phba 6742 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sg_seg_cnt > LPFC_MAX_BG_SLI4_SEG_CNT_DIF) phba 6743 drivers/scsi/lpfc/lpfc_init.c phba->cfg_scsi_seg_cnt = LPFC_MAX_BG_SLI4_SEG_CNT_DIF; phba 6745 drivers/scsi/lpfc/lpfc_init.c phba->cfg_scsi_seg_cnt = phba->cfg_sg_seg_cnt; phba 6753 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sg_dma_buf_size = sizeof(struct fcp_cmnd) + phba 6755 drivers/scsi/lpfc/lpfc_init.c ((phba->cfg_sg_seg_cnt + extra) * phba 6759 drivers/scsi/lpfc/lpfc_init.c phba->cfg_total_seg_cnt = phba->cfg_sg_seg_cnt + extra; phba 6760 drivers/scsi/lpfc/lpfc_init.c phba->cfg_scsi_seg_cnt = phba->cfg_sg_seg_cnt; phba 6768 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_xpsgl && !phba->nvmet_support) phba 6769 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sg_dma_buf_size = LPFC_DEFAULT_XPSGL_SIZE; phba 6770 drivers/scsi/lpfc/lpfc_init.c else if (phba->cfg_sg_dma_buf_size <= LPFC_MIN_SG_SLI4_BUF_SZ) phba 6771 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sg_dma_buf_size = LPFC_MIN_SG_SLI4_BUF_SZ; phba 6773 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sg_dma_buf_size = phba 6774 drivers/scsi/lpfc/lpfc_init.c SLI4_PAGE_ALIGN(phba->cfg_sg_dma_buf_size); phba 6776 drivers/scsi/lpfc/lpfc_init.c phba->border_sge_num = phba->cfg_sg_dma_buf_size / phba 6780 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) { phba 6781 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_sg_seg_cnt > LPFC_MAX_NVME_SEG_CNT) { phba 6782 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME | LOG_INIT, phba 6786 drivers/scsi/lpfc/lpfc_init.c phba->cfg_nvme_seg_cnt = LPFC_MAX_NVME_SEG_CNT; phba 6788 drivers/scsi/lpfc/lpfc_init.c phba->cfg_nvme_seg_cnt = phba->cfg_sg_seg_cnt; phba 6792 drivers/scsi/lpfc/lpfc_init.c lpfc_vport_template.sg_tablesize = phba->cfg_scsi_seg_cnt; phba 6793 drivers/scsi/lpfc/lpfc_init.c lpfc_template.sg_tablesize = phba->cfg_scsi_seg_cnt; phba 6794 drivers/scsi/lpfc/lpfc_init.c lpfc_template_no_hr.sg_tablesize = phba->cfg_scsi_seg_cnt; phba 6796 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT | LOG_FCP, phba 6799 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sg_seg_cnt, phba->cfg_sg_dma_buf_size, phba 6800 drivers/scsi/lpfc/lpfc_init.c phba->cfg_total_seg_cnt, phba->cfg_scsi_seg_cnt, phba 6801 drivers/scsi/lpfc/lpfc_init.c phba->cfg_nvme_seg_cnt); phba 6803 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_sg_dma_buf_size < SLI4_PAGE_SIZE) phba 6804 drivers/scsi/lpfc/lpfc_init.c i = phba->cfg_sg_dma_buf_size; phba 6808 drivers/scsi/lpfc/lpfc_init.c phba->lpfc_sg_dma_buf_pool = phba 6810 drivers/scsi/lpfc/lpfc_init.c &phba->pcidev->dev, phba 6811 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sg_dma_buf_size, phba 6813 drivers/scsi/lpfc/lpfc_init.c if (!phba->lpfc_sg_dma_buf_pool) phba 6816 drivers/scsi/lpfc/lpfc_init.c phba->lpfc_cmd_rsp_buf_pool = phba 6818 drivers/scsi/lpfc/lpfc_init.c &phba->pcidev->dev, phba 6822 drivers/scsi/lpfc/lpfc_init.c if (!phba->lpfc_cmd_rsp_buf_pool) phba 6825 drivers/scsi/lpfc/lpfc_init.c mempool_free(mboxq, phba->mbox_mem_pool); phba 6828 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_oas_verify(phba); phba 6831 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_ras_init(phba); phba 6834 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli4_queue_verify(phba); phba 6839 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli4_cq_event_pool_create(phba); phba 6844 drivers/scsi/lpfc/lpfc_init.c lpfc_init_sgl_list(phba); phba 6847 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_init_active_sgl_array(phba); phba 6849 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6853 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli4_init_rpi_hdrs(phba); phba 6855 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6862 drivers/scsi/lpfc/lpfc_init.c phba->fcf.fcf_rr_bmask = kcalloc(longs, sizeof(unsigned long), phba 6864 drivers/scsi/lpfc/lpfc_init.c if (!phba->fcf.fcf_rr_bmask) { phba 6865 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6872 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.hba_eq_hdl = kcalloc(phba->cfg_irq_chann, phba 6875 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.hba_eq_hdl) { phba 6876 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6883 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cpu_map = kcalloc(phba->sli4_hba.num_possible_cpu, phba 6886 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.cpu_map) { phba 6887 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6894 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.eq_info = alloc_percpu(struct lpfc_eq_intr_info); phba 6895 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.eq_info) { phba 6896 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6905 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_sriov_nr_virtfn > 0) { phba 6906 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_probe_sriov_nr_virtfn(phba, phba 6907 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sriov_nr_virtfn); phba 6909 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 6913 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sriov_nr_virtfn); phba 6914 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sriov_nr_virtfn = 0; phba 6921 drivers/scsi/lpfc/lpfc_init.c kfree(phba->sli4_hba.cpu_map); phba 6923 drivers/scsi/lpfc/lpfc_init.c kfree(phba->sli4_hba.hba_eq_hdl); phba 6925 drivers/scsi/lpfc/lpfc_init.c kfree(phba->fcf.fcf_rr_bmask); phba 6927 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_remove_rpi_hdrs(phba); phba 6929 drivers/scsi/lpfc/lpfc_init.c lpfc_free_active_sgl(phba); phba 6931 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_cq_event_pool_destroy(phba); phba 6933 drivers/scsi/lpfc/lpfc_init.c dma_pool_destroy(phba->lpfc_cmd_rsp_buf_pool); phba 6934 drivers/scsi/lpfc/lpfc_init.c phba->lpfc_cmd_rsp_buf_pool = NULL; phba 6936 drivers/scsi/lpfc/lpfc_init.c dma_pool_destroy(phba->lpfc_sg_dma_buf_pool); phba 6937 drivers/scsi/lpfc/lpfc_init.c phba->lpfc_sg_dma_buf_pool = NULL; phba 6939 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_bootstrap_mbox(phba); phba 6941 drivers/scsi/lpfc/lpfc_init.c lpfc_mem_free(phba); phba 6953 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_driver_resource_unset(struct lpfc_hba *phba) phba 6957 drivers/scsi/lpfc/lpfc_init.c free_percpu(phba->sli4_hba.eq_info); phba 6960 drivers/scsi/lpfc/lpfc_init.c kfree(phba->sli4_hba.cpu_map); phba 6961 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.num_possible_cpu = 0; phba 6962 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.num_present_cpu = 0; phba 6963 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.curr_disp_cpu = 0; phba 6966 drivers/scsi/lpfc/lpfc_init.c kfree(phba->sli4_hba.hba_eq_hdl); phba 6969 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_remove_rpi_hdrs(phba); phba 6970 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_remove_rpis(phba); phba 6973 drivers/scsi/lpfc/lpfc_init.c kfree(phba->fcf.fcf_rr_bmask); phba 6976 drivers/scsi/lpfc/lpfc_init.c lpfc_free_active_sgl(phba); phba 6977 drivers/scsi/lpfc/lpfc_init.c lpfc_free_els_sgl_list(phba); phba 6978 drivers/scsi/lpfc/lpfc_init.c lpfc_free_nvmet_sgl_list(phba); phba 6981 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_cq_event_release_all(phba); phba 6982 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_cq_event_pool_destroy(phba); phba 6985 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_dealloc_resource_identifiers(phba); phba 6988 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_bootstrap_mbox(phba); phba 6991 drivers/scsi/lpfc/lpfc_init.c lpfc_mem_free_all(phba); phba 6995 drivers/scsi/lpfc/lpfc_init.c &phba->fcf_conn_rec_list, list) { phba 7014 drivers/scsi/lpfc/lpfc_init.c lpfc_init_api_table_setup(struct lpfc_hba *phba, uint8_t dev_grp) phba 7016 drivers/scsi/lpfc/lpfc_init.c phba->lpfc_hba_init_link = lpfc_hba_init_link; phba 7017 drivers/scsi/lpfc/lpfc_init.c phba->lpfc_hba_down_link = lpfc_hba_down_link; phba 7018 drivers/scsi/lpfc/lpfc_init.c phba->lpfc_selective_reset = lpfc_selective_reset; phba 7021 drivers/scsi/lpfc/lpfc_init.c phba->lpfc_hba_down_post = lpfc_hba_down_post_s3; phba 7022 drivers/scsi/lpfc/lpfc_init.c phba->lpfc_handle_eratt = lpfc_handle_eratt_s3; phba 7023 drivers/scsi/lpfc/lpfc_init.c phba->lpfc_stop_port = lpfc_stop_port_s3; phba 7026 drivers/scsi/lpfc/lpfc_init.c phba->lpfc_hba_down_post = lpfc_hba_down_post_s4; phba 7027 drivers/scsi/lpfc/lpfc_init.c phba->lpfc_handle_eratt = lpfc_handle_eratt_s4; phba 7028 drivers/scsi/lpfc/lpfc_init.c phba->lpfc_stop_port = lpfc_stop_port_s4; phba 7031 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 7052 drivers/scsi/lpfc/lpfc_init.c lpfc_setup_driver_resource_phase2(struct lpfc_hba *phba) phba 7057 drivers/scsi/lpfc/lpfc_init.c phba->worker_thread = kthread_run(lpfc_do_work, phba, phba 7058 drivers/scsi/lpfc/lpfc_init.c "lpfc_worker_%d", phba->brd_no); phba 7059 drivers/scsi/lpfc/lpfc_init.c if (IS_ERR(phba->worker_thread)) { phba 7060 drivers/scsi/lpfc/lpfc_init.c error = PTR_ERR(phba->worker_thread); phba 7076 drivers/scsi/lpfc/lpfc_init.c lpfc_unset_driver_resource_phase2(struct lpfc_hba *phba) phba 7078 drivers/scsi/lpfc/lpfc_init.c if (phba->wq) { phba 7079 drivers/scsi/lpfc/lpfc_init.c flush_workqueue(phba->wq); phba 7080 drivers/scsi/lpfc/lpfc_init.c destroy_workqueue(phba->wq); phba 7081 drivers/scsi/lpfc/lpfc_init.c phba->wq = NULL; phba 7085 drivers/scsi/lpfc/lpfc_init.c if (phba->worker_thread) phba 7086 drivers/scsi/lpfc/lpfc_init.c kthread_stop(phba->worker_thread); phba 7096 drivers/scsi/lpfc/lpfc_init.c lpfc_free_iocb_list(struct lpfc_hba *phba) phba 7100 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 7102 drivers/scsi/lpfc/lpfc_init.c &phba->lpfc_iocb_list, list) { phba 7105 drivers/scsi/lpfc/lpfc_init.c phba->total_iocbq_bufs--; phba 7107 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 7124 drivers/scsi/lpfc/lpfc_init.c lpfc_init_iocb_list(struct lpfc_hba *phba, int iocb_count) phba 7131 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->lpfc_iocb_list); phba 7141 drivers/scsi/lpfc/lpfc_init.c iotag = lpfc_sli_next_iotag(phba, iocbq_entry); phba 7151 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 7152 drivers/scsi/lpfc/lpfc_init.c list_add(&iocbq_entry->list, &phba->lpfc_iocb_list); phba 7153 drivers/scsi/lpfc/lpfc_init.c phba->total_iocbq_bufs++; phba 7154 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 7160 drivers/scsi/lpfc/lpfc_init.c lpfc_free_iocb_list(phba); phba 7173 drivers/scsi/lpfc/lpfc_init.c lpfc_free_sgl_list(struct lpfc_hba *phba, struct list_head *sglq_list) phba 7179 drivers/scsi/lpfc/lpfc_init.c lpfc_mbuf_free(phba, sglq_entry->virt, sglq_entry->phys); phba 7191 drivers/scsi/lpfc/lpfc_init.c lpfc_free_els_sgl_list(struct lpfc_hba *phba) phba 7196 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 7197 drivers/scsi/lpfc/lpfc_init.c spin_lock(&phba->sli4_hba.sgl_list_lock); phba 7198 drivers/scsi/lpfc/lpfc_init.c list_splice_init(&phba->sli4_hba.lpfc_els_sgl_list, &sglq_list); phba 7199 drivers/scsi/lpfc/lpfc_init.c spin_unlock(&phba->sli4_hba.sgl_list_lock); phba 7200 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 7203 drivers/scsi/lpfc/lpfc_init.c lpfc_free_sgl_list(phba, &sglq_list); phba 7213 drivers/scsi/lpfc/lpfc_init.c lpfc_free_nvmet_sgl_list(struct lpfc_hba *phba) phba 7219 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 7220 drivers/scsi/lpfc/lpfc_init.c spin_lock(&phba->sli4_hba.sgl_list_lock); phba 7221 drivers/scsi/lpfc/lpfc_init.c list_splice_init(&phba->sli4_hba.lpfc_nvmet_sgl_list, &sglq_list); phba 7222 drivers/scsi/lpfc/lpfc_init.c spin_unlock(&phba->sli4_hba.sgl_list_lock); phba 7223 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 7228 drivers/scsi/lpfc/lpfc_init.c lpfc_nvmet_buf_free(phba, sglq_entry->virt, sglq_entry->phys); phba 7236 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_xri_cnt = 0; phba 7247 drivers/scsi/lpfc/lpfc_init.c lpfc_init_active_sgl_array(struct lpfc_hba *phba) phba 7251 drivers/scsi/lpfc/lpfc_init.c size *= phba->sli4_hba.max_cfg_param.max_xri; phba 7253 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.lpfc_sglq_active_list = phba 7255 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.lpfc_sglq_active_list) phba 7269 drivers/scsi/lpfc/lpfc_init.c lpfc_free_active_sgl(struct lpfc_hba *phba) phba 7271 drivers/scsi/lpfc/lpfc_init.c kfree(phba->sli4_hba.lpfc_sglq_active_list); phba 7283 drivers/scsi/lpfc/lpfc_init.c lpfc_init_sgl_list(struct lpfc_hba *phba) phba 7286 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.lpfc_els_sgl_list); phba 7287 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.lpfc_abts_els_sgl_list); phba 7288 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.lpfc_nvmet_sgl_list); phba 7289 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.lpfc_abts_nvmet_ctx_list); phba 7292 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.els_xri_cnt = 0; phba 7295 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.io_xri_cnt = 0; phba 7313 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_init_rpi_hdrs(struct lpfc_hba *phba) phba 7318 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.lpfc_rpi_hdr_list); phba 7319 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.rpi_hdrs_in_use) phba 7321 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.extents_in_use) phba 7324 drivers/scsi/lpfc/lpfc_init.c rpi_hdr = lpfc_sli4_create_rpi_hdr(phba); phba 7326 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 7328 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_remove_rpis(phba); phba 7349 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_create_rpi_hdr(struct lpfc_hba *phba) phba 7360 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.rpi_hdrs_in_use) phba 7362 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.extents_in_use) phba 7366 drivers/scsi/lpfc/lpfc_init.c rpi_limit = phba->sli4_hba.max_cfg_param.max_rpi; phba 7368 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 7374 drivers/scsi/lpfc/lpfc_init.c curr_rpi_range = phba->sli4_hba.next_rpi; phba 7375 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 7389 drivers/scsi/lpfc/lpfc_init.c dmabuf->virt = dma_alloc_coherent(&phba->pcidev->dev, phba 7410 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 7414 drivers/scsi/lpfc/lpfc_init.c rpi_hdr->next_rpi = phba->sli4_hba.next_rpi + LPFC_RPI_HDR_COUNT; phba 7415 drivers/scsi/lpfc/lpfc_init.c list_add_tail(&rpi_hdr->list, &phba->sli4_hba.lpfc_rpi_hdr_list); phba 7417 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 7421 drivers/scsi/lpfc/lpfc_init.c dma_free_coherent(&phba->pcidev->dev, LPFC_HDR_TEMPLATE_SIZE, phba 7438 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_remove_rpi_hdrs(struct lpfc_hba *phba) phba 7442 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.rpi_hdrs_in_use) phba 7446 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.lpfc_rpi_hdr_list, list) { phba 7448 drivers/scsi/lpfc/lpfc_init.c dma_free_coherent(&phba->pcidev->dev, rpi_hdr->len, phba 7455 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.next_rpi = 0; phba 7473 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba; phba 7476 drivers/scsi/lpfc/lpfc_init.c phba = kzalloc(sizeof(struct lpfc_hba), GFP_KERNEL); phba 7477 drivers/scsi/lpfc/lpfc_init.c if (!phba) { phba 7483 drivers/scsi/lpfc/lpfc_init.c phba->pcidev = pdev; phba 7486 drivers/scsi/lpfc/lpfc_init.c phba->brd_no = lpfc_get_instance(); phba 7487 drivers/scsi/lpfc/lpfc_init.c if (phba->brd_no < 0) { phba 7488 drivers/scsi/lpfc/lpfc_init.c kfree(phba); phba 7491 drivers/scsi/lpfc/lpfc_init.c phba->eratt_poll_interval = LPFC_ERATT_POLL_INTERVAL; phba 7493 drivers/scsi/lpfc/lpfc_init.c spin_lock_init(&phba->ct_ev_lock); phba 7494 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->ct_ev_waiters); phba 7496 drivers/scsi/lpfc/lpfc_init.c return phba; phba 7507 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_free(struct lpfc_hba *phba) phba 7509 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev == LPFC_SLI_REV4) phba 7510 drivers/scsi/lpfc/lpfc_init.c kfree(phba->sli4_hba.hdwq); phba 7513 drivers/scsi/lpfc/lpfc_init.c idr_remove(&lpfc_hba_index, phba->brd_no); phba 7516 drivers/scsi/lpfc/lpfc_init.c kfree(phba->sli.sli3_ring); phba 7517 drivers/scsi/lpfc/lpfc_init.c phba->sli.sli3_ring = NULL; phba 7519 drivers/scsi/lpfc/lpfc_init.c kfree(phba); phba 7535 drivers/scsi/lpfc/lpfc_init.c lpfc_create_shost(struct lpfc_hba *phba) phba 7541 drivers/scsi/lpfc/lpfc_init.c phba->fc_edtov = FF_DEF_EDTOV; phba 7542 drivers/scsi/lpfc/lpfc_init.c phba->fc_ratov = FF_DEF_RATOV; phba 7543 drivers/scsi/lpfc/lpfc_init.c phba->fc_altov = FF_DEF_ALTOV; phba 7544 drivers/scsi/lpfc/lpfc_init.c phba->fc_arbtov = FF_DEF_ARBTOV; phba 7546 drivers/scsi/lpfc/lpfc_init.c atomic_set(&phba->sdev_cnt, 0); phba 7547 drivers/scsi/lpfc/lpfc_init.c vport = lpfc_create_port(phba, phba->brd_no, &phba->pcidev->dev); phba 7552 drivers/scsi/lpfc/lpfc_init.c phba->pport = vport; phba 7554 drivers/scsi/lpfc/lpfc_init.c if (phba->nvmet_support) { phba 7556 drivers/scsi/lpfc/lpfc_init.c if (phba->txrdy_payload_pool == NULL) { phba 7557 drivers/scsi/lpfc/lpfc_init.c phba->txrdy_payload_pool = dma_pool_create( phba 7558 drivers/scsi/lpfc/lpfc_init.c "txrdy_pool", &phba->pcidev->dev, phba 7560 drivers/scsi/lpfc/lpfc_init.c if (phba->txrdy_payload_pool) { phba 7561 drivers/scsi/lpfc/lpfc_init.c phba->targetport = NULL; phba 7562 drivers/scsi/lpfc/lpfc_init.c phba->cfg_enable_fc4_type = LPFC_ENABLE_NVME; phba 7563 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, phba 7572 drivers/scsi/lpfc/lpfc_init.c pci_set_drvdata(phba->pcidev, shost); phba 7579 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_SmartSAN || phba 7580 drivers/scsi/lpfc/lpfc_init.c (phba->cfg_fdmi_on == LPFC_FDMI_SUPPORT)) { phba 7584 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_SmartSAN) phba 7600 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_shost(struct lpfc_hba *phba) phba 7602 drivers/scsi/lpfc/lpfc_init.c struct lpfc_vport *vport = phba->pport; phba 7619 drivers/scsi/lpfc/lpfc_init.c lpfc_setup_bg(struct lpfc_hba *phba, struct Scsi_Host *shost) phba 7624 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_prot_mask && phba->cfg_prot_guard) { phba 7625 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 7629 drivers/scsi/lpfc/lpfc_init.c old_mask = phba->cfg_prot_mask; phba 7630 drivers/scsi/lpfc/lpfc_init.c old_guard = phba->cfg_prot_guard; phba 7633 drivers/scsi/lpfc/lpfc_init.c phba->cfg_prot_mask &= (SHOST_DIF_TYPE1_PROTECTION | phba 7636 drivers/scsi/lpfc/lpfc_init.c phba->cfg_prot_guard &= (SHOST_DIX_GUARD_IP | phba 7640 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_prot_mask == SHOST_DIX_TYPE1_PROTECTION) phba 7641 drivers/scsi/lpfc/lpfc_init.c phba->cfg_prot_mask |= SHOST_DIF_TYPE1_PROTECTION; phba 7643 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_prot_mask && phba->cfg_prot_guard) { phba 7644 drivers/scsi/lpfc/lpfc_init.c if ((old_mask != phba->cfg_prot_mask) || phba 7645 drivers/scsi/lpfc/lpfc_init.c (old_guard != phba->cfg_prot_guard)) phba 7646 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 7649 drivers/scsi/lpfc/lpfc_init.c phba->cfg_prot_mask, phba 7650 drivers/scsi/lpfc/lpfc_init.c phba->cfg_prot_guard); phba 7652 drivers/scsi/lpfc/lpfc_init.c scsi_host_set_prot(shost, phba->cfg_prot_mask); phba 7653 drivers/scsi/lpfc/lpfc_init.c scsi_host_set_guard(shost, phba->cfg_prot_guard); phba 7655 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 7670 drivers/scsi/lpfc/lpfc_init.c lpfc_post_init_setup(struct lpfc_hba *phba) phba 7676 drivers/scsi/lpfc/lpfc_init.c lpfc_get_hba_model_desc(phba, phba->ModelName, phba->ModelDesc); phba 7682 drivers/scsi/lpfc/lpfc_init.c shost = pci_get_drvdata(phba->pcidev); phba 7683 drivers/scsi/lpfc/lpfc_init.c shost->can_queue = phba->cfg_hba_queue_depth - 10; phba 7687 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_poll & DISABLE_FCP_RING_INT) { phba 7689 drivers/scsi/lpfc/lpfc_init.c lpfc_poll_start_timer(phba); phba 7693 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 7717 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_pci_mem_setup(struct lpfc_hba *phba) phba 7719 drivers/scsi/lpfc/lpfc_init.c struct pci_dev *pdev = phba->pcidev; phba 7739 drivers/scsi/lpfc/lpfc_init.c phba->pci_bar0_map = pci_resource_start(pdev, 0); phba 7742 drivers/scsi/lpfc/lpfc_init.c phba->pci_bar2_map = pci_resource_start(pdev, 2); phba 7746 drivers/scsi/lpfc/lpfc_init.c phba->slim_memmap_p = ioremap(phba->pci_bar0_map, bar0map_len); phba 7747 drivers/scsi/lpfc/lpfc_init.c if (!phba->slim_memmap_p) { phba 7754 drivers/scsi/lpfc/lpfc_init.c phba->ctrl_regs_memmap_p = ioremap(phba->pci_bar2_map, bar2map_len); phba 7755 drivers/scsi/lpfc/lpfc_init.c if (!phba->ctrl_regs_memmap_p) { phba 7762 drivers/scsi/lpfc/lpfc_init.c phba->slim2p.virt = dma_alloc_coherent(&pdev->dev, SLI2_SLIM_SIZE, phba 7763 drivers/scsi/lpfc/lpfc_init.c &phba->slim2p.phys, GFP_KERNEL); phba 7764 drivers/scsi/lpfc/lpfc_init.c if (!phba->slim2p.virt) phba 7767 drivers/scsi/lpfc/lpfc_init.c phba->mbox = phba->slim2p.virt + offsetof(struct lpfc_sli2_slim, mbx); phba 7768 drivers/scsi/lpfc/lpfc_init.c phba->mbox_ext = (phba->slim2p.virt + phba 7770 drivers/scsi/lpfc/lpfc_init.c phba->pcb = (phba->slim2p.virt + offsetof(struct lpfc_sli2_slim, pcb)); phba 7771 drivers/scsi/lpfc/lpfc_init.c phba->IOCBs = (phba->slim2p.virt + phba 7774 drivers/scsi/lpfc/lpfc_init.c phba->hbqslimp.virt = dma_alloc_coherent(&pdev->dev, phba 7776 drivers/scsi/lpfc/lpfc_init.c &phba->hbqslimp.phys, phba 7778 drivers/scsi/lpfc/lpfc_init.c if (!phba->hbqslimp.virt) phba 7782 drivers/scsi/lpfc/lpfc_init.c ptr = phba->hbqslimp.virt; phba 7784 drivers/scsi/lpfc/lpfc_init.c phba->hbqs[i].hbq_virt = ptr; phba 7785 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->hbqs[i].hbq_buffer_list); phba 7789 drivers/scsi/lpfc/lpfc_init.c phba->hbqs[LPFC_ELS_HBQ].hbq_alloc_buffer = lpfc_els_hbq_alloc; phba 7790 drivers/scsi/lpfc/lpfc_init.c phba->hbqs[LPFC_ELS_HBQ].hbq_free_buffer = lpfc_els_hbq_free; phba 7792 drivers/scsi/lpfc/lpfc_init.c memset(phba->hbqslimp.virt, 0, lpfc_sli_hbq_size()); phba 7794 drivers/scsi/lpfc/lpfc_init.c phba->MBslimaddr = phba->slim_memmap_p; phba 7795 drivers/scsi/lpfc/lpfc_init.c phba->HAregaddr = phba->ctrl_regs_memmap_p + HA_REG_OFFSET; phba 7796 drivers/scsi/lpfc/lpfc_init.c phba->CAregaddr = phba->ctrl_regs_memmap_p + CA_REG_OFFSET; phba 7797 drivers/scsi/lpfc/lpfc_init.c phba->HSregaddr = phba->ctrl_regs_memmap_p + HS_REG_OFFSET; phba 7798 drivers/scsi/lpfc/lpfc_init.c phba->HCregaddr = phba->ctrl_regs_memmap_p + HC_REG_OFFSET; phba 7804 drivers/scsi/lpfc/lpfc_init.c phba->slim2p.virt, phba->slim2p.phys); phba 7806 drivers/scsi/lpfc/lpfc_init.c iounmap(phba->ctrl_regs_memmap_p); phba 7808 drivers/scsi/lpfc/lpfc_init.c iounmap(phba->slim_memmap_p); phba 7821 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_pci_mem_unset(struct lpfc_hba *phba) phba 7826 drivers/scsi/lpfc/lpfc_init.c if (!phba->pcidev) phba 7829 drivers/scsi/lpfc/lpfc_init.c pdev = phba->pcidev; phba 7833 drivers/scsi/lpfc/lpfc_init.c phba->hbqslimp.virt, phba->hbqslimp.phys); phba 7835 drivers/scsi/lpfc/lpfc_init.c phba->slim2p.virt, phba->slim2p.phys); phba 7838 drivers/scsi/lpfc/lpfc_init.c iounmap(phba->ctrl_regs_memmap_p); phba 7839 drivers/scsi/lpfc/lpfc_init.c iounmap(phba->slim_memmap_p); phba 7854 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_post_status_check(struct lpfc_hba *phba) phba 7863 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.PSMPHRregaddr) phba 7868 drivers/scsi/lpfc/lpfc_init.c if (lpfc_readl(phba->sli4_hba.PSMPHRregaddr, phba 7886 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 7900 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 7905 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.sli_intf), phba 7907 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.sli_intf), phba 7909 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.sli_intf), phba 7911 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.sli_intf), phba 7913 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.sli_intf), phba 7915 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.sli_intf)); phba 7922 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.sli_intf); phba 7925 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.ue_mask_lo = phba 7926 drivers/scsi/lpfc/lpfc_init.c readl(phba->sli4_hba.u.if_type0.UEMASKLOregaddr); phba 7927 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.ue_mask_hi = phba 7928 drivers/scsi/lpfc/lpfc_init.c readl(phba->sli4_hba.u.if_type0.UEMASKHIregaddr); phba 7930 drivers/scsi/lpfc/lpfc_init.c readl(phba->sli4_hba.u.if_type0.UERRLOregaddr); phba 7932 drivers/scsi/lpfc/lpfc_init.c readl(phba->sli4_hba.u.if_type0.UERRHIregaddr); phba 7933 drivers/scsi/lpfc/lpfc_init.c if ((~phba->sli4_hba.ue_mask_lo & uerrlo_reg.word0) || phba 7934 drivers/scsi/lpfc/lpfc_init.c (~phba->sli4_hba.ue_mask_hi & uerrhi_reg.word0)) { phba 7935 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 7944 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.ue_mask_lo, phba 7945 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.ue_mask_hi); phba 7952 drivers/scsi/lpfc/lpfc_init.c if (lpfc_readl(phba->sli4_hba.u.if_type2.STATUSregaddr, phba 7956 drivers/scsi/lpfc/lpfc_init.c phba->work_status[0] = phba 7957 drivers/scsi/lpfc/lpfc_init.c readl(phba->sli4_hba.u.if_type2. phba 7959 drivers/scsi/lpfc/lpfc_init.c phba->work_status[1] = phba 7960 drivers/scsi/lpfc/lpfc_init.c readl(phba->sli4_hba.u.if_type2. phba 7962 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 7969 drivers/scsi/lpfc/lpfc_init.c phba->work_status[0], phba 7970 drivers/scsi/lpfc/lpfc_init.c phba->work_status[1]); phba 7991 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_bar0_register_memmap(struct lpfc_hba *phba, uint32_t if_type) phba 7995 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type0.UERRLOregaddr = phba 7996 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + LPFC_UERR_STATUS_LO; phba 7997 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type0.UERRHIregaddr = phba 7998 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + LPFC_UERR_STATUS_HI; phba 7999 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type0.UEMASKLOregaddr = phba 8000 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + LPFC_UE_MASK_LO; phba 8001 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type0.UEMASKHIregaddr = phba 8002 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + LPFC_UE_MASK_HI; phba 8003 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.SLIINTFregaddr = phba 8004 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + LPFC_SLI_INTF; phba 8007 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type2.EQDregaddr = phba 8008 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + phba 8010 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type2.ERR1regaddr = phba 8011 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + phba 8013 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type2.ERR2regaddr = phba 8014 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + phba 8016 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type2.CTRLregaddr = phba 8017 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + phba 8019 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type2.STATUSregaddr = phba 8020 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + phba 8022 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.SLIINTFregaddr = phba 8023 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + LPFC_SLI_INTF; phba 8024 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.PSMPHRregaddr = phba 8025 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + phba 8027 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.RQDBregaddr = phba 8028 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + phba 8030 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.WQDBregaddr = phba 8031 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + phba 8033 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.CQDBregaddr = phba 8034 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + LPFC_EQCQ_DOORBELL; phba 8035 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.EQDBregaddr = phba->sli4_hba.CQDBregaddr; phba 8036 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.MQDBregaddr = phba 8037 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + LPFC_MQ_DOORBELL; phba 8038 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.BMBXregaddr = phba 8039 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + LPFC_BMBX; phba 8042 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type2.EQDregaddr = phba 8043 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + phba 8045 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type2.ERR1regaddr = phba 8046 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + phba 8048 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type2.ERR2regaddr = phba 8049 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + phba 8051 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type2.CTRLregaddr = phba 8052 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + phba 8054 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type2.STATUSregaddr = phba 8055 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + phba 8057 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.PSMPHRregaddr = phba 8058 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + phba 8060 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.BMBXregaddr = phba 8061 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p + LPFC_BMBX; phba 8065 drivers/scsi/lpfc/lpfc_init.c dev_printk(KERN_ERR, &phba->pcidev->dev, phba 8079 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_bar1_register_memmap(struct lpfc_hba *phba, uint32_t if_type) phba 8083 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.PSMPHRregaddr = phba 8084 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.ctrl_regs_memmap_p + phba 8086 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.ISRregaddr = phba->sli4_hba.ctrl_regs_memmap_p + phba 8088 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.IMRregaddr = phba->sli4_hba.ctrl_regs_memmap_p + phba 8090 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.ISCRregaddr = phba->sli4_hba.ctrl_regs_memmap_p + phba 8094 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.RQDBregaddr = phba->sli4_hba.drbl_regs_memmap_p + phba 8096 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.WQDBregaddr = phba->sli4_hba.drbl_regs_memmap_p + phba 8098 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.CQDBregaddr = phba->sli4_hba.drbl_regs_memmap_p + phba 8100 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.EQDBregaddr = phba->sli4_hba.drbl_regs_memmap_p + phba 8102 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.MQDBregaddr = phba->sli4_hba.drbl_regs_memmap_p + phba 8108 drivers/scsi/lpfc/lpfc_init.c dev_err(&phba->pcidev->dev, phba 8126 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_bar2_register_memmap(struct lpfc_hba *phba, uint32_t vf) phba 8131 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.RQDBregaddr = (phba->sli4_hba.drbl_regs_memmap_p + phba 8134 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.WQDBregaddr = (phba->sli4_hba.drbl_regs_memmap_p + phba 8137 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.CQDBregaddr = (phba->sli4_hba.drbl_regs_memmap_p + phba 8140 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.EQDBregaddr = phba->sli4_hba.CQDBregaddr; phba 8141 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.MQDBregaddr = (phba->sli4_hba.drbl_regs_memmap_p + phba 8143 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.BMBXregaddr = (phba->sli4_hba.drbl_regs_memmap_p + phba 8164 drivers/scsi/lpfc/lpfc_init.c lpfc_create_bootstrap_mbox(struct lpfc_hba *phba) phba 8181 drivers/scsi/lpfc/lpfc_init.c dmabuf->virt = dma_alloc_coherent(&phba->pcidev->dev, bmbx_size, phba 8195 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.bmbx.dmabuf = dmabuf; phba 8196 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.bmbx.bmbx_size = bmbx_size; phba 8198 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.bmbx.avirt = PTR_ALIGN(dmabuf->virt, phba 8200 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.bmbx.aphys = ALIGN(dmabuf->phys, phba 8211 drivers/scsi/lpfc/lpfc_init.c dma_address = &phba->sli4_hba.bmbx.dma_address; phba 8212 drivers/scsi/lpfc/lpfc_init.c phys_addr = (uint64_t)phba->sli4_hba.bmbx.aphys; phba 8217 drivers/scsi/lpfc/lpfc_init.c pa_addr = (uint32_t) ((phba->sli4_hba.bmbx.aphys >> 4) & 0x3fffffff); phba 8235 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_bootstrap_mbox(struct lpfc_hba *phba) phba 8237 drivers/scsi/lpfc/lpfc_init.c dma_free_coherent(&phba->pcidev->dev, phba 8238 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.bmbx.bmbx_size, phba 8239 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.bmbx.dmabuf->virt, phba 8240 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.bmbx.dmabuf->phys); phba 8242 drivers/scsi/lpfc/lpfc_init.c kfree(phba->sli4_hba.bmbx.dmabuf); phba 8243 drivers/scsi/lpfc/lpfc_init.c memset(&phba->sli4_hba.bmbx, 0, sizeof(struct lpfc_bmbx)); phba 8261 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_read_config(struct lpfc_hba *phba) phba 8274 drivers/scsi/lpfc/lpfc_init.c pmb = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 8276 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 8282 drivers/scsi/lpfc/lpfc_init.c lpfc_read_config(phba, pmb); phba 8284 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_POLL); phba 8286 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 8295 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.lnk_info.lnk_dv = LPFC_LNK_DAT_VAL; phba 8296 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.lnk_info.lnk_tp = phba 8298 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.lnk_info.lnk_no = phba 8300 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 8302 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.lnk_info.lnk_tp, phba 8303 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.lnk_info.lnk_no); phba 8305 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 8309 drivers/scsi/lpfc/lpfc_init.c phba->bbcredit_support = 1; phba 8310 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.bbscn_params.word0 = rd_config->word8; phba 8313 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_trunk = phba 8315 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.extents_in_use = phba 8317 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_xri = phba 8321 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_xri > 512) phba 8322 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_xri = 512; phba 8323 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.xri_base = phba 8325 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_vpi = phba 8328 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.max_cfg_param.max_vpi > LPFC_MAX_VPORTS) phba 8329 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_vpi = LPFC_MAX_VPORTS; phba 8330 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.vpi_base = phba 8332 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_rpi = phba 8334 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.rpi_base = phba 8336 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_vfi = phba 8338 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.vfi_base = phba 8340 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_fcfi = phba 8342 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_eq = phba 8344 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_rq = phba 8346 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_wq = phba 8348 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_cq = phba 8350 drivers/scsi/lpfc/lpfc_init.c phba->lmt = bf_get(lpfc_mbx_rd_conf_lmt, rd_config); phba 8351 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.next_xri = phba->sli4_hba.max_cfg_param.xri_base; phba 8352 drivers/scsi/lpfc/lpfc_init.c phba->vpi_base = phba->sli4_hba.max_cfg_param.vpi_base; phba 8353 drivers/scsi/lpfc/lpfc_init.c phba->vfi_base = phba->sli4_hba.max_cfg_param.vfi_base; phba 8354 drivers/scsi/lpfc/lpfc_init.c phba->max_vpi = (phba->sli4_hba.max_cfg_param.max_vpi > 0) ? phba 8355 drivers/scsi/lpfc/lpfc_init.c (phba->sli4_hba.max_cfg_param.max_vpi - 1) : 0; phba 8356 drivers/scsi/lpfc/lpfc_init.c phba->max_vports = phba->max_vpi; phba 8357 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 8364 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.extents_in_use, phba 8365 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.xri_base, phba 8366 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_xri, phba 8367 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.vpi_base, phba 8368 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_vpi, phba 8369 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.vfi_base, phba 8370 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_vfi, phba 8371 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.rpi_base, phba 8372 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_rpi, phba 8373 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_fcfi, phba 8374 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_eq, phba 8375 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_cq, phba 8376 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_wq, phba 8377 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_rq); phba 8383 drivers/scsi/lpfc/lpfc_init.c qmin = phba->sli4_hba.max_cfg_param.max_wq; phba 8384 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.max_cfg_param.max_cq < qmin) phba 8385 drivers/scsi/lpfc/lpfc_init.c qmin = phba->sli4_hba.max_cfg_param.max_cq; phba 8386 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.max_cfg_param.max_eq < qmin) phba 8387 drivers/scsi/lpfc/lpfc_init.c qmin = phba->sli4_hba.max_cfg_param.max_eq; phba 8397 drivers/scsi/lpfc/lpfc_init.c if ((phba->cfg_irq_chann > qmin) || phba 8398 drivers/scsi/lpfc/lpfc_init.c (phba->cfg_hdw_queue > qmin)) { phba 8399 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 8403 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_wq, phba 8404 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_cq, phba 8405 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.max_cfg_param.max_eq, phba 8406 drivers/scsi/lpfc/lpfc_init.c qmin, phba->cfg_irq_chann, phba 8407 drivers/scsi/lpfc/lpfc_init.c phba->cfg_hdw_queue); phba 8409 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_irq_chann > qmin) phba 8410 drivers/scsi/lpfc/lpfc_init.c phba->cfg_irq_chann = qmin; phba 8411 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_hdw_queue > qmin) phba 8412 drivers/scsi/lpfc/lpfc_init.c phba->cfg_hdw_queue = qmin; phba 8420 drivers/scsi/lpfc/lpfc_init.c if_type = bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf); phba 8425 drivers/scsi/lpfc/lpfc_init.c phba->hba_flag |= HBA_FORCED_LINK_SPEED; phba 8429 drivers/scsi/lpfc/lpfc_init.c phba->cfg_link_speed = phba 8433 drivers/scsi/lpfc/lpfc_init.c phba->cfg_link_speed = phba 8437 drivers/scsi/lpfc/lpfc_init.c phba->cfg_link_speed = phba 8441 drivers/scsi/lpfc/lpfc_init.c phba->cfg_link_speed = phba 8445 drivers/scsi/lpfc/lpfc_init.c phba->cfg_link_speed = phba 8449 drivers/scsi/lpfc/lpfc_init.c phba->cfg_link_speed = phba 8453 drivers/scsi/lpfc/lpfc_init.c phba->cfg_link_speed = phba 8457 drivers/scsi/lpfc/lpfc_init.c phba->cfg_link_speed = phba 8461 drivers/scsi/lpfc/lpfc_init.c phba->cfg_link_speed = phba 8465 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 8469 drivers/scsi/lpfc/lpfc_init.c phba->cfg_link_speed = phba 8476 drivers/scsi/lpfc/lpfc_init.c length = phba->sli4_hba.max_cfg_param.max_xri - phba 8477 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_get_els_iocb_cnt(phba); phba 8478 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_hba_queue_depth > length) { phba 8479 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 8481 drivers/scsi/lpfc/lpfc_init.c phba->cfg_hba_queue_depth, length); phba 8482 drivers/scsi/lpfc/lpfc_init.c phba->cfg_hba_queue_depth = length; phba 8485 drivers/scsi/lpfc/lpfc_init.c if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) < phba 8492 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_config(phba, pmb, LPFC_MBOX_SUBSYSTEM_COMMON, phba 8496 drivers/scsi/lpfc/lpfc_init.c rc2 = lpfc_sli_issue_mbox(phba, pmb, MBX_POLL); phba 8502 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 8525 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.iov.pf_number = phba 8527 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.iov.vf_number = phba 8534 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 8536 drivers/scsi/lpfc/lpfc_init.c "vf_number:%d\n", phba->sli4_hba.iov.pf_number, phba 8537 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.iov.vf_number); phba 8539 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 8545 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 8563 drivers/scsi/lpfc/lpfc_init.c lpfc_setup_endian_order(struct lpfc_hba *phba) phba 8570 drivers/scsi/lpfc/lpfc_init.c if_type = bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf); phba 8573 drivers/scsi/lpfc/lpfc_init.c mboxq = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, phba 8576 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8589 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 8591 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8597 drivers/scsi/lpfc/lpfc_init.c mempool_free(mboxq, phba->mbox_mem_pool); phba 8622 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_queue_verify(struct lpfc_hba *phba) phba 8629 drivers/scsi/lpfc/lpfc_init.c if (phba->nvmet_support) { phba 8630 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_irq_chann < phba->cfg_nvmet_mrq) phba 8631 drivers/scsi/lpfc/lpfc_init.c phba->cfg_nvmet_mrq = phba->cfg_irq_chann; phba 8632 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_nvmet_mrq > LPFC_NVMET_MRQ_MAX) phba 8633 drivers/scsi/lpfc/lpfc_init.c phba->cfg_nvmet_mrq = LPFC_NVMET_MRQ_MAX; phba 8636 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8638 drivers/scsi/lpfc/lpfc_init.c phba->cfg_hdw_queue, phba->cfg_irq_chann, phba 8639 drivers/scsi/lpfc/lpfc_init.c phba->cfg_nvmet_mrq); phba 8642 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.eq_esize = LPFC_EQE_SIZE_4B; phba 8643 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.eq_ecount = LPFC_EQE_DEF_COUNT; phba 8646 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_esize = LPFC_CQE_SIZE; phba 8647 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_ecount = LPFC_CQE_DEF_COUNT; phba 8652 drivers/scsi/lpfc/lpfc_init.c lpfc_alloc_io_wq_cq(struct lpfc_hba *phba, int idx) phba 8658 drivers/scsi/lpfc/lpfc_init.c cpu = lpfc_find_cpu_handle(phba, idx, LPFC_FIND_BY_HDWQ); phba 8660 drivers/scsi/lpfc/lpfc_init.c if (phba->enab_exp_wqcq_pages) phba 8662 drivers/scsi/lpfc/lpfc_init.c qdesc = lpfc_sli4_queue_alloc(phba, LPFC_EXPANDED_PAGE_SIZE, phba 8663 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_esize, phba 8667 drivers/scsi/lpfc/lpfc_init.c qdesc = lpfc_sli4_queue_alloc(phba, LPFC_DEFAULT_PAGE_SIZE, phba 8668 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_esize, phba 8669 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_ecount, cpu); phba 8671 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8678 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.hdwq[idx].io_cq = qdesc; phba 8681 drivers/scsi/lpfc/lpfc_init.c if (phba->enab_exp_wqcq_pages) { phba 8683 drivers/scsi/lpfc/lpfc_init.c wqesize = (phba->fcp_embed_io) ? phba 8684 drivers/scsi/lpfc/lpfc_init.c LPFC_WQE128_SIZE : phba->sli4_hba.wq_esize; phba 8685 drivers/scsi/lpfc/lpfc_init.c qdesc = lpfc_sli4_queue_alloc(phba, LPFC_EXPANDED_PAGE_SIZE, phba 8689 drivers/scsi/lpfc/lpfc_init.c qdesc = lpfc_sli4_queue_alloc(phba, LPFC_DEFAULT_PAGE_SIZE, phba 8690 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.wq_esize, phba 8691 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.wq_ecount, cpu); phba 8694 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8701 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.hdwq[idx].io_wq = qdesc; phba 8702 drivers/scsi/lpfc/lpfc_init.c list_add_tail(&qdesc->wq_list, &phba->sli4_hba.lpfc_wq_list); phba 8721 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_queue_create(struct lpfc_hba *phba) phba 8734 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.mq_esize = LPFC_MQE_SIZE; phba 8735 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.mq_ecount = LPFC_MQE_DEF_COUNT; phba 8736 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.wq_esize = LPFC_WQE_SIZE; phba 8737 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.wq_ecount = LPFC_WQE_DEF_COUNT; phba 8738 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.rq_esize = LPFC_RQE_SIZE; phba 8739 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.rq_ecount = LPFC_RQE_DEF_COUNT; phba 8740 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.eq_esize = LPFC_EQE_SIZE_4B; phba 8741 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.eq_ecount = LPFC_EQE_DEF_COUNT; phba 8742 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_esize = LPFC_CQE_SIZE; phba 8743 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_ecount = LPFC_CQE_DEF_COUNT; phba 8745 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.hdwq) { phba 8746 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.hdwq = kcalloc( phba 8747 drivers/scsi/lpfc/lpfc_init.c phba->cfg_hdw_queue, sizeof(struct lpfc_sli4_hdw_queue), phba 8749 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.hdwq) { phba 8750 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8756 drivers/scsi/lpfc/lpfc_init.c for (idx = 0; idx < phba->cfg_hdw_queue; idx++) { phba 8757 drivers/scsi/lpfc/lpfc_init.c qp = &phba->sli4_hba.hdwq[idx]; phba 8775 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) { phba 8776 drivers/scsi/lpfc/lpfc_init.c if (phba->nvmet_support) { phba 8777 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_cqset = kcalloc( phba 8778 drivers/scsi/lpfc/lpfc_init.c phba->cfg_nvmet_mrq, phba 8781 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.nvmet_cqset) { phba 8782 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8787 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_mrq_hdr = kcalloc( phba 8788 drivers/scsi/lpfc/lpfc_init.c phba->cfg_nvmet_mrq, phba 8791 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.nvmet_mrq_hdr) { phba 8792 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8797 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_mrq_data = kcalloc( phba 8798 drivers/scsi/lpfc/lpfc_init.c phba->cfg_nvmet_mrq, phba 8801 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.nvmet_mrq_data) { phba 8802 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8810 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.lpfc_wq_list); phba 8818 drivers/scsi/lpfc/lpfc_init.c cpup = &phba->sli4_hba.cpu_map[cpu]; phba 8823 drivers/scsi/lpfc/lpfc_init.c qp = &phba->sli4_hba.hdwq[cpup->hdwq]; phba 8826 drivers/scsi/lpfc/lpfc_init.c qdesc = lpfc_sli4_queue_alloc(phba, LPFC_DEFAULT_PAGE_SIZE, phba 8827 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.eq_esize, phba 8828 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.eq_ecount, cpu); phba 8830 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8843 drivers/scsi/lpfc/lpfc_init.c eqi = per_cpu_ptr(phba->sli4_hba.eq_info, qdesc->last_cpu); phba 8851 drivers/scsi/lpfc/lpfc_init.c cpup = &phba->sli4_hba.cpu_map[cpu]; phba 8858 drivers/scsi/lpfc/lpfc_init.c qp = &phba->sli4_hba.hdwq[cpup->hdwq]; phba 8863 drivers/scsi/lpfc/lpfc_init.c eqcpu = lpfc_find_cpu_handle(phba, cpup->eq, LPFC_FIND_BY_EQ); phba 8864 drivers/scsi/lpfc/lpfc_init.c eqcpup = &phba->sli4_hba.cpu_map[eqcpu]; phba 8865 drivers/scsi/lpfc/lpfc_init.c qp->hba_eq = phba->sli4_hba.hdwq[eqcpup->hdwq].hba_eq; phba 8869 drivers/scsi/lpfc/lpfc_init.c for (idx = 0; idx < phba->cfg_hdw_queue; idx++) { phba 8870 drivers/scsi/lpfc/lpfc_init.c if (lpfc_alloc_io_wq_cq(phba, idx)) phba 8874 drivers/scsi/lpfc/lpfc_init.c if (phba->nvmet_support) { phba 8875 drivers/scsi/lpfc/lpfc_init.c for (idx = 0; idx < phba->cfg_nvmet_mrq; idx++) { phba 8876 drivers/scsi/lpfc/lpfc_init.c cpu = lpfc_find_cpu_handle(phba, idx, phba 8878 drivers/scsi/lpfc/lpfc_init.c qdesc = lpfc_sli4_queue_alloc(phba, phba 8880 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_esize, phba 8881 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_ecount, phba 8884 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8892 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_cqset[idx] = qdesc; phba 8900 drivers/scsi/lpfc/lpfc_init.c cpu = lpfc_find_cpu_handle(phba, 0, LPFC_FIND_BY_EQ); phba 8902 drivers/scsi/lpfc/lpfc_init.c qdesc = lpfc_sli4_queue_alloc(phba, LPFC_DEFAULT_PAGE_SIZE, phba 8903 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_esize, phba 8904 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_ecount, cpu); phba 8906 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8911 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.mbx_cq = qdesc; phba 8914 drivers/scsi/lpfc/lpfc_init.c qdesc = lpfc_sli4_queue_alloc(phba, LPFC_DEFAULT_PAGE_SIZE, phba 8915 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_esize, phba 8916 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_ecount, cpu); phba 8918 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8924 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.els_cq = qdesc; phba 8933 drivers/scsi/lpfc/lpfc_init.c qdesc = lpfc_sli4_queue_alloc(phba, LPFC_DEFAULT_PAGE_SIZE, phba 8934 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.mq_esize, phba 8935 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.mq_ecount, cpu); phba 8937 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8942 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.mbx_wq = qdesc; phba 8949 drivers/scsi/lpfc/lpfc_init.c qdesc = lpfc_sli4_queue_alloc(phba, LPFC_DEFAULT_PAGE_SIZE, phba 8950 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.wq_esize, phba 8951 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.wq_ecount, cpu); phba 8953 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8958 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.els_wq = qdesc; phba 8959 drivers/scsi/lpfc/lpfc_init.c list_add_tail(&qdesc->wq_list, &phba->sli4_hba.lpfc_wq_list); phba 8961 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) { phba 8963 drivers/scsi/lpfc/lpfc_init.c qdesc = lpfc_sli4_queue_alloc(phba, LPFC_DEFAULT_PAGE_SIZE, phba 8964 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_esize, phba 8965 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_ecount, cpu); phba 8967 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8973 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmels_cq = qdesc; phba 8976 drivers/scsi/lpfc/lpfc_init.c qdesc = lpfc_sli4_queue_alloc(phba, LPFC_DEFAULT_PAGE_SIZE, phba 8977 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.wq_esize, phba 8978 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.wq_ecount, cpu); phba 8980 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8985 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmels_wq = qdesc; phba 8986 drivers/scsi/lpfc/lpfc_init.c list_add_tail(&qdesc->wq_list, &phba->sli4_hba.lpfc_wq_list); phba 8994 drivers/scsi/lpfc/lpfc_init.c qdesc = lpfc_sli4_queue_alloc(phba, LPFC_DEFAULT_PAGE_SIZE, phba 8995 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.rq_esize, phba 8996 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.rq_ecount, cpu); phba 8998 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9002 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.hdr_rq = qdesc; phba 9005 drivers/scsi/lpfc/lpfc_init.c qdesc = lpfc_sli4_queue_alloc(phba, LPFC_DEFAULT_PAGE_SIZE, phba 9006 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.rq_esize, phba 9007 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.rq_ecount, cpu); phba 9009 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9013 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.dat_rq = qdesc; phba 9015 drivers/scsi/lpfc/lpfc_init.c if ((phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) && phba 9016 drivers/scsi/lpfc/lpfc_init.c phba->nvmet_support) { phba 9017 drivers/scsi/lpfc/lpfc_init.c for (idx = 0; idx < phba->cfg_nvmet_mrq; idx++) { phba 9018 drivers/scsi/lpfc/lpfc_init.c cpu = lpfc_find_cpu_handle(phba, idx, phba 9021 drivers/scsi/lpfc/lpfc_init.c qdesc = lpfc_sli4_queue_alloc(phba, phba 9023 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.rq_esize, phba 9027 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9033 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_mrq_hdr[idx] = qdesc; phba 9040 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9050 drivers/scsi/lpfc/lpfc_init.c qdesc = lpfc_sli4_queue_alloc(phba, phba 9052 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.rq_esize, phba 9056 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9062 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_mrq_data[idx] = qdesc; phba 9067 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) { phba 9068 drivers/scsi/lpfc/lpfc_init.c for (idx = 0; idx < phba->cfg_hdw_queue; idx++) { phba 9069 drivers/scsi/lpfc/lpfc_init.c memset(&phba->sli4_hba.hdwq[idx].nvme_cstat, 0, phba 9070 drivers/scsi/lpfc/lpfc_init.c sizeof(phba->sli4_hba.hdwq[idx].nvme_cstat)); phba 9075 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_FCP) { phba 9076 drivers/scsi/lpfc/lpfc_init.c for (idx = 0; idx < phba->cfg_hdw_queue; idx++) { phba 9077 drivers/scsi/lpfc/lpfc_init.c memset(&phba->sli4_hba.hdwq[idx].scsi_cstat, 0, phba 9078 drivers/scsi/lpfc/lpfc_init.c sizeof(phba->sli4_hba.hdwq[idx].scsi_cstat)); phba 9085 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_queue_destroy(phba); phba 9114 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_release_hdwq(struct lpfc_hba *phba) phba 9120 drivers/scsi/lpfc/lpfc_init.c hdwq = phba->sli4_hba.hdwq; phba 9123 drivers/scsi/lpfc/lpfc_init.c for (idx = 0; idx < phba->cfg_hdw_queue; idx++) { phba 9129 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_xpsgl && !phba->nvmet_support) phba 9130 drivers/scsi/lpfc/lpfc_init.c lpfc_free_sgl_per_hdwq(phba, &hdwq[idx]); phba 9131 drivers/scsi/lpfc/lpfc_init.c lpfc_free_cmd_rsp_buf_per_hdwq(phba, &hdwq[idx]); phba 9134 drivers/scsi/lpfc/lpfc_init.c for (idx = 0; idx < phba->cfg_irq_chann; idx++) { phba 9136 drivers/scsi/lpfc/lpfc_init.c eq = phba->sli4_hba.hba_eq_hdl[idx].eq; phba 9138 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.hba_eq_hdl[idx].eq = NULL; phba 9155 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_queue_destroy(struct lpfc_hba *phba) phba 9162 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 9163 drivers/scsi/lpfc/lpfc_init.c phba->sli.sli_flag |= LPFC_QUEUE_FREE_INIT; phba 9164 drivers/scsi/lpfc/lpfc_init.c while (phba->sli.sli_flag & LPFC_QUEUE_FREE_WAIT) { phba 9165 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 9167 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 9169 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 9171 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_cleanup_poll_list(phba); phba 9174 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.hdwq) phba 9175 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_release_hdwq(phba); phba 9177 drivers/scsi/lpfc/lpfc_init.c if (phba->nvmet_support) { phba 9178 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_release_queues(&phba->sli4_hba.nvmet_cqset, phba 9179 drivers/scsi/lpfc/lpfc_init.c phba->cfg_nvmet_mrq); phba 9181 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_release_queues(&phba->sli4_hba.nvmet_mrq_hdr, phba 9182 drivers/scsi/lpfc/lpfc_init.c phba->cfg_nvmet_mrq); phba 9183 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_release_queues(&phba->sli4_hba.nvmet_mrq_data, phba 9184 drivers/scsi/lpfc/lpfc_init.c phba->cfg_nvmet_mrq); phba 9188 drivers/scsi/lpfc/lpfc_init.c __lpfc_sli4_release_queue(&phba->sli4_hba.mbx_wq); phba 9191 drivers/scsi/lpfc/lpfc_init.c __lpfc_sli4_release_queue(&phba->sli4_hba.els_wq); phba 9194 drivers/scsi/lpfc/lpfc_init.c __lpfc_sli4_release_queue(&phba->sli4_hba.nvmels_wq); phba 9197 drivers/scsi/lpfc/lpfc_init.c __lpfc_sli4_release_queue(&phba->sli4_hba.hdr_rq); phba 9198 drivers/scsi/lpfc/lpfc_init.c __lpfc_sli4_release_queue(&phba->sli4_hba.dat_rq); phba 9201 drivers/scsi/lpfc/lpfc_init.c __lpfc_sli4_release_queue(&phba->sli4_hba.els_cq); phba 9204 drivers/scsi/lpfc/lpfc_init.c __lpfc_sli4_release_queue(&phba->sli4_hba.nvmels_cq); phba 9207 drivers/scsi/lpfc/lpfc_init.c __lpfc_sli4_release_queue(&phba->sli4_hba.mbx_cq); phba 9210 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->sli4_hba.lpfc_wq_list); phba 9213 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 9214 drivers/scsi/lpfc/lpfc_init.c phba->sli.sli_flag &= ~LPFC_QUEUE_FREE_INIT; phba 9215 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 9219 drivers/scsi/lpfc/lpfc_init.c lpfc_free_rq_buffer(struct lpfc_hba *phba, struct lpfc_queue *rq) phba 9231 drivers/scsi/lpfc/lpfc_init.c (rqbp->rqb_free_buffer)(phba, rqb_buffer); phba 9238 drivers/scsi/lpfc/lpfc_init.c lpfc_create_wq_cq(struct lpfc_hba *phba, struct lpfc_queue *eq, phba 9246 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9253 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_cq_create(phba, cq, eq, phba 9256 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9267 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 9272 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_wq_create(phba, wq, cq, qtype); phba 9274 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9286 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 9290 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_mq_create(phba, wq, cq, LPFC_MBOX); phba 9292 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9299 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 9301 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.mbx_wq->queue_id, phba 9302 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.mbx_cq->queue_id); phba 9316 drivers/scsi/lpfc/lpfc_init.c lpfc_setup_cq_lookup(struct lpfc_hba *phba) phba 9321 drivers/scsi/lpfc/lpfc_init.c memset(phba->sli4_hba.cq_lookup, 0, phba 9322 drivers/scsi/lpfc/lpfc_init.c (sizeof(struct lpfc_queue *) * (phba->sli4_hba.cq_max + 1))); phba 9324 drivers/scsi/lpfc/lpfc_init.c for (qidx = 0; qidx < phba->cfg_irq_chann; qidx++) { phba 9326 drivers/scsi/lpfc/lpfc_init.c eq = phba->sli4_hba.hba_eq_hdl[qidx].eq; phba 9331 drivers/scsi/lpfc/lpfc_init.c if (childq->queue_id > phba->sli4_hba.cq_max) phba 9334 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_lookup[childq->queue_id] = phba 9353 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_queue_setup(struct lpfc_hba *phba) phba 9365 drivers/scsi/lpfc/lpfc_init.c mboxq = (LPFC_MBOXQ_t *)mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 9367 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9374 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_config(phba, mboxq, LPFC_MBOX_SUBSYSTEM_COMMON, phba 9378 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 9385 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9390 drivers/scsi/lpfc/lpfc_init.c mempool_free(mboxq, phba->mbox_mem_pool); phba 9395 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.fw_func_mode = phba 9397 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.ulp0_mode = mboxq->u.mqe.un.query_fw_cfg.rsp.ulp0_mode; phba 9398 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.ulp1_mode = mboxq->u.mqe.un.query_fw_cfg.rsp.ulp1_mode; phba 9399 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.physical_port = phba 9401 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 9403 drivers/scsi/lpfc/lpfc_init.c "ulp1_mode:x%x\n", phba->sli4_hba.fw_func_mode, phba 9404 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.ulp0_mode, phba->sli4_hba.ulp1_mode); phba 9407 drivers/scsi/lpfc/lpfc_init.c mempool_free(mboxq, phba->mbox_mem_pool); phba 9412 drivers/scsi/lpfc/lpfc_init.c qp = phba->sli4_hba.hdwq; phba 9416 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9423 drivers/scsi/lpfc/lpfc_init.c for (qidx = 0; qidx < phba->cfg_irq_chann; qidx++) { phba 9426 drivers/scsi/lpfc/lpfc_init.c cpup = &phba->sli4_hba.cpu_map[cpu]; phba 9437 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_eq_create(phba, qp[cpup->hdwq].hba_eq, phba 9438 drivers/scsi/lpfc/lpfc_init.c phba->cfg_fcp_imax); phba 9440 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9448 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.hba_eq_hdl[cpup->eq].eq = phba 9451 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 9459 drivers/scsi/lpfc/lpfc_init.c for (qidx = 0; qidx < phba->cfg_hdw_queue; qidx++) { phba 9460 drivers/scsi/lpfc/lpfc_init.c cpu = lpfc_find_cpu_handle(phba, qidx, LPFC_FIND_BY_HDWQ); phba 9461 drivers/scsi/lpfc/lpfc_init.c cpup = &phba->sli4_hba.cpu_map[cpu]; phba 9464 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_create_wq_cq(phba, phba 9465 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.hdwq[cpup->hdwq].hba_eq, phba 9468 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.hdwq[qidx].io_cq_map, phba 9472 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9486 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.mbx_cq || !phba->sli4_hba.mbx_wq) { phba 9487 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9489 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.mbx_cq ? phba 9495 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_create_wq_cq(phba, qp[0].hba_eq, phba 9496 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.mbx_cq, phba 9497 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.mbx_wq, phba 9500 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9505 drivers/scsi/lpfc/lpfc_init.c if (phba->nvmet_support) { phba 9506 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.nvmet_cqset) { phba 9507 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9513 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_nvmet_mrq > 1) { phba 9514 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_cq_create_set(phba, phba 9515 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_cqset, phba 9519 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9527 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_cq_create(phba, phba->sli4_hba.nvmet_cqset[0], phba 9531 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9536 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_cqset[0]->chann = 0; phba 9538 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 9541 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_cqset[0]->queue_id, phba 9547 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.els_cq || !phba->sli4_hba.els_wq) { phba 9548 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9550 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.els_cq ? "WQ" : "CQ"); phba 9554 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_create_wq_cq(phba, qp[0].hba_eq, phba 9555 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.els_cq, phba 9556 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.els_wq, phba 9559 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9564 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 9566 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.els_wq->queue_id, phba 9567 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.els_cq->queue_id); phba 9569 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) { phba 9571 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.nvmels_cq || !phba->sli4_hba.nvmels_wq) { phba 9572 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9574 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmels_cq ? "WQ" : "CQ"); phba 9578 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_create_wq_cq(phba, qp[0].hba_eq, phba 9579 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmels_cq, phba 9580 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmels_wq, phba 9583 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9589 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 9592 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmels_wq->queue_id, phba 9593 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmels_cq->queue_id); phba 9599 drivers/scsi/lpfc/lpfc_init.c if (phba->nvmet_support) { phba 9600 drivers/scsi/lpfc/lpfc_init.c if ((!phba->sli4_hba.nvmet_cqset) || phba 9601 drivers/scsi/lpfc/lpfc_init.c (!phba->sli4_hba.nvmet_mrq_hdr) || phba 9602 drivers/scsi/lpfc/lpfc_init.c (!phba->sli4_hba.nvmet_mrq_data)) { phba 9603 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9609 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_nvmet_mrq > 1) { phba 9610 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_mrq_create(phba, phba 9611 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_mrq_hdr, phba 9612 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_mrq_data, phba 9613 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_cqset, phba 9616 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9624 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_rq_create(phba, phba 9625 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_mrq_hdr[0], phba 9626 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_mrq_data[0], phba 9627 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_cqset[0], phba 9630 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9638 drivers/scsi/lpfc/lpfc_init.c phba, KERN_INFO, LOG_INIT, phba 9641 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_mrq_hdr[0]->queue_id, phba 9642 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_mrq_data[0]->queue_id, phba 9643 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_cqset[0]->queue_id); phba 9648 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.hdr_rq || !phba->sli4_hba.dat_rq) { phba 9649 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9655 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_rq_create(phba, phba->sli4_hba.hdr_rq, phba->sli4_hba.dat_rq, phba 9656 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.els_cq, LPFC_USOL); phba 9658 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9664 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 9667 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.hdr_rq->queue_id, phba 9668 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.dat_rq->queue_id, phba 9669 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.els_cq->queue_id); phba 9671 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_fcp_imax) phba 9672 drivers/scsi/lpfc/lpfc_init.c usdelay = LPFC_SEC_TO_USEC / phba->cfg_fcp_imax; phba 9676 drivers/scsi/lpfc/lpfc_init.c for (qidx = 0; qidx < phba->cfg_irq_chann; phba 9678 drivers/scsi/lpfc/lpfc_init.c lpfc_modify_hba_eq_delay(phba, qidx, LPFC_MAX_EQ_DELAY_EQID_CNT, phba 9681 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.cq_max) { phba 9682 drivers/scsi/lpfc/lpfc_init.c kfree(phba->sli4_hba.cq_lookup); phba 9683 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_lookup = kcalloc((phba->sli4_hba.cq_max + 1), phba 9685 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.cq_lookup) { phba 9686 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9688 drivers/scsi/lpfc/lpfc_init.c "size 0x%x\n", phba->sli4_hba.cq_max); phba 9692 drivers/scsi/lpfc/lpfc_init.c lpfc_setup_cq_lookup(phba); phba 9697 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_queue_unset(phba); phba 9715 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_queue_unset(struct lpfc_hba *phba) phba 9722 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.mbx_wq) phba 9723 drivers/scsi/lpfc/lpfc_init.c lpfc_mq_destroy(phba, phba->sli4_hba.mbx_wq); phba 9726 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.nvmels_wq) phba 9727 drivers/scsi/lpfc/lpfc_init.c lpfc_wq_destroy(phba, phba->sli4_hba.nvmels_wq); phba 9730 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.els_wq) phba 9731 drivers/scsi/lpfc/lpfc_init.c lpfc_wq_destroy(phba, phba->sli4_hba.els_wq); phba 9734 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.hdr_rq) phba 9735 drivers/scsi/lpfc/lpfc_init.c lpfc_rq_destroy(phba, phba->sli4_hba.hdr_rq, phba 9736 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.dat_rq); phba 9739 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.mbx_cq) phba 9740 drivers/scsi/lpfc/lpfc_init.c lpfc_cq_destroy(phba, phba->sli4_hba.mbx_cq); phba 9743 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.els_cq) phba 9744 drivers/scsi/lpfc/lpfc_init.c lpfc_cq_destroy(phba, phba->sli4_hba.els_cq); phba 9747 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.nvmels_cq) phba 9748 drivers/scsi/lpfc/lpfc_init.c lpfc_cq_destroy(phba, phba->sli4_hba.nvmels_cq); phba 9750 drivers/scsi/lpfc/lpfc_init.c if (phba->nvmet_support) { phba 9752 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.nvmet_mrq_hdr) { phba 9753 drivers/scsi/lpfc/lpfc_init.c for (qidx = 0; qidx < phba->cfg_nvmet_mrq; qidx++) phba 9755 drivers/scsi/lpfc/lpfc_init.c phba, phba 9756 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_mrq_hdr[qidx], phba 9757 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.nvmet_mrq_data[qidx]); phba 9761 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.nvmet_cqset) { phba 9762 drivers/scsi/lpfc/lpfc_init.c for (qidx = 0; qidx < phba->cfg_nvmet_mrq; qidx++) phba 9764 drivers/scsi/lpfc/lpfc_init.c phba, phba->sli4_hba.nvmet_cqset[qidx]); phba 9769 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.hdwq) { phba 9771 drivers/scsi/lpfc/lpfc_init.c for (qidx = 0; qidx < phba->cfg_hdw_queue; qidx++) { phba 9773 drivers/scsi/lpfc/lpfc_init.c qp = &phba->sli4_hba.hdwq[qidx]; phba 9774 drivers/scsi/lpfc/lpfc_init.c lpfc_wq_destroy(phba, qp->io_wq); phba 9775 drivers/scsi/lpfc/lpfc_init.c lpfc_cq_destroy(phba, qp->io_cq); phba 9778 drivers/scsi/lpfc/lpfc_init.c for (qidx = 0; qidx < phba->cfg_irq_chann; qidx++) { phba 9780 drivers/scsi/lpfc/lpfc_init.c eq = phba->sli4_hba.hba_eq_hdl[qidx].eq; phba 9781 drivers/scsi/lpfc/lpfc_init.c lpfc_eq_destroy(phba, eq); phba 9785 drivers/scsi/lpfc/lpfc_init.c kfree(phba->sli4_hba.cq_lookup); phba 9786 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_lookup = NULL; phba 9787 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.cq_max = 0; phba 9807 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_cq_event_pool_create(struct lpfc_hba *phba) phba 9812 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i < (4 * phba->sli4_hba.cq_ecount); i++) { phba 9817 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.sp_cqe_event_pool); phba 9822 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_cq_event_pool_destroy(phba); phba 9837 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_cq_event_pool_destroy(struct lpfc_hba *phba) phba 9842 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.sp_cqe_event_pool, list) { phba 9859 drivers/scsi/lpfc/lpfc_init.c __lpfc_sli4_cq_event_alloc(struct lpfc_hba *phba) phba 9863 drivers/scsi/lpfc/lpfc_init.c list_remove_head(&phba->sli4_hba.sp_cqe_event_pool, cq_event, phba 9879 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_cq_event_alloc(struct lpfc_hba *phba) phba 9884 drivers/scsi/lpfc/lpfc_init.c spin_lock_irqsave(&phba->hbalock, iflags); phba 9885 drivers/scsi/lpfc/lpfc_init.c cq_event = __lpfc_sli4_cq_event_alloc(phba); phba 9886 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 9899 drivers/scsi/lpfc/lpfc_init.c __lpfc_sli4_cq_event_release(struct lpfc_hba *phba, phba 9902 drivers/scsi/lpfc/lpfc_init.c list_add_tail(&cq_event->list, &phba->sli4_hba.sp_cqe_event_pool); phba 9914 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_cq_event_release(struct lpfc_hba *phba, phba 9918 drivers/scsi/lpfc/lpfc_init.c spin_lock_irqsave(&phba->hbalock, iflags); phba 9919 drivers/scsi/lpfc/lpfc_init.c __lpfc_sli4_cq_event_release(phba, cq_event); phba 9920 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 9931 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_cq_event_release_all(struct lpfc_hba *phba) phba 9938 drivers/scsi/lpfc/lpfc_init.c spin_lock_irqsave(&phba->hbalock, iflags); phba 9940 drivers/scsi/lpfc/lpfc_init.c list_splice_init(&phba->sli4_hba.sp_fcp_xri_aborted_work_queue, phba 9943 drivers/scsi/lpfc/lpfc_init.c list_splice_init(&phba->sli4_hba.sp_els_xri_aborted_work_queue, phba 9946 drivers/scsi/lpfc/lpfc_init.c list_splice_init(&phba->sli4_hba.sp_asynce_work_queue, phba 9948 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 9952 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_cq_event_release(phba, cqe); phba 9969 drivers/scsi/lpfc/lpfc_init.c lpfc_pci_function_reset(struct lpfc_hba *phba) phba 9980 drivers/scsi/lpfc/lpfc_init.c if_type = bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf); phba 9983 drivers/scsi/lpfc/lpfc_init.c mboxq = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, phba 9986 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 9994 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_config(phba, mboxq, LPFC_MBOX_SUBSYSTEM_COMMON, phba 9997 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 10004 drivers/scsi/lpfc/lpfc_init.c mempool_free(mboxq, phba->mbox_mem_pool); phba 10006 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 10023 drivers/scsi/lpfc/lpfc_init.c if (lpfc_readl(phba->sli4_hba.u.if_type2. phba 10034 drivers/scsi/lpfc/lpfc_init.c phba->work_status[0] = readl( phba 10035 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type2.ERR1regaddr); phba 10036 drivers/scsi/lpfc/lpfc_init.c phba->work_status[1] = readl( phba 10037 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.u.if_type2.ERR2regaddr); phba 10038 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 10042 drivers/scsi/lpfc/lpfc_init.c phba->work_status[0], phba 10043 drivers/scsi/lpfc/lpfc_init.c phba->work_status[1]); phba 10057 drivers/scsi/lpfc/lpfc_init.c writel(reg_data.word0, phba->sli4_hba.u.if_type2. phba 10060 drivers/scsi/lpfc/lpfc_init.c pci_read_config_word(phba->pcidev, phba 10080 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 10101 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_pci_mem_setup(struct lpfc_hba *phba) phba 10103 drivers/scsi/lpfc/lpfc_init.c struct pci_dev *pdev = phba->pcidev; phba 10123 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.sli_intf.word0)) { phba 10128 drivers/scsi/lpfc/lpfc_init.c if (bf_get(lpfc_sli_intf_valid, &phba->sli4_hba.sli_intf) != phba 10130 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 10133 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.sli_intf.word0); phba 10137 drivers/scsi/lpfc/lpfc_init.c if_type = bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf); phba 10145 drivers/scsi/lpfc/lpfc_init.c phba->pci_bar0_map = pci_resource_start(pdev, PCI_64BIT_BAR0); phba 10152 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p = phba 10153 drivers/scsi/lpfc/lpfc_init.c ioremap(phba->pci_bar0_map, bar0map_len); phba 10154 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.conf_regs_memmap_p) { phba 10160 drivers/scsi/lpfc/lpfc_init.c phba->pci_bar0_memmap_p = phba->sli4_hba.conf_regs_memmap_p; phba 10162 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_bar0_register_memmap(phba, if_type); phba 10164 drivers/scsi/lpfc/lpfc_init.c phba->pci_bar0_map = pci_resource_start(pdev, 1); phba 10171 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.conf_regs_memmap_p = phba 10172 drivers/scsi/lpfc/lpfc_init.c ioremap(phba->pci_bar0_map, bar0map_len); phba 10173 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.conf_regs_memmap_p) { phba 10179 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_bar0_register_memmap(phba, if_type); phba 10188 drivers/scsi/lpfc/lpfc_init.c phba->pci_bar1_map = pci_resource_start(pdev, phba 10191 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.ctrl_regs_memmap_p = phba 10192 drivers/scsi/lpfc/lpfc_init.c ioremap(phba->pci_bar1_map, phba 10194 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.ctrl_regs_memmap_p) { phba 10201 drivers/scsi/lpfc/lpfc_init.c phba->pci_bar2_memmap_p = phba 10202 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.ctrl_regs_memmap_p; phba 10203 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_bar1_register_memmap(phba, if_type); phba 10216 drivers/scsi/lpfc/lpfc_init.c phba->pci_bar1_map = pci_resource_start(pdev, PCI_64BIT_BAR2); phba 10218 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.drbl_regs_memmap_p = phba 10219 drivers/scsi/lpfc/lpfc_init.c ioremap(phba->pci_bar1_map, bar1map_len); phba 10220 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.drbl_regs_memmap_p) { phba 10226 drivers/scsi/lpfc/lpfc_init.c phba->pci_bar2_memmap_p = phba->sli4_hba.drbl_regs_memmap_p; phba 10227 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_bar1_register_memmap(phba, if_type); phba 10236 drivers/scsi/lpfc/lpfc_init.c phba->pci_bar2_map = pci_resource_start(pdev, phba 10239 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.drbl_regs_memmap_p = phba 10240 drivers/scsi/lpfc/lpfc_init.c ioremap(phba->pci_bar2_map, phba 10242 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.drbl_regs_memmap_p) { phba 10249 drivers/scsi/lpfc/lpfc_init.c phba->pci_bar4_memmap_p = phba 10250 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.drbl_regs_memmap_p; phba 10251 drivers/scsi/lpfc/lpfc_init.c error = lpfc_sli4_bar2_register_memmap(phba, LPFC_VF0); phba 10266 drivers/scsi/lpfc/lpfc_init.c phba->pci_bar2_map = pci_resource_start(pdev, PCI_64BIT_BAR4); phba 10268 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.dpp_regs_memmap_p = phba 10269 drivers/scsi/lpfc/lpfc_init.c ioremap(phba->pci_bar2_map, bar2map_len); phba 10270 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.dpp_regs_memmap_p) { phba 10276 drivers/scsi/lpfc/lpfc_init.c phba->pci_bar4_memmap_p = phba->sli4_hba.dpp_regs_memmap_p; phba 10283 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.sli4_eq_clr_intr = lpfc_sli4_eq_clr_intr; phba 10284 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.sli4_write_eq_db = lpfc_sli4_write_eq_db; phba 10285 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.sli4_write_cq_db = lpfc_sli4_write_cq_db; phba 10288 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.sli4_eq_clr_intr = lpfc_sli4_if6_eq_clr_intr; phba 10289 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.sli4_write_eq_db = lpfc_sli4_if6_write_eq_db; phba 10290 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.sli4_write_cq_db = lpfc_sli4_if6_write_cq_db; phba 10299 drivers/scsi/lpfc/lpfc_init.c iounmap(phba->sli4_hba.drbl_regs_memmap_p); phba 10301 drivers/scsi/lpfc/lpfc_init.c iounmap(phba->sli4_hba.ctrl_regs_memmap_p); phba 10303 drivers/scsi/lpfc/lpfc_init.c iounmap(phba->sli4_hba.conf_regs_memmap_p); phba 10316 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_pci_mem_unset(struct lpfc_hba *phba) phba 10319 drivers/scsi/lpfc/lpfc_init.c if_type = bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf); phba 10323 drivers/scsi/lpfc/lpfc_init.c iounmap(phba->sli4_hba.drbl_regs_memmap_p); phba 10324 drivers/scsi/lpfc/lpfc_init.c iounmap(phba->sli4_hba.ctrl_regs_memmap_p); phba 10325 drivers/scsi/lpfc/lpfc_init.c iounmap(phba->sli4_hba.conf_regs_memmap_p); phba 10328 drivers/scsi/lpfc/lpfc_init.c iounmap(phba->sli4_hba.conf_regs_memmap_p); phba 10331 drivers/scsi/lpfc/lpfc_init.c iounmap(phba->sli4_hba.drbl_regs_memmap_p); phba 10332 drivers/scsi/lpfc/lpfc_init.c iounmap(phba->sli4_hba.conf_regs_memmap_p); phba 10336 drivers/scsi/lpfc/lpfc_init.c dev_printk(KERN_ERR, &phba->pcidev->dev, phba 10355 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_enable_msix(struct lpfc_hba *phba) phba 10361 drivers/scsi/lpfc/lpfc_init.c rc = pci_alloc_irq_vectors(phba->pcidev, phba 10364 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 10374 drivers/scsi/lpfc/lpfc_init.c rc = request_irq(pci_irq_vector(phba->pcidev, 0), phba 10376 drivers/scsi/lpfc/lpfc_init.c LPFC_SP_DRIVER_HANDLER_NAME, phba); phba 10378 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 10385 drivers/scsi/lpfc/lpfc_init.c rc = request_irq(pci_irq_vector(phba->pcidev, 1), phba 10387 drivers/scsi/lpfc/lpfc_init.c LPFC_FP_DRIVER_HANDLER_NAME, phba); phba 10390 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 10399 drivers/scsi/lpfc/lpfc_init.c pmb = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 10403 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 10408 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_config_msi(phba, pmb); phba 10411 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_POLL); phba 10413 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX, phba 10421 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 10426 drivers/scsi/lpfc/lpfc_init.c mempool_free(pmb, phba->mbox_mem_pool); phba 10430 drivers/scsi/lpfc/lpfc_init.c free_irq(pci_irq_vector(phba->pcidev, 1), phba); phba 10434 drivers/scsi/lpfc/lpfc_init.c free_irq(pci_irq_vector(phba->pcidev, 0), phba); phba 10438 drivers/scsi/lpfc/lpfc_init.c pci_free_irq_vectors(phba->pcidev); phba 10459 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_enable_msi(struct lpfc_hba *phba) phba 10463 drivers/scsi/lpfc/lpfc_init.c rc = pci_enable_msi(phba->pcidev); phba 10465 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 10468 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 10473 drivers/scsi/lpfc/lpfc_init.c rc = request_irq(phba->pcidev->irq, lpfc_sli_intr_handler, phba 10474 drivers/scsi/lpfc/lpfc_init.c 0, LPFC_DRIVER_NAME, phba); phba 10476 drivers/scsi/lpfc/lpfc_init.c pci_disable_msi(phba->pcidev); phba 10477 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 10500 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_enable_intr(struct lpfc_hba *phba, uint32_t cfg_mode) phba 10507 drivers/scsi/lpfc/lpfc_init.c retval = lpfc_sli_config_port(phba, LPFC_SLI_REV3); phba 10510 drivers/scsi/lpfc/lpfc_init.c retval = lpfc_sli_enable_msix(phba); phba 10513 drivers/scsi/lpfc/lpfc_init.c phba->intr_type = MSIX; phba 10520 drivers/scsi/lpfc/lpfc_init.c if (cfg_mode >= 1 && phba->intr_type == NONE) { phba 10521 drivers/scsi/lpfc/lpfc_init.c retval = lpfc_sli_enable_msi(phba); phba 10524 drivers/scsi/lpfc/lpfc_init.c phba->intr_type = MSI; phba 10530 drivers/scsi/lpfc/lpfc_init.c if (phba->intr_type == NONE) { phba 10531 drivers/scsi/lpfc/lpfc_init.c retval = request_irq(phba->pcidev->irq, lpfc_sli_intr_handler, phba 10532 drivers/scsi/lpfc/lpfc_init.c IRQF_SHARED, LPFC_DRIVER_NAME, phba); phba 10535 drivers/scsi/lpfc/lpfc_init.c phba->intr_type = INTx; phba 10552 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_disable_intr(struct lpfc_hba *phba) phba 10556 drivers/scsi/lpfc/lpfc_init.c if (phba->intr_type == MSIX) phba 10562 drivers/scsi/lpfc/lpfc_init.c free_irq(pci_irq_vector(phba->pcidev, i), phba); phba 10563 drivers/scsi/lpfc/lpfc_init.c pci_free_irq_vectors(phba->pcidev); phba 10566 drivers/scsi/lpfc/lpfc_init.c phba->intr_type = NONE; phba 10567 drivers/scsi/lpfc/lpfc_init.c phba->sli.slistat.sli_intr = 0; phba 10579 drivers/scsi/lpfc/lpfc_init.c lpfc_find_cpu_handle(struct lpfc_hba *phba, uint16_t id, int match) phba 10586 drivers/scsi/lpfc/lpfc_init.c cpup = &phba->sli4_hba.cpu_map[cpu]; phba 10614 drivers/scsi/lpfc/lpfc_init.c lpfc_find_hyper(struct lpfc_hba *phba, int cpu, phba 10621 drivers/scsi/lpfc/lpfc_init.c cpup = &phba->sli4_hba.cpu_map[idx]; phba 10643 drivers/scsi/lpfc/lpfc_init.c lpfc_cpu_affinity_check(struct lpfc_hba *phba, int vectors) phba 10657 drivers/scsi/lpfc/lpfc_init.c cpup = &phba->sli4_hba.cpu_map[cpu]; phba 10673 drivers/scsi/lpfc/lpfc_init.c cpup = &phba->sli4_hba.cpu_map[cpu]; phba 10678 drivers/scsi/lpfc/lpfc_init.c if (lpfc_find_hyper(phba, cpu, cpup->phys_id, cpup->core_id)) phba 10686 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 10703 drivers/scsi/lpfc/lpfc_init.c per_cpu_ptr(phba->sli4_hba.eq_info, i); phba 10719 drivers/scsi/lpfc/lpfc_init.c for (idx = 0; idx < phba->cfg_irq_chann; idx++) { phba 10721 drivers/scsi/lpfc/lpfc_init.c maskp = pci_irq_get_affinity(phba->pcidev, idx); phba 10723 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_irq_chann > 1) phba 10724 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 10727 drivers/scsi/lpfc/lpfc_init.c idx, phba->cfg_irq_chann); phba 10730 drivers/scsi/lpfc/lpfc_init.c cpup = &phba->sli4_hba.cpu_map[cpu]; phba 10732 drivers/scsi/lpfc/lpfc_init.c cpup->irq = pci_irq_vector(phba->pcidev, idx); phba 10742 drivers/scsi/lpfc/lpfc_init.c cpup = &phba->sli4_hba.cpu_map[cpu]; phba 10744 drivers/scsi/lpfc/lpfc_init.c cpup->irq = pci_irq_vector(phba->pcidev, idx); phba 10753 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 10769 drivers/scsi/lpfc/lpfc_init.c cpup = &phba->sli4_hba.cpu_map[cpu]; phba 10782 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i < phba->sli4_hba.num_present_cpu; i++) { phba 10783 drivers/scsi/lpfc/lpfc_init.c new_cpup = &phba->sli4_hba.cpu_map[new_cpu]; phba 10808 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 10820 drivers/scsi/lpfc/lpfc_init.c cpup = &phba->sli4_hba.cpu_map[cpu]; phba 10833 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i < phba->sli4_hba.num_present_cpu; i++) { phba 10834 drivers/scsi/lpfc/lpfc_init.c new_cpup = &phba->sli4_hba.cpu_map[new_cpu]; phba 10844 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 10862 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 10875 drivers/scsi/lpfc/lpfc_init.c cpup = &phba->sli4_hba.cpu_map[cpu]; phba 10884 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 10902 drivers/scsi/lpfc/lpfc_init.c cpup = &phba->sli4_hba.cpu_map[cpu]; phba 10912 drivers/scsi/lpfc/lpfc_init.c if (next_idx < phba->cfg_hdw_queue) { phba 10924 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i < phba->sli4_hba.num_present_cpu; i++) { phba 10925 drivers/scsi/lpfc/lpfc_init.c new_cpup = &phba->sli4_hba.cpu_map[new_cpu]; phba 10940 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i < phba->sli4_hba.num_present_cpu; i++) { phba 10941 drivers/scsi/lpfc/lpfc_init.c new_cpup = &phba->sli4_hba.cpu_map[new_cpu]; phba 10952 drivers/scsi/lpfc/lpfc_init.c cpup->hdwq = idx % phba->cfg_hdw_queue; phba 10962 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 10983 drivers/scsi/lpfc/lpfc_init.c lpfc_cpuhp_get_eq(struct lpfc_hba *phba, unsigned int cpu, phba 10993 drivers/scsi/lpfc/lpfc_init.c for (idx = 0; idx < phba->cfg_irq_chann; idx++) { phba 10994 drivers/scsi/lpfc/lpfc_init.c maskp = pci_irq_get_affinity(phba->pcidev, idx); phba 11020 drivers/scsi/lpfc/lpfc_init.c map = &phba->sli4_hba.cpu_map[i]; phba 11021 drivers/scsi/lpfc/lpfc_init.c if (!(map->irq == pci_irq_vector(phba->pcidev, idx))) phba 11023 drivers/scsi/lpfc/lpfc_init.c eq = phba->sli4_hba.hdwq[map->hdwq].hba_eq; phba 11031 drivers/scsi/lpfc/lpfc_init.c static void __lpfc_cpuhp_remove(struct lpfc_hba *phba) phba 11033 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev != LPFC_SLI_REV4) phba 11037 drivers/scsi/lpfc/lpfc_init.c &phba->cpuhp); phba 11043 drivers/scsi/lpfc/lpfc_init.c del_timer_sync(&phba->cpuhp_poll_timer); phba 11046 drivers/scsi/lpfc/lpfc_init.c static void lpfc_cpuhp_remove(struct lpfc_hba *phba) phba 11048 drivers/scsi/lpfc/lpfc_init.c if (phba->pport->fc_flag & FC_OFFLINE_MODE) phba 11051 drivers/scsi/lpfc/lpfc_init.c __lpfc_cpuhp_remove(phba); phba 11054 drivers/scsi/lpfc/lpfc_init.c static void lpfc_cpuhp_add(struct lpfc_hba *phba) phba 11056 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev != LPFC_SLI_REV4) phba 11061 drivers/scsi/lpfc/lpfc_init.c if (!list_empty(&phba->poll_list)) { phba 11062 drivers/scsi/lpfc/lpfc_init.c timer_setup(&phba->cpuhp_poll_timer, lpfc_sli4_poll_hbtimer, 0); phba 11063 drivers/scsi/lpfc/lpfc_init.c mod_timer(&phba->cpuhp_poll_timer, phba 11070 drivers/scsi/lpfc/lpfc_init.c &phba->cpuhp); phba 11073 drivers/scsi/lpfc/lpfc_init.c static int __lpfc_cpuhp_checks(struct lpfc_hba *phba, int *retval) phba 11075 drivers/scsi/lpfc/lpfc_init.c if (phba->pport->load_flag & FC_UNLOADING) { phba 11080 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev != LPFC_SLI_REV4) { phba 11091 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = hlist_entry_safe(node, struct lpfc_hba, cpuhp); phba 11096 drivers/scsi/lpfc/lpfc_init.c if (!phba) { phba 11097 drivers/scsi/lpfc/lpfc_init.c WARN_ONCE(!phba, "cpu: %u. phba:NULL", raw_smp_processor_id()); phba 11101 drivers/scsi/lpfc/lpfc_init.c if (__lpfc_cpuhp_checks(phba, &retval)) phba 11104 drivers/scsi/lpfc/lpfc_init.c lpfc_cpuhp_get_eq(phba, cpu, &eqlist); phba 11117 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = hlist_entry_safe(node, struct lpfc_hba, cpuhp); phba 11122 drivers/scsi/lpfc/lpfc_init.c if (!phba) { phba 11123 drivers/scsi/lpfc/lpfc_init.c WARN_ONCE(!phba, "cpu: %u. phba:NULL", raw_smp_processor_id()); phba 11127 drivers/scsi/lpfc/lpfc_init.c if (__lpfc_cpuhp_checks(phba, &retval)) phba 11130 drivers/scsi/lpfc/lpfc_init.c list_for_each_entry_safe(eq, next, &phba->poll_list, _poll_list) { phba 11131 drivers/scsi/lpfc/lpfc_init.c n = lpfc_find_cpu_handle(phba, eq->hdwq, LPFC_FIND_BY_HDWQ); phba 11151 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_enable_msix(struct lpfc_hba *phba) phba 11157 drivers/scsi/lpfc/lpfc_init.c vectors = phba->cfg_irq_chann; phba 11159 drivers/scsi/lpfc/lpfc_init.c rc = pci_alloc_irq_vectors(phba->pcidev, phba 11163 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 11171 drivers/scsi/lpfc/lpfc_init.c name = phba->sli4_hba.hba_eq_hdl[index].handler_name; phba 11176 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.hba_eq_hdl[index].idx = index; phba 11177 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.hba_eq_hdl[index].phba = phba; phba 11178 drivers/scsi/lpfc/lpfc_init.c rc = request_irq(pci_irq_vector(phba->pcidev, index), phba 11181 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.hba_eq_hdl[index]); phba 11183 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 11190 drivers/scsi/lpfc/lpfc_init.c if (vectors != phba->cfg_irq_chann) { phba 11191 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 11194 drivers/scsi/lpfc/lpfc_init.c phba->cfg_irq_chann, vectors); phba 11195 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_irq_chann > vectors) phba 11196 drivers/scsi/lpfc/lpfc_init.c phba->cfg_irq_chann = vectors; phba 11197 drivers/scsi/lpfc/lpfc_init.c if (phba->nvmet_support && (phba->cfg_nvmet_mrq > vectors)) phba 11198 drivers/scsi/lpfc/lpfc_init.c phba->cfg_nvmet_mrq = vectors; phba 11206 drivers/scsi/lpfc/lpfc_init.c free_irq(pci_irq_vector(phba->pcidev, index), phba 11207 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.hba_eq_hdl[index]); phba 11210 drivers/scsi/lpfc/lpfc_init.c pci_free_irq_vectors(phba->pcidev); phba 11231 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_enable_msi(struct lpfc_hba *phba) phba 11235 drivers/scsi/lpfc/lpfc_init.c rc = pci_alloc_irq_vectors(phba->pcidev, 1, 1, phba 11238 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 11241 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 11246 drivers/scsi/lpfc/lpfc_init.c rc = request_irq(phba->pcidev->irq, lpfc_sli4_intr_handler, phba 11247 drivers/scsi/lpfc/lpfc_init.c 0, LPFC_DRIVER_NAME, phba); phba 11249 drivers/scsi/lpfc/lpfc_init.c pci_free_irq_vectors(phba->pcidev); phba 11250 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 11255 drivers/scsi/lpfc/lpfc_init.c for (index = 0; index < phba->cfg_irq_chann; index++) { phba 11256 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.hba_eq_hdl[index].idx = index; phba 11257 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.hba_eq_hdl[index].phba = phba; phba 11280 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_enable_intr(struct lpfc_hba *phba, uint32_t cfg_mode) phba 11290 drivers/scsi/lpfc/lpfc_init.c retval = lpfc_sli4_enable_msix(phba); phba 11293 drivers/scsi/lpfc/lpfc_init.c phba->intr_type = MSIX; phba 11300 drivers/scsi/lpfc/lpfc_init.c if (cfg_mode >= 1 && phba->intr_type == NONE) { phba 11301 drivers/scsi/lpfc/lpfc_init.c retval = lpfc_sli4_enable_msi(phba); phba 11304 drivers/scsi/lpfc/lpfc_init.c phba->intr_type = MSI; phba 11310 drivers/scsi/lpfc/lpfc_init.c if (phba->intr_type == NONE) { phba 11311 drivers/scsi/lpfc/lpfc_init.c retval = request_irq(phba->pcidev->irq, lpfc_sli4_intr_handler, phba 11312 drivers/scsi/lpfc/lpfc_init.c IRQF_SHARED, LPFC_DRIVER_NAME, phba); phba 11317 drivers/scsi/lpfc/lpfc_init.c phba->intr_type = INTx; phba 11320 drivers/scsi/lpfc/lpfc_init.c for (idx = 0; idx < phba->cfg_irq_chann; idx++) { phba 11321 drivers/scsi/lpfc/lpfc_init.c eqhdl = &phba->sli4_hba.hba_eq_hdl[idx]; phba 11323 drivers/scsi/lpfc/lpfc_init.c eqhdl->phba = phba; phba 11340 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_disable_intr(struct lpfc_hba *phba) phba 11343 drivers/scsi/lpfc/lpfc_init.c if (phba->intr_type == MSIX) { phba 11347 drivers/scsi/lpfc/lpfc_init.c for (index = 0; index < phba->cfg_irq_chann; index++) { phba 11349 drivers/scsi/lpfc/lpfc_init.c pci_irq_vector(phba->pcidev, index), phba 11351 drivers/scsi/lpfc/lpfc_init.c free_irq(pci_irq_vector(phba->pcidev, index), phba 11352 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.hba_eq_hdl[index]); phba 11355 drivers/scsi/lpfc/lpfc_init.c free_irq(phba->pcidev->irq, phba); phba 11358 drivers/scsi/lpfc/lpfc_init.c pci_free_irq_vectors(phba->pcidev); phba 11361 drivers/scsi/lpfc/lpfc_init.c phba->intr_type = NONE; phba 11362 drivers/scsi/lpfc/lpfc_init.c phba->sli.slistat.sli_intr = 0; phba 11373 drivers/scsi/lpfc/lpfc_init.c lpfc_unset_hba(struct lpfc_hba *phba) phba 11375 drivers/scsi/lpfc/lpfc_init.c struct lpfc_vport *vport = phba->pport; phba 11382 drivers/scsi/lpfc/lpfc_init.c kfree(phba->vpi_bmask); phba 11383 drivers/scsi/lpfc/lpfc_init.c kfree(phba->vpi_ids); phba 11385 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_hba_timers(phba); phba 11387 drivers/scsi/lpfc/lpfc_init.c phba->pport->work_port_events = 0; phba 11389 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_hba_down(phba); phba 11391 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_brdrestart(phba); phba 11393 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_disable_intr(phba); phba 11412 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_xri_exchange_busy_wait(struct lpfc_hba *phba) phba 11419 drivers/scsi/lpfc/lpfc_init.c int els_xri_cmpl = list_empty(&phba->sli4_hba.lpfc_abts_els_sgl_list); phba 11428 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) phba 11429 drivers/scsi/lpfc/lpfc_init.c lpfc_nvme_wait_for_io_drain(phba); phba 11432 drivers/scsi/lpfc/lpfc_init.c for (idx = 0; idx < phba->cfg_hdw_queue; idx++) { phba 11433 drivers/scsi/lpfc/lpfc_init.c qp = &phba->sli4_hba.hdwq[idx]; phba 11441 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) { phba 11443 drivers/scsi/lpfc/lpfc_init.c list_empty(&phba->sli4_hba.lpfc_abts_nvmet_ctx_list); phba 11449 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 11454 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 11459 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 11471 drivers/scsi/lpfc/lpfc_init.c for (idx = 0; idx < phba->cfg_hdw_queue; idx++) { phba 11472 drivers/scsi/lpfc/lpfc_init.c qp = &phba->sli4_hba.hdwq[idx]; phba 11481 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) { phba 11483 drivers/scsi/lpfc/lpfc_init.c &phba->sli4_hba.lpfc_abts_nvmet_ctx_list); phba 11486 drivers/scsi/lpfc/lpfc_init.c list_empty(&phba->sli4_hba.lpfc_abts_els_sgl_list); phba 11502 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_hba_unset(struct lpfc_hba *phba) phba 11506 drivers/scsi/lpfc/lpfc_init.c struct pci_dev *pdev = phba->pcidev; phba 11508 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_hba_timers(phba); phba 11509 drivers/scsi/lpfc/lpfc_init.c if (phba->pport) phba 11510 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.intr_enable = 0; phba 11518 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 11519 drivers/scsi/lpfc/lpfc_init.c phba->sli.sli_flag |= LPFC_SLI_ASYNC_MBX_BLK; phba 11520 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 11522 drivers/scsi/lpfc/lpfc_init.c while (phba->sli.sli_flag & LPFC_SLI_MBOX_ACTIVE) { phba 11528 drivers/scsi/lpfc/lpfc_init.c if (phba->sli.sli_flag & LPFC_SLI_MBOX_ACTIVE) { phba 11529 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 11530 drivers/scsi/lpfc/lpfc_init.c mboxq = phba->sli.mbox_active; phba 11532 drivers/scsi/lpfc/lpfc_init.c __lpfc_mbox_cmpl_put(phba, mboxq); phba 11533 drivers/scsi/lpfc/lpfc_init.c phba->sli.sli_flag &= ~LPFC_SLI_MBOX_ACTIVE; phba 11534 drivers/scsi/lpfc/lpfc_init.c phba->sli.mbox_active = NULL; phba 11535 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 11539 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_hba_iocb_abort(phba); phba 11542 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_xri_exchange_busy_wait(phba); phba 11545 drivers/scsi/lpfc/lpfc_init.c lpfc_cpuhp_remove(phba); phba 11548 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_disable_intr(phba); phba 11551 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_sriov_nr_virtfn) phba 11555 drivers/scsi/lpfc/lpfc_init.c kthread_stop(phba->worker_thread); phba 11558 drivers/scsi/lpfc/lpfc_init.c lpfc_ras_stop_fwlog(phba); phba 11563 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_queue_unset(phba); phba 11564 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_queue_destroy(phba); phba 11567 drivers/scsi/lpfc/lpfc_init.c lpfc_pci_function_reset(phba); phba 11570 drivers/scsi/lpfc/lpfc_init.c if (phba->ras_fwlog.ras_enabled) phba 11571 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_ras_dma_free(phba); phba 11574 drivers/scsi/lpfc/lpfc_init.c if (phba->pport) phba 11575 drivers/scsi/lpfc/lpfc_init.c phba->pport->work_port_events = 0; phba 11591 drivers/scsi/lpfc/lpfc_init.c lpfc_pc_sli4_params_get(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 11603 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.intr_enable) phba 11604 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 11606 drivers/scsi/lpfc/lpfc_init.c mbox_tmo = lpfc_mbox_tmo_val(phba, mboxq); phba 11607 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox_wait(phba, mboxq, mbox_tmo); phba 11613 drivers/scsi/lpfc/lpfc_init.c sli4_params = &phba->sli4_hba.pc_sli4_params; phba 11663 drivers/scsi/lpfc/lpfc_init.c lpfc_get_sli4_parameters(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 11678 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.rpi_hdrs_in_use = 1; phba 11683 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_config(phba, mboxq, LPFC_MBOX_SUBSYSTEM_COMMON, phba 11686 drivers/scsi/lpfc/lpfc_init.c if (!phba->sli4_hba.intr_enable) phba 11687 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 11689 drivers/scsi/lpfc/lpfc_init.c mbox_tmo = lpfc_mbox_tmo_val(phba, mboxq); phba 11690 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_sli_issue_mbox_wait(phba, mboxq, mbox_tmo); phba 11694 drivers/scsi/lpfc/lpfc_init.c sli4_params = &phba->sli4_hba.pc_sli4_params; phba 11704 drivers/scsi/lpfc/lpfc_init.c phba->sli3_options |= LPFC_SLI4_PHWQ_ENABLED; phba 11706 drivers/scsi/lpfc/lpfc_init.c phba->sli3_options &= ~LPFC_SLI4_PHWQ_ENABLED; phba 11723 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.extents_in_use = bf_get(cfg_ext, mbx_sli4_parameters); phba 11724 drivers/scsi/lpfc/lpfc_init.c phba->sli4_hba.rpi_hdrs_in_use = bf_get(cfg_hdrr, mbx_sli4_parameters); phba 11727 drivers/scsi/lpfc/lpfc_init.c phba->cfg_xpsgl = bf_get(cfg_xpsgl, mbx_sli4_parameters); phba 11738 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type == LPFC_ENABLE_FCP) { phba 11739 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT | LOG_NVME, phba 11742 drivers/scsi/lpfc/lpfc_init.c phba->cfg_enable_fc4_type); phba 11748 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) { phba 11749 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT | LOG_NVME, phba 11754 drivers/scsi/lpfc/lpfc_init.c phba->cfg_enable_fc4_type); phba 11756 drivers/scsi/lpfc/lpfc_init.c phba->nvme_support = 0; phba 11757 drivers/scsi/lpfc/lpfc_init.c phba->nvmet_support = 0; phba 11758 drivers/scsi/lpfc/lpfc_init.c phba->cfg_nvmet_mrq = 0; phba 11759 drivers/scsi/lpfc/lpfc_init.c phba->cfg_nvme_seg_cnt = 0; phba 11762 drivers/scsi/lpfc/lpfc_init.c if (!(phba->cfg_enable_fc4_type & LPFC_ENABLE_FCP)) phba 11764 drivers/scsi/lpfc/lpfc_init.c phba->cfg_enable_fc4_type = LPFC_ENABLE_FCP; phba 11772 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) { phba 11773 drivers/scsi/lpfc/lpfc_init.c phba->cfg_sg_seg_cnt = LPFC_MAX_NVME_SEG_CNT; phba 11774 drivers/scsi/lpfc/lpfc_init.c phba->cfg_iocb_cnt = 5; phba 11778 drivers/scsi/lpfc/lpfc_init.c if ((bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) != phba 11780 drivers/scsi/lpfc/lpfc_init.c phba->cfg_enable_pbde = 0; phba 11790 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_suppress_rsp && bf_get(cfg_xib, mbx_sli4_parameters) && phba 11792 drivers/scsi/lpfc/lpfc_init.c phba->sli.sli_flag |= LPFC_SLI_SUPPRESS_RSP; phba 11794 drivers/scsi/lpfc/lpfc_init.c phba->cfg_suppress_rsp = 0; phba 11797 drivers/scsi/lpfc/lpfc_init.c phba->sli.sli_flag |= LPFC_SLI_USE_EQDR; phba 11809 drivers/scsi/lpfc/lpfc_init.c phba->fcp_embed_io = 1; phba 11811 drivers/scsi/lpfc/lpfc_init.c phba->fcp_embed_io = 0; phba 11813 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT | LOG_NVME, phba 11816 drivers/scsi/lpfc/lpfc_init.c phba->cfg_enable_pbde, phba 11817 drivers/scsi/lpfc/lpfc_init.c phba->fcp_embed_io, phba->nvme_support, phba 11818 drivers/scsi/lpfc/lpfc_init.c phba->cfg_nvme_embed_cmd, phba->cfg_suppress_rsp); phba 11820 drivers/scsi/lpfc/lpfc_init.c if ((bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) == phba 11822 drivers/scsi/lpfc/lpfc_init.c (bf_get(lpfc_sli_intf_sli_family, &phba->sli4_hba.sli_intf) == phba 11830 drivers/scsi/lpfc/lpfc_init.c phba->enab_exp_wqcq_pages = 1; phba 11832 drivers/scsi/lpfc/lpfc_init.c phba->enab_exp_wqcq_pages = 0; phba 11837 drivers/scsi/lpfc/lpfc_init.c phba->mds_diags_support = 1; phba 11839 drivers/scsi/lpfc/lpfc_init.c phba->mds_diags_support = 0; phba 11845 drivers/scsi/lpfc/lpfc_init.c phba->nsler = 1; phba 11847 drivers/scsi/lpfc/lpfc_init.c phba->nsler = 0; phba 11872 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba; phba 11879 drivers/scsi/lpfc/lpfc_init.c phba = lpfc_hba_alloc(pdev); phba 11880 drivers/scsi/lpfc/lpfc_init.c if (!phba) phba 11884 drivers/scsi/lpfc/lpfc_init.c error = lpfc_enable_pci_dev(phba); phba 11889 drivers/scsi/lpfc/lpfc_init.c error = lpfc_api_table_setup(phba, LPFC_PCI_DEV_LP); phba 11894 drivers/scsi/lpfc/lpfc_init.c error = lpfc_sli_pci_mem_setup(phba); phba 11896 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 11902 drivers/scsi/lpfc/lpfc_init.c error = lpfc_sli_driver_resource_setup(phba); phba 11904 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 11911 drivers/scsi/lpfc/lpfc_init.c error = lpfc_init_iocb_list(phba, LPFC_IOCB_LIST_CNT); phba 11913 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 11919 drivers/scsi/lpfc/lpfc_init.c error = lpfc_setup_driver_resource_phase2(phba); phba 11921 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 11927 drivers/scsi/lpfc/lpfc_init.c lpfc_get_hba_model_desc(phba, phba->ModelName, phba->ModelDesc); phba 11930 drivers/scsi/lpfc/lpfc_init.c error = lpfc_create_shost(phba); phba 11932 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 11938 drivers/scsi/lpfc/lpfc_init.c vport = phba->pport; phba 11941 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 11948 drivers/scsi/lpfc/lpfc_init.c cfg_mode = phba->cfg_use_msi; phba 11951 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_port(phba); phba 11953 drivers/scsi/lpfc/lpfc_init.c intr_mode = lpfc_sli_enable_intr(phba, cfg_mode); phba 11955 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 11961 drivers/scsi/lpfc/lpfc_init.c if (lpfc_sli_hba_setup(phba)) { phba 11962 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 11972 drivers/scsi/lpfc/lpfc_init.c phba->sli.slistat.sli_intr > LPFC_MSIX_VECTORS) { phba 11974 drivers/scsi/lpfc/lpfc_init.c phba->intr_mode = intr_mode; phba 11975 drivers/scsi/lpfc/lpfc_init.c lpfc_log_intr_mode(phba, intr_mode); phba 11978 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 11983 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_disable_intr(phba); phba 11990 drivers/scsi/lpfc/lpfc_init.c lpfc_post_init_setup(phba); phba 11993 drivers/scsi/lpfc/lpfc_init.c lpfc_create_static_vport(phba); phba 11998 drivers/scsi/lpfc/lpfc_init.c lpfc_unset_hba(phba); phba 12002 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_shost(phba); phba 12004 drivers/scsi/lpfc/lpfc_init.c lpfc_unset_driver_resource_phase2(phba); phba 12006 drivers/scsi/lpfc/lpfc_init.c lpfc_free_iocb_list(phba); phba 12008 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_driver_resource_unset(phba); phba 12010 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_pci_mem_unset(phba); phba 12012 drivers/scsi/lpfc/lpfc_init.c lpfc_disable_pci_dev(phba); phba 12016 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_free(phba); phba 12035 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = vport->phba; phba 12038 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 12040 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 12045 drivers/scsi/lpfc/lpfc_init.c vports = lpfc_create_vport_work_array(phba); phba 12047 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 12052 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_vport_work_array(phba, vports); phba 12067 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_hba_down(phba); phba 12069 drivers/scsi/lpfc/lpfc_init.c kthread_stop(phba->worker_thread); phba 12071 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_brdrestart(phba); phba 12073 drivers/scsi/lpfc/lpfc_init.c kfree(phba->vpi_bmask); phba 12074 drivers/scsi/lpfc/lpfc_init.c kfree(phba->vpi_ids); phba 12076 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_hba_timers(phba); phba 12077 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->port_list_lock); phba 12079 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->port_list_lock); phba 12084 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_sriov_nr_virtfn) phba 12088 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_disable_intr(phba); phba 12096 drivers/scsi/lpfc/lpfc_init.c lpfc_scsi_free(phba); phba 12097 drivers/scsi/lpfc/lpfc_init.c lpfc_free_iocb_list(phba); phba 12099 drivers/scsi/lpfc/lpfc_init.c lpfc_mem_free_all(phba); phba 12102 drivers/scsi/lpfc/lpfc_init.c phba->hbqslimp.virt, phba->hbqslimp.phys); phba 12106 drivers/scsi/lpfc/lpfc_init.c phba->slim2p.virt, phba->slim2p.phys); phba 12109 drivers/scsi/lpfc/lpfc_init.c iounmap(phba->ctrl_regs_memmap_p); phba 12110 drivers/scsi/lpfc/lpfc_init.c iounmap(phba->slim_memmap_p); phba 12112 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_free(phba); phba 12143 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 12145 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 12149 drivers/scsi/lpfc/lpfc_init.c lpfc_offline_prep(phba, LPFC_MBX_WAIT); phba 12150 drivers/scsi/lpfc/lpfc_init.c lpfc_offline(phba); phba 12151 drivers/scsi/lpfc/lpfc_init.c kthread_stop(phba->worker_thread); phba 12154 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_disable_intr(phba); phba 12186 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 12190 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 12207 drivers/scsi/lpfc/lpfc_init.c phba->worker_thread = kthread_run(lpfc_do_work, phba, phba 12208 drivers/scsi/lpfc/lpfc_init.c "lpfc_worker_%d", phba->brd_no); phba 12209 drivers/scsi/lpfc/lpfc_init.c if (IS_ERR(phba->worker_thread)) { phba 12210 drivers/scsi/lpfc/lpfc_init.c error = PTR_ERR(phba->worker_thread); phba 12211 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12218 drivers/scsi/lpfc/lpfc_init.c intr_mode = lpfc_sli_enable_intr(phba, phba->intr_mode); phba 12220 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12224 drivers/scsi/lpfc/lpfc_init.c phba->intr_mode = intr_mode; phba 12227 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_brdrestart(phba); phba 12228 drivers/scsi/lpfc/lpfc_init.c lpfc_online(phba); phba 12231 drivers/scsi/lpfc/lpfc_init.c lpfc_log_intr_mode(phba, phba->intr_mode); phba 12244 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_prep_dev_for_recover(struct lpfc_hba *phba) phba 12246 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12253 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_abort_fcp_rings(phba); phba 12265 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_prep_dev_for_reset(struct lpfc_hba *phba) phba 12267 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12271 drivers/scsi/lpfc/lpfc_init.c lpfc_block_mgmt_io(phba, LPFC_MBX_WAIT); phba 12274 drivers/scsi/lpfc/lpfc_init.c lpfc_scsi_dev_block(phba); phba 12277 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_flush_io_rings(phba); phba 12280 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_hba_timers(phba); phba 12283 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_disable_intr(phba); phba 12284 drivers/scsi/lpfc/lpfc_init.c pci_disable_device(phba->pcidev); phba 12296 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_prep_dev_for_perm_failure(struct lpfc_hba *phba) phba 12298 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12301 drivers/scsi/lpfc/lpfc_init.c lpfc_scsi_dev_block(phba); phba 12304 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_hba_timers(phba); phba 12307 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_flush_io_rings(phba); phba 12332 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 12337 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_prep_dev_for_recover(phba); phba 12341 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_prep_dev_for_reset(phba); phba 12345 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_prep_dev_for_perm_failure(phba); phba 12349 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12351 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_prep_dev_for_reset(phba); phba 12378 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 12379 drivers/scsi/lpfc/lpfc_init.c struct lpfc_sli *psli = &phba->sli; phba 12400 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 12402 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 12405 drivers/scsi/lpfc/lpfc_init.c intr_mode = lpfc_sli_enable_intr(phba, phba->intr_mode); phba 12407 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12412 drivers/scsi/lpfc/lpfc_init.c phba->intr_mode = intr_mode; phba 12415 drivers/scsi/lpfc/lpfc_init.c lpfc_offline_prep(phba, LPFC_MBX_WAIT); phba 12416 drivers/scsi/lpfc/lpfc_init.c lpfc_offline(phba); phba 12417 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_brdrestart(phba); phba 12420 drivers/scsi/lpfc/lpfc_init.c lpfc_log_intr_mode(phba, phba->intr_mode); phba 12439 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 12442 drivers/scsi/lpfc/lpfc_init.c lpfc_online(phba); phba 12452 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_get_els_iocb_cnt(struct lpfc_hba *phba) phba 12454 drivers/scsi/lpfc/lpfc_init.c int max_xri = phba->sli4_hba.max_cfg_param.max_xri; phba 12456 drivers/scsi/lpfc/lpfc_init.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 12482 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_get_iocb_cnt(struct lpfc_hba *phba) phba 12484 drivers/scsi/lpfc/lpfc_init.c int max_xri = lpfc_sli4_get_els_iocb_cnt(phba); phba 12486 drivers/scsi/lpfc/lpfc_init.c if (phba->nvmet_support) phba 12493 drivers/scsi/lpfc/lpfc_init.c lpfc_log_write_firmware_error(struct lpfc_hba *phba, uint32_t offset, phba 12498 drivers/scsi/lpfc/lpfc_init.c (phba->pcidev->device == PCI_DEVICE_ID_LANCER_G6_FC && phba 12500 drivers/scsi/lpfc/lpfc_init.c (phba->pcidev->device == PCI_DEVICE_ID_LANCER_G7_FC && phba 12502 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12506 drivers/scsi/lpfc/lpfc_init.c phba->pcidev->device, magic_number, ftype, fid, phba 12509 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12512 drivers/scsi/lpfc/lpfc_init.c phba->pcidev->device, magic_number, ftype, fid, phba 12526 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = (struct lpfc_hba *)context; phba 12548 drivers/scsi/lpfc/lpfc_init.c lpfc_decode_firmware_rev(phba, fwrev, 1); phba 12550 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12561 drivers/scsi/lpfc/lpfc_init.c dmabuf->virt = dma_alloc_coherent(&phba->pcidev->dev, phba 12586 drivers/scsi/lpfc/lpfc_init.c rc = lpfc_wr_object(phba, &dma_buffer_list, phba 12589 drivers/scsi/lpfc/lpfc_init.c lpfc_log_write_firmware_error(phba, offset, phba 12596 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12604 drivers/scsi/lpfc/lpfc_init.c dma_free_coherent(&phba->pcidev->dev, SLI4_PAGE_SIZE, phba 12610 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12623 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_request_firmware_update(struct lpfc_hba *phba, uint8_t fw_upgrade) phba 12630 drivers/scsi/lpfc/lpfc_init.c if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) < phba 12634 drivers/scsi/lpfc/lpfc_init.c snprintf(file_name, ELX_MODEL_NAME_SIZE, "%s.grp", phba->ModelName); phba 12638 drivers/scsi/lpfc/lpfc_init.c file_name, &phba->pcidev->dev, phba 12639 drivers/scsi/lpfc/lpfc_init.c GFP_KERNEL, (void *)phba, phba 12642 drivers/scsi/lpfc/lpfc_init.c ret = request_firmware(&fw, file_name, &phba->pcidev->dev); phba 12644 drivers/scsi/lpfc/lpfc_init.c lpfc_write_firmware(fw, (void *)phba); phba 12673 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba; phba 12680 drivers/scsi/lpfc/lpfc_init.c phba = lpfc_hba_alloc(pdev); phba 12681 drivers/scsi/lpfc/lpfc_init.c if (!phba) phba 12685 drivers/scsi/lpfc/lpfc_init.c error = lpfc_enable_pci_dev(phba); phba 12690 drivers/scsi/lpfc/lpfc_init.c error = lpfc_api_table_setup(phba, LPFC_PCI_DEV_OC); phba 12695 drivers/scsi/lpfc/lpfc_init.c error = lpfc_sli4_pci_mem_setup(phba); phba 12697 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12703 drivers/scsi/lpfc/lpfc_init.c error = lpfc_sli4_driver_resource_setup(phba); phba 12705 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12710 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->active_rrq_list); phba 12711 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->fcf.fcf_pri_list); phba 12714 drivers/scsi/lpfc/lpfc_init.c error = lpfc_setup_driver_resource_phase2(phba); phba 12716 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12722 drivers/scsi/lpfc/lpfc_init.c lpfc_get_hba_model_desc(phba, phba->ModelName, phba->ModelDesc); phba 12725 drivers/scsi/lpfc/lpfc_init.c cfg_mode = phba->cfg_use_msi; phba 12728 drivers/scsi/lpfc/lpfc_init.c phba->pport = NULL; phba 12729 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_port(phba); phba 12732 drivers/scsi/lpfc/lpfc_init.c intr_mode = lpfc_sli4_enable_intr(phba, cfg_mode); phba 12734 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12740 drivers/scsi/lpfc/lpfc_init.c if (phba->intr_type != MSIX) { phba 12741 drivers/scsi/lpfc/lpfc_init.c phba->cfg_irq_chann = 1; phba 12742 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) { phba 12743 drivers/scsi/lpfc/lpfc_init.c if (phba->nvmet_support) phba 12744 drivers/scsi/lpfc/lpfc_init.c phba->cfg_nvmet_mrq = 1; phba 12747 drivers/scsi/lpfc/lpfc_init.c lpfc_cpu_affinity_check(phba, phba->cfg_irq_chann); phba 12750 drivers/scsi/lpfc/lpfc_init.c error = lpfc_create_shost(phba); phba 12752 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12756 drivers/scsi/lpfc/lpfc_init.c vport = phba->pport; phba 12762 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12768 drivers/scsi/lpfc/lpfc_init.c if (lpfc_sli4_hba_setup(phba)) { phba 12769 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12776 drivers/scsi/lpfc/lpfc_init.c phba->intr_mode = intr_mode; phba 12777 drivers/scsi/lpfc/lpfc_init.c lpfc_log_intr_mode(phba, intr_mode); phba 12780 drivers/scsi/lpfc/lpfc_init.c lpfc_post_init_setup(phba); phba 12785 drivers/scsi/lpfc/lpfc_init.c if (phba->nvmet_support == 0) { phba 12786 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) { phba 12794 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12803 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_request_firmware_upgrade) phba 12804 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_request_firmware_update(phba, INT_FW_UPGRADE); phba 12807 drivers/scsi/lpfc/lpfc_init.c lpfc_create_static_vport(phba); phba 12810 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_ras_setup(phba); phba 12812 drivers/scsi/lpfc/lpfc_init.c INIT_LIST_HEAD(&phba->poll_list); phba 12813 drivers/scsi/lpfc/lpfc_init.c cpuhp_state_add_instance_nocalls(lpfc_cpuhp_state, &phba->cpuhp); phba 12820 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_shost(phba); phba 12822 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_disable_intr(phba); phba 12824 drivers/scsi/lpfc/lpfc_init.c lpfc_unset_driver_resource_phase2(phba); phba 12826 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_driver_resource_unset(phba); phba 12828 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_pci_mem_unset(phba); phba 12830 drivers/scsi/lpfc/lpfc_init.c lpfc_disable_pci_dev(phba); phba 12834 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_free(phba); phba 12853 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = vport->phba; phba 12857 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 12859 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 12865 drivers/scsi/lpfc/lpfc_init.c vports = lpfc_create_vport_work_array(phba); phba 12867 drivers/scsi/lpfc/lpfc_init.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 12872 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_vport_work_array(phba, vports); phba 12882 drivers/scsi/lpfc/lpfc_init.c lpfc_nvmet_destroy_targetport(phba); phba 12886 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_xri_rebalancing) phba 12887 drivers/scsi/lpfc/lpfc_init.c lpfc_destroy_multixri_pools(phba); phba 12896 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_hba_timers(phba); phba 12897 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->port_list_lock); phba 12899 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->port_list_lock); phba 12904 drivers/scsi/lpfc/lpfc_init.c lpfc_io_free(phba); phba 12905 drivers/scsi/lpfc/lpfc_init.c lpfc_free_iocb_list(phba); phba 12906 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_hba_unset(phba); phba 12908 drivers/scsi/lpfc/lpfc_init.c lpfc_unset_driver_resource_phase2(phba); phba 12909 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_driver_resource_unset(phba); phba 12912 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_pci_mem_unset(phba); phba 12916 drivers/scsi/lpfc/lpfc_init.c lpfc_disable_pci_dev(phba); phba 12919 drivers/scsi/lpfc/lpfc_init.c lpfc_hba_free(phba); phba 12949 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 12951 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 12955 drivers/scsi/lpfc/lpfc_init.c lpfc_offline_prep(phba, LPFC_MBX_WAIT); phba 12956 drivers/scsi/lpfc/lpfc_init.c lpfc_offline(phba); phba 12957 drivers/scsi/lpfc/lpfc_init.c kthread_stop(phba->worker_thread); phba 12960 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_disable_intr(phba); phba 12961 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_queue_destroy(phba); phba 12993 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 12997 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 13014 drivers/scsi/lpfc/lpfc_init.c phba->worker_thread = kthread_run(lpfc_do_work, phba, phba 13015 drivers/scsi/lpfc/lpfc_init.c "lpfc_worker_%d", phba->brd_no); phba 13016 drivers/scsi/lpfc/lpfc_init.c if (IS_ERR(phba->worker_thread)) { phba 13017 drivers/scsi/lpfc/lpfc_init.c error = PTR_ERR(phba->worker_thread); phba 13018 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 13025 drivers/scsi/lpfc/lpfc_init.c intr_mode = lpfc_sli4_enable_intr(phba, phba->intr_mode); phba 13027 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 13031 drivers/scsi/lpfc/lpfc_init.c phba->intr_mode = intr_mode; phba 13034 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_brdrestart(phba); phba 13035 drivers/scsi/lpfc/lpfc_init.c lpfc_online(phba); phba 13038 drivers/scsi/lpfc/lpfc_init.c lpfc_log_intr_mode(phba, phba->intr_mode); phba 13051 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_prep_dev_for_recover(struct lpfc_hba *phba) phba 13053 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 13059 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_abort_fcp_rings(phba); phba 13071 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_prep_dev_for_reset(struct lpfc_hba *phba) phba 13073 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 13077 drivers/scsi/lpfc/lpfc_init.c lpfc_block_mgmt_io(phba, LPFC_MBX_NO_WAIT); phba 13080 drivers/scsi/lpfc/lpfc_init.c lpfc_scsi_dev_block(phba); phba 13083 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_flush_io_rings(phba); phba 13086 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_hba_timers(phba); phba 13089 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_disable_intr(phba); phba 13090 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_queue_destroy(phba); phba 13091 drivers/scsi/lpfc/lpfc_init.c pci_disable_device(phba->pcidev); phba 13103 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_prep_dev_for_perm_failure(struct lpfc_hba *phba) phba 13105 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 13109 drivers/scsi/lpfc/lpfc_init.c lpfc_scsi_dev_block(phba); phba 13112 drivers/scsi/lpfc/lpfc_init.c lpfc_stop_hba_timers(phba); phba 13115 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_flush_io_rings(phba); phba 13138 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 13143 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_prep_dev_for_recover(phba); phba 13147 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_prep_dev_for_reset(phba); phba 13151 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_prep_dev_for_perm_failure(phba); phba 13155 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 13157 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_prep_dev_for_reset(phba); phba 13184 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 13185 drivers/scsi/lpfc/lpfc_init.c struct lpfc_sli *psli = &phba->sli; phba 13206 drivers/scsi/lpfc/lpfc_init.c spin_lock_irq(&phba->hbalock); phba 13208 drivers/scsi/lpfc/lpfc_init.c spin_unlock_irq(&phba->hbalock); phba 13211 drivers/scsi/lpfc/lpfc_init.c intr_mode = lpfc_sli4_enable_intr(phba, phba->intr_mode); phba 13213 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 13218 drivers/scsi/lpfc/lpfc_init.c phba->intr_mode = intr_mode; phba 13221 drivers/scsi/lpfc/lpfc_init.c lpfc_log_intr_mode(phba, phba->intr_mode); phba 13240 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 13248 drivers/scsi/lpfc/lpfc_init.c if (!(phba->sli.sli_flag & LPFC_SLI_ACTIVE)) { phba 13250 drivers/scsi/lpfc/lpfc_init.c lpfc_offline_prep(phba, LPFC_MBX_WAIT); phba 13251 drivers/scsi/lpfc/lpfc_init.c lpfc_offline(phba); phba 13252 drivers/scsi/lpfc/lpfc_init.c lpfc_sli_brdrestart(phba); phba 13254 drivers/scsi/lpfc/lpfc_init.c lpfc_online(phba); phba 13308 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 13310 drivers/scsi/lpfc/lpfc_init.c switch (phba->pci_dev_grp) { phba 13318 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 13320 drivers/scsi/lpfc/lpfc_init.c phba->pci_dev_grp); phba 13344 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 13347 drivers/scsi/lpfc/lpfc_init.c switch (phba->pci_dev_grp) { phba 13355 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 13357 drivers/scsi/lpfc/lpfc_init.c phba->pci_dev_grp); phba 13380 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 13383 drivers/scsi/lpfc/lpfc_init.c switch (phba->pci_dev_grp) { phba 13391 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 13393 drivers/scsi/lpfc/lpfc_init.c phba->pci_dev_grp); phba 13418 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 13421 drivers/scsi/lpfc/lpfc_init.c switch (phba->pci_dev_grp) { phba 13429 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 13431 drivers/scsi/lpfc/lpfc_init.c phba->pci_dev_grp); phba 13455 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 13458 drivers/scsi/lpfc/lpfc_init.c switch (phba->pci_dev_grp) { phba 13466 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 13468 drivers/scsi/lpfc/lpfc_init.c phba->pci_dev_grp); phba 13488 drivers/scsi/lpfc/lpfc_init.c struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; phba 13490 drivers/scsi/lpfc/lpfc_init.c switch (phba->pci_dev_grp) { phba 13498 drivers/scsi/lpfc/lpfc_init.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 13500 drivers/scsi/lpfc/lpfc_init.c phba->pci_dev_grp); phba 13517 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_oas_verify(struct lpfc_hba *phba) phba 13520 drivers/scsi/lpfc/lpfc_init.c if (!phba->cfg_EnableXLane) phba 13523 drivers/scsi/lpfc/lpfc_init.c if (phba->sli4_hba.pc_sli4_params.oas_supported) { phba 13524 drivers/scsi/lpfc/lpfc_init.c phba->cfg_fof = 1; phba 13526 drivers/scsi/lpfc/lpfc_init.c phba->cfg_fof = 0; phba 13527 drivers/scsi/lpfc/lpfc_init.c if (phba->device_data_mem_pool) phba 13528 drivers/scsi/lpfc/lpfc_init.c mempool_destroy(phba->device_data_mem_pool); phba 13529 drivers/scsi/lpfc/lpfc_init.c phba->device_data_mem_pool = NULL; phba 13543 drivers/scsi/lpfc/lpfc_init.c lpfc_sli4_ras_init(struct lpfc_hba *phba) phba 13545 drivers/scsi/lpfc/lpfc_init.c switch (phba->pcidev->device) { phba 13548 drivers/scsi/lpfc/lpfc_init.c phba->ras_fwlog.ras_hwsupport = true; phba 13549 drivers/scsi/lpfc/lpfc_init.c if (phba->cfg_ras_fwlog_func == PCI_FUNC(phba->pcidev->devfn) && phba 13550 drivers/scsi/lpfc/lpfc_init.c phba->cfg_ras_fwlog_buffsize) phba 13551 drivers/scsi/lpfc/lpfc_init.c phba->ras_fwlog.ras_enabled = true; phba 13553 drivers/scsi/lpfc/lpfc_init.c phba->ras_fwlog.ras_enabled = false; phba 13556 drivers/scsi/lpfc/lpfc_init.c phba->ras_fwlog.ras_hwsupport = false; phba 52 drivers/scsi/lpfc/lpfc_logmsg.h dev_printk(level, &((vport)->phba->pcidev)->dev, "%d:(%d):" \ phba 53 drivers/scsi/lpfc/lpfc_logmsg.h fmt, (vport)->phba->brd_no, vport->vpi, ##arg); } \ phba 56 drivers/scsi/lpfc/lpfc_logmsg.h #define lpfc_printf_log(phba, level, mask, fmt, arg...) \ phba 58 drivers/scsi/lpfc/lpfc_logmsg.h { uint32_t log_verbose = (phba)->pport ? \ phba 59 drivers/scsi/lpfc/lpfc_logmsg.h (phba)->pport->cfg_log_verbose : \ phba 60 drivers/scsi/lpfc/lpfc_logmsg.h (phba)->cfg_log_verbose; \ phba 62 drivers/scsi/lpfc/lpfc_logmsg.h dev_printk(level, &((phba)->pcidev)->dev, "%d:" \ phba 63 drivers/scsi/lpfc/lpfc_logmsg.h fmt, phba->brd_no, ##arg); \ phba 59 drivers/scsi/lpfc/lpfc_mbox.c lpfc_dump_static_vport(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb, phba 76 drivers/scsi/lpfc/lpfc_mbox.c if (phba->sli_rev != LPFC_SLI_REV4) { phba 85 drivers/scsi/lpfc/lpfc_mbox.c mp->virt = lpfc_mbuf_alloc(phba, 0, &mp->phys); phba 89 drivers/scsi/lpfc/lpfc_mbox.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, phba 113 drivers/scsi/lpfc/lpfc_mbox.c lpfc_down_link(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 135 drivers/scsi/lpfc/lpfc_mbox.c lpfc_dump_mem(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb, uint16_t offset, phba 168 drivers/scsi/lpfc/lpfc_mbox.c lpfc_dump_wakeup_param(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 183 drivers/scsi/lpfc/lpfc_mbox.c if (phba->sli_rev < LPFC_SLI_REV4) phba 205 drivers/scsi/lpfc/lpfc_mbox.c lpfc_read_nv(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) phba 230 drivers/scsi/lpfc/lpfc_mbox.c lpfc_config_async(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb, phba 257 drivers/scsi/lpfc/lpfc_mbox.c lpfc_heart_beat(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) phba 290 drivers/scsi/lpfc/lpfc_mbox.c lpfc_read_topology(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb, phba 328 drivers/scsi/lpfc/lpfc_mbox.c lpfc_clear_la(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) phba 335 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varClearLA.eventTag = phba->fc_eventTag; phba 356 drivers/scsi/lpfc/lpfc_mbox.c lpfc_config_link(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) phba 358 drivers/scsi/lpfc/lpfc_mbox.c struct lpfc_vport *vport = phba->pport; phba 365 drivers/scsi/lpfc/lpfc_mbox.c if (phba->cfg_cr_delay && (phba->sli_rev < LPFC_SLI_REV4)) { phba 368 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varCfgLnk.cr_delay = phba->cfg_cr_delay; phba 369 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varCfgLnk.cr_count = phba->cfg_cr_count; phba 373 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varCfgLnk.edtov = phba->fc_edtov; phba 374 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varCfgLnk.arbtov = phba->fc_arbtov; phba 375 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varCfgLnk.ratov = phba->fc_ratov; phba 376 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varCfgLnk.rttov = phba->fc_rttov; phba 377 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varCfgLnk.altov = phba->fc_altov; phba 378 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varCfgLnk.crtov = phba->fc_crtov; phba 380 drivers/scsi/lpfc/lpfc_mbox.c if (phba->bbcredit_support && phba->cfg_enable_bbcr) { phba 383 drivers/scsi/lpfc/lpfc_mbox.c &phba->sli4_hba.bbscn_params); phba 386 drivers/scsi/lpfc/lpfc_mbox.c if (phba->cfg_ack0 && (phba->sli_rev < LPFC_SLI_REV4)) phba 408 drivers/scsi/lpfc/lpfc_mbox.c lpfc_config_msi(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 414 drivers/scsi/lpfc/lpfc_mbox.c if (phba->cfg_use_msi != 2) { phba 415 drivers/scsi/lpfc/lpfc_mbox.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 417 drivers/scsi/lpfc/lpfc_mbox.c "cfg_use_msi: 0x%x\n", phba->cfg_use_msi); phba 421 drivers/scsi/lpfc/lpfc_mbox.c if (phba->sli_rev < 3) { phba 422 drivers/scsi/lpfc/lpfc_mbox.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 424 drivers/scsi/lpfc/lpfc_mbox.c "SLI Revision: 0x%x\n", phba->sli_rev); phba 487 drivers/scsi/lpfc/lpfc_mbox.c lpfc_init_link(struct lpfc_hba * phba, phba 516 drivers/scsi/lpfc/lpfc_mbox.c if ((phba->pcidev->device == PCI_DEVICE_ID_LANCER_G6_FC || phba 517 drivers/scsi/lpfc/lpfc_mbox.c phba->pcidev->device == PCI_DEVICE_ID_LANCER_G7_FC) && phba 520 drivers/scsi/lpfc/lpfc_mbox.c phba->cfg_topology = FLAGS_TOPOLOGY_MODE_PT_PT; phba 529 drivers/scsi/lpfc/lpfc_mbox.c vpd = &phba->vpd; phba 576 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varInitLnk.fabric_AL_PA = phba->fc_pref_ALPA; phba 602 drivers/scsi/lpfc/lpfc_mbox.c lpfc_read_sparam(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb, int vpi) phba 616 drivers/scsi/lpfc/lpfc_mbox.c mp->virt = lpfc_mbuf_alloc(phba, 0, &mp->phys); phba 621 drivers/scsi/lpfc/lpfc_mbox.c lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX, phba 630 drivers/scsi/lpfc/lpfc_mbox.c if (phba->sli_rev >= LPFC_SLI_REV3) phba 631 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varRdSparm.vpi = phba->vpi_ids[vpi]; phba 655 drivers/scsi/lpfc/lpfc_mbox.c lpfc_unreg_did(struct lpfc_hba * phba, uint16_t vpi, uint32_t did, phba 666 drivers/scsi/lpfc/lpfc_mbox.c (phba->sli_rev == LPFC_SLI_REV4)) phba 667 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varUnregDID.vpi = phba->vpi_ids[vpi]; phba 688 drivers/scsi/lpfc/lpfc_mbox.c lpfc_read_config(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) phba 713 drivers/scsi/lpfc/lpfc_mbox.c lpfc_read_lnk_stat(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) phba 750 drivers/scsi/lpfc/lpfc_mbox.c lpfc_reg_rpi(struct lpfc_hba *phba, uint16_t vpi, uint32_t did, phba 760 drivers/scsi/lpfc/lpfc_mbox.c if (phba->sli_rev == LPFC_SLI_REV4) phba 761 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varRegLogin.rpi = phba->sli4_hba.rpi_ids[rpi]; phba 762 drivers/scsi/lpfc/lpfc_mbox.c if (phba->sli_rev >= LPFC_SLI_REV3) phba 763 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varRegLogin.vpi = phba->vpi_ids[vpi]; phba 769 drivers/scsi/lpfc/lpfc_mbox.c mp->virt = lpfc_mbuf_alloc(phba, 0, &mp->phys); phba 774 drivers/scsi/lpfc/lpfc_mbox.c lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX, phba 814 drivers/scsi/lpfc/lpfc_mbox.c lpfc_unreg_login(struct lpfc_hba *phba, uint16_t vpi, uint32_t rpi, phba 824 drivers/scsi/lpfc/lpfc_mbox.c if (phba->sli_rev >= LPFC_SLI_REV3) phba 825 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varUnregLogin.vpi = phba->vpi_ids[vpi]; phba 843 drivers/scsi/lpfc/lpfc_mbox.c struct lpfc_hba *phba = vport->phba; phba 847 drivers/scsi/lpfc/lpfc_mbox.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 856 drivers/scsi/lpfc/lpfc_mbox.c lpfc_unreg_login(phba, vport->vpi, phba->vpi_ids[vport->vpi], phba 862 drivers/scsi/lpfc/lpfc_mbox.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); phba 864 drivers/scsi/lpfc/lpfc_mbox.c mempool_free(mbox, phba->mbox_mem_pool); phba 887 drivers/scsi/lpfc/lpfc_mbox.c struct lpfc_hba *phba = vport->phba; phba 893 drivers/scsi/lpfc/lpfc_mbox.c if ((phba->sli_rev == LPFC_SLI_REV4) && phba 897 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varRegVpi.vpi = phba->vpi_ids[vport->vpi]; phba 899 drivers/scsi/lpfc/lpfc_mbox.c if (phba->sli_rev == LPFC_SLI_REV4) phba 900 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varRegVpi.vfi = phba->sli4_hba.vfi_ids[vport->vfi]; phba 902 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varRegVpi.vfi = vport->vfi + vport->phba->vfi_base; phba 931 drivers/scsi/lpfc/lpfc_mbox.c lpfc_unreg_vpi(struct lpfc_hba *phba, uint16_t vpi, LPFC_MBOXQ_t *pmb) phba 936 drivers/scsi/lpfc/lpfc_mbox.c if (phba->sli_rev == LPFC_SLI_REV3) phba 937 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varUnregVpi.vpi = phba->vpi_ids[vpi]; phba 938 drivers/scsi/lpfc/lpfc_mbox.c else if (phba->sli_rev >= LPFC_SLI_REV4) phba 939 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varUnregVpi.sli4_vpi = phba->vpi_ids[vpi]; phba 955 drivers/scsi/lpfc/lpfc_mbox.c lpfc_config_pcb_setup(struct lpfc_hba * phba) phba 957 drivers/scsi/lpfc/lpfc_mbox.c struct lpfc_sli *psli = &phba->sli; phba 959 drivers/scsi/lpfc/lpfc_mbox.c PCB_t *pcbp = phba->pcb; phba 971 drivers/scsi/lpfc/lpfc_mbox.c phba->sli_rev == 3 ? SLI3_IOCB_CMD_SIZE : phba 974 drivers/scsi/lpfc/lpfc_mbox.c phba->sli_rev == 3 ? SLI3_IOCB_RSP_SIZE : phba 991 drivers/scsi/lpfc/lpfc_mbox.c pring->sli.sli3.cmdringaddr = (void *)&phba->IOCBs[iocbCnt]; phba 994 drivers/scsi/lpfc/lpfc_mbox.c offset = (uint8_t *) &phba->IOCBs[iocbCnt] - phba 995 drivers/scsi/lpfc/lpfc_mbox.c (uint8_t *) phba->slim2p.virt; phba 996 drivers/scsi/lpfc/lpfc_mbox.c pdma_addr = phba->slim2p.phys + offset; phba 1002 drivers/scsi/lpfc/lpfc_mbox.c pring->sli.sli3.rspringaddr = (void *) &phba->IOCBs[iocbCnt]; phba 1005 drivers/scsi/lpfc/lpfc_mbox.c offset = (uint8_t *)&phba->IOCBs[iocbCnt] - phba 1006 drivers/scsi/lpfc/lpfc_mbox.c (uint8_t *)phba->slim2p.virt; phba 1007 drivers/scsi/lpfc/lpfc_mbox.c pdma_addr = phba->slim2p.phys + offset; phba 1029 drivers/scsi/lpfc/lpfc_mbox.c lpfc_read_rev(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) phba 1041 drivers/scsi/lpfc/lpfc_mbox.c lpfc_sli4_swap_str(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 1139 drivers/scsi/lpfc/lpfc_mbox.c lpfc_config_hbq(struct lpfc_hba *phba, uint32_t id, phba 1166 drivers/scsi/lpfc/lpfc_mbox.c hbqmb->hbqaddrLow = putPaddrLow(phba->hbqslimp.phys) + phba 1168 drivers/scsi/lpfc/lpfc_mbox.c hbqmb->hbqaddrHigh = putPaddrHigh(phba->hbqslimp.phys); phba 1216 drivers/scsi/lpfc/lpfc_mbox.c lpfc_config_ring(struct lpfc_hba * phba, int ring, LPFC_MBOXQ_t * pmb) phba 1230 drivers/scsi/lpfc/lpfc_mbox.c psli = &phba->sli; phba 1271 drivers/scsi/lpfc/lpfc_mbox.c lpfc_config_port(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 1273 drivers/scsi/lpfc/lpfc_mbox.c MAILBOX_t __iomem *mb_slim = (MAILBOX_t __iomem *) phba->MBslimaddr; phba 1288 drivers/scsi/lpfc/lpfc_mbox.c offset = (uint8_t *)phba->pcb - (uint8_t *)phba->slim2p.virt; phba 1289 drivers/scsi/lpfc/lpfc_mbox.c pdma_addr = phba->slim2p.phys + offset; phba 1298 drivers/scsi/lpfc/lpfc_mbox.c if (phba->sli_rev == LPFC_SLI_REV3 && phba->vpd.sli3Feat.cerbm) { phba 1299 drivers/scsi/lpfc/lpfc_mbox.c if (phba->cfg_enable_bg) phba 1301 drivers/scsi/lpfc/lpfc_mbox.c if (phba->cfg_enable_dss) phba 1306 drivers/scsi/lpfc/lpfc_mbox.c if (phba->max_vpi && phba->cfg_enable_npiv && phba 1307 drivers/scsi/lpfc/lpfc_mbox.c phba->vpd.sli3Feat.cmv) { phba 1311 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varCfgPort.max_vpi = phba->max_vpi = 0; phba 1313 drivers/scsi/lpfc/lpfc_mbox.c phba->sli_rev = LPFC_SLI_REV2; phba 1314 drivers/scsi/lpfc/lpfc_mbox.c mb->un.varCfgPort.sli_mode = phba->sli_rev; phba 1317 drivers/scsi/lpfc/lpfc_mbox.c if (phba->sli_rev == LPFC_SLI_REV3) phba 1321 drivers/scsi/lpfc/lpfc_mbox.c phba->pcb->type = TYPE_NATIVE_SLI2; phba 1322 drivers/scsi/lpfc/lpfc_mbox.c phba->pcb->feature = FEATURE_INITIAL_SLI2; phba 1325 drivers/scsi/lpfc/lpfc_mbox.c phba->pcb->mailBoxSize = sizeof(MAILBOX_t) + MAILBOX_EXT_SIZE; phba 1326 drivers/scsi/lpfc/lpfc_mbox.c offset = (uint8_t *)phba->mbox - (uint8_t *)phba->slim2p.virt; phba 1327 drivers/scsi/lpfc/lpfc_mbox.c pdma_addr = phba->slim2p.phys + offset; phba 1328 drivers/scsi/lpfc/lpfc_mbox.c phba->pcb->mbAddrHigh = putPaddrHigh(pdma_addr); phba 1329 drivers/scsi/lpfc/lpfc_mbox.c phba->pcb->mbAddrLow = putPaddrLow(pdma_addr); phba 1350 drivers/scsi/lpfc/lpfc_mbox.c pci_read_config_dword(phba->pcidev, PCI_BASE_ADDRESS_0, &bar_low); phba 1351 drivers/scsi/lpfc/lpfc_mbox.c pci_read_config_dword(phba->pcidev, PCI_BASE_ADDRESS_1, &bar_high); phba 1381 drivers/scsi/lpfc/lpfc_mbox.c if (phba->cfg_hostmem_hgp && phba->sli_rev != 3) { phba 1382 drivers/scsi/lpfc/lpfc_mbox.c phba->host_gp = &phba->mbox->us.s2.host[0]; phba 1383 drivers/scsi/lpfc/lpfc_mbox.c phba->hbq_put = NULL; phba 1384 drivers/scsi/lpfc/lpfc_mbox.c offset = (uint8_t *)&phba->mbox->us.s2.host - phba 1385 drivers/scsi/lpfc/lpfc_mbox.c (uint8_t *)phba->slim2p.virt; phba 1386 drivers/scsi/lpfc/lpfc_mbox.c pdma_addr = phba->slim2p.phys + offset; phba 1387 drivers/scsi/lpfc/lpfc_mbox.c phba->pcb->hgpAddrHigh = putPaddrHigh(pdma_addr); phba 1388 drivers/scsi/lpfc/lpfc_mbox.c phba->pcb->hgpAddrLow = putPaddrLow(pdma_addr); phba 1393 drivers/scsi/lpfc/lpfc_mbox.c if (phba->sli_rev == 3) { phba 1394 drivers/scsi/lpfc/lpfc_mbox.c phba->host_gp = &mb_slim->us.s3.host[0]; phba 1395 drivers/scsi/lpfc/lpfc_mbox.c phba->hbq_put = &mb_slim->us.s3.hbq_put[0]; phba 1397 drivers/scsi/lpfc/lpfc_mbox.c phba->host_gp = &mb_slim->us.s2.host[0]; phba 1398 drivers/scsi/lpfc/lpfc_mbox.c phba->hbq_put = NULL; phba 1402 drivers/scsi/lpfc/lpfc_mbox.c phba->pcb->hgpAddrLow = (bar_low & PCI_BASE_ADDRESS_MEM_MASK) + phba 1403 drivers/scsi/lpfc/lpfc_mbox.c (void __iomem *)phba->host_gp - phba 1404 drivers/scsi/lpfc/lpfc_mbox.c (void __iomem *)phba->MBslimaddr; phba 1406 drivers/scsi/lpfc/lpfc_mbox.c phba->pcb->hgpAddrHigh = bar_high; phba 1408 drivers/scsi/lpfc/lpfc_mbox.c phba->pcb->hgpAddrHigh = 0; phba 1412 drivers/scsi/lpfc/lpfc_mbox.c for (i = 0; i < phba->sli.num_rings; i++) { phba 1413 drivers/scsi/lpfc/lpfc_mbox.c lpfc_memcpy_to_slim(phba->host_gp + i, &hgp, phba 1414 drivers/scsi/lpfc/lpfc_mbox.c sizeof(*phba->host_gp)); phba 1419 drivers/scsi/lpfc/lpfc_mbox.c if (phba->sli_rev == 3) phba 1424 drivers/scsi/lpfc/lpfc_mbox.c pdma_addr = phba->slim2p.phys + pgp_offset; phba 1425 drivers/scsi/lpfc/lpfc_mbox.c phba->pcb->pgpAddrHigh = putPaddrHigh(pdma_addr); phba 1426 drivers/scsi/lpfc/lpfc_mbox.c phba->pcb->pgpAddrLow = putPaddrLow(pdma_addr); phba 1429 drivers/scsi/lpfc/lpfc_mbox.c lpfc_config_pcb_setup(phba); phba 1432 drivers/scsi/lpfc/lpfc_mbox.c if (lpfc_is_LC_HBA(phba->pcidev->device)) { phba 1435 drivers/scsi/lpfc/lpfc_mbox.c lpfc_hba_init(phba, hbainit); phba 1441 drivers/scsi/lpfc/lpfc_mbox.c lpfc_sli_pcimem_bcopy(phba->pcb, phba->pcb, sizeof(PCB_t)); phba 1460 drivers/scsi/lpfc/lpfc_mbox.c lpfc_kill_board(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) phba 1481 drivers/scsi/lpfc/lpfc_mbox.c lpfc_mbox_put(struct lpfc_hba * phba, LPFC_MBOXQ_t * mbq) phba 1485 drivers/scsi/lpfc/lpfc_mbox.c psli = &phba->sli; phba 1509 drivers/scsi/lpfc/lpfc_mbox.c lpfc_mbox_get(struct lpfc_hba * phba) phba 1512 drivers/scsi/lpfc/lpfc_mbox.c struct lpfc_sli *psli = &phba->sli; phba 1532 drivers/scsi/lpfc/lpfc_mbox.c __lpfc_mbox_cmpl_put(struct lpfc_hba *phba, LPFC_MBOXQ_t *mbq) phba 1534 drivers/scsi/lpfc/lpfc_mbox.c list_add_tail(&mbq->list, &phba->sli.mboxq_cmpl); phba 1548 drivers/scsi/lpfc/lpfc_mbox.c lpfc_mbox_cmpl_put(struct lpfc_hba *phba, LPFC_MBOXQ_t *mbq) phba 1553 drivers/scsi/lpfc/lpfc_mbox.c spin_lock_irqsave(&phba->hbalock, iflag); phba 1554 drivers/scsi/lpfc/lpfc_mbox.c __lpfc_mbox_cmpl_put(phba, mbq); phba 1555 drivers/scsi/lpfc/lpfc_mbox.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 1571 drivers/scsi/lpfc/lpfc_mbox.c lpfc_mbox_cmd_check(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 1579 drivers/scsi/lpfc/lpfc_mbox.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_VPORT, phba 1600 drivers/scsi/lpfc/lpfc_mbox.c lpfc_mbox_dev_check(struct lpfc_hba *phba) phba 1603 drivers/scsi/lpfc/lpfc_mbox.c if (unlikely(pci_channel_offline(phba->pcidev))) phba 1607 drivers/scsi/lpfc/lpfc_mbox.c if (phba->link_state == LPFC_HBA_ERROR) phba 1625 drivers/scsi/lpfc/lpfc_mbox.c lpfc_mbox_tmo_val(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 1643 drivers/scsi/lpfc/lpfc_mbox.c subsys = lpfc_sli_config_mbox_subsys_get(phba, mboxq); phba 1644 drivers/scsi/lpfc/lpfc_mbox.c opcode = lpfc_sli_config_mbox_opcode_get(phba, mboxq); phba 1728 drivers/scsi/lpfc/lpfc_mbox.c lpfc_sli4_mbox_cmd_free(struct lpfc_hba *phba, struct lpfcMboxq *mbox) phba 1739 drivers/scsi/lpfc/lpfc_mbox.c mempool_free(mbox, phba->mbox_mem_pool); phba 1747 drivers/scsi/lpfc/lpfc_mbox.c mempool_free(mbox, phba->mbox_mem_pool); phba 1754 drivers/scsi/lpfc/lpfc_mbox.c dma_free_coherent(&phba->pcidev->dev, SLI4_PAGE_SIZE, phba 1760 drivers/scsi/lpfc/lpfc_mbox.c mempool_free(mbox, phba->mbox_mem_pool); phba 1778 drivers/scsi/lpfc/lpfc_mbox.c lpfc_sli4_config(struct lpfc_hba *phba, struct lpfcMboxq *mbox, phba 1819 drivers/scsi/lpfc/lpfc_mbox.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, phba 1830 drivers/scsi/lpfc/lpfc_mbox.c viraddr = dma_alloc_coherent(&phba->pcidev->dev, phba 1886 drivers/scsi/lpfc/lpfc_mbox.c lpfc_sli4_mbox_rsrc_extent(struct lpfc_hba *phba, struct lpfcMboxq *mbox, phba 1920 drivers/scsi/lpfc/lpfc_mbox.c opcode = lpfc_sli_config_mbox_opcode_get(phba, mbox); phba 1937 drivers/scsi/lpfc/lpfc_mbox.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, phba 1957 drivers/scsi/lpfc/lpfc_mbox.c lpfc_sli_config_mbox_subsys_get(struct lpfc_hba *phba, LPFC_MBOXQ_t *mbox) phba 1990 drivers/scsi/lpfc/lpfc_mbox.c lpfc_sli_config_mbox_opcode_get(struct lpfc_hba *phba, LPFC_MBOXQ_t *mbox) phba 2024 drivers/scsi/lpfc/lpfc_mbox.c lpfc_sli4_mbx_read_fcf_rec(struct lpfc_hba *phba, phba 2041 drivers/scsi/lpfc/lpfc_mbox.c alloc_len = lpfc_sli4_config(phba, mboxq, LPFC_MBOX_SUBSYSTEM_FCOE, phba 2046 drivers/scsi/lpfc/lpfc_mbox.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, phba 2077 drivers/scsi/lpfc/lpfc_mbox.c lpfc_request_features(struct lpfc_hba *phba, struct lpfcMboxq *mboxq) phba 2088 drivers/scsi/lpfc/lpfc_mbox.c if (phba->cfg_enable_bg) phba 2092 drivers/scsi/lpfc/lpfc_mbox.c if (phba->max_vpi && phba->cfg_enable_npiv) phba 2095 drivers/scsi/lpfc/lpfc_mbox.c if (phba->nvmet_support) { phba 2128 drivers/scsi/lpfc/lpfc_mbox.c vport->phba->sli4_hba.vfi_ids[vport->vfi]); phba 2130 drivers/scsi/lpfc/lpfc_mbox.c vport->phba->vpi_ids[vport->vpi]); phba 2132 drivers/scsi/lpfc/lpfc_mbox.c vport->phba->fcf.fcfi); phba 2150 drivers/scsi/lpfc/lpfc_mbox.c struct lpfc_hba *phba = vport->phba; phba 2158 drivers/scsi/lpfc/lpfc_mbox.c phba->sli4_hba.vfi_ids[vport->vfi]); phba 2159 drivers/scsi/lpfc/lpfc_mbox.c bf_set(lpfc_reg_vfi_fcfi, reg_vfi, phba->fcf.fcfi); phba 2160 drivers/scsi/lpfc/lpfc_mbox.c bf_set(lpfc_reg_vfi_vpi, reg_vfi, phba->vpi_ids[vport->vpi]); phba 2164 drivers/scsi/lpfc/lpfc_mbox.c reg_vfi->e_d_tov = phba->fc_edtov; phba 2165 drivers/scsi/lpfc/lpfc_mbox.c reg_vfi->r_a_tov = phba->fc_ratov; phba 2175 drivers/scsi/lpfc/lpfc_mbox.c if ((phba->sli4_hba.lnk_info.lnk_tp == LPFC_LNK_TYPE_FC) && phba 2177 drivers/scsi/lpfc/lpfc_mbox.c (!phba->fc_topology_changed)) phba 2182 drivers/scsi/lpfc/lpfc_mbox.c bbscn_fabric = (phba->fc_fabparam.cmn.bbRcvSizeMsb >> 4) & 0xF; phba 2184 drivers/scsi/lpfc/lpfc_mbox.c if (phba->bbcredit_support && phba->cfg_enable_bbcr && phba 2187 drivers/scsi/lpfc/lpfc_mbox.c &phba->sli4_hba.bbscn_params); phba 2190 drivers/scsi/lpfc/lpfc_mbox.c &phba->sli4_hba.bbscn_params); phba 2206 drivers/scsi/lpfc/lpfc_mbox.c phba->fcf.fcfi, phba 2207 drivers/scsi/lpfc/lpfc_mbox.c phba->sli4_hba.vfi_ids[vport->vfi], phba 2208 drivers/scsi/lpfc/lpfc_mbox.c phba->vpi_ids[vport->vpi], phba 2210 drivers/scsi/lpfc/lpfc_mbox.c vport->port_state, phba->fc_topology_changed, phba 2227 drivers/scsi/lpfc/lpfc_mbox.c lpfc_init_vpi(struct lpfc_hba *phba, struct lpfcMboxq *mbox, uint16_t vpi) phba 2232 drivers/scsi/lpfc/lpfc_mbox.c phba->vpi_ids[vpi]); phba 2234 drivers/scsi/lpfc/lpfc_mbox.c phba->sli4_hba.vfi_ids[phba->pport->vfi]); phba 2254 drivers/scsi/lpfc/lpfc_mbox.c vport->phba->sli4_hba.vfi_ids[vport->vfi]); phba 2266 drivers/scsi/lpfc/lpfc_mbox.c lpfc_sli4_dump_cfg_rg23(struct lpfc_hba *phba, struct lpfcMboxq *mbox) phba 2276 drivers/scsi/lpfc/lpfc_mbox.c mp->virt = lpfc_mbuf_alloc(phba, 0, &mp->phys); phba 2281 drivers/scsi/lpfc/lpfc_mbox.c lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX, phba 2303 drivers/scsi/lpfc/lpfc_mbox.c lpfc_mbx_cmpl_rdp_link_stat(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 2319 drivers/scsi/lpfc/lpfc_mbox.c lpfc_sli4_mbox_cmd_free(phba, mboxq); phba 2320 drivers/scsi/lpfc/lpfc_mbox.c rdp_context->cmpl(phba, rdp_context, rc); phba 2324 drivers/scsi/lpfc/lpfc_mbox.c lpfc_mbx_cmpl_rdp_page_a2(struct lpfc_hba *phba, LPFC_MBOXQ_t *mbox) phba 2337 drivers/scsi/lpfc/lpfc_mbox.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 2341 drivers/scsi/lpfc/lpfc_mbox.c lpfc_read_lnk_stat(phba, mbox); phba 2345 drivers/scsi/lpfc/lpfc_mbox.c if (lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT) == MBX_NOT_FINISHED) phba 2351 drivers/scsi/lpfc/lpfc_mbox.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 2354 drivers/scsi/lpfc/lpfc_mbox.c lpfc_sli4_mbox_cmd_free(phba, mbox); phba 2355 drivers/scsi/lpfc/lpfc_mbox.c rdp_context->cmpl(phba, rdp_context, FAILURE); phba 2359 drivers/scsi/lpfc/lpfc_mbox.c lpfc_mbx_cmpl_rdp_page_a0(struct lpfc_hba *phba, LPFC_MBOXQ_t *mbox) phba 2385 drivers/scsi/lpfc/lpfc_mbox.c &mbox->u.mqe.un.mem_dump_type3, phba->sli4_hba.physical_port); phba 2395 drivers/scsi/lpfc/lpfc_mbox.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); phba 2402 drivers/scsi/lpfc/lpfc_mbox.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 2404 drivers/scsi/lpfc/lpfc_mbox.c lpfc_sli4_mbox_cmd_free(phba, mbox); phba 2405 drivers/scsi/lpfc/lpfc_mbox.c rdp_context->cmpl(phba, rdp_context, FAILURE); phba 2418 drivers/scsi/lpfc/lpfc_mbox.c lpfc_sli4_dump_page_a0(struct lpfc_hba *phba, struct lpfcMboxq *mbox) phba 2426 drivers/scsi/lpfc/lpfc_mbox.c mp->virt = lpfc_mbuf_alloc(phba, 0, &mp->phys); phba 2429 drivers/scsi/lpfc/lpfc_mbox.c lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX, phba 2444 drivers/scsi/lpfc/lpfc_mbox.c &mbox->u.mqe.un.mem_dump_type3, phba->sli4_hba.physical_port); phba 2469 drivers/scsi/lpfc/lpfc_mbox.c lpfc_reg_fcfi(struct lpfc_hba *phba, struct lpfcMboxq *mbox) phba 2476 drivers/scsi/lpfc/lpfc_mbox.c if (phba->nvmet_support == 0) { phba 2478 drivers/scsi/lpfc/lpfc_mbox.c phba->sli4_hba.hdr_rq->queue_id); phba 2489 drivers/scsi/lpfc/lpfc_mbox.c (~phba->fcf.addr_mode) & 0x3); phba 2492 drivers/scsi/lpfc/lpfc_mbox.c if (phba->cfg_nvmet_mrq != 1) phba 2496 drivers/scsi/lpfc/lpfc_mbox.c phba->sli4_hba.nvmet_mrq_hdr[0]->queue_id); phba 2504 drivers/scsi/lpfc/lpfc_mbox.c phba->sli4_hba.hdr_rq->queue_id); phba 2514 drivers/scsi/lpfc/lpfc_mbox.c phba->fcf.current_rec.fcf_indx); phba 2515 drivers/scsi/lpfc/lpfc_mbox.c if (phba->fcf.current_rec.vlan_id != LPFC_FCOE_NULL_VID) { phba 2518 drivers/scsi/lpfc/lpfc_mbox.c phba->fcf.current_rec.vlan_id); phba 2537 drivers/scsi/lpfc/lpfc_mbox.c lpfc_reg_fcfi_mrq(struct lpfc_hba *phba, struct lpfcMboxq *mbox, int mode) phba 2542 drivers/scsi/lpfc/lpfc_mbox.c if (phba->cfg_nvmet_mrq <= 1) phba 2550 drivers/scsi/lpfc/lpfc_mbox.c phba->fcf.current_rec.fcf_indx); phba 2551 drivers/scsi/lpfc/lpfc_mbox.c if (phba->fcf.current_rec.vlan_id != LPFC_FCOE_NULL_VID) { phba 2554 drivers/scsi/lpfc/lpfc_mbox.c phba->fcf.current_rec.vlan_id); phba 2560 drivers/scsi/lpfc/lpfc_mbox.c phba->sli4_hba.nvmet_mrq_hdr[0]->queue_id); phba 2572 drivers/scsi/lpfc/lpfc_mbox.c bf_set(lpfc_reg_fcfi_mrq_npairs, reg_fcfi, phba->cfg_nvmet_mrq); phba 2575 drivers/scsi/lpfc/lpfc_mbox.c phba->sli4_hba.hdr_rq->queue_id); phba 2613 drivers/scsi/lpfc/lpfc_mbox.c struct lpfc_hba *phba = ndlp->phba; phba 2620 drivers/scsi/lpfc/lpfc_mbox.c phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]); phba 2622 drivers/scsi/lpfc/lpfc_mbox.c resume_rpi->event_tag = ndlp->phba->fc_eventTag; phba 54 drivers/scsi/lpfc/lpfc_mem.c lpfc_mem_alloc_active_rrq_pool_s4(struct lpfc_hba *phba) { phba 56 drivers/scsi/lpfc/lpfc_mem.c int max_xri = phba->sli4_hba.max_cfg_param.max_xri; phba 62 drivers/scsi/lpfc/lpfc_mem.c phba->cfg_rrq_xri_bitmap_sz = bytes; phba 63 drivers/scsi/lpfc/lpfc_mem.c phba->active_rrq_pool = mempool_create_kmalloc_pool(LPFC_MEM_POOL_SIZE, phba 65 drivers/scsi/lpfc/lpfc_mem.c if (!phba->active_rrq_pool) phba 87 drivers/scsi/lpfc/lpfc_mem.c lpfc_mem_alloc(struct lpfc_hba *phba, int align) phba 89 drivers/scsi/lpfc/lpfc_mem.c struct lpfc_dma_pool *pool = &phba->lpfc_mbuf_safety_pool; phba 93 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_mbuf_pool = dma_pool_create("lpfc_mbuf_pool", &phba->pcidev->dev, phba 96 drivers/scsi/lpfc/lpfc_mem.c if (!phba->lpfc_mbuf_pool) phba 108 drivers/scsi/lpfc/lpfc_mem.c pool->elements[i].virt = dma_pool_alloc(phba->lpfc_mbuf_pool, phba 116 drivers/scsi/lpfc/lpfc_mem.c phba->mbox_mem_pool = mempool_create_kmalloc_pool(LPFC_MEM_POOL_SIZE, phba 118 drivers/scsi/lpfc/lpfc_mem.c if (!phba->mbox_mem_pool) phba 121 drivers/scsi/lpfc/lpfc_mem.c phba->nlp_mem_pool = mempool_create_kmalloc_pool(LPFC_MEM_POOL_SIZE, phba 123 drivers/scsi/lpfc/lpfc_mem.c if (!phba->nlp_mem_pool) phba 126 drivers/scsi/lpfc/lpfc_mem.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 127 drivers/scsi/lpfc/lpfc_mem.c phba->rrq_pool = phba 130 drivers/scsi/lpfc/lpfc_mem.c if (!phba->rrq_pool) phba 132 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_hrb_pool = dma_pool_create("lpfc_hrb_pool", phba 133 drivers/scsi/lpfc/lpfc_mem.c &phba->pcidev->dev, phba 135 drivers/scsi/lpfc/lpfc_mem.c if (!phba->lpfc_hrb_pool) phba 138 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_drb_pool = dma_pool_create("lpfc_drb_pool", phba 139 drivers/scsi/lpfc/lpfc_mem.c &phba->pcidev->dev, phba 141 drivers/scsi/lpfc/lpfc_mem.c if (!phba->lpfc_drb_pool) phba 143 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_hbq_pool = NULL; phba 145 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_hbq_pool = dma_pool_create("lpfc_hbq_pool", phba 146 drivers/scsi/lpfc/lpfc_mem.c &phba->pcidev->dev, LPFC_BPL_SIZE, align, 0); phba 147 drivers/scsi/lpfc/lpfc_mem.c if (!phba->lpfc_hbq_pool) phba 149 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_hrb_pool = NULL; phba 150 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_drb_pool = NULL; phba 153 drivers/scsi/lpfc/lpfc_mem.c if (phba->cfg_EnableXLane) { phba 154 drivers/scsi/lpfc/lpfc_mem.c phba->device_data_mem_pool = mempool_create_kmalloc_pool( phba 157 drivers/scsi/lpfc/lpfc_mem.c if (!phba->device_data_mem_pool) phba 160 drivers/scsi/lpfc/lpfc_mem.c phba->device_data_mem_pool = NULL; phba 165 drivers/scsi/lpfc/lpfc_mem.c dma_pool_destroy(phba->lpfc_drb_pool); phba 166 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_drb_pool = NULL; phba 168 drivers/scsi/lpfc/lpfc_mem.c dma_pool_destroy(phba->lpfc_hrb_pool); phba 169 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_hrb_pool = NULL; phba 171 drivers/scsi/lpfc/lpfc_mem.c mempool_destroy(phba->rrq_pool); phba 172 drivers/scsi/lpfc/lpfc_mem.c phba->rrq_pool = NULL; phba 174 drivers/scsi/lpfc/lpfc_mem.c mempool_destroy(phba->nlp_mem_pool); phba 175 drivers/scsi/lpfc/lpfc_mem.c phba->nlp_mem_pool = NULL; phba 177 drivers/scsi/lpfc/lpfc_mem.c mempool_destroy(phba->mbox_mem_pool); phba 178 drivers/scsi/lpfc/lpfc_mem.c phba->mbox_mem_pool = NULL; phba 181 drivers/scsi/lpfc/lpfc_mem.c dma_pool_free(phba->lpfc_mbuf_pool, pool->elements[i].virt, phba 185 drivers/scsi/lpfc/lpfc_mem.c dma_pool_destroy(phba->lpfc_mbuf_pool); phba 186 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_mbuf_pool = NULL; phba 192 drivers/scsi/lpfc/lpfc_mem.c lpfc_nvmet_mem_alloc(struct lpfc_hba *phba) phba 194 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_nvmet_drb_pool = phba 196 drivers/scsi/lpfc/lpfc_mem.c &phba->pcidev->dev, LPFC_NVMET_DATA_BUF_SIZE, phba 198 drivers/scsi/lpfc/lpfc_mem.c if (!phba->lpfc_nvmet_drb_pool) { phba 199 drivers/scsi/lpfc/lpfc_mem.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 216 drivers/scsi/lpfc/lpfc_mem.c lpfc_mem_free(struct lpfc_hba *phba) phba 219 drivers/scsi/lpfc/lpfc_mem.c struct lpfc_dma_pool *pool = &phba->lpfc_mbuf_safety_pool; phba 223 drivers/scsi/lpfc/lpfc_mem.c lpfc_sli_hbqbuf_free_all(phba); phba 224 drivers/scsi/lpfc/lpfc_mem.c dma_pool_destroy(phba->lpfc_nvmet_drb_pool); phba 225 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_nvmet_drb_pool = NULL; phba 227 drivers/scsi/lpfc/lpfc_mem.c dma_pool_destroy(phba->lpfc_drb_pool); phba 228 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_drb_pool = NULL; phba 230 drivers/scsi/lpfc/lpfc_mem.c dma_pool_destroy(phba->lpfc_hrb_pool); phba 231 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_hrb_pool = NULL; phba 233 drivers/scsi/lpfc/lpfc_mem.c dma_pool_destroy(phba->txrdy_payload_pool); phba 234 drivers/scsi/lpfc/lpfc_mem.c phba->txrdy_payload_pool = NULL; phba 236 drivers/scsi/lpfc/lpfc_mem.c dma_pool_destroy(phba->lpfc_hbq_pool); phba 237 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_hbq_pool = NULL; phba 239 drivers/scsi/lpfc/lpfc_mem.c mempool_destroy(phba->rrq_pool); phba 240 drivers/scsi/lpfc/lpfc_mem.c phba->rrq_pool = NULL; phba 243 drivers/scsi/lpfc/lpfc_mem.c mempool_destroy(phba->nlp_mem_pool); phba 244 drivers/scsi/lpfc/lpfc_mem.c phba->nlp_mem_pool = NULL; phba 245 drivers/scsi/lpfc/lpfc_mem.c if (phba->sli_rev == LPFC_SLI_REV4 && phba->active_rrq_pool) { phba 246 drivers/scsi/lpfc/lpfc_mem.c mempool_destroy(phba->active_rrq_pool); phba 247 drivers/scsi/lpfc/lpfc_mem.c phba->active_rrq_pool = NULL; phba 251 drivers/scsi/lpfc/lpfc_mem.c mempool_destroy(phba->mbox_mem_pool); phba 252 drivers/scsi/lpfc/lpfc_mem.c phba->mbox_mem_pool = NULL; phba 256 drivers/scsi/lpfc/lpfc_mem.c dma_pool_free(phba->lpfc_mbuf_pool, pool->elements[i].virt, phba 260 drivers/scsi/lpfc/lpfc_mem.c dma_pool_destroy(phba->lpfc_mbuf_pool); phba 261 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_mbuf_pool = NULL; phba 264 drivers/scsi/lpfc/lpfc_mem.c if (phba->device_data_mem_pool) { phba 266 drivers/scsi/lpfc/lpfc_mem.c while (!list_empty(&phba->luns)) { phba 267 drivers/scsi/lpfc/lpfc_mem.c device_data = list_first_entry(&phba->luns, phba 271 drivers/scsi/lpfc/lpfc_mem.c mempool_free(device_data, phba->device_data_mem_pool); phba 273 drivers/scsi/lpfc/lpfc_mem.c mempool_destroy(phba->device_data_mem_pool); phba 275 drivers/scsi/lpfc/lpfc_mem.c phba->device_data_mem_pool = NULL; phba 291 drivers/scsi/lpfc/lpfc_mem.c lpfc_mem_free_all(struct lpfc_hba *phba) phba 293 drivers/scsi/lpfc/lpfc_mem.c struct lpfc_sli *psli = &phba->sli; phba 301 drivers/scsi/lpfc/lpfc_mem.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 305 drivers/scsi/lpfc/lpfc_mem.c mempool_free(mbox, phba->mbox_mem_pool); phba 311 drivers/scsi/lpfc/lpfc_mem.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 315 drivers/scsi/lpfc/lpfc_mem.c mempool_free(mbox, phba->mbox_mem_pool); phba 318 drivers/scsi/lpfc/lpfc_mem.c spin_lock_irq(&phba->hbalock); phba 320 drivers/scsi/lpfc/lpfc_mem.c spin_unlock_irq(&phba->hbalock); phba 325 drivers/scsi/lpfc/lpfc_mem.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 328 drivers/scsi/lpfc/lpfc_mem.c mempool_free(mbox, phba->mbox_mem_pool); phba 333 drivers/scsi/lpfc/lpfc_mem.c lpfc_mem_free(phba); phba 336 drivers/scsi/lpfc/lpfc_mem.c dma_pool_destroy(phba->lpfc_sg_dma_buf_pool); phba 337 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_sg_dma_buf_pool = NULL; phba 339 drivers/scsi/lpfc/lpfc_mem.c dma_pool_destroy(phba->lpfc_cmd_rsp_buf_pool); phba 340 drivers/scsi/lpfc/lpfc_mem.c phba->lpfc_cmd_rsp_buf_pool = NULL; phba 368 drivers/scsi/lpfc/lpfc_mem.c lpfc_mbuf_alloc(struct lpfc_hba *phba, int mem_flags, dma_addr_t *handle) phba 370 drivers/scsi/lpfc/lpfc_mem.c struct lpfc_dma_pool *pool = &phba->lpfc_mbuf_safety_pool; phba 374 drivers/scsi/lpfc/lpfc_mem.c ret = dma_pool_alloc(phba->lpfc_mbuf_pool, GFP_KERNEL, handle); phba 376 drivers/scsi/lpfc/lpfc_mem.c spin_lock_irqsave(&phba->hbalock, iflags); phba 382 drivers/scsi/lpfc/lpfc_mem.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 401 drivers/scsi/lpfc/lpfc_mem.c __lpfc_mbuf_free(struct lpfc_hba * phba, void *virt, dma_addr_t dma) phba 403 drivers/scsi/lpfc/lpfc_mem.c struct lpfc_dma_pool *pool = &phba->lpfc_mbuf_safety_pool; phba 410 drivers/scsi/lpfc/lpfc_mem.c dma_pool_free(phba->lpfc_mbuf_pool, virt, dma); phba 429 drivers/scsi/lpfc/lpfc_mem.c lpfc_mbuf_free(struct lpfc_hba * phba, void *virt, dma_addr_t dma) phba 433 drivers/scsi/lpfc/lpfc_mem.c spin_lock_irqsave(&phba->hbalock, iflags); phba 434 drivers/scsi/lpfc/lpfc_mem.c __lpfc_mbuf_free(phba, virt, dma); phba 435 drivers/scsi/lpfc/lpfc_mem.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 454 drivers/scsi/lpfc/lpfc_mem.c lpfc_nvmet_buf_alloc(struct lpfc_hba *phba, int mem_flags, dma_addr_t *handle) phba 458 drivers/scsi/lpfc/lpfc_mem.c ret = dma_pool_alloc(phba->lpfc_sg_dma_buf_pool, GFP_KERNEL, handle); phba 472 drivers/scsi/lpfc/lpfc_mem.c lpfc_nvmet_buf_free(struct lpfc_hba *phba, void *virt, dma_addr_t dma) phba 474 drivers/scsi/lpfc/lpfc_mem.c dma_pool_free(phba->lpfc_sg_dma_buf_pool, virt, dma); phba 491 drivers/scsi/lpfc/lpfc_mem.c lpfc_els_hbq_alloc(struct lpfc_hba *phba) phba 499 drivers/scsi/lpfc/lpfc_mem.c hbqbp->dbuf.virt = dma_pool_alloc(phba->lpfc_hbq_pool, GFP_KERNEL, phba 522 drivers/scsi/lpfc/lpfc_mem.c lpfc_els_hbq_free(struct lpfc_hba *phba, struct hbq_dmabuf *hbqbp) phba 524 drivers/scsi/lpfc/lpfc_mem.c dma_pool_free(phba->lpfc_hbq_pool, hbqbp->dbuf.virt, hbqbp->dbuf.phys); phba 543 drivers/scsi/lpfc/lpfc_mem.c lpfc_sli4_rb_alloc(struct lpfc_hba *phba) phba 551 drivers/scsi/lpfc/lpfc_mem.c dma_buf->hbuf.virt = dma_pool_alloc(phba->lpfc_hrb_pool, GFP_KERNEL, phba 557 drivers/scsi/lpfc/lpfc_mem.c dma_buf->dbuf.virt = dma_pool_alloc(phba->lpfc_drb_pool, GFP_KERNEL, phba 560 drivers/scsi/lpfc/lpfc_mem.c dma_pool_free(phba->lpfc_hrb_pool, dma_buf->hbuf.virt, phba 582 drivers/scsi/lpfc/lpfc_mem.c lpfc_sli4_rb_free(struct lpfc_hba *phba, struct hbq_dmabuf *dmab) phba 584 drivers/scsi/lpfc/lpfc_mem.c dma_pool_free(phba->lpfc_hrb_pool, dmab->hbuf.virt, dmab->hbuf.phys); phba 585 drivers/scsi/lpfc/lpfc_mem.c dma_pool_free(phba->lpfc_drb_pool, dmab->dbuf.virt, dmab->dbuf.phys); phba 603 drivers/scsi/lpfc/lpfc_mem.c lpfc_sli4_nvmet_alloc(struct lpfc_hba *phba) phba 611 drivers/scsi/lpfc/lpfc_mem.c dma_buf->hbuf.virt = dma_pool_alloc(phba->lpfc_hrb_pool, GFP_KERNEL, phba 617 drivers/scsi/lpfc/lpfc_mem.c dma_buf->dbuf.virt = dma_pool_alloc(phba->lpfc_nvmet_drb_pool, phba 620 drivers/scsi/lpfc/lpfc_mem.c dma_pool_free(phba->lpfc_hrb_pool, dma_buf->hbuf.virt, phba 642 drivers/scsi/lpfc/lpfc_mem.c lpfc_sli4_nvmet_free(struct lpfc_hba *phba, struct rqb_dmabuf *dmab) phba 644 drivers/scsi/lpfc/lpfc_mem.c dma_pool_free(phba->lpfc_hrb_pool, dmab->hbuf.virt, dmab->hbuf.phys); phba 645 drivers/scsi/lpfc/lpfc_mem.c dma_pool_free(phba->lpfc_nvmet_drb_pool, phba 663 drivers/scsi/lpfc/lpfc_mem.c lpfc_in_buf_free(struct lpfc_hba *phba, struct lpfc_dmabuf *mp) phba 671 drivers/scsi/lpfc/lpfc_mem.c if (phba->sli3_options & LPFC_SLI3_HBQ_ENABLED) { phba 674 drivers/scsi/lpfc/lpfc_mem.c spin_lock_irqsave(&phba->hbalock, flags); phba 675 drivers/scsi/lpfc/lpfc_mem.c if (!phba->hbq_in_use) { phba 676 drivers/scsi/lpfc/lpfc_mem.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 681 drivers/scsi/lpfc/lpfc_mem.c (phba->hbqs[LPFC_ELS_HBQ].hbq_free_buffer) phba 682 drivers/scsi/lpfc/lpfc_mem.c (phba, hbq_entry); phba 684 drivers/scsi/lpfc/lpfc_mem.c lpfc_sli_free_hbq(phba, hbq_entry); phba 686 drivers/scsi/lpfc/lpfc_mem.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 688 drivers/scsi/lpfc/lpfc_mem.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 707 drivers/scsi/lpfc/lpfc_mem.c lpfc_rq_buf_free(struct lpfc_hba *phba, struct lpfc_dmabuf *mp) phba 722 drivers/scsi/lpfc/lpfc_mem.c spin_lock_irqsave(&phba->hbalock, flags); phba 730 drivers/scsi/lpfc/lpfc_mem.c (rqbp->rqb_free_buffer)(phba, rqb_entry); phba 731 drivers/scsi/lpfc/lpfc_mem.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 745 drivers/scsi/lpfc/lpfc_mem.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 170 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_check_elscmpl_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 210 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_els_abort(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp) phba 216 drivers/scsi/lpfc/lpfc_nportdisc.c pring = lpfc_phba_elsring(phba); phba 236 drivers/scsi/lpfc/lpfc_nportdisc.c spin_lock_irq(&phba->hbalock); phba 237 drivers/scsi/lpfc/lpfc_nportdisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 241 drivers/scsi/lpfc/lpfc_nportdisc.c if (lpfc_check_sli_ndlp(phba, pring, iocb, ndlp)) phba 244 drivers/scsi/lpfc/lpfc_nportdisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 246 drivers/scsi/lpfc/lpfc_nportdisc.c spin_unlock_irq(&phba->hbalock); phba 250 drivers/scsi/lpfc/lpfc_nportdisc.c spin_lock_irq(&phba->hbalock); phba 252 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_sli_issue_abort_iotag(phba, pring, iocb); phba 253 drivers/scsi/lpfc/lpfc_nportdisc.c spin_unlock_irq(&phba->hbalock); phba 259 drivers/scsi/lpfc/lpfc_nportdisc.c spin_lock_irq(&phba->hbalock); phba 260 drivers/scsi/lpfc/lpfc_nportdisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 265 drivers/scsi/lpfc/lpfc_nportdisc.c if (lpfc_check_sli_ndlp(phba, pring, iocb, ndlp)) { phba 271 drivers/scsi/lpfc/lpfc_nportdisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 273 drivers/scsi/lpfc/lpfc_nportdisc.c spin_unlock_irq(&phba->hbalock); phba 276 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_sli_cancel_iocbs(phba, &abort_list, phba 279 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_cancel_retry_delay_tmo(phba->pport, ndlp); phba 287 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba = vport->phba; phba 373 drivers/scsi/lpfc/lpfc_nportdisc.c !(phba->nvmet_support)) { phba 408 drivers/scsi/lpfc/lpfc_nportdisc.c ed_tov = (phba->fc_edtov + 999999) / 1000000; phba 415 drivers/scsi/lpfc/lpfc_nportdisc.c if (ed_tov > phba->fc_edtov) phba 416 drivers/scsi/lpfc/lpfc_nportdisc.c phba->fc_edtov = ed_tov; phba 417 drivers/scsi/lpfc/lpfc_nportdisc.c phba->fc_ratov = (2 * phba->fc_edtov) / 1000; phba 419 drivers/scsi/lpfc/lpfc_nportdisc.c memcpy(&phba->fc_fabparam, sp, sizeof(struct serv_parm)); phba 423 drivers/scsi/lpfc/lpfc_nportdisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 426 drivers/scsi/lpfc/lpfc_nportdisc.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 429 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_config_link(phba, mbox); phba 432 drivers/scsi/lpfc/lpfc_nportdisc.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); phba 434 drivers/scsi/lpfc/lpfc_nportdisc.c mempool_free(mbox, phba->mbox_mem_pool); phba 443 drivers/scsi/lpfc/lpfc_nportdisc.c if ((phba->sli.sli_flag & LPFC_SLI_SUPPRESS_RSP) && phba 451 drivers/scsi/lpfc/lpfc_nportdisc.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 456 drivers/scsi/lpfc/lpfc_nportdisc.c if (phba->sli_rev == LPFC_SLI_REV4) phba 459 drivers/scsi/lpfc/lpfc_nportdisc.c rc = lpfc_reg_rpi(phba, vport->vpi, icmd->un.rcvels.remoteID, phba 462 drivers/scsi/lpfc/lpfc_nportdisc.c mempool_free(mbox, phba->mbox_mem_pool); phba 492 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_els_abort(phba, ndlp); phba 511 drivers/scsi/lpfc/lpfc_nportdisc.c mempool_free(mbox, phba->mbox_mem_pool); phba 516 drivers/scsi/lpfc/lpfc_nportdisc.c mempool_free(mbox, phba->mbox_mem_pool); phba 534 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_mbx_cmpl_resume_rpi(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 553 drivers/scsi/lpfc/lpfc_nportdisc.c mempool_free(mboxq, phba->mbox_mem_pool); phba 593 drivers/scsi/lpfc/lpfc_nportdisc.c if (vport->phba->sli_rev == LPFC_SLI_REV4) { phba 650 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba = vport->phba; phba 672 drivers/scsi/lpfc/lpfc_nportdisc.c vports = lpfc_create_vport_work_array(phba); phba 674 drivers/scsi/lpfc/lpfc_nportdisc.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; phba 683 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_destroy_vport_work_array(phba, vports); phba 706 drivers/scsi/lpfc/lpfc_nportdisc.c phba->pport->fc_flag &= ~FC_LOGO_RCVD_DID_CHNG; phba 708 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_retry_pport_discovery(phba); phba 749 drivers/scsi/lpfc/lpfc_nportdisc.c if (vport->phba->nvmet_support) { phba 777 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba = vport->phba; phba 808 drivers/scsi/lpfc/lpfc_nportdisc.c if (npr->Retry && phba->nsler && phba 818 drivers/scsi/lpfc/lpfc_nportdisc.c if (phba->nvmet_support && (npr->prliType == PRLI_NVME_TYPE)) { phba 883 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_release_rpi(struct lpfc_hba *phba, struct lpfc_vport *vport, phba 903 drivers/scsi/lpfc/lpfc_nportdisc.c pmb = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, phba 909 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_unreg_login(phba, vport->vpi, rpi, pmb); phba 923 drivers/scsi/lpfc/lpfc_nportdisc.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_NOWAIT); phba 925 drivers/scsi/lpfc/lpfc_nportdisc.c mempool_free(pmb, phba->mbox_mem_pool); phba 933 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba; phba 937 drivers/scsi/lpfc/lpfc_nportdisc.c phba = vport->phba; phba 939 drivers/scsi/lpfc/lpfc_nportdisc.c if (!(phba->pport->load_flag & FC_UNLOADING) && phba 943 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_release_rpi(phba, vport, ndlp, rpi); phba 1038 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba = vport->phba; phba 1051 drivers/scsi/lpfc/lpfc_nportdisc.c phba->fc_stat.elsLogiCol++; phba 1105 drivers/scsi/lpfc/lpfc_nportdisc.c if (vport->phba->sli_rev == LPFC_SLI_REV3) phba 1108 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_els_abort(vport->phba, ndlp); phba 1119 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba = vport->phba; phba 1123 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_els_abort(phba, ndlp); phba 1149 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba = vport->phba; phba 1220 drivers/scsi/lpfc/lpfc_nportdisc.c ed_tov = (phba->fc_edtov + 999999) / 1000000; phba 1224 drivers/scsi/lpfc/lpfc_nportdisc.c if ((phba->sli.sli_flag & LPFC_SLI_SUPPRESS_RSP) && phba 1237 drivers/scsi/lpfc/lpfc_nportdisc.c if (ed_tov > phba->fc_edtov) phba 1238 drivers/scsi/lpfc/lpfc_nportdisc.c phba->fc_edtov = ed_tov; phba 1239 drivers/scsi/lpfc/lpfc_nportdisc.c phba->fc_ratov = (2 * phba->fc_edtov) / 1000; phba 1241 drivers/scsi/lpfc/lpfc_nportdisc.c memcpy(&phba->fc_fabparam, sp, sizeof(struct serv_parm)); phba 1244 drivers/scsi/lpfc/lpfc_nportdisc.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 1247 drivers/scsi/lpfc/lpfc_nportdisc.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 1258 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_config_link(phba, mbox); phba 1262 drivers/scsi/lpfc/lpfc_nportdisc.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); phba 1264 drivers/scsi/lpfc/lpfc_nportdisc.c mempool_free(mbox, phba->mbox_mem_pool); phba 1272 drivers/scsi/lpfc/lpfc_nportdisc.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 1282 drivers/scsi/lpfc/lpfc_nportdisc.c if (lpfc_reg_rpi(phba, vport->vpi, irsp->un.elsreq64.remoteID, phba 1297 drivers/scsi/lpfc/lpfc_nportdisc.c if (lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT) phba 1310 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 1312 drivers/scsi/lpfc/lpfc_nportdisc.c mempool_free(mbox, phba->mbox_mem_pool); phba 1320 drivers/scsi/lpfc/lpfc_nportdisc.c mempool_free(mbox, phba->mbox_mem_pool); phba 1361 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba; phba 1366 drivers/scsi/lpfc/lpfc_nportdisc.c phba = vport->phba; phba 1368 drivers/scsi/lpfc/lpfc_nportdisc.c if (!(phba->pport->load_flag & FC_UNLOADING) && phba 1371 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_release_rpi(phba, vport, ndlp, rpi); phba 1389 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_els_abort(vport->phba, ndlp); phba 1403 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba = vport->phba; phba 1412 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_els_abort(phba, ndlp); phba 1428 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba = vport->phba; phba 1432 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_els_abort(phba, ndlp); phba 1468 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba = vport->phba; phba 1474 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_els_abort(phba, ndlp); phba 1512 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba = vport->phba; phba 1521 drivers/scsi/lpfc/lpfc_nportdisc.c ap = (ADISC *)lpfc_check_elscmpl_iocb(phba, cmdiocb, rspiocb); phba 1543 drivers/scsi/lpfc/lpfc_nportdisc.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 1576 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_els_abort(vport->phba, ndlp); phba 1590 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba = vport->phba; phba 1599 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_els_abort(phba, ndlp); phba 1634 drivers/scsi/lpfc/lpfc_nportdisc.c if (vport->phba->nvmet_support) { phba 1667 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba = vport->phba; phba 1677 drivers/scsi/lpfc/lpfc_nportdisc.c if ((mb = phba->sli.mbox_active)) { phba 1687 drivers/scsi/lpfc/lpfc_nportdisc.c spin_lock_irq(&phba->hbalock); phba 1688 drivers/scsi/lpfc/lpfc_nportdisc.c list_for_each_entry_safe(mb, nextmb, &phba->sli.mboxq, list) { phba 1693 drivers/scsi/lpfc/lpfc_nportdisc.c __lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 1699 drivers/scsi/lpfc/lpfc_nportdisc.c phba->sli.mboxq_cnt--; phba 1700 drivers/scsi/lpfc/lpfc_nportdisc.c mempool_free(mb, phba->mbox_mem_pool); phba 1703 drivers/scsi/lpfc/lpfc_nportdisc.c spin_unlock_irq(&phba->hbalock); phba 1709 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_els_abort(phba, ns_ndlp); phba 1748 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba = vport->phba; phba 1786 drivers/scsi/lpfc/lpfc_nportdisc.c if (phba->sli_rev < LPFC_SLI_REV4) phba 1796 drivers/scsi/lpfc/lpfc_nportdisc.c (phba->nvmet_support == 0)) { phba 1815 drivers/scsi/lpfc/lpfc_nportdisc.c } else if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { phba 1839 drivers/scsi/lpfc/lpfc_nportdisc.c if ((vport->fc_flag & FC_PT2PT) && phba->nvmet_support) phba 1840 drivers/scsi/lpfc/lpfc_nportdisc.c phba->targetport->port_id = vport->fc_myDID; phba 1894 drivers/scsi/lpfc/lpfc_nportdisc.c !vport->phba->nvmet_support) phba 1934 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_els_abort(vport->phba, ndlp); phba 1971 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba = vport->phba; phba 1986 drivers/scsi/lpfc/lpfc_nportdisc.c temp_ptr = lpfc_check_elscmpl_iocb(phba, cmdiocb, rspiocb); phba 2035 drivers/scsi/lpfc/lpfc_nportdisc.c if (phba->nsler && bf_get_be32(prli_nsler, nvpr)) phba 2057 drivers/scsi/lpfc/lpfc_nportdisc.c (phba->cfg_nvme_enable_fb) && phba 2058 drivers/scsi/lpfc/lpfc_nportdisc.c (!phba->nvmet_support)) { phba 2152 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_els_abort(vport->phba, ndlp); phba 2183 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba = vport->phba; phba 2192 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_els_abort(phba, ndlp); phba 2299 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_els_abort(vport->phba, ndlp); phba 2437 drivers/scsi/lpfc/lpfc_nportdisc.c struct lpfc_hba *phba = vport->phba; phba 2441 drivers/scsi/lpfc/lpfc_nportdisc.c lpfc_sli_abort_iocb(vport, &phba->sli.sli3_ring[LPFC_FCP_RING], phba 2673 drivers/scsi/lpfc/lpfc_nportdisc.c if (vport->phba->sli_rev < LPFC_SLI_REV4) phba 60 drivers/scsi/lpfc/lpfc_nvme.c lpfc_get_nvme_buf(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, phba 337 drivers/scsi/lpfc/lpfc_nvme.c spin_lock_irq(&vport->phba->hbalock); phba 345 drivers/scsi/lpfc/lpfc_nvme.c spin_unlock_irq(&vport->phba->hbalock); phba 352 drivers/scsi/lpfc/lpfc_nvme.c spin_unlock_irq(&vport->phba->hbalock); phba 360 drivers/scsi/lpfc/lpfc_nvme.c lpfc_nvme_cmpl_gen_req(struct lpfc_hba *phba, struct lpfc_iocbq *cmdwqe, phba 395 drivers/scsi/lpfc/lpfc_nvme.c lpfc_nvmeio_data(phba, "NVME LS CMPL: xri x%x stat x%x parm x%x\n", phba 400 drivers/scsi/lpfc/lpfc_nvme.c lpfc_mbuf_free(phba, buf_ptr->virt, buf_ptr->phys); phba 416 drivers/scsi/lpfc/lpfc_nvme.c lpfc_sli_release_iocbq(phba, cmdwqe); phba 428 drivers/scsi/lpfc/lpfc_nvme.c struct lpfc_hba *phba = vport->phba; phba 436 drivers/scsi/lpfc/lpfc_nvme.c genwqe = lpfc_sli_get_iocbq(phba); phba 454 drivers/scsi/lpfc/lpfc_nvme.c tmo = (3 * phba->fc_ratov); phba 492 drivers/scsi/lpfc/lpfc_nvme.c phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]); phba 496 drivers/scsi/lpfc/lpfc_nvme.c bf_set(wqe_tmo, &wqe->gen_req.wqe_com, (vport->phba->fc_ratov-1)); phba 533 drivers/scsi/lpfc/lpfc_nvme.c lpfc_nvmeio_data(phba, "NVME LS XMIT: xri x%x iotag x%x to x%06x\n", phba 536 drivers/scsi/lpfc/lpfc_nvme.c rc = lpfc_sli4_issue_wqe(phba, &phba->sli4_hba.hdwq[0], genwqe); phba 543 drivers/scsi/lpfc/lpfc_nvme.c lpfc_sli_release_iocbq(phba, genwqe); phba 629 drivers/scsi/lpfc/lpfc_nvme.c bmp->virt = lpfc_mbuf_alloc(vport->phba, MEM_PRI, &(bmp->phys)); phba 676 drivers/scsi/lpfc/lpfc_nvme.c lpfc_mbuf_free(vport->phba, bmp->virt, bmp->phys); phba 705 drivers/scsi/lpfc/lpfc_nvme.c struct lpfc_hba *phba; phba 715 drivers/scsi/lpfc/lpfc_nvme.c phba = vport->phba; phba 742 drivers/scsi/lpfc/lpfc_nvme.c pring = phba->sli4_hba.nvmels_wq->pring; phba 743 drivers/scsi/lpfc/lpfc_nvme.c spin_lock_irq(&phba->hbalock); phba 747 drivers/scsi/lpfc/lpfc_nvme.c if (lpfc_check_sli_ndlp(phba, pring, wqe, ndlp)) { phba 753 drivers/scsi/lpfc/lpfc_nvme.c spin_unlock_irq(&phba->hbalock); phba 758 drivers/scsi/lpfc/lpfc_nvme.c spin_lock_irq(&phba->hbalock); phba 760 drivers/scsi/lpfc/lpfc_nvme.c lpfc_sli_issue_abort_iotag(phba, pring, wqe); phba 761 drivers/scsi/lpfc/lpfc_nvme.c spin_unlock_irq(&phba->hbalock); phba 771 drivers/scsi/lpfc/lpfc_nvme.c struct lpfc_hba *phba = vport->phba; phba 793 drivers/scsi/lpfc/lpfc_nvme.c if (phba->cfg_nvme_embed_cmd) { phba 864 drivers/scsi/lpfc/lpfc_nvme.c lpfc_nvme_ktime(struct lpfc_hba *phba, phba 915 drivers/scsi/lpfc/lpfc_nvme.c phba->ktime_data_samples++; phba 916 drivers/scsi/lpfc/lpfc_nvme.c phba->ktime_seg1_total += seg1; phba 917 drivers/scsi/lpfc/lpfc_nvme.c if (seg1 < phba->ktime_seg1_min) phba 918 drivers/scsi/lpfc/lpfc_nvme.c phba->ktime_seg1_min = seg1; phba 919 drivers/scsi/lpfc/lpfc_nvme.c else if (seg1 > phba->ktime_seg1_max) phba 920 drivers/scsi/lpfc/lpfc_nvme.c phba->ktime_seg1_max = seg1; phba 921 drivers/scsi/lpfc/lpfc_nvme.c phba->ktime_seg2_total += seg2; phba 922 drivers/scsi/lpfc/lpfc_nvme.c if (seg2 < phba->ktime_seg2_min) phba 923 drivers/scsi/lpfc/lpfc_nvme.c phba->ktime_seg2_min = seg2; phba 924 drivers/scsi/lpfc/lpfc_nvme.c else if (seg2 > phba->ktime_seg2_max) phba 925 drivers/scsi/lpfc/lpfc_nvme.c phba->ktime_seg2_max = seg2; phba 926 drivers/scsi/lpfc/lpfc_nvme.c phba->ktime_seg3_total += seg3; phba 927 drivers/scsi/lpfc/lpfc_nvme.c if (seg3 < phba->ktime_seg3_min) phba 928 drivers/scsi/lpfc/lpfc_nvme.c phba->ktime_seg3_min = seg3; phba 929 drivers/scsi/lpfc/lpfc_nvme.c else if (seg3 > phba->ktime_seg3_max) phba 930 drivers/scsi/lpfc/lpfc_nvme.c phba->ktime_seg3_max = seg3; phba 931 drivers/scsi/lpfc/lpfc_nvme.c phba->ktime_seg4_total += seg4; phba 932 drivers/scsi/lpfc/lpfc_nvme.c if (seg4 < phba->ktime_seg4_min) phba 933 drivers/scsi/lpfc/lpfc_nvme.c phba->ktime_seg4_min = seg4; phba 934 drivers/scsi/lpfc/lpfc_nvme.c else if (seg4 > phba->ktime_seg4_max) phba 935 drivers/scsi/lpfc/lpfc_nvme.c phba->ktime_seg4_max = seg4; phba 960 drivers/scsi/lpfc/lpfc_nvme.c lpfc_nvme_io_cmd_wqe_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pwqeIn, phba 996 drivers/scsi/lpfc/lpfc_nvme.c lpfc_release_nvme_buf(phba, lpfc_ncmd); phba 1003 drivers/scsi/lpfc/lpfc_nvme.c phba->sli4_hba.hdwq[idx].nvme_cstat.io_cmpls++; phba 1014 drivers/scsi/lpfc/lpfc_nvme.c lpfc_nvmeio_data(phba, "NVME FCP CMPL: xri x%x stat x%x parm x%x\n", phba 1144 drivers/scsi/lpfc/lpfc_nvme.c phba->ktime_last_cmd = lpfc_ncmd->ts_data_nvme; phba 1145 drivers/scsi/lpfc/lpfc_nvme.c lpfc_nvme_ktime(phba, lpfc_ncmd); phba 1147 drivers/scsi/lpfc/lpfc_nvme.c if (unlikely(phba->cpucheck_on & LPFC_CHECK_NVME_IO)) { phba 1158 drivers/scsi/lpfc/lpfc_nvme.c phba->sli4_hba.hdwq[idx].cpucheck_cmpl_io[cpu]++; phba 1177 drivers/scsi/lpfc/lpfc_nvme.c lpfc_release_nvme_buf(phba, lpfc_ncmd); phba 1203 drivers/scsi/lpfc/lpfc_nvme.c struct lpfc_hba *phba = vport->phba; phba 1227 drivers/scsi/lpfc/lpfc_nvme.c if ((phba->cfg_nvme_enable_fb) && phba 1274 drivers/scsi/lpfc/lpfc_nvme.c phba->sli4_hba.rpi_ids[pnode->nlp_rpi]); phba 1310 drivers/scsi/lpfc/lpfc_nvme.c struct lpfc_hba *phba = vport->phba; phba 1342 drivers/scsi/lpfc/lpfc_nvme.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 1346 drivers/scsi/lpfc/lpfc_nvme.c phba->cfg_nvme_seg_cnt + 1, phba 1365 drivers/scsi/lpfc/lpfc_nvme.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 1382 drivers/scsi/lpfc/lpfc_nvme.c !((j + 1) % phba->border_sge_num) && phba 1389 drivers/scsi/lpfc/lpfc_nvme.c phba, lpfc_ncmd); phba 1432 drivers/scsi/lpfc/lpfc_nvme.c phba->cfg_sg_dma_buf_size); phba 1442 drivers/scsi/lpfc/lpfc_nvme.c if (phba->cfg_enable_pbde) { phba 1466 drivers/scsi/lpfc/lpfc_nvme.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 1505 drivers/scsi/lpfc/lpfc_nvme.c struct lpfc_hba *phba; phba 1535 drivers/scsi/lpfc/lpfc_nvme.c phba = vport->phba; phba 1560 drivers/scsi/lpfc/lpfc_nvme.c if (phba->ktime_on) phba 1610 drivers/scsi/lpfc/lpfc_nvme.c if (lpfc_ndlp_check_qdepth(phba, ndlp)) { phba 1626 drivers/scsi/lpfc/lpfc_nvme.c if (phba->cfg_fcp_io_sched == LPFC_FCP_SCHED_BY_HDWQ) { phba 1630 drivers/scsi/lpfc/lpfc_nvme.c idx = phba->sli4_hba.cpu_map[cpu].hdwq; phba 1633 drivers/scsi/lpfc/lpfc_nvme.c lpfc_ncmd = lpfc_get_nvme_buf(phba, ndlp, idx, expedite); phba 1646 drivers/scsi/lpfc/lpfc_nvme.c lpfc_ncmd->ts_last_cmd = phba->ktime_last_cmd; phba 1672 drivers/scsi/lpfc/lpfc_nvme.c cstat = &phba->sli4_hba.hdwq[idx].nvme_cstat; phba 1686 drivers/scsi/lpfc/lpfc_nvme.c lpfc_nvmeio_data(phba, "NVME FCP XMIT: xri x%x idx %d to %06x\n", phba 1690 drivers/scsi/lpfc/lpfc_nvme.c ret = lpfc_sli4_issue_wqe(phba, lpfc_ncmd->hdwq, &lpfc_ncmd->cur_iocbq); phba 1701 drivers/scsi/lpfc/lpfc_nvme.c if (phba->cfg_xri_rebalancing) phba 1702 drivers/scsi/lpfc/lpfc_nvme.c lpfc_keep_pvt_pool_above_lowwm(phba, lpfc_ncmd->hdwq_no); phba 1708 drivers/scsi/lpfc/lpfc_nvme.c if (phba->cpucheck_on & LPFC_CHECK_NVME_IO) { phba 1719 drivers/scsi/lpfc/lpfc_nvme.c phba->sli4_hba.hdwq[idx].cpucheck_xmt_io[cpu]++; phba 1733 drivers/scsi/lpfc/lpfc_nvme.c lpfc_release_nvme_buf(phba, lpfc_ncmd); phba 1750 drivers/scsi/lpfc/lpfc_nvme.c lpfc_nvme_abort_fcreq_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 1753 drivers/scsi/lpfc/lpfc_nvme.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME, phba 1763 drivers/scsi/lpfc/lpfc_nvme.c lpfc_sli_release_iocbq(phba, cmdiocb); phba 1791 drivers/scsi/lpfc/lpfc_nvme.c struct lpfc_hba *phba; phba 1815 drivers/scsi/lpfc/lpfc_nvme.c phba = vport->phba; phba 1833 drivers/scsi/lpfc/lpfc_nvme.c spin_lock_irqsave(&phba->hbalock, flags); phba 1835 drivers/scsi/lpfc/lpfc_nvme.c if (phba->hba_flag & HBA_IOQ_FLUSH) { phba 1836 drivers/scsi/lpfc/lpfc_nvme.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 1840 drivers/scsi/lpfc/lpfc_nvme.c phba->hba_flag); phba 1846 drivers/scsi/lpfc/lpfc_nvme.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 1852 drivers/scsi/lpfc/lpfc_nvme.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 1890 drivers/scsi/lpfc/lpfc_nvme.c lpfc_nvmeio_data(phba, "NVME FCP ABORT: xri x%x idx %d to %06x\n", phba 1905 drivers/scsi/lpfc/lpfc_nvme.c abts_buf = __lpfc_sli_get_iocbq(phba); phba 1954 drivers/scsi/lpfc/lpfc_nvme.c ret_val = lpfc_sli4_issue_wqe(phba, lpfc_nbuf->hdwq, abts_buf); phba 1956 drivers/scsi/lpfc/lpfc_nvme.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 1962 drivers/scsi/lpfc/lpfc_nvme.c lpfc_sli_release_iocbq(phba, abts_buf); phba 1975 drivers/scsi/lpfc/lpfc_nvme.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 2017 drivers/scsi/lpfc/lpfc_nvme.c lpfc_get_nvme_buf(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, phba 2026 drivers/scsi/lpfc/lpfc_nvme.c lpfc_ncmd = lpfc_get_io_buf(phba, NULL, idx, expedite); phba 2053 drivers/scsi/lpfc/lpfc_nvme.c if (lpfc_ndlp_check_qdepth(phba, ndlp)) { phba 2059 drivers/scsi/lpfc/lpfc_nvme.c qp = &phba->sli4_hba.hdwq[idx]; phba 2077 drivers/scsi/lpfc/lpfc_nvme.c lpfc_release_nvme_buf(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_ncmd) phba 2090 drivers/scsi/lpfc/lpfc_nvme.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 2102 drivers/scsi/lpfc/lpfc_nvme.c lpfc_release_io_buf(phba, (struct lpfc_io_buf *)lpfc_ncmd, qp); phba 2125 drivers/scsi/lpfc/lpfc_nvme.c struct lpfc_hba *phba = vport->phba; phba 2142 drivers/scsi/lpfc/lpfc_nvme.c lpfc_nvme_template.max_sgl_segments = phba->cfg_nvme_seg_cnt + 1; phba 2145 drivers/scsi/lpfc/lpfc_nvme.c if (phba->cfg_fcp_io_sched == LPFC_FCP_SCHED_BY_HDWQ) phba 2146 drivers/scsi/lpfc/lpfc_nvme.c lpfc_nvme_template.max_hw_queues = phba->cfg_hdw_queue; phba 2149 drivers/scsi/lpfc/lpfc_nvme.c phba->sli4_hba.num_present_cpu; phba 2159 drivers/scsi/lpfc/lpfc_nvme.c &vport->phba->pcidev->dev, &localport); phba 2213 drivers/scsi/lpfc/lpfc_nvme.c struct lpfc_hba *phba = vport->phba; phba 2224 drivers/scsi/lpfc/lpfc_nvme.c for (i = 0; i < phba->cfg_hdw_queue; i++) { phba 2225 drivers/scsi/lpfc/lpfc_nvme.c pring = phba->sli4_hba.hdwq[i].io_wq->pring; phba 2383 drivers/scsi/lpfc/lpfc_nvme.c spin_lock_irq(&vport->phba->hbalock); phba 2387 drivers/scsi/lpfc/lpfc_nvme.c spin_unlock_irq(&vport->phba->hbalock); phba 2389 drivers/scsi/lpfc/lpfc_nvme.c spin_unlock_irq(&vport->phba->hbalock); phba 2402 drivers/scsi/lpfc/lpfc_nvme.c spin_lock_irq(&vport->phba->hbalock); phba 2404 drivers/scsi/lpfc/lpfc_nvme.c spin_unlock_irq(&vport->phba->hbalock); phba 2444 drivers/scsi/lpfc/lpfc_nvme.c spin_lock_irq(&vport->phba->hbalock); phba 2447 drivers/scsi/lpfc/lpfc_nvme.c spin_unlock_irq(&vport->phba->hbalock); phba 2466 drivers/scsi/lpfc/lpfc_nvme.c spin_lock_irq(&vport->phba->hbalock); phba 2468 drivers/scsi/lpfc/lpfc_nvme.c spin_unlock_irq(&vport->phba->hbalock); phba 2507 drivers/scsi/lpfc/lpfc_nvme.c spin_lock_irq(&vport->phba->hbalock); phba 2511 drivers/scsi/lpfc/lpfc_nvme.c spin_unlock_irq(&vport->phba->hbalock); phba 2574 drivers/scsi/lpfc/lpfc_nvme.c spin_lock_irq(&vport->phba->hbalock); phba 2578 drivers/scsi/lpfc/lpfc_nvme.c spin_unlock_irq(&vport->phba->hbalock); phba 2636 drivers/scsi/lpfc/lpfc_nvme.c lpfc_sli4_nvme_xri_aborted(struct lpfc_hba *phba, phba 2646 drivers/scsi/lpfc/lpfc_nvme.c lpfc_sli4_abts_err_handler(phba, ndlp, axri); phba 2648 drivers/scsi/lpfc/lpfc_nvme.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 2663 drivers/scsi/lpfc/lpfc_nvme.c lpfc_release_nvme_buf(phba, lpfc_ncmd); phba 2677 drivers/scsi/lpfc/lpfc_nvme.c lpfc_nvme_wait_for_io_drain(struct lpfc_hba *phba) phba 2682 drivers/scsi/lpfc/lpfc_nvme.c if (phba->sli_rev < LPFC_SLI_REV4 || !phba->sli4_hba.hdwq) phba 2688 drivers/scsi/lpfc/lpfc_nvme.c for (i = 0; i < phba->cfg_hdw_queue; i++) { phba 2689 drivers/scsi/lpfc/lpfc_nvme.c if (!phba->sli4_hba.hdwq[i].io_wq) phba 2691 drivers/scsi/lpfc/lpfc_nvme.c pring = phba->sli4_hba.hdwq[i].io_wq->pring; phba 2705 drivers/scsi/lpfc/lpfc_nvme.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 2714 drivers/scsi/lpfc/lpfc_nvme.c lpfc_nvme_cancel_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *pwqeIn) phba 2722 drivers/scsi/lpfc/lpfc_nvme.c lpfc_sli_release_iocbq(phba, pwqeIn); phba 2728 drivers/scsi/lpfc/lpfc_nvme.c lpfc_sli_release_iocbq(phba, pwqeIn); phba 2736 drivers/scsi/lpfc/lpfc_nvme.c lpfc_release_nvme_buf(phba, lpfc_ncmd); phba 2741 drivers/scsi/lpfc/lpfc_nvme.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_IOERR, phba 2756 drivers/scsi/lpfc/lpfc_nvme.c lpfc_release_nvme_buf(phba, lpfc_ncmd); phba 225 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_get_ctx_for_xri(struct lpfc_hba *phba, u16 xri) phba 231 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock_irqsave(&phba->sli4_hba.t_active_list_lock, iflag); phba 232 drivers/scsi/lpfc/lpfc_nvmet.c list_for_each_entry(ctxp, &phba->sli4_hba.t_active_ctx_list, list) { phba 239 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock_irqrestore(&phba->sli4_hba.t_active_list_lock, iflag); phba 247 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_get_ctx_for_oxid(struct lpfc_hba *phba, u16 oxid, u32 sid) phba 253 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock_irqsave(&phba->sli4_hba.t_active_list_lock, iflag); phba 254 drivers/scsi/lpfc/lpfc_nvmet.c list_for_each_entry(ctxp, &phba->sli4_hba.t_active_ctx_list, list) { phba 261 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock_irqrestore(&phba->sli4_hba.t_active_list_lock, iflag); phba 270 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_defer_release(struct lpfc_hba *phba, struct lpfc_nvmet_rcv_ctx *ctxp) phba 274 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 282 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock(&phba->sli4_hba.t_active_list_lock); phba 284 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock(&phba->sli4_hba.t_active_list_lock); phba 285 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 286 drivers/scsi/lpfc/lpfc_nvmet.c list_add_tail(&ctxp->list, &phba->sli4_hba.lpfc_abts_nvmet_ctx_list); phba 287 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 301 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_xmt_ls_rsp_cmp(struct lpfc_hba *phba, struct lpfc_iocbq *cmdwqe, phba 314 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 320 drivers/scsi/lpfc/lpfc_nvmet.c if (!phba->targetport) phba 323 drivers/scsi/lpfc/lpfc_nvmet.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 340 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmeio_data(phba, "NVMET LS CMPL: xri x%x stat x%x result x%x\n", phba 343 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_DISC, phba 350 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_sli_release_iocbq(phba, cmdwqe); phba 369 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_ctxbuf_post(struct lpfc_hba *phba, struct lpfc_nvmet_ctxbuf *ctx_buf) phba 382 drivers/scsi/lpfc/lpfc_nvmet.c dma_pool_free(phba->txrdy_payload_pool, ctxp->txrdy, phba 389 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 403 drivers/scsi/lpfc/lpfc_nvmet.c nvmebuf->hrq->rqbp->rqb_free_buffer(phba, phba 408 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_rq_buf_free(phba, &nvmebuf->hbuf); phba 416 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock_irqsave(&phba->sli4_hba.nvmet_io_wait_lock, iflag); phba 417 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->sli4_hba.nvmet_io_wait_cnt) { phba 418 drivers/scsi/lpfc/lpfc_nvmet.c list_remove_head(&phba->sli4_hba.lpfc_nvmet_io_wait_list, phba 421 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.nvmet_io_wait_cnt--; phba 422 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock_irqrestore(&phba->sli4_hba.nvmet_io_wait_lock, phba 427 drivers/scsi/lpfc/lpfc_nvmet.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 435 drivers/scsi/lpfc/lpfc_nvmet.c ctxp->phba = phba; phba 467 drivers/scsi/lpfc/lpfc_nvmet.c if (!queue_work(phba->wq, &ctx_buf->defer_work)) { phba 469 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME, phba 479 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_defer_release(phba, ctxp); phba 481 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_fcp_issue_abort(phba, ctxp, sid, oxid); phba 485 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock_irqrestore(&phba->sli4_hba.nvmet_io_wait_lock, iflag); phba 491 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock_irqsave(&phba->sli4_hba.t_active_list_lock, iflag); phba 493 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock_irqrestore(&phba->sli4_hba.t_active_list_lock, iflag); phba 495 drivers/scsi/lpfc/lpfc_nvmet.c infop = lpfc_get_ctx_list(phba, cpu, ctxp->idx); phba 505 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_ktime(struct lpfc_hba *phba, phba 632 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg1_total += seg1; phba 633 drivers/scsi/lpfc/lpfc_nvmet.c if (seg1 < phba->ktime_seg1_min) phba 634 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg1_min = seg1; phba 635 drivers/scsi/lpfc/lpfc_nvmet.c else if (seg1 > phba->ktime_seg1_max) phba 636 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg1_max = seg1; phba 638 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg2_total += seg2; phba 639 drivers/scsi/lpfc/lpfc_nvmet.c if (seg2 < phba->ktime_seg2_min) phba 640 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg2_min = seg2; phba 641 drivers/scsi/lpfc/lpfc_nvmet.c else if (seg2 > phba->ktime_seg2_max) phba 642 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg2_max = seg2; phba 644 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg3_total += seg3; phba 645 drivers/scsi/lpfc/lpfc_nvmet.c if (seg3 < phba->ktime_seg3_min) phba 646 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg3_min = seg3; phba 647 drivers/scsi/lpfc/lpfc_nvmet.c else if (seg3 > phba->ktime_seg3_max) phba 648 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg3_max = seg3; phba 650 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg4_total += seg4; phba 651 drivers/scsi/lpfc/lpfc_nvmet.c if (seg4 < phba->ktime_seg4_min) phba 652 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg4_min = seg4; phba 653 drivers/scsi/lpfc/lpfc_nvmet.c else if (seg4 > phba->ktime_seg4_max) phba 654 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg4_max = seg4; phba 656 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg5_total += seg5; phba 657 drivers/scsi/lpfc/lpfc_nvmet.c if (seg5 < phba->ktime_seg5_min) phba 658 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg5_min = seg5; phba 659 drivers/scsi/lpfc/lpfc_nvmet.c else if (seg5 > phba->ktime_seg5_max) phba 660 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg5_max = seg5; phba 662 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_data_samples++; phba 666 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg6_total += seg6; phba 667 drivers/scsi/lpfc/lpfc_nvmet.c if (seg6 < phba->ktime_seg6_min) phba 668 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg6_min = seg6; phba 669 drivers/scsi/lpfc/lpfc_nvmet.c else if (seg6 > phba->ktime_seg6_max) phba 670 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg6_max = seg6; phba 672 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg7_total += seg7; phba 673 drivers/scsi/lpfc/lpfc_nvmet.c if (seg7 < phba->ktime_seg7_min) phba 674 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg7_min = seg7; phba 675 drivers/scsi/lpfc/lpfc_nvmet.c else if (seg7 > phba->ktime_seg7_max) phba 676 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg7_max = seg7; phba 678 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg8_total += seg8; phba 679 drivers/scsi/lpfc/lpfc_nvmet.c if (seg8 < phba->ktime_seg8_min) phba 680 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg8_min = seg8; phba 681 drivers/scsi/lpfc/lpfc_nvmet.c else if (seg8 > phba->ktime_seg8_max) phba 682 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg8_max = seg8; phba 684 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg9_total += seg9; phba 685 drivers/scsi/lpfc/lpfc_nvmet.c if (seg9 < phba->ktime_seg9_min) phba 686 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg9_min = seg9; phba 687 drivers/scsi/lpfc/lpfc_nvmet.c else if (seg9 > phba->ktime_seg9_max) phba 688 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg9_max = seg9; phba 690 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg10_total += seg10; phba 691 drivers/scsi/lpfc/lpfc_nvmet.c if (seg10 < phba->ktime_seg10_min) phba 692 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg10_min = seg10; phba 693 drivers/scsi/lpfc/lpfc_nvmet.c else if (seg10 > phba->ktime_seg10_max) phba 694 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_seg10_max = seg10; phba 695 drivers/scsi/lpfc/lpfc_nvmet.c phba->ktime_status_samples++; phba 710 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_xmt_fcp_op_cmp(struct lpfc_hba *phba, struct lpfc_iocbq *cmdwqe, phba 730 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->targetport) phba 731 drivers/scsi/lpfc/lpfc_nvmet.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 735 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmeio_data(phba, "NVMET FCP CMPL: xri x%x op x%x status x%x\n", phba 760 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, logerr, phba 808 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_ktime(phba, ctxp); phba 825 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->cpucheck_on & LPFC_CHECK_NVMET_IO) { phba 829 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_IOERR, phba 833 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.hdwq[rsp->hwqid].cpucheck_cmpl_io[id]++; phba 845 drivers/scsi/lpfc/lpfc_nvmet.c struct lpfc_hba *phba = ctxp->phba; phba 854 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->pport->load_flag & FC_UNLOADING) phba 857 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->pport->load_flag & FC_UNLOADING) phba 860 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_DISC, phba 865 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 873 drivers/scsi/lpfc/lpfc_nvmet.c nvmewqeq = lpfc_nvmet_prep_ls_wqe(phba, ctxp, rsp->rspdma, phba 877 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 880 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_in_buf_free(phba, &nvmebuf->dbuf); phba 882 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_ls_issue_abort(phba, ctxp, phba 902 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmeio_data(phba, "NVMET LS RESP: xri x%x wqidx x%x len x%x\n", phba 905 drivers/scsi/lpfc/lpfc_nvmet.c rc = lpfc_sli4_issue_wqe(phba, ctxp->hdwq, nvmewqeq); phba 911 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_in_buf_free(phba, &nvmebuf->dbuf); phba 917 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 923 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_in_buf_free(phba, &nvmebuf->dbuf); phba 925 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_ls_issue_abort(phba, ctxp, ctxp->sid, ctxp->oxid); phba 936 drivers/scsi/lpfc/lpfc_nvmet.c struct lpfc_hba *phba = ctxp->phba; phba 943 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->pport->load_flag & FC_UNLOADING) { phba 948 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->pport->load_flag & FC_UNLOADING) { phba 963 drivers/scsi/lpfc/lpfc_nvmet.c ctxp->hdwq = &phba->sli4_hba.hdwq[rsp->hwqid]; phba 965 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->cpucheck_on & LPFC_CHECK_NVMET_IO) { phba 969 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_IOERR, phba 973 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.hdwq[rsp->hwqid].cpucheck_xmt_io[id]++; phba 983 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 990 drivers/scsi/lpfc/lpfc_nvmet.c nvmewqeq = lpfc_nvmet_prep_fcp_wqe(phba, ctxp); phba 993 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 1006 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmeio_data(phba, "NVMET FCP CMND: xri x%x op x%x len x%x\n", phba 1010 drivers/scsi/lpfc/lpfc_nvmet.c rc = lpfc_sli4_issue_wqe(phba, ctxp->hdwq, nvmewqeq); phba 1041 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 1059 drivers/scsi/lpfc/lpfc_nvmet.c if (tport->phba->targetport) phba 1070 drivers/scsi/lpfc/lpfc_nvmet.c struct lpfc_hba *phba = ctxp->phba; phba 1074 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->pport->load_flag & FC_UNLOADING) phba 1077 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->pport->load_flag & FC_UNLOADING) phba 1081 drivers/scsi/lpfc/lpfc_nvmet.c ctxp->hdwq = &phba->sli4_hba.hdwq[0]; phba 1083 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 1087 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmeio_data(phba, "NVMET FCP ABRT: xri x%x flg x%x ste x%x\n", phba 1105 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_fcp_issue_abort(phba, ctxp, ctxp->sid, phba 1108 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_wqfull_flush(phba, wq, ctxp); phba 1118 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_fcp_issue_abort(phba, ctxp, ctxp->sid, phba 1121 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_sol_fcp_issue_abort(phba, ctxp, ctxp->sid, phba 1132 drivers/scsi/lpfc/lpfc_nvmet.c struct lpfc_hba *phba = ctxp->phba; phba 1138 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_IOERR, phba 1144 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 1152 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_defer_release(phba, ctxp); phba 1156 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmeio_data(phba, "NVMET FCP FREE: xri x%x ste %d abt %d\n", ctxp->oxid, phba 1165 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_ctxbuf_post(phba, ctxp->ctxbuf); phba 1176 drivers/scsi/lpfc/lpfc_nvmet.c struct lpfc_hba *phba = ctxp->phba; phba 1180 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmeio_data(phba, "NVMET DEFERRCV: xri x%x sz %d CPU %02x\n", phba 1184 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_IOERR, phba 1191 drivers/scsi/lpfc/lpfc_nvmet.c tgtp = phba->targetport->private; phba 1196 drivers/scsi/lpfc/lpfc_nvmet.c nvmebuf->hrq->rqbp->rqb_free_buffer(phba, nvmebuf); phba 1206 drivers/scsi/lpfc/lpfc_nvmet.c struct lpfc_hba *phba; phba 1210 drivers/scsi/lpfc/lpfc_nvmet.c phba = tgtp->phba; phba 1212 drivers/scsi/lpfc/lpfc_nvmet.c rc = lpfc_issue_els_rscn(phba->pport, 0); phba 1213 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME, phba 1239 drivers/scsi/lpfc/lpfc_nvmet.c __lpfc_nvmet_clean_io_for_cpu(struct lpfc_hba *phba, phba 1248 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 1250 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 1252 drivers/scsi/lpfc/lpfc_nvmet.c __lpfc_clear_active_sglq(phba, ctx_buf->sglq->sli4_lxritag); phba 1256 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock(&phba->sli4_hba.sgl_list_lock); phba 1258 drivers/scsi/lpfc/lpfc_nvmet.c &phba->sli4_hba.lpfc_nvmet_sgl_list); phba 1259 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock(&phba->sli4_hba.sgl_list_lock); phba 1261 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_sli_release_iocbq(phba, ctx_buf->iocbq); phba 1268 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_cleanup_io_context(struct lpfc_hba *phba) phba 1274 drivers/scsi/lpfc/lpfc_nvmet.c infop = phba->sli4_hba.nvmet_ctx_info; phba 1279 drivers/scsi/lpfc/lpfc_nvmet.c for (i = 0; i < phba->cfg_nvmet_mrq; i++) { phba 1281 drivers/scsi/lpfc/lpfc_nvmet.c infop = lpfc_get_ctx_list(phba, j, i); phba 1282 drivers/scsi/lpfc/lpfc_nvmet.c __lpfc_nvmet_clean_io_for_cpu(phba, infop); phba 1285 drivers/scsi/lpfc/lpfc_nvmet.c kfree(phba->sli4_hba.nvmet_ctx_info); phba 1286 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.nvmet_ctx_info = NULL; phba 1290 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_setup_io_context(struct lpfc_hba *phba) phba 1299 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME, phba 1301 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.nvmet_xri_cnt); phba 1303 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.nvmet_ctx_info = kcalloc( phba 1304 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.num_possible_cpu * phba->cfg_nvmet_mrq, phba 1306 drivers/scsi/lpfc/lpfc_nvmet.c if (!phba->sli4_hba.nvmet_ctx_info) { phba 1307 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1333 drivers/scsi/lpfc/lpfc_nvmet.c for (j = 0; j < phba->cfg_nvmet_mrq; j++) { phba 1334 drivers/scsi/lpfc/lpfc_nvmet.c infop = lpfc_get_ctx_list(phba, i, j); phba 1346 drivers/scsi/lpfc/lpfc_nvmet.c for (j = 0; j < phba->cfg_nvmet_mrq; j++) { phba 1347 drivers/scsi/lpfc/lpfc_nvmet.c last_infop = lpfc_get_ctx_list(phba, phba 1350 drivers/scsi/lpfc/lpfc_nvmet.c for (i = phba->sli4_hba.num_possible_cpu - 1; i >= 0; i--) { phba 1351 drivers/scsi/lpfc/lpfc_nvmet.c infop = lpfc_get_ctx_list(phba, i, j); phba 1362 drivers/scsi/lpfc/lpfc_nvmet.c for (i = 0; i < phba->sli4_hba.nvmet_xri_cnt; i++) { phba 1365 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME, phba 1374 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME, phba 1382 drivers/scsi/lpfc/lpfc_nvmet.c ctx_buf->iocbq = lpfc_sli_get_iocbq(phba); phba 1386 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME, phba 1398 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock(&phba->sli4_hba.sgl_list_lock); phba 1399 drivers/scsi/lpfc/lpfc_nvmet.c ctx_buf->sglq = __lpfc_sli_get_nvmet_sglq(phba, ctx_buf->iocbq); phba 1400 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock(&phba->sli4_hba.sgl_list_lock); phba 1402 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_sli_release_iocbq(phba, ctx_buf->iocbq); phba 1405 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME, phba 1416 drivers/scsi/lpfc/lpfc_nvmet.c infop = lpfc_get_ctx_list(phba, cpu, idx); phba 1424 drivers/scsi/lpfc/lpfc_nvmet.c if (idx >= phba->cfg_nvmet_mrq) { phba 1436 drivers/scsi/lpfc/lpfc_nvmet.c for (j = 0; j < phba->cfg_nvmet_mrq; j++) { phba 1437 drivers/scsi/lpfc/lpfc_nvmet.c infop = lpfc_get_ctx_list(phba, i, j); phba 1438 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME | LOG_INIT, phba 1449 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_create_targetport(struct lpfc_hba *phba) phba 1451 drivers/scsi/lpfc/lpfc_nvmet.c struct lpfc_vport *vport = phba->pport; phba 1456 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->targetport) phba 1459 drivers/scsi/lpfc/lpfc_nvmet.c error = lpfc_nvmet_setup_io_context(phba); phba 1472 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_tgttemplate.max_sgl_segments = phba->cfg_nvme_seg_cnt + 1; phba 1473 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_tgttemplate.max_hw_queues = phba->cfg_hdw_queue; phba 1478 drivers/scsi/lpfc/lpfc_nvmet.c &phba->pcidev->dev, phba 1479 drivers/scsi/lpfc/lpfc_nvmet.c &phba->targetport); phba 1484 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_DISC, phba 1491 drivers/scsi/lpfc/lpfc_nvmet.c phba->targetport = NULL; phba 1492 drivers/scsi/lpfc/lpfc_nvmet.c phba->nvmet_support = 0; phba 1494 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_cleanup_io_context(phba); phba 1498 drivers/scsi/lpfc/lpfc_nvmet.c phba->targetport->private; phba 1499 drivers/scsi/lpfc/lpfc_nvmet.c tgtp->phba = phba; phba 1501 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_DISC, phba 1505 drivers/scsi/lpfc/lpfc_nvmet.c phba->targetport, tgtp, phba 1550 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_update_targetport(struct lpfc_hba *phba) phba 1552 drivers/scsi/lpfc/lpfc_nvmet.c struct lpfc_vport *vport = phba->pport; phba 1554 drivers/scsi/lpfc/lpfc_nvmet.c if (!phba->targetport) phba 1559 drivers/scsi/lpfc/lpfc_nvmet.c phba->targetport, vport->fc_myDID); phba 1561 drivers/scsi/lpfc/lpfc_nvmet.c phba->targetport->port_id = vport->fc_myDID; phba 1574 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_sli4_nvmet_xri_aborted(struct lpfc_hba *phba, phba 1588 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 1591 drivers/scsi/lpfc/lpfc_nvmet.c if (!(phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME)) phba 1594 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->targetport) { phba 1595 drivers/scsi/lpfc/lpfc_nvmet.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 1599 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock_irqsave(&phba->hbalock, iflag); phba 1600 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 1602 drivers/scsi/lpfc/lpfc_nvmet.c &phba->sli4_hba.lpfc_abts_nvmet_ctx_list, phba 1618 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 1620 drivers/scsi/lpfc/lpfc_nvmet.c rrq_empty = list_empty(&phba->active_rrq_list); phba 1621 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 1622 drivers/scsi/lpfc/lpfc_nvmet.c ndlp = lpfc_findnode_did(phba->pport, ctxp->sid); phba 1626 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_set_rrq_active(phba, ndlp, phba 1629 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_sli4_abts_err_handler(phba, ndlp, axri); phba 1632 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 1636 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_ctxbuf_post(phba, ctxp->ctxbuf); phba 1639 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_worker_wake_up(phba); phba 1642 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 1643 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 1645 drivers/scsi/lpfc/lpfc_nvmet.c ctxp = lpfc_nvmet_get_ctx_for_xri(phba, xri); phba 1651 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 1662 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmeio_data(phba, phba 1668 drivers/scsi/lpfc/lpfc_nvmet.c nvmet_fc_rcv_fcp_abort(phba->targetport, req); phba 1678 drivers/scsi/lpfc/lpfc_nvmet.c struct lpfc_hba *phba = vport->phba; phba 1688 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock_irqsave(&phba->hbalock, iflag); phba 1689 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 1691 drivers/scsi/lpfc/lpfc_nvmet.c &phba->sli4_hba.lpfc_abts_nvmet_ctx_list, phba 1698 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 1699 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 1705 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmeio_data(phba, phba 1709 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 1713 drivers/scsi/lpfc/lpfc_nvmet.c nvmet_fc_rcv_fcp_abort(phba->targetport, rsp); phba 1719 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 1720 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 1723 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->sli4_hba.nvmet_io_wait_cnt) { phba 1730 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock_irqsave(&phba->sli4_hba.nvmet_io_wait_lock, iflag); phba 1734 drivers/scsi/lpfc/lpfc_nvmet.c &phba->sli4_hba.lpfc_nvmet_io_wait_list, phba 1743 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 1749 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.nvmet_io_wait_cnt--; phba 1753 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock_irqrestore(&phba->sli4_hba.nvmet_io_wait_lock, phba 1758 drivers/scsi/lpfc/lpfc_nvmet.c nvmebuf->hrq->rqbp->rqb_free_buffer(phba, nvmebuf); phba 1766 drivers/scsi/lpfc/lpfc_nvmet.c ctxp = lpfc_nvmet_get_ctx_for_oxid(phba, oxid, sid); phba 1774 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmeio_data(phba, phba 1778 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 1785 drivers/scsi/lpfc/lpfc_nvmet.c nvmet_fc_rcv_fcp_abort(phba->targetport, phba 1790 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_defer_release(phba, ctxp); phba 1793 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_sol_fcp_issue_abort(phba, ctxp, ctxp->sid, phba 1800 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmeio_data(phba, "NVMET ABTS RCV: oxid x%x CPU %02x rjt %d\n", phba 1803 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 1813 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_wqfull_flush(struct lpfc_hba *phba, struct lpfc_queue *wq, phba 1840 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_xmt_fcp_op_cmp(phba, nvmewqeq, phba 1849 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_xmt_fcp_op_cmp(phba, nvmewqeq, wcqep); phba 1859 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_wqfull_process(struct lpfc_hba *phba, phba 1880 drivers/scsi/lpfc/lpfc_nvmet.c rc = lpfc_sli4_issue_wqe(phba, ctxp->hdwq, nvmewqeq); phba 1908 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_destroy_targetport(struct lpfc_hba *phba) phba 1916 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->nvmet_support == 0) phba 1918 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->targetport) { phba 1919 drivers/scsi/lpfc/lpfc_nvmet.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 1920 drivers/scsi/lpfc/lpfc_nvmet.c for (qidx = 0; qidx < phba->cfg_hdw_queue; qidx++) { phba 1921 drivers/scsi/lpfc/lpfc_nvmet.c wq = phba->sli4_hba.hdwq[qidx].io_wq; phba 1922 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_wqfull_flush(phba, wq, NULL); phba 1925 drivers/scsi/lpfc/lpfc_nvmet.c nvmet_fc_unregister_targetport(phba->targetport); phba 1928 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME, phba 1930 drivers/scsi/lpfc/lpfc_nvmet.c "reached.\n", phba->targetport); phba 1931 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_cleanup_io_context(phba); phba 1933 drivers/scsi/lpfc/lpfc_nvmet.c phba->targetport = NULL; phba 1951 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_ls_buffer(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 1964 drivers/scsi/lpfc/lpfc_nvmet.c if (!phba->targetport) { phba 1965 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 1974 drivers/scsi/lpfc/lpfc_nvmet.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 1982 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 1986 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmeio_data(phba, "NVMET LS DROP: " phba 1989 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_in_buf_free(phba, &nvmebuf->dbuf); phba 1992 drivers/scsi/lpfc/lpfc_nvmet.c ctxp->phba = phba; phba 2000 drivers/scsi/lpfc/lpfc_nvmet.c ctxp->hdwq = &phba->sli4_hba.hdwq[0]; phba 2002 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmeio_data(phba, "NVMET LS RCV: xri x%x sz %d from %06x\n", phba 2010 drivers/scsi/lpfc/lpfc_nvmet.c rc = nvmet_fc_rcv_ls_req(phba->targetport, &ctxp->ctx.ls_req, phba 2013 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_DISC, phba 2024 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmeio_data(phba, "NVMET LS DROP: xri x%x sz %d from %06x\n", phba 2028 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 2033 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_in_buf_free(phba, &nvmebuf->dbuf); phba 2036 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_ls_issue_abort(phba, ctxp, sid, oxid); phba 2045 drivers/scsi/lpfc/lpfc_nvmet.c struct lpfc_hba *phba = ctxp->phba; phba 2053 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 2058 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_defer_release(phba, ctxp); phba 2060 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_fcp_issue_abort(phba, ctxp, ctxp->sid, phba 2066 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 2073 drivers/scsi/lpfc/lpfc_nvmet.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 2088 drivers/scsi/lpfc/lpfc_nvmet.c rc = nvmet_fc_rcv_fcp_req(phba->targetport, &ctxp->ctx.fcp_req, phba 2101 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_rq_buf_free(phba, &nvmebuf->hbuf); /* repost */ phba 2107 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmeio_data(phba, "NVMET RCV BUSY: xri x%x sz %d " phba 2124 drivers/scsi/lpfc/lpfc_nvmet.c phba, phba->sli4_hba.nvmet_mrq_hdr[qno], phba 2125 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.nvmet_mrq_data[qno], 1, qno); phba 2130 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 2136 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmeio_data(phba, "NVMET FCP DROP: xri x%x sz %d from %06x\n", phba 2139 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_defer_release(phba, ctxp); phba 2141 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_fcp_issue_abort(phba, ctxp, ctxp->sid, ctxp->oxid); phba 2157 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_replenish_context(struct lpfc_hba *phba, phba 2180 drivers/scsi/lpfc/lpfc_nvmet.c for (i = 0; i < phba->sli4_hba.num_possible_cpu; i++) { phba 2229 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_fcp_buffer(struct lpfc_hba *phba, phba 2248 drivers/scsi/lpfc/lpfc_nvmet.c if (!nvmebuf || !phba->targetport) { phba 2249 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 2252 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_rq_buf_free(phba, &nvmebuf->hbuf); phba 2264 drivers/scsi/lpfc/lpfc_nvmet.c current_infop = lpfc_get_ctx_list(phba, current_cpu, idx); phba 2271 drivers/scsi/lpfc/lpfc_nvmet.c ctx_buf = lpfc_nvmet_replenish_context(phba, current_infop); phba 2280 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->cpucheck_on & LPFC_CHECK_NVMET_RCV) { phba 2283 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_IOERR, phba 2287 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.hdwq[idx].cpucheck_rcv_io[current_cpu]++; phba 2292 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmeio_data(phba, "NVMET FCP RCV: xri x%x sz %d CPU %02x\n", phba 2295 drivers/scsi/lpfc/lpfc_nvmet.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 2299 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock_irqsave(&phba->sli4_hba.nvmet_io_wait_lock, iflag); phba 2301 drivers/scsi/lpfc/lpfc_nvmet.c &phba->sli4_hba.lpfc_nvmet_io_wait_list); phba 2302 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.nvmet_io_wait_cnt++; phba 2303 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.nvmet_io_wait_total++; phba 2304 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock_irqrestore(&phba->sli4_hba.nvmet_io_wait_lock, phba 2310 drivers/scsi/lpfc/lpfc_nvmet.c phba, phba->sli4_hba.nvmet_mrq_hdr[qno], phba 2311 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.nvmet_mrq_data[qno], 1, qno); phba 2320 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock_irqsave(&phba->sli4_hba.t_active_list_lock, iflag); phba 2321 drivers/scsi/lpfc/lpfc_nvmet.c list_add_tail(&ctxp->list, &phba->sli4_hba.t_active_ctx_list); phba 2322 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock_irqrestore(&phba->sli4_hba.t_active_list_lock, iflag); phba 2324 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 2331 drivers/scsi/lpfc/lpfc_nvmet.c ctxp->phba = phba; phba 2365 drivers/scsi/lpfc/lpfc_nvmet.c if (!queue_work(phba->wq, &ctx_buf->defer_work)) { phba 2367 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME, phba 2376 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_defer_release(phba, ctxp); phba 2378 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_fcp_issue_abort(phba, ctxp, sid, oxid); phba 2395 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_ls_event(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 2404 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->nvmet_support == 0) { phba 2405 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_in_buf_free(phba, &nvmebuf->dbuf); phba 2408 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_ls_buffer(phba, pring, nvmebuf); phba 2426 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_fcp_event(struct lpfc_hba *phba, phba 2432 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->nvmet_support == 0) { phba 2433 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_rq_buf_free(phba, &nvmebuf->hbuf); phba 2436 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_fcp_buffer(phba, idx, nvmebuf, isr_timestamp, cqflag); phba 2465 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_prep_ls_wqe(struct lpfc_hba *phba, phba 2473 drivers/scsi/lpfc/lpfc_nvmet.c if (!lpfc_is_link_up(phba)) { phba 2474 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_DISC, phba 2482 drivers/scsi/lpfc/lpfc_nvmet.c nvmewqe = lpfc_sli_get_iocbq(phba); phba 2484 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_DISC, phba 2491 drivers/scsi/lpfc/lpfc_nvmet.c ndlp = lpfc_findnode_did(phba->pport, ctxp->sid); phba 2495 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_DISC, phba 2531 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]); phba 2566 drivers/scsi/lpfc/lpfc_nvmet.c nvmewqe->vport = phba->pport; phba 2567 drivers/scsi/lpfc/lpfc_nvmet.c nvmewqe->drvrTimeout = (phba->fc_ratov * 3) + LPFC_DRVR_TIMEOUT; phba 2571 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_DISC, phba 2581 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_sli_release_iocbq(phba, nvmewqe); phba 2587 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_prep_fcp_wqe(struct lpfc_hba *phba, phba 2604 drivers/scsi/lpfc/lpfc_nvmet.c if (!lpfc_is_link_up(phba)) { phba 2605 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 2612 drivers/scsi/lpfc/lpfc_nvmet.c ndlp = lpfc_findnode_did(phba->pport, ctxp->sid); phba 2616 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 2624 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 2628 drivers/scsi/lpfc/lpfc_nvmet.c phba->cfg_nvme_seg_cnt); phba 2632 drivers/scsi/lpfc/lpfc_nvmet.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 2638 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 2656 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 2691 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]); phba 2761 drivers/scsi/lpfc/lpfc_nvmet.c txrdy = dma_pool_alloc(phba->txrdy_payload_pool, phba 2764 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 2783 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]); phba 2801 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->cfg_enable_pbde) { phba 2853 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]); phba 2892 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_IOERR, phba 2899 drivers/scsi/lpfc/lpfc_nvmet.c nvmewqe->vport = phba->pport; phba 2900 drivers/scsi/lpfc/lpfc_nvmet.c nvmewqe->drvrTimeout = (phba->fc_ratov * 3) + LPFC_DRVR_TIMEOUT; phba 2948 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_sol_fcp_abort_cmp(struct lpfc_hba *phba, struct lpfc_iocbq *cmdwqe, phba 2960 drivers/scsi/lpfc/lpfc_nvmet.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 2972 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 2974 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 2981 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 2995 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_ctxbuf_post(phba, ctxp->ctxbuf); phba 2998 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_sli_release_iocbq(phba, cmdwqe); phba 3017 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_fcp_abort_cmp(struct lpfc_hba *phba, struct lpfc_iocbq *cmdwqe, phba 3031 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 3038 drivers/scsi/lpfc/lpfc_nvmet.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 3045 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_ABTS, phba 3056 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 3058 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 3065 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 3079 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_ctxbuf_post(phba, ctxp->ctxbuf); phba 3098 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_xmt_ls_abort_cmp(struct lpfc_hba *phba, struct lpfc_iocbq *cmdwqe, phba 3108 drivers/scsi/lpfc/lpfc_nvmet.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 3111 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 3117 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_ABTS, phba 3123 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_sli_release_iocbq(phba, cmdwqe); phba 3128 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 3136 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_sli_release_iocbq(phba, cmdwqe); phba 3141 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_issue_abort(struct lpfc_hba *phba, phba 3150 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 3154 drivers/scsi/lpfc/lpfc_nvmet.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 3156 drivers/scsi/lpfc/lpfc_nvmet.c ndlp = lpfc_findnode_did(phba->pport, sid); phba 3161 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_ABTS, phba 3187 drivers/scsi/lpfc/lpfc_nvmet.c phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]); phba 3220 drivers/scsi/lpfc/lpfc_nvmet.c abts_wqeq->vport = phba->pport; phba 3229 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 3236 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_sol_fcp_issue_abort(struct lpfc_hba *phba, phba 3247 drivers/scsi/lpfc/lpfc_nvmet.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 3253 drivers/scsi/lpfc/lpfc_nvmet.c ndlp = lpfc_findnode_did(phba->pport, sid); phba 3258 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_ABTS, phba 3270 drivers/scsi/lpfc/lpfc_nvmet.c ctxp->abort_wqeq = lpfc_sli_get_iocbq(phba); phba 3274 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_ABTS, phba 3288 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS, phba 3296 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock_irqsave(&phba->hbalock, flags); phba 3298 drivers/scsi/lpfc/lpfc_nvmet.c if (phba->hba_flag & HBA_IOQ_FLUSH) { phba 3299 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 3301 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME, phba 3304 drivers/scsi/lpfc/lpfc_nvmet.c phba->hba_flag, ctxp->oxid); phba 3305 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_sli_release_iocbq(phba, abts_wqeq); phba 3314 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 3316 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME, phba 3320 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_sli_release_iocbq(phba, abts_wqeq); phba 3366 drivers/scsi/lpfc/lpfc_nvmet.c abts_wqeq->vport = phba->pport; phba 3368 drivers/scsi/lpfc/lpfc_nvmet.c ctxp->hdwq = &phba->sli4_hba.hdwq[abts_wqeq->hba_wqidx]; phba 3370 drivers/scsi/lpfc/lpfc_nvmet.c rc = lpfc_sli4_issue_wqe(phba, ctxp->hdwq, abts_wqeq); phba 3371 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 3381 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_sli_release_iocbq(phba, abts_wqeq); phba 3382 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_ABTS, phba 3390 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_fcp_issue_abort(struct lpfc_hba *phba, phba 3400 drivers/scsi/lpfc/lpfc_nvmet.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 3407 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 3415 drivers/scsi/lpfc/lpfc_nvmet.c rc = lpfc_nvmet_unsol_issue_abort(phba, ctxp, sid, xri); phba 3419 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock_irqsave(&phba->hbalock, flags); phba 3425 drivers/scsi/lpfc/lpfc_nvmet.c ctxp->hdwq = &phba->sli4_hba.hdwq[abts_wqeq->hba_wqidx]; phba 3427 drivers/scsi/lpfc/lpfc_nvmet.c rc = lpfc_sli4_issue_wqe(phba, ctxp->hdwq, abts_wqeq); phba 3428 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 3436 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 3438 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock(&phba->sli4_hba.abts_nvmet_buf_list_lock); phba 3445 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_ABTS, phba 3450 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_ctxbuf_post(phba, ctxp->ctxbuf); phba 3455 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_nvmet_unsol_ls_issue_abort(struct lpfc_hba *phba, phba 3469 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_IOERR, phba 3476 drivers/scsi/lpfc/lpfc_nvmet.c tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; phba 3479 drivers/scsi/lpfc/lpfc_nvmet.c ctxp->wqeq = lpfc_sli_get_iocbq(phba); phba 3481 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_ABTS, phba 3491 drivers/scsi/lpfc/lpfc_nvmet.c if (lpfc_nvmet_unsol_issue_abort(phba, ctxp, sid, xri) == 0) { phba 3496 drivers/scsi/lpfc/lpfc_nvmet.c spin_lock_irqsave(&phba->hbalock, flags); phba 3500 drivers/scsi/lpfc/lpfc_nvmet.c rc = lpfc_sli4_issue_wqe(phba, ctxp->hdwq, abts_wqeq); phba 3501 drivers/scsi/lpfc/lpfc_nvmet.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 3510 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_sli_release_iocbq(phba, abts_wqeq); phba 3512 drivers/scsi/lpfc/lpfc_nvmet.c lpfc_printf_log(phba, KERN_ERR, LOG_NVME_ABTS, phba 37 drivers/scsi/lpfc/lpfc_nvmet.h struct lpfc_hba *phba; phba 103 drivers/scsi/lpfc/lpfc_nvmet.h #define lpfc_get_ctx_list(phba, cpu, mrq) \ phba 104 drivers/scsi/lpfc/lpfc_nvmet.h (phba->sli4_hba.nvmet_ctx_info + ((cpu * phba->cfg_nvmet_mrq) + mrq)) phba 112 drivers/scsi/lpfc/lpfc_nvmet.h struct lpfc_hba *phba; phba 77 drivers/scsi/lpfc/lpfc_scsi.c if (vport->phba->cfg_fof) phba 84 drivers/scsi/lpfc/lpfc_scsi.c lpfc_release_scsi_buf_s4(struct lpfc_hba *phba, struct lpfc_io_buf *psb); phba 86 drivers/scsi/lpfc/lpfc_scsi.c lpfc_release_scsi_buf_s3(struct lpfc_hba *phba, struct lpfc_io_buf *psb); phba 88 drivers/scsi/lpfc/lpfc_scsi.c lpfc_prot_group_type(struct lpfc_hba *phba, struct scsi_cmnd *sc); phba 123 drivers/scsi/lpfc/lpfc_scsi.c lpfc_sli4_set_rsp_sgl_last(struct lpfc_hba *phba, phba 144 drivers/scsi/lpfc/lpfc_scsi.c lpfc_update_stats(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd) phba 167 drivers/scsi/lpfc/lpfc_scsi.c (phba->bucket_type == LPFC_NO_BUCKET)) { phba 172 drivers/scsi/lpfc/lpfc_scsi.c if (phba->bucket_type == LPFC_LINEAR_BUCKET) { phba 173 drivers/scsi/lpfc/lpfc_scsi.c i = (latency + phba->bucket_step - 1 - phba->bucket_base)/ phba 174 drivers/scsi/lpfc/lpfc_scsi.c phba->bucket_step; phba 182 drivers/scsi/lpfc/lpfc_scsi.c if (latency <= (phba->bucket_base + phba 183 drivers/scsi/lpfc/lpfc_scsi.c ((1<<i)*phba->bucket_step))) phba 203 drivers/scsi/lpfc/lpfc_scsi.c lpfc_rampdown_queue_depth(struct lpfc_hba *phba) phba 209 drivers/scsi/lpfc/lpfc_scsi.c spin_lock_irqsave(&phba->hbalock, flags); phba 210 drivers/scsi/lpfc/lpfc_scsi.c atomic_inc(&phba->num_rsrc_err); phba 211 drivers/scsi/lpfc/lpfc_scsi.c phba->last_rsrc_error_time = jiffies; phba 213 drivers/scsi/lpfc/lpfc_scsi.c expires = phba->last_ramp_down_time + QUEUE_RAMP_DOWN_INTERVAL; phba 215 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 219 drivers/scsi/lpfc/lpfc_scsi.c phba->last_ramp_down_time = jiffies; phba 221 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 223 drivers/scsi/lpfc/lpfc_scsi.c spin_lock_irqsave(&phba->pport->work_port_lock, flags); phba 224 drivers/scsi/lpfc/lpfc_scsi.c evt_posted = phba->pport->work_port_events & WORKER_RAMP_DOWN_QUEUE; phba 226 drivers/scsi/lpfc/lpfc_scsi.c phba->pport->work_port_events |= WORKER_RAMP_DOWN_QUEUE; phba 227 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->pport->work_port_lock, flags); phba 230 drivers/scsi/lpfc/lpfc_scsi.c lpfc_worker_wake_up(phba); phba 243 drivers/scsi/lpfc/lpfc_scsi.c lpfc_ramp_down_queue_handler(struct lpfc_hba *phba) phba 252 drivers/scsi/lpfc/lpfc_scsi.c num_rsrc_err = atomic_read(&phba->num_rsrc_err); phba 253 drivers/scsi/lpfc/lpfc_scsi.c num_cmd_success = atomic_read(&phba->num_cmd_success); phba 263 drivers/scsi/lpfc/lpfc_scsi.c vports = lpfc_create_vport_work_array(phba); phba 265 drivers/scsi/lpfc/lpfc_scsi.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 279 drivers/scsi/lpfc/lpfc_scsi.c lpfc_destroy_vport_work_array(phba, vports); phba 280 drivers/scsi/lpfc/lpfc_scsi.c atomic_set(&phba->num_rsrc_err, 0); phba 281 drivers/scsi/lpfc/lpfc_scsi.c atomic_set(&phba->num_cmd_success, 0); phba 293 drivers/scsi/lpfc/lpfc_scsi.c lpfc_scsi_dev_block(struct lpfc_hba *phba) phba 301 drivers/scsi/lpfc/lpfc_scsi.c vports = lpfc_create_vport_work_array(phba); phba 303 drivers/scsi/lpfc/lpfc_scsi.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { phba 310 drivers/scsi/lpfc/lpfc_scsi.c lpfc_destroy_vport_work_array(phba, vports); phba 332 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_hba *phba = vport->phba; phba 342 drivers/scsi/lpfc/lpfc_scsi.c bpl_size = phba->cfg_sg_dma_buf_size - phba 347 drivers/scsi/lpfc/lpfc_scsi.c num_to_alloc, phba->cfg_sg_dma_buf_size, phba 362 drivers/scsi/lpfc/lpfc_scsi.c psb->data = dma_pool_zalloc(phba->lpfc_sg_dma_buf_pool, phba 371 drivers/scsi/lpfc/lpfc_scsi.c iotag = lpfc_sli_next_iotag(phba, &psb->cur_iocbq); phba 373 drivers/scsi/lpfc/lpfc_scsi.c dma_pool_free(phba->lpfc_sg_dma_buf_pool, phba 416 drivers/scsi/lpfc/lpfc_scsi.c if ((phba->sli_rev == 3) && phba 417 drivers/scsi/lpfc/lpfc_scsi.c !(phba->sli3_options & LPFC_SLI3_BG_ENABLED)) { phba 451 drivers/scsi/lpfc/lpfc_scsi.c lpfc_release_scsi_buf_s3(phba, psb); phba 468 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_hba *phba = vport->phba; phba 477 drivers/scsi/lpfc/lpfc_scsi.c spin_lock_irqsave(&phba->hbalock, iflag); phba 478 drivers/scsi/lpfc/lpfc_scsi.c for (idx = 0; idx < phba->cfg_hdw_queue; idx++) { phba 479 drivers/scsi/lpfc/lpfc_scsi.c qp = &phba->sli4_hba.hdwq[idx]; phba 493 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 505 drivers/scsi/lpfc/lpfc_scsi.c lpfc_sli4_io_xri_aborted(struct lpfc_hba *phba, phba 517 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_sli_ring *pring = phba->sli4_hba.els_wq->pring; phba 519 drivers/scsi/lpfc/lpfc_scsi.c if (!(phba->cfg_enable_fc4_type & LPFC_ENABLE_FCP)) phba 522 drivers/scsi/lpfc/lpfc_scsi.c qp = &phba->sli4_hba.hdwq[idx]; phba 523 drivers/scsi/lpfc/lpfc_scsi.c spin_lock_irqsave(&phba->hbalock, iflag); phba 534 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 535 drivers/scsi/lpfc/lpfc_scsi.c lpfc_sli4_nvme_xri_aborted(phba, axri, psb); phba 546 drivers/scsi/lpfc/lpfc_scsi.c rrq_empty = list_empty(&phba->active_rrq_list); phba 547 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 549 drivers/scsi/lpfc/lpfc_scsi.c lpfc_set_rrq_active(phba, ndlp, phba 551 drivers/scsi/lpfc/lpfc_scsi.c lpfc_sli4_abts_err_handler(phba, ndlp, axri); phba 553 drivers/scsi/lpfc/lpfc_scsi.c lpfc_release_scsi_buf_s4(phba, psb); phba 555 drivers/scsi/lpfc/lpfc_scsi.c lpfc_worker_wake_up(phba); phba 560 drivers/scsi/lpfc/lpfc_scsi.c for (i = 1; i <= phba->sli.last_iotag; i++) { phba 561 drivers/scsi/lpfc/lpfc_scsi.c iocbq = phba->sli.iocbq_lookup[i]; phba 570 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 572 drivers/scsi/lpfc/lpfc_scsi.c lpfc_worker_wake_up(phba); phba 576 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 591 drivers/scsi/lpfc/lpfc_scsi.c lpfc_get_scsi_buf_s3(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, phba 595 drivers/scsi/lpfc/lpfc_scsi.c struct list_head *scsi_buf_list_get = &phba->lpfc_scsi_buf_list_get; phba 598 drivers/scsi/lpfc/lpfc_scsi.c spin_lock_irqsave(&phba->scsi_buf_list_get_lock, iflag); phba 602 drivers/scsi/lpfc/lpfc_scsi.c spin_lock(&phba->scsi_buf_list_put_lock); phba 603 drivers/scsi/lpfc/lpfc_scsi.c list_splice(&phba->lpfc_scsi_buf_list_put, phba 604 drivers/scsi/lpfc/lpfc_scsi.c &phba->lpfc_scsi_buf_list_get); phba 605 drivers/scsi/lpfc/lpfc_scsi.c INIT_LIST_HEAD(&phba->lpfc_scsi_buf_list_put); phba 608 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock(&phba->scsi_buf_list_put_lock); phba 610 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->scsi_buf_list_get_lock, iflag); phba 612 drivers/scsi/lpfc/lpfc_scsi.c if (lpfc_ndlp_check_qdepth(phba, ndlp) && lpfc_cmd) { phba 630 drivers/scsi/lpfc/lpfc_scsi.c lpfc_get_scsi_buf_s4(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, phba 644 drivers/scsi/lpfc/lpfc_scsi.c if (cmnd && phba->cfg_fcp_io_sched == LPFC_FCP_SCHED_BY_HDWQ) { phba 648 drivers/scsi/lpfc/lpfc_scsi.c idx = phba->sli4_hba.cpu_map[cpu].hdwq; phba 651 drivers/scsi/lpfc/lpfc_scsi.c lpfc_cmd = lpfc_get_io_buf(phba, ndlp, idx, phba 652 drivers/scsi/lpfc/lpfc_scsi.c !phba->cfg_xri_rebalancing); phba 654 drivers/scsi/lpfc/lpfc_scsi.c qp = &phba->sli4_hba.hdwq[idx]; phba 673 drivers/scsi/lpfc/lpfc_scsi.c tmp = lpfc_get_cmd_rsp_buf_per_hdwq(phba, lpfc_cmd); phba 675 drivers/scsi/lpfc/lpfc_scsi.c lpfc_release_io_buf(phba, lpfc_cmd, lpfc_cmd->hdwq); phba 724 drivers/scsi/lpfc/lpfc_scsi.c if (lpfc_ndlp_check_qdepth(phba, ndlp) && lpfc_cmd) { phba 742 drivers/scsi/lpfc/lpfc_scsi.c lpfc_get_scsi_buf(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, phba 745 drivers/scsi/lpfc/lpfc_scsi.c return phba->lpfc_get_scsi_buf(phba, ndlp, cmnd); phba 757 drivers/scsi/lpfc/lpfc_scsi.c lpfc_release_scsi_buf_s3(struct lpfc_hba *phba, struct lpfc_io_buf *psb) phba 764 drivers/scsi/lpfc/lpfc_scsi.c spin_lock_irqsave(&phba->scsi_buf_list_put_lock, iflag); phba 767 drivers/scsi/lpfc/lpfc_scsi.c list_add_tail(&psb->list, &phba->lpfc_scsi_buf_list_put); phba 768 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->scsi_buf_list_put_lock, iflag); phba 782 drivers/scsi/lpfc/lpfc_scsi.c lpfc_release_scsi_buf_s4(struct lpfc_hba *phba, struct lpfc_io_buf *psb) phba 798 drivers/scsi/lpfc/lpfc_scsi.c lpfc_release_io_buf(phba, (struct lpfc_io_buf *)psb, qp); phba 811 drivers/scsi/lpfc/lpfc_scsi.c lpfc_release_scsi_buf(struct lpfc_hba *phba, struct lpfc_io_buf *psb) phba 817 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_release_scsi_buf(phba, psb); phba 835 drivers/scsi/lpfc/lpfc_scsi.c lpfc_scsi_prep_dma_buf_s3(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd) phba 863 drivers/scsi/lpfc/lpfc_scsi.c nseg = dma_map_sg(&phba->pcidev->dev, scsi_sglist(scsi_cmnd), phba 869 drivers/scsi/lpfc/lpfc_scsi.c if (lpfc_cmd->seg_cnt > phba->cfg_sg_seg_cnt) { phba 870 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 873 drivers/scsi/lpfc/lpfc_scsi.c __func__, phba->cfg_sg_seg_cnt, phba 875 drivers/scsi/lpfc/lpfc_scsi.c WARN_ON_ONCE(lpfc_cmd->seg_cnt > phba->cfg_sg_seg_cnt); phba 892 drivers/scsi/lpfc/lpfc_scsi.c if (phba->sli_rev == 3 && phba 893 drivers/scsi/lpfc/lpfc_scsi.c !(phba->sli3_options & LPFC_SLI3_BG_ENABLED) && phba 920 drivers/scsi/lpfc/lpfc_scsi.c if (phba->sli_rev == 3 && phba 921 drivers/scsi/lpfc/lpfc_scsi.c !(phba->sli3_options & LPFC_SLI3_BG_ENABLED) && phba 984 drivers/scsi/lpfc/lpfc_scsi.c lpfc_bg_err_inject(struct lpfc_hba *phba, struct scsi_cmnd *sc, phba 1006 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_lba != LPFC_INJERR_LBA_OFF) { phba 1011 drivers/scsi/lpfc/lpfc_scsi.c if ((phba->lpfc_injerr_lba < lba) || phba 1012 drivers/scsi/lpfc/lpfc_scsi.c (phba->lpfc_injerr_lba >= (lba + numblks))) phba 1015 drivers/scsi/lpfc/lpfc_scsi.c blockoff = phba->lpfc_injerr_lba - lba; phba 1029 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_nportid && phba 1030 drivers/scsi/lpfc/lpfc_scsi.c (phba->lpfc_injerr_nportid != ndlp->nlp_DID)) phba 1037 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_wwpn.u.wwn[0] && phba 1038 drivers/scsi/lpfc/lpfc_scsi.c (memcmp(&ndlp->nlp_portname, &phba->lpfc_injerr_wwpn, phba 1052 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_wref_cnt) { phba 1064 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 1083 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_wref_cnt--; phba 1084 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_wref_cnt == 0) { phba 1085 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_nportid = 0; phba 1086 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_lba = phba 1088 drivers/scsi/lpfc/lpfc_scsi.c memset(&phba->lpfc_injerr_wwpn, phba 1104 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_wref_cnt--; phba 1105 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_wref_cnt == 0) { phba 1106 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_nportid = 0; phba 1107 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_lba = phba 1109 drivers/scsi/lpfc/lpfc_scsi.c memset(&phba->lpfc_injerr_wwpn, phba 1114 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 1125 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_wref_cnt--; phba 1126 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_wref_cnt == 0) { phba 1127 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_nportid = 0; phba 1128 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_lba = phba 1130 drivers/scsi/lpfc/lpfc_scsi.c memset(&phba->lpfc_injerr_wwpn, phba 1135 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 1141 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_rref_cnt) { phba 1152 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_rref_cnt--; phba 1153 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_rref_cnt == 0) { phba 1154 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_nportid = 0; phba 1155 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_lba = phba 1157 drivers/scsi/lpfc/lpfc_scsi.c memset(&phba->lpfc_injerr_wwpn, phba 1162 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 1172 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_wapp_cnt) { phba 1184 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 1203 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_wapp_cnt--; phba 1204 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_wapp_cnt == 0) { phba 1205 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_nportid = 0; phba 1206 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_lba = phba 1208 drivers/scsi/lpfc/lpfc_scsi.c memset(&phba->lpfc_injerr_wwpn, phba 1223 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_wapp_cnt--; phba 1224 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_wapp_cnt == 0) { phba 1225 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_nportid = 0; phba 1226 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_lba = phba 1228 drivers/scsi/lpfc/lpfc_scsi.c memset(&phba->lpfc_injerr_wwpn, phba 1233 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 1244 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_wapp_cnt--; phba 1245 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_wapp_cnt == 0) { phba 1246 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_nportid = 0; phba 1247 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_lba = phba 1249 drivers/scsi/lpfc/lpfc_scsi.c memset(&phba->lpfc_injerr_wwpn, phba 1254 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 1260 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_rapp_cnt) { phba 1271 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_rapp_cnt--; phba 1272 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_rapp_cnt == 0) { phba 1273 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_nportid = 0; phba 1274 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_lba = phba 1276 drivers/scsi/lpfc/lpfc_scsi.c memset(&phba->lpfc_injerr_wwpn, phba 1281 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 1292 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_wgrd_cnt) { phba 1304 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_wgrd_cnt--; phba 1305 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_wgrd_cnt == 0) { phba 1306 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_nportid = 0; phba 1307 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_lba = phba 1309 drivers/scsi/lpfc/lpfc_scsi.c memset(&phba->lpfc_injerr_wwpn, phba 1316 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 1326 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_wgrd_cnt--; phba 1327 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_wgrd_cnt == 0) { phba 1328 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_nportid = 0; phba 1329 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_lba = phba 1331 drivers/scsi/lpfc/lpfc_scsi.c memset(&phba->lpfc_injerr_wwpn, phba 1338 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 1344 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_rgrd_cnt) { phba 1354 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_rgrd_cnt--; phba 1355 drivers/scsi/lpfc/lpfc_scsi.c if (phba->lpfc_injerr_rgrd_cnt == 0) { phba 1356 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_nportid = 0; phba 1357 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_injerr_lba = phba 1359 drivers/scsi/lpfc/lpfc_scsi.c memset(&phba->lpfc_injerr_wwpn, phba 1366 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 1389 drivers/scsi/lpfc/lpfc_scsi.c lpfc_sc_to_bg_opcodes(struct lpfc_hba *phba, struct scsi_cmnd *sc, phba 1416 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 1445 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 1469 drivers/scsi/lpfc/lpfc_scsi.c lpfc_bg_err_opcodes(struct lpfc_hba *phba, struct scsi_cmnd *sc, phba 1561 drivers/scsi/lpfc/lpfc_scsi.c lpfc_bg_setup_bpl(struct lpfc_hba *phba, struct scsi_cmnd *sc, phba 1577 drivers/scsi/lpfc/lpfc_scsi.c status = lpfc_sc_to_bg_opcodes(phba, sc, &txop, &rxop); phba 1585 drivers/scsi/lpfc/lpfc_scsi.c rc = lpfc_bg_err_inject(phba, sc, &reftag, NULL, 1); phba 1588 drivers/scsi/lpfc/lpfc_scsi.c lpfc_bg_err_opcodes(phba, sc, &txop, &rxop); phba 1701 drivers/scsi/lpfc/lpfc_scsi.c lpfc_bg_setup_bpl_prot(struct lpfc_hba *phba, struct scsi_cmnd *sc, phba 1731 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_FCP, phba 1737 drivers/scsi/lpfc/lpfc_scsi.c status = lpfc_sc_to_bg_opcodes(phba, sc, &txop, &rxop); phba 1746 drivers/scsi/lpfc/lpfc_scsi.c rc = lpfc_bg_err_inject(phba, sc, &reftag, NULL, 1); phba 1749 drivers/scsi/lpfc/lpfc_scsi.c lpfc_bg_err_opcodes(phba, sc, &txop, &rxop); phba 1758 drivers/scsi/lpfc/lpfc_scsi.c if (num_bde >= (phba->cfg_total_seg_cnt - 2)) phba 1839 drivers/scsi/lpfc/lpfc_scsi.c if (num_bde >= phba->cfg_total_seg_cnt) phba 1843 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 1906 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 1946 drivers/scsi/lpfc/lpfc_scsi.c lpfc_bg_setup_sgl(struct lpfc_hba *phba, struct scsi_cmnd *sc, phba 1966 drivers/scsi/lpfc/lpfc_scsi.c status = lpfc_sc_to_bg_opcodes(phba, sc, &txop, &rxop); phba 1974 drivers/scsi/lpfc/lpfc_scsi.c rc = lpfc_bg_err_inject(phba, sc, &reftag, NULL, 1); phba 1977 drivers/scsi/lpfc/lpfc_scsi.c lpfc_bg_err_opcodes(phba, sc, &txop, &rxop); phba 2031 drivers/scsi/lpfc/lpfc_scsi.c if (!lsp_just_set && !((j + 1) % phba->border_sge_num) && phba 2036 drivers/scsi/lpfc/lpfc_scsi.c sgl_xtra = lpfc_get_sgl_per_hdwq(phba, lpfc_cmd); phba 2072 drivers/scsi/lpfc/lpfc_scsi.c sgl->sge_len = cpu_to_le32(phba->cfg_sg_dma_buf_size); phba 2126 drivers/scsi/lpfc/lpfc_scsi.c lpfc_bg_setup_sgl_prot(struct lpfc_hba *phba, struct scsi_cmnd *sc, phba 2157 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_FCP, phba 2163 drivers/scsi/lpfc/lpfc_scsi.c status = lpfc_sc_to_bg_opcodes(phba, sc, &txop, &rxop); phba 2172 drivers/scsi/lpfc/lpfc_scsi.c rc = lpfc_bg_err_inject(phba, sc, &reftag, NULL, 1); phba 2175 drivers/scsi/lpfc/lpfc_scsi.c lpfc_bg_err_opcodes(phba, sc, &txop, &rxop); phba 2184 drivers/scsi/lpfc/lpfc_scsi.c if ((num_sge >= (phba->cfg_total_seg_cnt - 2)) && phba 2185 drivers/scsi/lpfc/lpfc_scsi.c !(phba->cfg_xpsgl)) phba 2189 drivers/scsi/lpfc/lpfc_scsi.c if (!((j + 1) % phba->border_sge_num) || phba 2190 drivers/scsi/lpfc/lpfc_scsi.c !((j + 2) % phba->border_sge_num) || phba 2191 drivers/scsi/lpfc/lpfc_scsi.c !((j + 3) % phba->border_sge_num)) { phba 2197 drivers/scsi/lpfc/lpfc_scsi.c sgl_xtra = lpfc_get_sgl_per_hdwq(phba, lpfc_cmd); phba 2209 drivers/scsi/lpfc/lpfc_scsi.c sgl->sge_len = cpu_to_le32(phba->cfg_sg_dma_buf_size); phba 2305 drivers/scsi/lpfc/lpfc_scsi.c if ((num_sge >= phba->cfg_total_seg_cnt) && phba 2306 drivers/scsi/lpfc/lpfc_scsi.c !phba->cfg_xpsgl) phba 2310 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 2316 drivers/scsi/lpfc/lpfc_scsi.c if (!((j + 1) % phba->border_sge_num)) { phba 2323 drivers/scsi/lpfc/lpfc_scsi.c sgl_xtra = lpfc_get_sgl_per_hdwq(phba, phba 2337 drivers/scsi/lpfc/lpfc_scsi.c phba->cfg_sg_dma_buf_size); phba 2415 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 2438 drivers/scsi/lpfc/lpfc_scsi.c lpfc_prot_group_type(struct lpfc_hba *phba, struct scsi_cmnd *sc) phba 2455 drivers/scsi/lpfc/lpfc_scsi.c if (phba) phba 2456 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_FCP, phba 2475 drivers/scsi/lpfc/lpfc_scsi.c lpfc_bg_scsi_adjust_dl(struct lpfc_hba *phba, phba 2518 drivers/scsi/lpfc/lpfc_scsi.c lpfc_bg_scsi_prep_dma_buf_s3(struct lpfc_hba *phba, phba 2530 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_vport *vport = phba->pport; phba 2544 drivers/scsi/lpfc/lpfc_scsi.c datasegcnt = dma_map_sg(&phba->pcidev->dev, phba 2553 drivers/scsi/lpfc/lpfc_scsi.c if (lpfc_cmd->seg_cnt > phba->cfg_sg_seg_cnt) { phba 2554 drivers/scsi/lpfc/lpfc_scsi.c WARN_ON_ONCE(lpfc_cmd->seg_cnt > phba->cfg_sg_seg_cnt); phba 2559 drivers/scsi/lpfc/lpfc_scsi.c prot_group_type = lpfc_prot_group_type(phba, scsi_cmnd); phba 2565 drivers/scsi/lpfc/lpfc_scsi.c if ((lpfc_cmd->seg_cnt + 2) > phba->cfg_total_seg_cnt) { phba 2570 drivers/scsi/lpfc/lpfc_scsi.c num_bde = lpfc_bg_setup_bpl(phba, scsi_cmnd, bpl, phba 2585 drivers/scsi/lpfc/lpfc_scsi.c protsegcnt = dma_map_sg(&phba->pcidev->dev, phba 2600 drivers/scsi/lpfc/lpfc_scsi.c (phba->cfg_total_seg_cnt - 2)) { phba 2605 drivers/scsi/lpfc/lpfc_scsi.c num_bde = lpfc_bg_setup_bpl_prot(phba, scsi_cmnd, bpl, phba 2609 drivers/scsi/lpfc/lpfc_scsi.c (num_bde > phba->cfg_total_seg_cnt)) { phba 2620 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_FCP, phba 2638 drivers/scsi/lpfc/lpfc_scsi.c fcpdl = lpfc_bg_scsi_adjust_dl(phba, lpfc_cmd); phba 2660 drivers/scsi/lpfc/lpfc_scsi.c dma_unmap_sg(&phba->pcidev->dev, scsi_prot_sglist(scsi_cmnd), phba 2664 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_FCP, phba 2668 drivers/scsi/lpfc/lpfc_scsi.c phba->cfg_total_seg_cnt, phba->cfg_sg_seg_cnt, phba 2711 drivers/scsi/lpfc/lpfc_scsi.c lpfc_calc_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd) phba 2850 drivers/scsi/lpfc/lpfc_scsi.c phba->bg_guard_err_cnt++; phba 2851 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG, phba 2862 drivers/scsi/lpfc/lpfc_scsi.c phba->bg_reftag_err_cnt++; phba 2863 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG, phba 2874 drivers/scsi/lpfc/lpfc_scsi.c phba->bg_apptag_err_cnt++; phba 2875 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG, phba 2896 drivers/scsi/lpfc/lpfc_scsi.c lpfc_parse_bg_err(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd, phba 2908 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG, phba 2920 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG, phba 2937 drivers/scsi/lpfc/lpfc_scsi.c phba->bg_guard_err_cnt++; phba 2938 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG, phba 2954 drivers/scsi/lpfc/lpfc_scsi.c phba->bg_reftag_err_cnt++; phba 2955 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG, phba 2971 drivers/scsi/lpfc/lpfc_scsi.c phba->bg_apptag_err_cnt++; phba 2972 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG, phba 3016 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_BG, phba 3024 drivers/scsi/lpfc/lpfc_scsi.c lpfc_calc_bg_err(phba, lpfc_cmd); phba 3044 drivers/scsi/lpfc/lpfc_scsi.c lpfc_scsi_prep_dma_buf_s4(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd) phba 3086 drivers/scsi/lpfc/lpfc_scsi.c if (!phba->cfg_xpsgl && phba 3087 drivers/scsi/lpfc/lpfc_scsi.c lpfc_cmd->seg_cnt > phba->cfg_sg_seg_cnt) { phba 3088 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, "9074 BLKGRD:" phba 3091 drivers/scsi/lpfc/lpfc_scsi.c __func__, phba->cfg_sg_seg_cnt, phba 3093 drivers/scsi/lpfc/lpfc_scsi.c WARN_ON_ONCE(lpfc_cmd->seg_cnt > phba->cfg_sg_seg_cnt); phba 3123 drivers/scsi/lpfc/lpfc_scsi.c !((j + 1) % phba->border_sge_num) && phba 3130 drivers/scsi/lpfc/lpfc_scsi.c phba, lpfc_cmd); phba 3173 drivers/scsi/lpfc/lpfc_scsi.c phba->cfg_sg_dma_buf_size); phba 3188 drivers/scsi/lpfc/lpfc_scsi.c if ((phba->sli3_options & LPFC_SLI4_PERFH_ENABLED) || phba 3189 drivers/scsi/lpfc/lpfc_scsi.c phba->cfg_enable_pbde) { phba 3206 drivers/scsi/lpfc/lpfc_scsi.c if ((phba->sli3_options & LPFC_SLI4_PERFH_ENABLED) || phba 3207 drivers/scsi/lpfc/lpfc_scsi.c phba->cfg_enable_pbde) { phba 3232 drivers/scsi/lpfc/lpfc_scsi.c if ((phba->cfg_fof) && ((struct lpfc_device_data *) phba 3256 drivers/scsi/lpfc/lpfc_scsi.c lpfc_bg_scsi_prep_dma_buf_s4(struct lpfc_hba *phba, phba 3268 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_vport *vport = phba->pport; phba 3281 drivers/scsi/lpfc/lpfc_scsi.c datasegcnt = dma_map_sg(&phba->pcidev->dev, phba 3297 drivers/scsi/lpfc/lpfc_scsi.c if (lpfc_cmd->seg_cnt > phba->cfg_sg_seg_cnt && phba 3298 drivers/scsi/lpfc/lpfc_scsi.c !phba->cfg_xpsgl) { phba 3299 drivers/scsi/lpfc/lpfc_scsi.c WARN_ON_ONCE(lpfc_cmd->seg_cnt > phba->cfg_sg_seg_cnt); phba 3304 drivers/scsi/lpfc/lpfc_scsi.c prot_group_type = lpfc_prot_group_type(phba, scsi_cmnd); phba 3310 drivers/scsi/lpfc/lpfc_scsi.c phba->cfg_total_seg_cnt) && phba 3311 drivers/scsi/lpfc/lpfc_scsi.c !phba->cfg_xpsgl) { phba 3316 drivers/scsi/lpfc/lpfc_scsi.c num_sge = lpfc_bg_setup_sgl(phba, scsi_cmnd, sgl, phba 3332 drivers/scsi/lpfc/lpfc_scsi.c protsegcnt = dma_map_sg(&phba->pcidev->dev, phba 3346 drivers/scsi/lpfc/lpfc_scsi.c (phba->cfg_total_seg_cnt - 2)) && phba 3347 drivers/scsi/lpfc/lpfc_scsi.c !phba->cfg_xpsgl) { phba 3352 drivers/scsi/lpfc/lpfc_scsi.c num_sge = lpfc_bg_setup_sgl_prot(phba, scsi_cmnd, sgl, phba 3357 drivers/scsi/lpfc/lpfc_scsi.c (num_sge > phba->cfg_total_seg_cnt && phba 3358 drivers/scsi/lpfc/lpfc_scsi.c !phba->cfg_xpsgl)) { phba 3369 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_FCP, phba 3391 drivers/scsi/lpfc/lpfc_scsi.c fcpdl = lpfc_bg_scsi_adjust_dl(phba, lpfc_cmd); phba 3412 drivers/scsi/lpfc/lpfc_scsi.c if ((phba->cfg_fof) && ((struct lpfc_device_data *) phba 3421 drivers/scsi/lpfc/lpfc_scsi.c dma_unmap_sg(&phba->pcidev->dev, scsi_prot_sglist(scsi_cmnd), phba 3425 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_FCP, phba 3429 drivers/scsi/lpfc/lpfc_scsi.c phba->cfg_total_seg_cnt, phba->cfg_sg_seg_cnt, phba 3450 drivers/scsi/lpfc/lpfc_scsi.c lpfc_scsi_prep_dma_buf(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd) phba 3452 drivers/scsi/lpfc/lpfc_scsi.c return phba->lpfc_scsi_prep_dma_buf(phba, lpfc_cmd); phba 3469 drivers/scsi/lpfc/lpfc_scsi.c lpfc_bg_scsi_prep_dma_buf(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_cmd) phba 3471 drivers/scsi/lpfc/lpfc_scsi.c return phba->lpfc_bg_scsi_prep_dma_buf(phba, lpfc_cmd); phba 3485 drivers/scsi/lpfc/lpfc_scsi.c lpfc_send_scsi_error_event(struct lpfc_hba *phba, struct lpfc_vport *vport, phba 3502 drivers/scsi/lpfc/lpfc_scsi.c fast_path_evt = lpfc_alloc_fast_evt(phba); phba 3517 drivers/scsi/lpfc/lpfc_scsi.c fast_path_evt = lpfc_alloc_fast_evt(phba); phba 3543 drivers/scsi/lpfc/lpfc_scsi.c fast_path_evt = lpfc_alloc_fast_evt(phba); phba 3562 drivers/scsi/lpfc/lpfc_scsi.c spin_lock_irqsave(&phba->hbalock, flags); phba 3563 drivers/scsi/lpfc/lpfc_scsi.c list_add_tail(&fast_path_evt->work_evt.evt_listp, &phba->work_list); phba 3564 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 3565 drivers/scsi/lpfc/lpfc_scsi.c lpfc_worker_wake_up(phba); phba 3578 drivers/scsi/lpfc/lpfc_scsi.c lpfc_scsi_unprep_dma_buf(struct lpfc_hba *phba, struct lpfc_io_buf *psb) phba 3589 drivers/scsi/lpfc/lpfc_scsi.c dma_unmap_sg(&phba->pcidev->dev, scsi_prot_sglist(psb->pCmd), phba 3608 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_hba *phba = vport->phba; phba 3751 drivers/scsi/lpfc/lpfc_scsi.c ((phba->sli_rev == LPFC_SLI_REV4) ? phba 3780 drivers/scsi/lpfc/lpfc_scsi.c lpfc_send_scsi_error_event(vport->phba, vport, lpfc_cmd, rsp_iocb); phba 3794 drivers/scsi/lpfc/lpfc_scsi.c lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn, phba 3825 drivers/scsi/lpfc/lpfc_scsi.c if (phba->sli4_hba.hdwq) phba 3826 drivers/scsi/lpfc/lpfc_scsi.c phba->sli4_hba.hdwq[idx].scsi_cstat.io_cmpls++; phba 3829 drivers/scsi/lpfc/lpfc_scsi.c if (phba->cpucheck_on & LPFC_CHECK_SCSI_IO) { phba 3831 drivers/scsi/lpfc/lpfc_scsi.c if (cpu < LPFC_CHECK_CPU_CNT && phba->sli4_hba.hdwq) phba 3832 drivers/scsi/lpfc/lpfc_scsi.c phba->sli4_hba.hdwq[idx].cpucheck_cmpl_io[cpu]++; phba 3901 drivers/scsi/lpfc/lpfc_scsi.c phba->sli_rev == LPFC_SLI_REV4 ? phba 3914 drivers/scsi/lpfc/lpfc_scsi.c fast_path_evt = lpfc_alloc_fast_evt(phba); phba 3933 drivers/scsi/lpfc/lpfc_scsi.c spin_lock_irqsave(&phba->hbalock, flags); phba 3935 drivers/scsi/lpfc/lpfc_scsi.c &phba->work_list); phba 3936 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 3937 drivers/scsi/lpfc/lpfc_scsi.c lpfc_worker_wake_up(phba); phba 3965 drivers/scsi/lpfc/lpfc_scsi.c lpfc_parse_bg_err(phba, lpfc_cmd, phba 3976 drivers/scsi/lpfc/lpfc_scsi.c && (phba->sli_rev == LPFC_SLI_REV4) phba 3982 drivers/scsi/lpfc/lpfc_scsi.c lpfc_set_rrq_active(phba, pnode, phba 4010 drivers/scsi/lpfc/lpfc_scsi.c lpfc_update_stats(phba, lpfc_cmd); phba 4029 drivers/scsi/lpfc/lpfc_scsi.c lpfc_scsi_unprep_dma_buf(phba, lpfc_cmd); phba 4047 drivers/scsi/lpfc/lpfc_scsi.c lpfc_release_scsi_buf(phba, lpfc_cmd); phba 4081 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_hba *phba = vport->phba; phba 4112 drivers/scsi/lpfc/lpfc_scsi.c sli4 = (phba->sli_rev == LPFC_SLI_REV4); phba 4115 drivers/scsi/lpfc/lpfc_scsi.c if (phba->sli4_hba.hdwq) phba 4116 drivers/scsi/lpfc/lpfc_scsi.c hdwq = &phba->sli4_hba.hdwq[idx]; phba 4155 drivers/scsi/lpfc/lpfc_scsi.c if (phba->sli_rev == 3 && phba 4156 drivers/scsi/lpfc/lpfc_scsi.c !(phba->sli3_options & LPFC_SLI3_BG_ENABLED)) phba 4165 drivers/scsi/lpfc/lpfc_scsi.c phba->sli4_hba.rpi_ids[pnode->nlp_rpi]; phba 4218 drivers/scsi/lpfc/lpfc_scsi.c if (vport->phba->sli_rev == 3 && phba 4219 drivers/scsi/lpfc/lpfc_scsi.c !(vport->phba->sli3_options & LPFC_SLI3_BG_ENABLED)) phba 4223 drivers/scsi/lpfc/lpfc_scsi.c if (vport->phba->sli_rev == LPFC_SLI_REV4) { phba 4225 drivers/scsi/lpfc/lpfc_scsi.c vport->phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]; phba 4242 drivers/scsi/lpfc/lpfc_scsi.c if (vport->phba->sli_rev == LPFC_SLI_REV4) phba 4243 drivers/scsi/lpfc/lpfc_scsi.c lpfc_sli4_set_rsp_sgl_last(vport->phba, lpfc_cmd); phba 4258 drivers/scsi/lpfc/lpfc_scsi.c lpfc_scsi_api_table_setup(struct lpfc_hba *phba, uint8_t dev_grp) phba 4261 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_scsi_unprep_dma_buf = lpfc_scsi_unprep_dma_buf; phba 4262 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_scsi_prep_cmnd = lpfc_scsi_prep_cmnd; phba 4266 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_scsi_prep_dma_buf = lpfc_scsi_prep_dma_buf_s3; phba 4267 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_bg_scsi_prep_dma_buf = lpfc_bg_scsi_prep_dma_buf_s3; phba 4268 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_release_scsi_buf = lpfc_release_scsi_buf_s3; phba 4269 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_get_scsi_buf = lpfc_get_scsi_buf_s3; phba 4272 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_scsi_prep_dma_buf = lpfc_scsi_prep_dma_buf_s4; phba 4273 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_bg_scsi_prep_dma_buf = lpfc_bg_scsi_prep_dma_buf_s4; phba 4274 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_release_scsi_buf = lpfc_release_scsi_buf_s4; phba 4275 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_get_scsi_buf = lpfc_get_scsi_buf_s4; phba 4278 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 4284 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_rampdown_queue_depth = lpfc_rampdown_queue_depth; phba 4285 drivers/scsi/lpfc/lpfc_scsi.c phba->lpfc_scsi_cmd_iocb_cmpl = lpfc_scsi_cmd_iocb_cmpl; phba 4299 drivers/scsi/lpfc/lpfc_scsi.c lpfc_tskmgmt_def_cmpl(struct lpfc_hba *phba, phba 4306 drivers/scsi/lpfc/lpfc_scsi.c lpfc_release_scsi_buf(phba, lpfc_cmd); phba 4325 drivers/scsi/lpfc/lpfc_scsi.c lpfc_check_pci_resettable(const struct lpfc_hba *phba) phba 4327 drivers/scsi/lpfc/lpfc_scsi.c const struct pci_dev *pdev = phba->pcidev; phba 4335 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 4348 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 4359 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 4383 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_hba *phba = vport->phba; phba 4389 drivers/scsi/lpfc/lpfc_scsi.c if (phba && phba->pcidev){ phba 4391 drivers/scsi/lpfc/lpfc_scsi.c scnprintf(tmp, sizeof(tmp), phba->ModelDesc); phba 4399 drivers/scsi/lpfc/lpfc_scsi.c phba->pcidev->bus->number, phba->pcidev->devfn, phba 4400 drivers/scsi/lpfc/lpfc_scsi.c phba->pcidev->irq); phba 4406 drivers/scsi/lpfc/lpfc_scsi.c if (phba->Port[0]) { phba 4407 drivers/scsi/lpfc/lpfc_scsi.c scnprintf(tmp, sizeof(tmp), " port %s", phba->Port); phba 4414 drivers/scsi/lpfc/lpfc_scsi.c link_speed = lpfc_sli_port_speed_get(phba); phba 4424 drivers/scsi/lpfc/lpfc_scsi.c if (!lpfc_check_pci_resettable(phba)) { phba 4441 drivers/scsi/lpfc/lpfc_scsi.c static __inline__ void lpfc_poll_rearm_timer(struct lpfc_hba * phba) phba 4444 drivers/scsi/lpfc/lpfc_scsi.c (jiffies + msecs_to_jiffies(phba->cfg_poll_tmo)); phba 4446 drivers/scsi/lpfc/lpfc_scsi.c if (!list_empty(&phba->sli.sli3_ring[LPFC_FCP_RING].txcmplq)) phba 4447 drivers/scsi/lpfc/lpfc_scsi.c mod_timer(&phba->fcp_poll_timer, phba 4457 drivers/scsi/lpfc/lpfc_scsi.c void lpfc_poll_start_timer(struct lpfc_hba * phba) phba 4459 drivers/scsi/lpfc/lpfc_scsi.c lpfc_poll_rearm_timer(phba); phba 4472 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_hba *phba = from_timer(phba, t, fcp_poll_timer); phba 4474 drivers/scsi/lpfc/lpfc_scsi.c if (phba->cfg_poll & ENABLE_FCP_RING_POLLING) { phba 4475 drivers/scsi/lpfc/lpfc_scsi.c lpfc_sli_handle_fast_ring_event(phba, phba 4476 drivers/scsi/lpfc/lpfc_scsi.c &phba->sli.sli3_ring[LPFC_FCP_RING], HA_R0RE_REQ); phba 4478 drivers/scsi/lpfc/lpfc_scsi.c if (phba->cfg_poll & DISABLE_FCP_RING_INT) phba 4479 drivers/scsi/lpfc/lpfc_scsi.c lpfc_poll_rearm_timer(phba); phba 4500 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_hba *phba = vport->phba; phba 4524 drivers/scsi/lpfc/lpfc_scsi.c (!(phba->sli3_options & LPFC_SLI3_BG_ENABLED))) { phba 4526 drivers/scsi/lpfc/lpfc_scsi.c lpfc_printf_log(phba, KERN_ERR, LOG_BG, phba 4541 drivers/scsi/lpfc/lpfc_scsi.c if (lpfc_ndlp_check_qdepth(phba, ndlp)) { phba 4572 drivers/scsi/lpfc/lpfc_scsi.c lpfc_cmd = lpfc_get_scsi_buf(phba, ndlp, cmnd); phba 4574 drivers/scsi/lpfc/lpfc_scsi.c lpfc_rampdown_queue_depth(phba); phba 4592 drivers/scsi/lpfc/lpfc_scsi.c if (vport->phba->cfg_enable_bg) { phba 4603 drivers/scsi/lpfc/lpfc_scsi.c err = lpfc_bg_scsi_prep_dma_buf(phba, lpfc_cmd); phba 4605 drivers/scsi/lpfc/lpfc_scsi.c if (vport->phba->cfg_enable_bg) { phba 4615 drivers/scsi/lpfc/lpfc_scsi.c err = lpfc_scsi_prep_dma_buf(phba, lpfc_cmd); phba 4628 drivers/scsi/lpfc/lpfc_scsi.c if (phba->cpucheck_on & LPFC_CHECK_SCSI_IO) { phba 4632 drivers/scsi/lpfc/lpfc_scsi.c &phba->sli4_hba.hdwq[lpfc_cmd->hdwq_no]; phba 4637 drivers/scsi/lpfc/lpfc_scsi.c err = lpfc_sli_issue_iocb(phba, LPFC_FCP_RING, phba 4649 drivers/scsi/lpfc/lpfc_scsi.c phba->sli_rev == LPFC_SLI_REV4 ? phba 4659 drivers/scsi/lpfc/lpfc_scsi.c if (phba->cfg_poll & ENABLE_FCP_RING_POLLING) { phba 4660 drivers/scsi/lpfc/lpfc_scsi.c lpfc_sli_handle_fast_ring_event(phba, phba 4661 drivers/scsi/lpfc/lpfc_scsi.c &phba->sli.sli3_ring[LPFC_FCP_RING], HA_R0RE_REQ); phba 4663 drivers/scsi/lpfc/lpfc_scsi.c if (phba->cfg_poll & DISABLE_FCP_RING_INT) phba 4664 drivers/scsi/lpfc/lpfc_scsi.c lpfc_poll_rearm_timer(phba); phba 4667 drivers/scsi/lpfc/lpfc_scsi.c if (phba->cfg_xri_rebalancing) phba 4668 drivers/scsi/lpfc/lpfc_scsi.c lpfc_keep_pvt_pool_above_lowwm(phba, lpfc_cmd->hdwq_no); phba 4674 drivers/scsi/lpfc/lpfc_scsi.c lpfc_scsi_unprep_dma_buf(phba, lpfc_cmd); phba 4675 drivers/scsi/lpfc/lpfc_scsi.c if (phba->sli4_hba.hdwq) { phba 4678 drivers/scsi/lpfc/lpfc_scsi.c phba->sli4_hba.hdwq[idx].scsi_cstat.output_requests--; phba 4681 drivers/scsi/lpfc/lpfc_scsi.c phba->sli4_hba.hdwq[idx].scsi_cstat.input_requests--; phba 4684 drivers/scsi/lpfc/lpfc_scsi.c phba->sli4_hba.hdwq[idx].scsi_cstat.control_requests--; phba 4687 drivers/scsi/lpfc/lpfc_scsi.c lpfc_release_scsi_buf(phba, lpfc_cmd); phba 4695 drivers/scsi/lpfc/lpfc_scsi.c lpfc_release_scsi_buf(phba, lpfc_cmd); phba 4718 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_hba *phba = vport->phba; phba 4737 drivers/scsi/lpfc/lpfc_scsi.c spin_lock_irqsave(&phba->hbalock, flags); phba 4739 drivers/scsi/lpfc/lpfc_scsi.c if (phba->hba_flag & HBA_IOQ_FLUSH) { phba 4759 drivers/scsi/lpfc/lpfc_scsi.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 4760 drivers/scsi/lpfc/lpfc_scsi.c pring_s4 = phba->sli4_hba.hdwq[iocb->hba_wqidx].io_wq->pring; phba 4794 drivers/scsi/lpfc/lpfc_scsi.c if (phba->sli_rev == LPFC_SLI_REV4) phba 4797 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 4801 drivers/scsi/lpfc/lpfc_scsi.c abtsiocb = __lpfc_sli_get_iocbq(phba); phba 4820 drivers/scsi/lpfc/lpfc_scsi.c if (phba->sli_rev == LPFC_SLI_REV4) phba 4834 drivers/scsi/lpfc/lpfc_scsi.c if (lpfc_is_link_up(phba)) phba 4842 drivers/scsi/lpfc/lpfc_scsi.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 4844 drivers/scsi/lpfc/lpfc_scsi.c ret_val = __lpfc_sli_issue_iocb(phba, pring_s4->ringno, phba 4848 drivers/scsi/lpfc/lpfc_scsi.c ret_val = __lpfc_sli_issue_iocb(phba, LPFC_FCP_RING, phba 4857 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 4858 drivers/scsi/lpfc/lpfc_scsi.c lpfc_sli_release_iocbq(phba, abtsiocb); phba 4865 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 4867 drivers/scsi/lpfc/lpfc_scsi.c if (phba->cfg_poll & DISABLE_FCP_RING_INT) phba 4868 drivers/scsi/lpfc/lpfc_scsi.c lpfc_sli_handle_fast_ring_event(phba, phba 4869 drivers/scsi/lpfc/lpfc_scsi.c &phba->sli.sli3_ring[LPFC_FCP_RING], HA_R0RE_REQ); phba 4895 drivers/scsi/lpfc/lpfc_scsi.c if (phba->sli_rev == LPFC_SLI_REV4) phba 4900 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 5024 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_hba *phba = vport->phba; phba 5038 drivers/scsi/lpfc/lpfc_scsi.c lpfc_cmd = lpfc_get_scsi_buf(phba, pnode, NULL); phba 5041 drivers/scsi/lpfc/lpfc_scsi.c lpfc_cmd->timeout = phba->cfg_task_mgmt_tmo; phba 5049 drivers/scsi/lpfc/lpfc_scsi.c lpfc_release_scsi_buf(phba, lpfc_cmd); phba 5054 drivers/scsi/lpfc/lpfc_scsi.c iocbqrsp = lpfc_sli_get_iocbq(phba); phba 5056 drivers/scsi/lpfc/lpfc_scsi.c lpfc_release_scsi_buf(phba, lpfc_cmd); phba 5068 drivers/scsi/lpfc/lpfc_scsi.c status = lpfc_sli_issue_iocb_wait(phba, LPFC_FCP_RING, phba 5098 drivers/scsi/lpfc/lpfc_scsi.c lpfc_sli_release_iocbq(phba, iocbqrsp); phba 5101 drivers/scsi/lpfc/lpfc_scsi.c lpfc_release_scsi_buf(phba, lpfc_cmd); phba 5174 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_hba *phba = vport->phba; phba 5181 drivers/scsi/lpfc/lpfc_scsi.c &phba->sli.sli3_ring[LPFC_FCP_RING], phba 5395 drivers/scsi/lpfc/lpfc_scsi.c if (vport->phba->cfg_fcp2_no_tgt_reset && phba 5457 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_hba *phba = vport->phba; phba 5463 drivers/scsi/lpfc/lpfc_scsi.c lpfc_offline_prep(phba, LPFC_MBX_WAIT); phba 5464 drivers/scsi/lpfc/lpfc_scsi.c lpfc_offline(phba); phba 5465 drivers/scsi/lpfc/lpfc_scsi.c rc = lpfc_sli_brdrestart(phba); phba 5469 drivers/scsi/lpfc/lpfc_scsi.c rc = lpfc_online(phba); phba 5473 drivers/scsi/lpfc/lpfc_scsi.c lpfc_unblock_mgmt_io(phba); phba 5479 drivers/scsi/lpfc/lpfc_scsi.c lpfc_unblock_mgmt_io(phba); phba 5500 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_hba *phba = vport->phba; phba 5513 drivers/scsi/lpfc/lpfc_scsi.c if (phba->cfg_fof) { phba 5521 drivers/scsi/lpfc/lpfc_scsi.c spin_lock_irqsave(&phba->devicelock, flags); phba 5522 drivers/scsi/lpfc/lpfc_scsi.c device_data = __lpfc_get_device_data(phba, phba 5523 drivers/scsi/lpfc/lpfc_scsi.c &phba->luns, phba 5528 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->devicelock, flags); phba 5529 drivers/scsi/lpfc/lpfc_scsi.c device_data = lpfc_create_device_data(phba, phba 5533 drivers/scsi/lpfc/lpfc_scsi.c phba->cfg_XLanePriority, phba 5537 drivers/scsi/lpfc/lpfc_scsi.c spin_lock_irqsave(&phba->devicelock, flags); phba 5538 drivers/scsi/lpfc/lpfc_scsi.c list_add_tail(&device_data->listentry, &phba->luns); phba 5542 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->devicelock, flags); phba 5547 drivers/scsi/lpfc/lpfc_scsi.c sdev_cnt = atomic_inc_return(&phba->sdev_cnt); phba 5550 drivers/scsi/lpfc/lpfc_scsi.c if (phba->sli_rev == LPFC_SLI_REV4) phba 5562 drivers/scsi/lpfc/lpfc_scsi.c total = phba->total_scsi_bufs; phba 5570 drivers/scsi/lpfc/lpfc_scsi.c if (total >= phba->cfg_hba_queue_depth - LPFC_DISC_IOCB_BUFF_COUNT ) { phba 5577 drivers/scsi/lpfc/lpfc_scsi.c phba->cfg_hba_queue_depth - LPFC_DISC_IOCB_BUFF_COUNT ) { phba 5582 drivers/scsi/lpfc/lpfc_scsi.c num_to_alloc, phba->cfg_hba_queue_depth, phba 5583 drivers/scsi/lpfc/lpfc_scsi.c (phba->cfg_hba_queue_depth - total)); phba 5584 drivers/scsi/lpfc/lpfc_scsi.c num_to_alloc = phba->cfg_hba_queue_depth - total; phba 5595 drivers/scsi/lpfc/lpfc_scsi.c phba->total_scsi_bufs += num_allocated; phba 5614 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_hba *phba = vport->phba; phba 5618 drivers/scsi/lpfc/lpfc_scsi.c if (phba->cfg_poll & ENABLE_FCP_RING_POLLING) { phba 5619 drivers/scsi/lpfc/lpfc_scsi.c lpfc_sli_handle_fast_ring_event(phba, phba 5620 drivers/scsi/lpfc/lpfc_scsi.c &phba->sli.sli3_ring[LPFC_FCP_RING], HA_R0RE_REQ); phba 5621 drivers/scsi/lpfc/lpfc_scsi.c if (phba->cfg_poll & DISABLE_FCP_RING_INT) phba 5622 drivers/scsi/lpfc/lpfc_scsi.c lpfc_poll_rearm_timer(phba); phba 5638 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_hba *phba = vport->phba; phba 5642 drivers/scsi/lpfc/lpfc_scsi.c atomic_dec(&phba->sdev_cnt); phba 5643 drivers/scsi/lpfc/lpfc_scsi.c if ((phba->cfg_fof) && (device_data)) { phba 5644 drivers/scsi/lpfc/lpfc_scsi.c spin_lock_irqsave(&phba->devicelock, flags); phba 5647 drivers/scsi/lpfc/lpfc_scsi.c lpfc_delete_device_data(phba, device_data); phba 5648 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->devicelock, flags); phba 5673 drivers/scsi/lpfc/lpfc_scsi.c lpfc_create_device_data(struct lpfc_hba *phba, struct lpfc_name *vport_wwpn, phba 5681 drivers/scsi/lpfc/lpfc_scsi.c if (unlikely(!phba) || !vport_wwpn || !target_wwpn || phba 5682 drivers/scsi/lpfc/lpfc_scsi.c !(phba->cfg_fof)) phba 5691 drivers/scsi/lpfc/lpfc_scsi.c lun_info = mempool_alloc(phba->device_data_mem_pool, memory_flags); phba 5716 drivers/scsi/lpfc/lpfc_scsi.c lpfc_delete_device_data(struct lpfc_hba *phba, phba 5720 drivers/scsi/lpfc/lpfc_scsi.c if (unlikely(!phba) || !lun_info || phba 5721 drivers/scsi/lpfc/lpfc_scsi.c !(phba->cfg_fof)) phba 5726 drivers/scsi/lpfc/lpfc_scsi.c mempool_free(lun_info, phba->device_data_mem_pool); phba 5747 drivers/scsi/lpfc/lpfc_scsi.c __lpfc_get_device_data(struct lpfc_hba *phba, struct list_head *list, phba 5754 drivers/scsi/lpfc/lpfc_scsi.c if (unlikely(!phba) || !list || !vport_wwpn || !target_wwpn || phba 5755 drivers/scsi/lpfc/lpfc_scsi.c !phba->cfg_fof) phba 5799 drivers/scsi/lpfc/lpfc_scsi.c lpfc_find_next_oas_lun(struct lpfc_hba *phba, struct lpfc_name *vport_wwpn, phba 5814 drivers/scsi/lpfc/lpfc_scsi.c if (unlikely(!phba) || !vport_wwpn || !target_wwpn || phba 5818 drivers/scsi/lpfc/lpfc_scsi.c !phba->cfg_fof) phba 5827 drivers/scsi/lpfc/lpfc_scsi.c spin_lock_irqsave(&phba->devicelock, flags); phba 5828 drivers/scsi/lpfc/lpfc_scsi.c list_for_each_entry(lun_info, &phba->luns, listentry) { phba 5853 drivers/scsi/lpfc/lpfc_scsi.c if (phba->cfg_oas_flags & OAS_FIND_ANY_VPORT) phba 5856 drivers/scsi/lpfc/lpfc_scsi.c if (phba->cfg_oas_flags & OAS_FIND_ANY_TARGET) phba 5870 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->devicelock, flags); phba 5895 drivers/scsi/lpfc/lpfc_scsi.c lpfc_enable_oas_lun(struct lpfc_hba *phba, struct lpfc_name *vport_wwpn, phba 5902 drivers/scsi/lpfc/lpfc_scsi.c if (unlikely(!phba) || !vport_wwpn || !target_wwpn || phba 5903 drivers/scsi/lpfc/lpfc_scsi.c !phba->cfg_fof) phba 5906 drivers/scsi/lpfc/lpfc_scsi.c spin_lock_irqsave(&phba->devicelock, flags); phba 5909 drivers/scsi/lpfc/lpfc_scsi.c lun_info = __lpfc_get_device_data(phba, &phba->luns, vport_wwpn, phba 5915 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->devicelock, flags); phba 5920 drivers/scsi/lpfc/lpfc_scsi.c lun_info = lpfc_create_device_data(phba, vport_wwpn, target_wwpn, lun, phba 5926 drivers/scsi/lpfc/lpfc_scsi.c list_add_tail(&lun_info->listentry, &phba->luns); phba 5927 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->devicelock, flags); phba 5930 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->devicelock, flags); phba 5954 drivers/scsi/lpfc/lpfc_scsi.c lpfc_disable_oas_lun(struct lpfc_hba *phba, struct lpfc_name *vport_wwpn, phba 5961 drivers/scsi/lpfc/lpfc_scsi.c if (unlikely(!phba) || !vport_wwpn || !target_wwpn || phba 5962 drivers/scsi/lpfc/lpfc_scsi.c !phba->cfg_fof) phba 5965 drivers/scsi/lpfc/lpfc_scsi.c spin_lock_irqsave(&phba->devicelock, flags); phba 5968 drivers/scsi/lpfc/lpfc_scsi.c lun_info = __lpfc_get_device_data(phba, phba 5969 drivers/scsi/lpfc/lpfc_scsi.c &phba->luns, vport_wwpn, phba 5975 drivers/scsi/lpfc/lpfc_scsi.c lpfc_delete_device_data(phba, lun_info); phba 5976 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->devicelock, flags); phba 5980 drivers/scsi/lpfc/lpfc_scsi.c spin_unlock_irqrestore(&phba->devicelock, flags); phba 81 drivers/scsi/lpfc/lpfc_sli.c static bool lpfc_sli4_fp_handle_cqe(struct lpfc_hba *phba, phba 85 drivers/scsi/lpfc/lpfc_sli.c static void lpfc_sli4_hba_handle_eqe(struct lpfc_hba *phba, phba 88 drivers/scsi/lpfc/lpfc_sli.c static bool lpfc_sli4_mbox_completions_pending(struct lpfc_hba *phba); phba 89 drivers/scsi/lpfc/lpfc_sli.c static bool lpfc_sli4_process_missed_mbox_completions(struct lpfc_hba *phba); phba 165 drivers/scsi/lpfc/lpfc_sli.c if (q->phba->sli3_options & LPFC_SLI4_PHWQ_ENABLED) phba 168 drivers/scsi/lpfc/lpfc_sli.c if (q->dpp_enable && q->phba->cfg_enable_dpp) { phba 192 drivers/scsi/lpfc/lpfc_sli.c if (q->dpp_enable && q->phba->cfg_enable_dpp) { phba 205 drivers/scsi/lpfc/lpfc_sli.c &q->phba->sli4_hba.sli_intf); phba 278 drivers/scsi/lpfc/lpfc_sli.c q->phba->mbox = (MAILBOX_t *)temp_mqe; phba 287 drivers/scsi/lpfc/lpfc_sli.c writel(doorbell.word0, q->phba->sli4_hba.MQDBregaddr); phba 309 drivers/scsi/lpfc/lpfc_sli.c q->phba->mbox = NULL; phba 366 drivers/scsi/lpfc/lpfc_sli.c writel(doorbell.word0, q->phba->sli4_hba.EQDBregaddr); phba 381 drivers/scsi/lpfc/lpfc_sli.c writel(doorbell.word0, q->phba->sli4_hba.EQDBregaddr); phba 396 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_write_eq_db(struct lpfc_hba *phba, struct lpfc_queue *q, phba 416 drivers/scsi/lpfc/lpfc_sli.c writel(doorbell.word0, q->phba->sli4_hba.EQDBregaddr); phba 418 drivers/scsi/lpfc/lpfc_sli.c if ((q->phba->intr_type == INTx) && (arm == LPFC_QUEUE_REARM)) phba 419 drivers/scsi/lpfc/lpfc_sli.c readl(q->phba->sli4_hba.EQDBregaddr); phba 434 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_if6_write_eq_db(struct lpfc_hba *phba, struct lpfc_queue *q, phba 449 drivers/scsi/lpfc/lpfc_sli.c writel(doorbell.word0, q->phba->sli4_hba.EQDBregaddr); phba 451 drivers/scsi/lpfc/lpfc_sli.c if ((q->phba->intr_type == INTx) && (arm == LPFC_QUEUE_REARM)) phba 452 drivers/scsi/lpfc/lpfc_sli.c readl(q->phba->sli4_hba.EQDBregaddr); phba 456 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli4_consume_eqe(struct lpfc_hba *phba, struct lpfc_queue *eq, phba 459 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.pc_sli4_params.eqav) phba 465 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.pc_sli4_params.eqav && !eq->host_index) phba 470 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_eq_flush(struct lpfc_hba *phba, struct lpfc_queue *eq) phba 478 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli4_consume_eqe(phba, eq, eqe); phba 484 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.sli4_write_eq_db(phba, eq, count, LPFC_QUEUE_REARM); phba 488 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_process_eq(struct lpfc_hba *phba, struct lpfc_queue *eq, phba 499 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_hba_handle_eqe(phba, eq, eqe); phba 500 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli4_consume_eqe(phba, eq, eqe); phba 507 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.sli4_write_eq_db(phba, eq, consumed, phba 524 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.sli4_write_eq_db(phba, eq, consumed, rearm); phba 565 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli4_consume_cqe(struct lpfc_hba *phba, struct lpfc_queue *cq, phba 568 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.pc_sli4_params.cqav) phba 574 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.pc_sli4_params.cqav && !cq->host_index) phba 590 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_write_cq_db(struct lpfc_hba *phba, struct lpfc_queue *q, phba 608 drivers/scsi/lpfc/lpfc_sli.c writel(doorbell.word0, q->phba->sli4_hba.CQDBregaddr); phba 623 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_if6_write_cq_db(struct lpfc_hba *phba, struct lpfc_queue *q, phba 638 drivers/scsi/lpfc/lpfc_sli.c writel(doorbell.word0, q->phba->sli4_hba.CQDBregaddr); phba 742 drivers/scsi/lpfc/lpfc_sli.c lpfc_cmd_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) phba 745 drivers/scsi/lpfc/lpfc_sli.c pring->sli.sli3.cmdidx * phba->iocb_cmd_size); phba 759 drivers/scsi/lpfc/lpfc_sli.c lpfc_resp_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) phba 762 drivers/scsi/lpfc/lpfc_sli.c pring->sli.sli3.rspidx * phba->iocb_rsp_size); phba 775 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_get_iocbq(struct lpfc_hba *phba) phba 777 drivers/scsi/lpfc/lpfc_sli.c struct list_head *lpfc_iocb_list = &phba->lpfc_iocb_list; phba 780 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 784 drivers/scsi/lpfc/lpfc_sli.c phba->iocb_cnt++; phba 785 drivers/scsi/lpfc/lpfc_sli.c if (phba->iocb_cnt > phba->iocb_max) phba 786 drivers/scsi/lpfc/lpfc_sli.c phba->iocb_max = phba->iocb_cnt; phba 803 drivers/scsi/lpfc/lpfc_sli.c __lpfc_clear_active_sglq(struct lpfc_hba *phba, uint16_t xritag) phba 807 drivers/scsi/lpfc/lpfc_sli.c sglq = phba->sli4_hba.lpfc_sglq_active_list[xritag]; phba 808 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.lpfc_sglq_active_list[xritag] = NULL; phba 825 drivers/scsi/lpfc/lpfc_sli.c __lpfc_get_active_sglq(struct lpfc_hba *phba, uint16_t xritag) phba 829 drivers/scsi/lpfc/lpfc_sli.c sglq = phba->sli4_hba.lpfc_sglq_active_list[xritag]; phba 841 drivers/scsi/lpfc/lpfc_sli.c lpfc_clr_rrq_active(struct lpfc_hba *phba, phba 866 drivers/scsi/lpfc/lpfc_sli.c mempool_free(rrq, phba->rrq_pool); phba 884 drivers/scsi/lpfc/lpfc_sli.c lpfc_handle_rrq_active(struct lpfc_hba *phba) phba 892 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 893 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag &= ~HBA_RRQ_ACTIVE; phba 894 drivers/scsi/lpfc/lpfc_sli.c next_time = jiffies + msecs_to_jiffies(1000 * (phba->fc_ratov + 1)); phba 896 drivers/scsi/lpfc/lpfc_sli.c &phba->active_rrq_list, list) { phba 902 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 903 drivers/scsi/lpfc/lpfc_sli.c if ((!list_empty(&phba->active_rrq_list)) && phba 904 drivers/scsi/lpfc/lpfc_sli.c (!(phba->pport->load_flag & FC_UNLOADING))) phba 905 drivers/scsi/lpfc/lpfc_sli.c mod_timer(&phba->rrq_tmr, next_time); phba 910 drivers/scsi/lpfc/lpfc_sli.c lpfc_clr_rrq_active(phba, rrq->xritag, rrq); phba 911 drivers/scsi/lpfc/lpfc_sli.c } else if (lpfc_send_rrq(phba, rrq)) { phba 915 drivers/scsi/lpfc/lpfc_sli.c lpfc_clr_rrq_active(phba, rrq->xritag, phba 933 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = vport->phba; phba 938 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev != LPFC_SLI_REV4) phba 940 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 941 drivers/scsi/lpfc/lpfc_sli.c list_for_each_entry_safe(rrq, nextrrq, &phba->active_rrq_list, list) { phba 945 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 949 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 965 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = vport->phba; phba 971 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev != LPFC_SLI_REV4) phba 977 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 978 drivers/scsi/lpfc/lpfc_sli.c list_for_each_entry_safe(rrq, nextrrq, &phba->active_rrq_list, list) phba 981 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 985 drivers/scsi/lpfc/lpfc_sli.c lpfc_clr_rrq_active(phba, rrq->xritag, rrq); phba 1000 drivers/scsi/lpfc/lpfc_sli.c lpfc_test_rrq_active(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, phba 1029 drivers/scsi/lpfc/lpfc_sli.c lpfc_set_rrq_active(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, phba 1039 drivers/scsi/lpfc/lpfc_sli.c if (!phba->cfg_enable_rrq) phba 1042 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 1043 drivers/scsi/lpfc/lpfc_sli.c if (phba->pport->load_flag & FC_UNLOADING) { phba 1044 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag &= ~HBA_RRQ_ACTIVE; phba 1063 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 1064 drivers/scsi/lpfc/lpfc_sli.c rrq = mempool_alloc(phba->rrq_pool, GFP_KERNEL); phba 1066 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 1072 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_enable_rrq == 1) phba 1078 drivers/scsi/lpfc/lpfc_sli.c msecs_to_jiffies(1000 * (phba->fc_ratov + 1)); phba 1083 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 1084 drivers/scsi/lpfc/lpfc_sli.c empty = list_empty(&phba->active_rrq_list); phba 1085 drivers/scsi/lpfc/lpfc_sli.c list_add_tail(&rrq->list, &phba->active_rrq_list); phba 1086 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_RRQ_ACTIVE; phba 1088 drivers/scsi/lpfc/lpfc_sli.c lpfc_worker_wake_up(phba); phba 1089 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 1092 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 1093 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 1112 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_get_els_sglq(struct lpfc_hba *phba, struct lpfc_iocbq *piocbq) phba 1114 drivers/scsi/lpfc/lpfc_sli.c struct list_head *lpfc_els_sgl_list = &phba->sli4_hba.lpfc_els_sgl_list; phba 1123 drivers/scsi/lpfc/lpfc_sli.c pring = phba->sli4_hba.nvmels_wq->pring; phba 1125 drivers/scsi/lpfc/lpfc_sli.c pring = lpfc_phba_elsring(phba); phba 1144 drivers/scsi/lpfc/lpfc_sli.c spin_lock(&phba->sli4_hba.sgl_list_lock); phba 1169 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.lpfc_sglq_active_list[sglq->sli4_lxritag] = sglq; phba 1172 drivers/scsi/lpfc/lpfc_sli.c spin_unlock(&phba->sli4_hba.sgl_list_lock); phba 1187 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_get_nvmet_sglq(struct lpfc_hba *phba, struct lpfc_iocbq *piocbq) phba 1192 drivers/scsi/lpfc/lpfc_sli.c lpfc_nvmet_sgl_list = &phba->sli4_hba.lpfc_nvmet_sgl_list; phba 1194 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->sli4_hba.sgl_list_lock); phba 1199 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.lpfc_sglq_active_list[sglq->sli4_lxritag] = sglq; phba 1214 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_get_iocbq(struct lpfc_hba *phba) phba 1219 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 1220 drivers/scsi/lpfc/lpfc_sli.c iocbq = __lpfc_sli_get_iocbq(phba); phba 1221 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 1244 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_release_iocbq_s4(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq) phba 1251 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 1256 drivers/scsi/lpfc/lpfc_sli.c sglq = __lpfc_clear_active_sglq(phba, iocbq->sli4_lxritag); phba 1261 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->sli4_hba.sgl_list_lock, phba 1266 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.lpfc_nvmet_sgl_list); phba 1268 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.sgl_list_lock, iflag); phba 1272 drivers/scsi/lpfc/lpfc_sli.c pring = phba->sli4_hba.els_wq->pring; phba 1275 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->sli4_hba.sgl_list_lock, phba 1278 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.lpfc_abts_els_sgl_list); phba 1280 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.sgl_list_lock, iflag); phba 1282 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->sli4_hba.sgl_list_lock, phba 1287 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.lpfc_els_sgl_list); phba 1289 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.sgl_list_lock, iflag); phba 1293 drivers/scsi/lpfc/lpfc_sli.c lpfc_worker_wake_up(phba); phba 1306 drivers/scsi/lpfc/lpfc_sli.c list_add_tail(&iocbq->list, &phba->lpfc_iocb_list); phba 1321 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_release_iocbq_s3(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq) phba 1325 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 1332 drivers/scsi/lpfc/lpfc_sli.c list_add_tail(&iocbq->list, &phba->lpfc_iocb_list); phba 1346 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_release_iocbq(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq) phba 1348 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 1350 drivers/scsi/lpfc/lpfc_sli.c phba->__lpfc_sli_release_iocbq(phba, iocbq); phba 1351 drivers/scsi/lpfc/lpfc_sli.c phba->iocb_cnt--; phba 1363 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_release_iocbq(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq) phba 1370 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 1371 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_release_iocbq(phba, iocbq); phba 1372 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 1388 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_cancel_iocbs(struct lpfc_hba *phba, struct list_head *iocblist, phba 1397 drivers/scsi/lpfc/lpfc_sli.c lpfc_nvme_cancel_iocb(phba, piocb); phba 1399 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_release_iocbq(phba, piocb); phba 1403 drivers/scsi/lpfc/lpfc_sli.c (piocb->iocb_cmpl) (phba, piocb, piocb); phba 1536 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_ring_map(struct lpfc_hba *phba) phba 1538 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 1543 drivers/scsi/lpfc/lpfc_sli.c pmb = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 1547 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_INIT_MBX_CMDS; phba 1549 drivers/scsi/lpfc/lpfc_sli.c lpfc_config_ring(phba, i, pmb); phba 1550 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_POLL); phba 1552 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 1558 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 1563 drivers/scsi/lpfc/lpfc_sli.c mempool_free(pmb, phba->mbox_mem_pool); phba 1581 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_ringtxcmpl_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 1584 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4) phba 1587 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 1602 drivers/scsi/lpfc/lpfc_sli.c msecs_to_jiffies(1000 * (phba->fc_ratov << 1))); phba 1619 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_ringtx_get(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) phba 1623 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 1644 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_next_iocb_slot (struct lpfc_hba *phba, struct lpfc_sli_ring *pring) phba 1646 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_pgp *pgp = &phba->port_gp[pring->ringno]; phba 1649 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 1661 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 1668 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 1673 drivers/scsi/lpfc/lpfc_sli.c phba->work_ha |= HA_ERATT; phba 1674 drivers/scsi/lpfc/lpfc_sli.c phba->work_hs = HS_FFER3; phba 1676 drivers/scsi/lpfc/lpfc_sli.c lpfc_worker_wake_up(phba); phba 1685 drivers/scsi/lpfc/lpfc_sli.c return lpfc_cmd_iocb(phba, pring); phba 1701 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_next_iotag(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq) phba 1706 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 1709 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 1714 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 1720 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 1724 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 1733 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 1737 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 1748 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 1754 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 1756 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 1778 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_submit_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 1781 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 1789 drivers/scsi/lpfc/lpfc_sli.c lpfc_debugfs_slow_ring_trc(phba, phba 1799 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_pcimem_bcopy(&nextiocb->iocb, iocb, phba->iocb_cmd_size); phba 1809 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_ringtxcmpl_put(phba, pring, nextiocb); phba 1811 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_release_iocbq(phba, nextiocb); phba 1818 drivers/scsi/lpfc/lpfc_sli.c writel(pring->sli.sli3.cmdidx, &phba->host_gp[pring->ringno].cmdPutInx); phba 1834 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_update_full_ring(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) phba 1846 drivers/scsi/lpfc/lpfc_sli.c writel((CA_R0ATT|CA_R0CE_REQ) << (ringno*4), phba->CAregaddr); phba 1847 drivers/scsi/lpfc/lpfc_sli.c readl(phba->CAregaddr); /* flush */ phba 1862 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_update_ring(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) phba 1869 drivers/scsi/lpfc/lpfc_sli.c if (!(phba->sli3_options & LPFC_SLI3_CRP_ENABLED)) { phba 1871 drivers/scsi/lpfc/lpfc_sli.c writel(CA_R0ATT << (ringno * 4), phba->CAregaddr); phba 1872 drivers/scsi/lpfc/lpfc_sli.c readl(phba->CAregaddr); /* flush */ phba 1886 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_resume_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) phba 1891 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 1901 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_is_link_up(phba) && phba 1904 drivers/scsi/lpfc/lpfc_sli.c phba->sli.sli_flag & LPFC_PROCESS_LA)) { phba 1906 drivers/scsi/lpfc/lpfc_sli.c while ((iocb = lpfc_sli_next_iocb_slot(phba, pring)) && phba 1907 drivers/scsi/lpfc/lpfc_sli.c (nextiocb = lpfc_sli_ringtx_get(phba, pring))) phba 1908 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_submit_iocb(phba, pring, iocb, nextiocb); phba 1911 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_update_ring(phba, pring); phba 1913 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_update_full_ring(phba, pring); phba 1930 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_next_hbq_slot(struct lpfc_hba *phba, uint32_t hbqno) phba 1932 drivers/scsi/lpfc/lpfc_sli.c struct hbq_s *hbqp = &phba->hbqs[hbqno]; phba 1934 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 1941 drivers/scsi/lpfc/lpfc_sli.c uint32_t raw_index = phba->hbq_get[hbqno]; phba 1947 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, phba 1954 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 1962 drivers/scsi/lpfc/lpfc_sli.c return (struct lpfc_hbq_entry *) phba->hbqs[hbqno].hbq_virt + phba 1976 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_hbqbuf_free_all(struct lpfc_hba *phba) phba 1985 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, flags); phba 1988 drivers/scsi/lpfc/lpfc_sli.c &phba->hbqs[i].hbq_buffer_list, list) { phba 1991 drivers/scsi/lpfc/lpfc_sli.c (phba->hbqs[i].hbq_free_buffer)(phba, hbq_buf); phba 1993 drivers/scsi/lpfc/lpfc_sli.c phba->hbqs[i].buffer_count = 0; phba 1997 drivers/scsi/lpfc/lpfc_sli.c phba->hbq_in_use = 0; phba 1998 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 2014 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_hbq_to_firmware(struct lpfc_hba *phba, uint32_t hbqno, phba 2017 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 2018 drivers/scsi/lpfc/lpfc_sli.c return phba->lpfc_sli_hbq_to_firmware(phba, hbqno, hbq_buf); phba 2033 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_hbq_to_firmware_s3(struct lpfc_hba *phba, uint32_t hbqno, phba 2039 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 2041 drivers/scsi/lpfc/lpfc_sli.c hbqe = lpfc_sli_next_hbq_slot(phba, hbqno); phba 2043 drivers/scsi/lpfc/lpfc_sli.c struct hbq_s *hbqp = &phba->hbqs[hbqno]; phba 2053 drivers/scsi/lpfc/lpfc_sli.c writel(hbqp->hbqPutIdx, phba->hbq_put + hbqno); phba 2055 drivers/scsi/lpfc/lpfc_sli.c readl(phba->hbq_put + hbqno); phba 2073 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_hbq_to_firmware_s4(struct lpfc_hba *phba, uint32_t hbqno, phba 2084 drivers/scsi/lpfc/lpfc_sli.c hrq = phba->sli4_hba.hdr_rq; phba 2085 drivers/scsi/lpfc/lpfc_sli.c drq = phba->sli4_hba.dat_rq; phba 2087 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 2096 drivers/scsi/lpfc/lpfc_sli.c list_add_tail(&hbq_buf->dbuf.list, &phba->hbqs[hbqno].hbq_buffer_list); phba 2128 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_hbqbuf_fill_hbqs(struct lpfc_hba *phba, uint32_t hbqno, uint32_t count) phba 2134 drivers/scsi/lpfc/lpfc_sli.c if (!phba->hbqs[hbqno].hbq_alloc_buffer) phba 2137 drivers/scsi/lpfc/lpfc_sli.c if ((phba->hbqs[hbqno].buffer_count + count) > phba 2140 drivers/scsi/lpfc/lpfc_sli.c phba->hbqs[hbqno].buffer_count; phba 2145 drivers/scsi/lpfc/lpfc_sli.c hbq_buffer = (phba->hbqs[hbqno].hbq_alloc_buffer)(phba); phba 2151 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, flags); phba 2152 drivers/scsi/lpfc/lpfc_sli.c if (!phba->hbq_in_use) phba 2157 drivers/scsi/lpfc/lpfc_sli.c hbq_buffer->tag = (phba->hbqs[hbqno].buffer_count | phba 2159 drivers/scsi/lpfc/lpfc_sli.c if (!lpfc_sli_hbq_to_firmware(phba, hbqno, hbq_buffer)) { phba 2160 drivers/scsi/lpfc/lpfc_sli.c phba->hbqs[hbqno].buffer_count++; phba 2163 drivers/scsi/lpfc/lpfc_sli.c (phba->hbqs[hbqno].hbq_free_buffer)(phba, hbq_buffer); phba 2165 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 2168 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 2172 drivers/scsi/lpfc/lpfc_sli.c (phba->hbqs[hbqno].hbq_free_buffer)(phba, hbq_buffer); phba 2187 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_hbqbuf_add_hbqs(struct lpfc_hba *phba, uint32_t qno) phba 2189 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4) phba 2192 drivers/scsi/lpfc/lpfc_sli.c return lpfc_sli_hbqbuf_fill_hbqs(phba, qno, phba 2206 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_hbqbuf_init_hbqs(struct lpfc_hba *phba, uint32_t qno) phba 2208 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4) phba 2209 drivers/scsi/lpfc/lpfc_sli.c return lpfc_sli_hbqbuf_fill_hbqs(phba, qno, phba 2212 drivers/scsi/lpfc/lpfc_sli.c return lpfc_sli_hbqbuf_fill_hbqs(phba, qno, phba 2244 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_rqbuf_get(struct lpfc_hba *phba, struct lpfc_queue *hrq) phba 2268 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_hbqbuf_find(struct lpfc_hba *phba, uint32_t tag) phba 2278 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 2279 drivers/scsi/lpfc/lpfc_sli.c list_for_each_entry(d_buf, &phba->hbqs[hbqno].hbq_buffer_list, list) { phba 2282 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 2286 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 2287 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI | LOG_VPORT, phba 2289 drivers/scsi/lpfc/lpfc_sli.c tag, phba->hbqs[tag >> 16].buffer_count); phba 2303 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_free_hbq(struct lpfc_hba *phba, struct hbq_dmabuf *hbq_buffer) phba 2309 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_sli_hbq_to_firmware(phba, hbqno, hbq_buffer)) phba 2310 drivers/scsi/lpfc/lpfc_sli.c (phba->hbqs[hbqno].hbq_free_buffer)(phba, hbq_buffer); phba 2415 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_wake_mbox_wait(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmboxq) phba 2425 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, drvr_flag); phba 2429 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, drvr_flag); phba 2439 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_free_rpi(vport->phba, ndlp->nlp_rpi); phba 2440 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&vport->phba->ndlp_lock, iflags); phba 2443 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&vport->phba->ndlp_lock, iflags); phba 2459 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_def_mbox_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 2471 drivers/scsi/lpfc/lpfc_sli.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 2479 drivers/scsi/lpfc/lpfc_sli.c if (!(phba->pport->load_flag & FC_UNLOADING) && phba 2484 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4) phba 2485 drivers/scsi/lpfc/lpfc_sli.c vpi -= phba->sli4_hba.max_cfg_param.vpi_base; phba 2486 drivers/scsi/lpfc/lpfc_sli.c lpfc_unreg_login(phba, vpi, rpi, pmb); phba 2489 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_NOWAIT); phba 2495 drivers/scsi/lpfc/lpfc_sli.c !(phba->pport->load_flag & FC_UNLOADING) && phba 2541 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 2546 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_cmd_free(phba, pmb); phba 2548 drivers/scsi/lpfc/lpfc_sli.c mempool_free(pmb, phba->mbox_mem_pool); phba 2564 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_unreg_rpi_cmpl_clr(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 2571 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4 && phba 2573 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.sli_intf) >= phba 2613 drivers/scsi/lpfc/lpfc_sli.c mempool_free(pmb, phba->mbox_mem_pool); phba 2630 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_handle_mb_event(struct lpfc_hba *phba) phba 2637 drivers/scsi/lpfc/lpfc_sli.c phba->sli.slistat.mbox_event++; phba 2640 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 2641 drivers/scsi/lpfc/lpfc_sli.c list_splice_init(&phba->sli.mboxq_cmpl, &cmplq); phba 2642 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 2662 drivers/scsi/lpfc/lpfc_sli.c lpfc_debugfs_disc_trc(phba->pport, phba 2677 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 2682 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_subsys_get(phba, phba 2684 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_opcode_get(phba, phba 2686 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 2687 drivers/scsi/lpfc/lpfc_sli.c phba->work_hs = HS_FFER3; phba 2688 drivers/scsi/lpfc/lpfc_sli.c lpfc_handle_eratt(phba); phba 2693 drivers/scsi/lpfc/lpfc_sli.c phba->sli.slistat.mbox_stat_err++; phba 2696 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, phba 2703 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_subsys_get(phba, phba 2705 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_opcode_get(phba, phba 2712 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_NOWAIT); phba 2719 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_MBOX | LOG_SLI, phba 2725 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_subsys_get(phba, pmb), phba 2726 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_opcode_get(phba, pmb), phba 2742 drivers/scsi/lpfc/lpfc_sli.c pmb->mbox_cmpl(phba,pmb); phba 2760 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_get_buff(struct lpfc_hba *phba, phba 2767 drivers/scsi/lpfc/lpfc_sli.c return lpfc_sli_ring_taggedbuf_get(phba, pring, tag); phba 2768 drivers/scsi/lpfc/lpfc_sli.c hbq_entry = lpfc_sli_hbqbuf_find(phba, tag); phba 2787 drivers/scsi/lpfc/lpfc_sli.c lpfc_complete_unsol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 2795 drivers/scsi/lpfc/lpfc_sli.c lpfc_nvmet_unsol_ls_event(phba, pring, saveq); phba 2804 drivers/scsi/lpfc/lpfc_sli.c (pring->prt[0].lpfc_sli_rcv_unsol_event) (phba, pring, phba 2815 drivers/scsi/lpfc/lpfc_sli.c (phba, pring, saveq); phba 2837 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_process_unsol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 2850 drivers/scsi/lpfc/lpfc_sli.c pring->lpfc_sli_rcv_async_status(phba, pring, saveq); phba 2852 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, phba 2864 drivers/scsi/lpfc/lpfc_sli.c (phba->sli3_options & LPFC_SLI3_HBQ_ENABLED)) { phba 2866 drivers/scsi/lpfc/lpfc_sli.c dmzbuf = lpfc_sli_get_buff(phba, pring, phba 2868 drivers/scsi/lpfc/lpfc_sli.c lpfc_in_buf_free(phba, dmzbuf); phba 2872 drivers/scsi/lpfc/lpfc_sli.c dmzbuf = lpfc_sli_get_buff(phba, pring, phba 2874 drivers/scsi/lpfc/lpfc_sli.c lpfc_in_buf_free(phba, dmzbuf); phba 2878 drivers/scsi/lpfc/lpfc_sli.c dmzbuf = lpfc_sli_get_buff(phba, pring, phba 2880 drivers/scsi/lpfc/lpfc_sli.c lpfc_in_buf_free(phba, dmzbuf); phba 2886 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli3_options & LPFC_SLI3_HBQ_ENABLED) { phba 2888 drivers/scsi/lpfc/lpfc_sli.c saveq->context2 = lpfc_sli_get_buff(phba, pring, phba 2891 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, phba 2900 drivers/scsi/lpfc/lpfc_sli.c saveq->context3 = lpfc_sli_get_buff(phba, pring, phba 2903 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, phba 2914 drivers/scsi/lpfc/lpfc_sli.c iocbq->context2 = lpfc_sli_get_buff(phba, pring, phba 2917 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, phba 2926 drivers/scsi/lpfc/lpfc_sli.c iocbq->context3 = lpfc_sli_get_buff(phba, pring, phba 2929 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, phba 2985 drivers/scsi/lpfc/lpfc_sli.c if (!lpfc_complete_unsol_iocb(phba, pring, saveq, Rctl, Type)) phba 2986 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 3008 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_iocbq_lookup(struct lpfc_hba *phba, phba 3017 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4) phba 3020 drivers/scsi/lpfc/lpfc_sli.c temp_lock = &phba->hbalock; phba 3025 drivers/scsi/lpfc/lpfc_sli.c if (iotag != 0 && iotag <= phba->sli.last_iotag) { phba 3026 drivers/scsi/lpfc/lpfc_sli.c cmd_iocb = phba->sli.iocbq_lookup[iotag]; phba 3038 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 3041 drivers/scsi/lpfc/lpfc_sli.c iotag, phba->sli.last_iotag, phba 3059 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_iocbq_lookup_by_tag(struct lpfc_hba *phba, phba 3066 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4) phba 3069 drivers/scsi/lpfc/lpfc_sli.c temp_lock = &phba->hbalock; phba 3072 drivers/scsi/lpfc/lpfc_sli.c if (iotag != 0 && iotag <= phba->sli.last_iotag) { phba 3073 drivers/scsi/lpfc/lpfc_sli.c cmd_iocb = phba->sli.iocbq_lookup[iotag]; phba 3085 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 3088 drivers/scsi/lpfc/lpfc_sli.c iotag, phba->sli.last_iotag, phba 3111 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_process_sol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 3118 drivers/scsi/lpfc/lpfc_sli.c cmdiocbp = lpfc_sli_iocbq_lookup(phba, pring, saveq); phba 3129 drivers/scsi/lpfc/lpfc_sli.c lpfc_send_els_failure_event(phba, phba 3137 drivers/scsi/lpfc/lpfc_sli.c if ((phba->sli_rev < LPFC_SLI_REV4) && phba 3140 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, phba 3144 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, phba 3155 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, phba 3158 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, phba 3161 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 3171 drivers/scsi/lpfc/lpfc_sli.c &phba->hbalock, iflag); phba 3175 drivers/scsi/lpfc/lpfc_sli.c &phba->hbalock, iflag); phba 3185 drivers/scsi/lpfc/lpfc_sli.c &phba->hbalock, iflag); phba 3189 drivers/scsi/lpfc/lpfc_sli.c &phba->hbalock, iflag); phba 3205 drivers/scsi/lpfc/lpfc_sli.c &phba->hbalock, iflag); phba 3209 drivers/scsi/lpfc/lpfc_sli.c &phba->hbalock, iflag); phba 3213 drivers/scsi/lpfc/lpfc_sli.c (cmdiocbp->iocb_cmpl) (phba, cmdiocbp, saveq); phba 3215 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_release_iocbq(phba, cmdiocbp); phba 3227 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 3254 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_rsp_pointers_error(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) phba 3256 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_pgp *pgp = &phba->port_gp[pring->ringno]; phba 3261 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 3267 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 3273 drivers/scsi/lpfc/lpfc_sli.c phba->work_ha |= HA_ERATT; phba 3274 drivers/scsi/lpfc/lpfc_sli.c phba->work_hs = HS_FFER3; phba 3276 drivers/scsi/lpfc/lpfc_sli.c lpfc_worker_wake_up(phba); phba 3293 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba; phba 3297 drivers/scsi/lpfc/lpfc_sli.c phba = from_timer(phba, t, eratt_poll); phba 3300 drivers/scsi/lpfc/lpfc_sli.c sli_intr = phba->sli.slistat.sli_intr; phba 3302 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli.slistat.sli_prev_intr > sli_intr) phba 3303 drivers/scsi/lpfc/lpfc_sli.c cnt = (((uint64_t)(-1) - phba->sli.slistat.sli_prev_intr) + phba 3306 drivers/scsi/lpfc/lpfc_sli.c cnt = (sli_intr - phba->sli.slistat.sli_prev_intr); phba 3309 drivers/scsi/lpfc/lpfc_sli.c do_div(cnt, phba->eratt_poll_interval); phba 3310 drivers/scsi/lpfc/lpfc_sli.c phba->sli.slistat.sli_ips = cnt; phba 3312 drivers/scsi/lpfc/lpfc_sli.c phba->sli.slistat.sli_prev_intr = sli_intr; phba 3315 drivers/scsi/lpfc/lpfc_sli.c eratt = lpfc_sli_check_eratt(phba); phba 3319 drivers/scsi/lpfc/lpfc_sli.c lpfc_worker_wake_up(phba); phba 3322 drivers/scsi/lpfc/lpfc_sli.c mod_timer(&phba->eratt_poll, phba 3324 drivers/scsi/lpfc/lpfc_sli.c msecs_to_jiffies(1000 * phba->eratt_poll_interval)); phba 3347 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_handle_fast_ring_event(struct lpfc_hba *phba, phba 3350 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_pgp *pgp = &phba->port_gp[pring->ringno]; phba 3362 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 3372 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_rsp_pointers_error(phba, pring); phba 3373 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3376 drivers/scsi/lpfc/lpfc_sli.c if (phba->fcp_ring_in_use) { phba 3377 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3380 drivers/scsi/lpfc/lpfc_sli.c phba->fcp_ring_in_use = 1; phba 3389 drivers/scsi/lpfc/lpfc_sli.c entry = lpfc_resp_iocb(phba, pring); phba 3390 drivers/scsi/lpfc/lpfc_sli.c phba->last_completion_time = jiffies; phba 3397 drivers/scsi/lpfc/lpfc_sli.c phba->iocb_rsp_size); phba 3413 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3414 drivers/scsi/lpfc/lpfc_sli.c phba->lpfc_rampdown_queue_depth(phba); phba 3415 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 3419 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 3441 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 3449 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3450 drivers/scsi/lpfc/lpfc_sli.c cmdiocbq = lpfc_sli_iocbq_lookup(phba, pring, phba 3452 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 3458 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3459 drivers/scsi/lpfc/lpfc_sli.c (cmdiocbq->iocb_cmpl)(phba, cmdiocbq, phba 3461 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 3465 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3466 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_process_unsol_iocb(phba, pring, &rspiocbq); phba 3467 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 3475 drivers/scsi/lpfc/lpfc_sli.c dev_warn(&((phba->pcidev)->dev), phba 3477 drivers/scsi/lpfc/lpfc_sli.c phba->brd_no, adaptermsg); phba 3480 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 3498 drivers/scsi/lpfc/lpfc_sli.c &phba->host_gp[pring->ringno].rspGetInx); phba 3507 drivers/scsi/lpfc/lpfc_sli.c writel(status, phba->CAregaddr); phba 3508 drivers/scsi/lpfc/lpfc_sli.c readl(phba->CAregaddr); phba 3516 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_resume_iocb(phba, pring); phba 3519 drivers/scsi/lpfc/lpfc_sli.c (pring->lpfc_sli_cmd_available) (phba, pring); phba 3523 drivers/scsi/lpfc/lpfc_sli.c phba->fcp_ring_in_use = 0; phba 3524 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3547 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_sp_handle_rspiocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 3560 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 3588 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3589 drivers/scsi/lpfc/lpfc_sli.c phba->lpfc_rampdown_queue_depth(phba); phba 3590 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 3595 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 3631 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3632 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_process_sol_iocb(phba, pring, saveq); phba 3633 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 3637 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3638 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_process_unsol_iocb(phba, pring, saveq); phba 3639 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 3647 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3648 drivers/scsi/lpfc/lpfc_sli.c cmdiocbp = lpfc_sli_iocbq_lookup(phba, pring, phba 3650 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 3655 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, phba 3657 drivers/scsi/lpfc/lpfc_sli.c (cmdiocbp->iocb_cmpl)(phba, cmdiocbp, phba 3659 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, phba 3662 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_release_iocbq(phba, phba 3673 drivers/scsi/lpfc/lpfc_sli.c dev_warn(&((phba->pcidev)->dev), phba 3675 drivers/scsi/lpfc/lpfc_sli.c phba->brd_no, adaptermsg); phba 3678 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 3694 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_release_iocbq(phba, rspiocbp); phba 3696 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_release_iocbq(phba, saveq); phba 3700 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3714 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_handle_slow_ring_event(struct lpfc_hba *phba, phba 3717 drivers/scsi/lpfc/lpfc_sli.c phba->lpfc_sli_handle_slow_ring_event(phba, pring, mask); phba 3732 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_handle_slow_ring_event_s3(struct lpfc_hba *phba, phba 3743 drivers/scsi/lpfc/lpfc_sli.c pgp = &phba->port_gp[pring->ringno]; phba 3744 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 3758 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 3763 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 3764 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3766 drivers/scsi/lpfc/lpfc_sli.c phba->work_hs = HS_FFER3; phba 3767 drivers/scsi/lpfc/lpfc_sli.c lpfc_handle_eratt(phba); phba 3787 drivers/scsi/lpfc/lpfc_sli.c entry = lpfc_resp_iocb(phba, pring); phba 3789 drivers/scsi/lpfc/lpfc_sli.c phba->last_completion_time = jiffies; phba 3790 drivers/scsi/lpfc/lpfc_sli.c rspiocbp = __lpfc_sli_get_iocbq(phba); phba 3798 drivers/scsi/lpfc/lpfc_sli.c phba->iocb_rsp_size); phba 3805 drivers/scsi/lpfc/lpfc_sli.c lpfc_debugfs_slow_ring_trc(phba, phba 3813 drivers/scsi/lpfc/lpfc_sli.c &phba->host_gp[pring->ringno].rspGetInx); phba 3815 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3817 drivers/scsi/lpfc/lpfc_sli.c rspiocbp = lpfc_sli_sp_handle_rspiocb(phba, pring, rspiocbp); phba 3818 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 3835 drivers/scsi/lpfc/lpfc_sli.c writel(status, phba->CAregaddr); phba 3836 drivers/scsi/lpfc/lpfc_sli.c readl(phba->CAregaddr); /* flush */ phba 3844 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_resume_iocb(phba, pring); phba 3847 drivers/scsi/lpfc/lpfc_sli.c (pring->lpfc_sli_cmd_available) (phba, pring); phba 3851 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3868 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_handle_slow_ring_event_s4(struct lpfc_hba *phba, phba 3877 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 3878 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag &= ~HBA_SP_QUEUE_EVT; phba 3879 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3880 drivers/scsi/lpfc/lpfc_sli.c while (!list_empty(&phba->sli4_hba.sp_queue_event)) { phba 3882 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 3883 drivers/scsi/lpfc/lpfc_sli.c list_remove_head(&phba->sli4_hba.sp_queue_event, phba 3885 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 3892 drivers/scsi/lpfc/lpfc_sli.c irspiocbq = lpfc_sli4_els_wcqe_to_rspiocbq(phba, phba 3895 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_sp_handle_rspiocb(phba, pring, phba 3903 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_handle_received_buffer(phba, dmabuf); phba 3927 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_abort_iocb_ring(struct lpfc_hba *phba, struct lpfc_sli_ring *pring) phba 3933 drivers/scsi/lpfc/lpfc_sli.c lpfc_fabric_abort_hba(phba); phba 3939 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev >= LPFC_SLI_REV4) { phba 3945 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 3948 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_issue_abort_iotag(phba, pring, iocb); phba 3949 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 3951 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 3957 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_issue_abort_iotag(phba, pring, iocb); phba 3958 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 3962 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT, phba 3977 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_abort_fcp_rings(struct lpfc_hba *phba) phba 3979 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 3984 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev >= LPFC_SLI_REV4) { phba 3985 drivers/scsi/lpfc/lpfc_sli.c for (i = 0; i < phba->cfg_hdw_queue; i++) { phba 3986 drivers/scsi/lpfc/lpfc_sli.c pring = phba->sli4_hba.hdwq[i].io_wq->pring; phba 3987 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_abort_iocb_ring(phba, pring); phba 3991 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_abort_iocb_ring(phba, pring); phba 4006 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_flush_io_rings(struct lpfc_hba *phba) phba 4010 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 4015 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 4016 drivers/scsi/lpfc/lpfc_sli.c if (phba->hba_flag & HBA_IOQ_FLUSH || phba 4017 drivers/scsi/lpfc/lpfc_sli.c !phba->sli4_hba.hdwq) { phba 4018 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 4022 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_IOQ_FLUSH; phba 4023 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 4026 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev >= LPFC_SLI_REV4) { phba 4027 drivers/scsi/lpfc/lpfc_sli.c for (i = 0; i < phba->cfg_hdw_queue; i++) { phba 4028 drivers/scsi/lpfc/lpfc_sli.c pring = phba->sli4_hba.hdwq[i].io_wq->pring; phba 4043 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_cancel_iocbs(phba, &txq, phba 4047 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_cancel_iocbs(phba, &txcmplq, phba 4054 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 4064 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 4067 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_cancel_iocbs(phba, &txq, IOSTAT_LOCAL_REJECT, phba 4070 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_cancel_iocbs(phba, &txcmplq, IOSTAT_LOCAL_REJECT, phba 4089 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_brdready_s3(struct lpfc_hba *phba, uint32_t mask) phba 4096 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HSregaddr, &status)) phba 4118 drivers/scsi/lpfc/lpfc_sli.c phba->pport->port_state = LPFC_VPORT_UNKNOWN; phba 4119 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_brdrestart(phba); phba 4122 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HSregaddr, &status)) { phba 4130 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 4134 drivers/scsi/lpfc/lpfc_sli.c readl(phba->MBslimaddr + 0xa8), phba 4135 drivers/scsi/lpfc/lpfc_sli.c readl(phba->MBslimaddr + 0xac)); phba 4136 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 4155 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_brdready_s4(struct lpfc_hba *phba, uint32_t mask) phba 4161 drivers/scsi/lpfc/lpfc_sli.c status = lpfc_sli4_post_status_check(phba); phba 4164 drivers/scsi/lpfc/lpfc_sli.c phba->pport->port_state = LPFC_VPORT_UNKNOWN; phba 4165 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_brdrestart(phba); phba 4166 drivers/scsi/lpfc/lpfc_sli.c status = lpfc_sli4_post_status_check(phba); phba 4171 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 4174 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.intr_enable = 0; phba 4188 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_brdready(struct lpfc_hba *phba, uint32_t mask) phba 4190 drivers/scsi/lpfc/lpfc_sli.c return phba->lpfc_sli_brdready(phba, mask); phba 4202 drivers/scsi/lpfc/lpfc_sli.c void lpfc_reset_barrier(struct lpfc_hba *phba) phba 4211 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 4213 drivers/scsi/lpfc/lpfc_sli.c pci_read_config_byte(phba->pcidev, PCI_HEADER_TYPE, &hdrtype); phba 4215 drivers/scsi/lpfc/lpfc_sli.c (FC_JEDEC_ID(phba->vpd.rev.biuRev) != HELIOS_JEDEC_ID && phba 4216 drivers/scsi/lpfc/lpfc_sli.c FC_JEDEC_ID(phba->vpd.rev.biuRev) != THOR_JEDEC_ID)) phba 4223 drivers/scsi/lpfc/lpfc_sli.c resp_buf = phba->MBslimaddr; phba 4226 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HCregaddr, &hc_copy)) phba 4228 drivers/scsi/lpfc/lpfc_sli.c writel((hc_copy & ~HC_ERINT_ENA), phba->HCregaddr); phba 4229 drivers/scsi/lpfc/lpfc_sli.c readl(phba->HCregaddr); /* flush */ phba 4230 drivers/scsi/lpfc/lpfc_sli.c phba->link_flag |= LS_IGNORE_ERATT; phba 4232 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HAregaddr, &ha_copy)) phba 4236 drivers/scsi/lpfc/lpfc_sli.c writel(HA_ERATT, phba->HAregaddr); phba 4237 drivers/scsi/lpfc/lpfc_sli.c phba->pport->stopped = 1; phba 4245 drivers/scsi/lpfc/lpfc_sli.c mbox_buf = phba->MBslimaddr; phba 4260 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli.sli_flag & LPFC_SLI_ACTIVE || phba 4261 drivers/scsi/lpfc/lpfc_sli.c phba->pport->stopped) phba 4281 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HAregaddr, &ha_copy)) phba 4289 drivers/scsi/lpfc/lpfc_sli.c if (readl(phba->HAregaddr) & HA_ERATT) { phba 4290 drivers/scsi/lpfc/lpfc_sli.c writel(HA_ERATT, phba->HAregaddr); phba 4291 drivers/scsi/lpfc/lpfc_sli.c phba->pport->stopped = 1; phba 4295 drivers/scsi/lpfc/lpfc_sli.c phba->link_flag &= ~LS_IGNORE_ERATT; phba 4296 drivers/scsi/lpfc/lpfc_sli.c writel(hc_copy, phba->HCregaddr); phba 4297 drivers/scsi/lpfc/lpfc_sli.c readl(phba->HCregaddr); /* flush */ phba 4312 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_brdkill(struct lpfc_hba *phba) phba 4321 drivers/scsi/lpfc/lpfc_sli.c psli = &phba->sli; phba 4324 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 4326 drivers/scsi/lpfc/lpfc_sli.c phba->pport->port_state, psli->sli_flag); phba 4328 drivers/scsi/lpfc/lpfc_sli.c pmb = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 4333 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 4334 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HCregaddr, &status)) { phba 4335 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 4336 drivers/scsi/lpfc/lpfc_sli.c mempool_free(pmb, phba->mbox_mem_pool); phba 4340 drivers/scsi/lpfc/lpfc_sli.c writel(status, phba->HCregaddr); phba 4341 drivers/scsi/lpfc/lpfc_sli.c readl(phba->HCregaddr); /* flush */ phba 4342 drivers/scsi/lpfc/lpfc_sli.c phba->link_flag |= LS_IGNORE_ERATT; phba 4343 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 4345 drivers/scsi/lpfc/lpfc_sli.c lpfc_kill_board(phba, pmb); phba 4347 drivers/scsi/lpfc/lpfc_sli.c retval = lpfc_sli_issue_mbox(phba, pmb, MBX_NOWAIT); phba 4351 drivers/scsi/lpfc/lpfc_sli.c mempool_free(pmb, phba->mbox_mem_pool); phba 4352 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 4355 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 4356 drivers/scsi/lpfc/lpfc_sli.c phba->link_flag &= ~LS_IGNORE_ERATT; phba 4357 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 4361 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 4363 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 4365 drivers/scsi/lpfc/lpfc_sli.c mempool_free(pmb, phba->mbox_mem_pool); phba 4372 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HAregaddr, &ha_copy)) phba 4376 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HAregaddr, &ha_copy)) phba 4382 drivers/scsi/lpfc/lpfc_sli.c writel(HA_ERATT, phba->HAregaddr); phba 4383 drivers/scsi/lpfc/lpfc_sli.c phba->pport->stopped = 1; phba 4385 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 4388 drivers/scsi/lpfc/lpfc_sli.c phba->link_flag &= ~LS_IGNORE_ERATT; phba 4389 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 4391 drivers/scsi/lpfc/lpfc_sli.c lpfc_hba_down_post(phba); phba 4392 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 4409 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_brdreset(struct lpfc_hba *phba) phba 4416 drivers/scsi/lpfc/lpfc_sli.c psli = &phba->sli; phba 4419 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 4421 drivers/scsi/lpfc/lpfc_sli.c (phba->pport) ? phba->pport->port_state : 0, phba 4425 drivers/scsi/lpfc/lpfc_sli.c phba->fc_eventTag = 0; phba 4426 drivers/scsi/lpfc/lpfc_sli.c phba->link_events = 0; phba 4427 drivers/scsi/lpfc/lpfc_sli.c if (phba->pport) { phba 4428 drivers/scsi/lpfc/lpfc_sli.c phba->pport->fc_myDID = 0; phba 4429 drivers/scsi/lpfc/lpfc_sli.c phba->pport->fc_prevDID = 0; phba 4433 drivers/scsi/lpfc/lpfc_sli.c if (pci_read_config_word(phba->pcidev, PCI_COMMAND, &cfg_value)) phba 4436 drivers/scsi/lpfc/lpfc_sli.c pci_write_config_word(phba->pcidev, PCI_COMMAND, phba 4443 drivers/scsi/lpfc/lpfc_sli.c writel(HC_INITFF, phba->HCregaddr); phba 4445 drivers/scsi/lpfc/lpfc_sli.c readl(phba->HCregaddr); /* flush */ phba 4446 drivers/scsi/lpfc/lpfc_sli.c writel(0, phba->HCregaddr); phba 4447 drivers/scsi/lpfc/lpfc_sli.c readl(phba->HCregaddr); /* flush */ phba 4450 drivers/scsi/lpfc/lpfc_sli.c pci_write_config_word(phba->pcidev, PCI_COMMAND, cfg_value); phba 4463 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_WARM_START; phba 4478 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_brdreset(struct lpfc_hba *phba) phba 4480 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 4485 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 4487 drivers/scsi/lpfc/lpfc_sli.c phba->pport->port_state, psli->sli_flag, phba 4488 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag); phba 4491 drivers/scsi/lpfc/lpfc_sli.c phba->fc_eventTag = 0; phba 4492 drivers/scsi/lpfc/lpfc_sli.c phba->link_events = 0; phba 4493 drivers/scsi/lpfc/lpfc_sli.c phba->pport->fc_myDID = 0; phba 4494 drivers/scsi/lpfc/lpfc_sli.c phba->pport->fc_prevDID = 0; phba 4496 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 4498 drivers/scsi/lpfc/lpfc_sli.c phba->fcf.fcf_flag = 0; phba 4499 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 4502 drivers/scsi/lpfc/lpfc_sli.c if (phba->hba_flag & HBA_FW_DUMP_OP) { phba 4503 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag &= ~HBA_FW_DUMP_OP; phba 4508 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 4512 drivers/scsi/lpfc/lpfc_sli.c if (pci_read_config_word(phba->pcidev, PCI_COMMAND, &cfg_value)) { phba 4513 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 4518 drivers/scsi/lpfc/lpfc_sli.c pci_write_config_word(phba->pcidev, PCI_COMMAND, (cfg_value & phba 4522 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_pci_function_reset(phba); phba 4525 drivers/scsi/lpfc/lpfc_sli.c pci_write_config_word(phba->pcidev, PCI_COMMAND, cfg_value); phba 4544 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_brdrestart_s3(struct lpfc_hba *phba) phba 4552 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 4555 drivers/scsi/lpfc/lpfc_sli.c hba_aer_enabled = phba->hba_flag & HBA_AER_ENABLED; phba 4557 drivers/scsi/lpfc/lpfc_sli.c psli = &phba->sli; phba 4560 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 4562 drivers/scsi/lpfc/lpfc_sli.c (phba->pport) ? phba->pport->port_state : 0, phba 4570 drivers/scsi/lpfc/lpfc_sli.c lpfc_reset_barrier(phba); phba 4572 drivers/scsi/lpfc/lpfc_sli.c to_slim = phba->MBslimaddr; phba 4577 drivers/scsi/lpfc/lpfc_sli.c if (phba->pport && phba->pport->port_state) phba 4581 drivers/scsi/lpfc/lpfc_sli.c to_slim = phba->MBslimaddr + sizeof (uint32_t); phba 4585 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_brdreset(phba); phba 4586 drivers/scsi/lpfc/lpfc_sli.c if (phba->pport) phba 4587 drivers/scsi/lpfc/lpfc_sli.c phba->pport->stopped = 0; phba 4588 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_INIT_START; phba 4589 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag = 0; phba 4590 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 4600 drivers/scsi/lpfc/lpfc_sli.c pci_disable_pcie_error_reporting(phba->pcidev); phba 4602 drivers/scsi/lpfc/lpfc_sli.c lpfc_hba_down_post(phba); phba 4617 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_brdrestart_s4(struct lpfc_hba *phba) phba 4619 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 4624 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 4626 drivers/scsi/lpfc/lpfc_sli.c phba->pport->port_state, psli->sli_flag); phba 4629 drivers/scsi/lpfc/lpfc_sli.c hba_aer_enabled = phba->hba_flag & HBA_AER_ENABLED; phba 4631 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_brdreset(phba); phba 4633 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 4637 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 4638 drivers/scsi/lpfc/lpfc_sli.c phba->pport->stopped = 0; phba 4639 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_INIT_START; phba 4640 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag = 0; phba 4641 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 4648 drivers/scsi/lpfc/lpfc_sli.c pci_disable_pcie_error_reporting(phba->pcidev); phba 4651 drivers/scsi/lpfc/lpfc_sli.c lpfc_hba_down_post(phba); phba 4652 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_queue_destroy(phba); phba 4665 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_brdrestart(struct lpfc_hba *phba) phba 4667 drivers/scsi/lpfc/lpfc_sli.c return phba->lpfc_sli_brdrestart(phba); phba 4681 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_chipset_init(struct lpfc_hba *phba) phba 4686 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HSregaddr, &status)) phba 4704 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 4708 drivers/scsi/lpfc/lpfc_sli.c readl(phba->MBslimaddr + 0xa8), phba 4709 drivers/scsi/lpfc/lpfc_sli.c readl(phba->MBslimaddr + 0xac)); phba 4710 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 4719 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 4723 drivers/scsi/lpfc/lpfc_sli.c readl(phba->MBslimaddr + 0xa8), phba 4724 drivers/scsi/lpfc/lpfc_sli.c readl(phba->MBslimaddr + 0xac)); phba 4725 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 4738 drivers/scsi/lpfc/lpfc_sli.c phba->pport->port_state = LPFC_VPORT_UNKNOWN; phba 4739 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_brdrestart(phba); phba 4742 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HSregaddr, &status)) phba 4750 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 4754 drivers/scsi/lpfc/lpfc_sli.c readl(phba->MBslimaddr + 0xa8), phba 4755 drivers/scsi/lpfc/lpfc_sli.c readl(phba->MBslimaddr + 0xac)); phba 4756 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 4761 drivers/scsi/lpfc/lpfc_sli.c writel(0, phba->HCregaddr); phba 4762 drivers/scsi/lpfc/lpfc_sli.c readl(phba->HCregaddr); /* flush */ phba 4765 drivers/scsi/lpfc/lpfc_sli.c writel(0xffffffff, phba->HAregaddr); phba 4766 drivers/scsi/lpfc/lpfc_sli.c readl(phba->HAregaddr); /* flush */ phba 4823 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_hbq_setup(struct lpfc_hba *phba) phba 4834 drivers/scsi/lpfc/lpfc_sli.c pmb = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 4842 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_INIT_MBX_CMDS; phba 4843 drivers/scsi/lpfc/lpfc_sli.c phba->hbq_in_use = 1; phba 4847 drivers/scsi/lpfc/lpfc_sli.c phba->hbqs[hbqno].next_hbqPutIdx = 0; phba 4848 drivers/scsi/lpfc/lpfc_sli.c phba->hbqs[hbqno].hbqPutIdx = 0; phba 4849 drivers/scsi/lpfc/lpfc_sli.c phba->hbqs[hbqno].local_hbqGetIdx = 0; phba 4850 drivers/scsi/lpfc/lpfc_sli.c phba->hbqs[hbqno].entry_count = phba 4852 drivers/scsi/lpfc/lpfc_sli.c lpfc_config_hbq(phba, hbqno, lpfc_hbq_defs[hbqno], phba 4854 drivers/scsi/lpfc/lpfc_sli.c hbq_entry_index += phba->hbqs[hbqno].entry_count; phba 4856 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_sli_issue_mbox(phba, pmb, MBX_POLL) != MBX_SUCCESS) { phba 4860 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, phba 4867 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 4868 drivers/scsi/lpfc/lpfc_sli.c mempool_free(pmb, phba->mbox_mem_pool); phba 4872 drivers/scsi/lpfc/lpfc_sli.c phba->hbq_count = hbq_count; phba 4874 drivers/scsi/lpfc/lpfc_sli.c mempool_free(pmb, phba->mbox_mem_pool); phba 4878 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_hbqbuf_init_hbqs(phba, hbqno); phba 4892 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_rb_setup(struct lpfc_hba *phba) phba 4894 drivers/scsi/lpfc/lpfc_sli.c phba->hbq_in_use = 1; phba 4895 drivers/scsi/lpfc/lpfc_sli.c phba->hbqs[LPFC_ELS_HBQ].entry_count = phba 4897 drivers/scsi/lpfc/lpfc_sli.c phba->hbq_count = 1; phba 4898 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_hbqbuf_init_hbqs(phba, LPFC_ELS_HBQ); phba 4917 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_port(struct lpfc_hba *phba, int sli_mode) phba 4922 drivers/scsi/lpfc/lpfc_sli.c pmb = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 4924 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 4928 drivers/scsi/lpfc/lpfc_sli.c phba->sli_rev = sli_mode; phba 4930 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 4931 drivers/scsi/lpfc/lpfc_sli.c phba->sli.sli_flag |= LPFC_SLI_MBOX_ACTIVE; phba 4932 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 4933 drivers/scsi/lpfc/lpfc_sli.c phba->pport->port_state = LPFC_VPORT_UNKNOWN; phba 4934 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_brdrestart(phba); phba 4935 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_chipset_init(phba); phba 4939 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 4940 drivers/scsi/lpfc/lpfc_sli.c phba->sli.sli_flag &= ~LPFC_SLI_MBOX_ACTIVE; phba 4941 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 4949 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_config_port_prep(phba); phba 4951 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_LINK_UNKNOWN; phba 4956 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_INIT_MBX_CMDS; phba 4957 drivers/scsi/lpfc/lpfc_sli.c lpfc_config_port(phba, pmb); phba 4958 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_POLL); phba 4959 drivers/scsi/lpfc/lpfc_sli.c phba->sli3_options &= ~(LPFC_SLI3_NPIV_ENABLED | phba 4964 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 4968 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 4969 drivers/scsi/lpfc/lpfc_sli.c phba->sli.sli_flag &= ~LPFC_SLI_ACTIVE; phba 4970 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 4974 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 4975 drivers/scsi/lpfc/lpfc_sli.c phba->sli.sli_flag &= ~LPFC_SLI_ASYNC_MBX_BLK; phba 4976 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 4981 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 4994 drivers/scsi/lpfc/lpfc_sli.c if (phba->max_vpi && pmb->u.mb.un.varCfgPort.gmv) { phba 4995 drivers/scsi/lpfc/lpfc_sli.c phba->sli3_options |= LPFC_SLI3_NPIV_ENABLED; phba 4996 drivers/scsi/lpfc/lpfc_sli.c phba->max_vpi = pmb->u.mb.un.varCfgPort.max_vpi; phba 4997 drivers/scsi/lpfc/lpfc_sli.c phba->max_vports = (phba->max_vpi > phba->max_vports) ? phba 4998 drivers/scsi/lpfc/lpfc_sli.c phba->max_vpi : phba->max_vports; phba 5001 drivers/scsi/lpfc/lpfc_sli.c phba->max_vpi = 0; phba 5002 drivers/scsi/lpfc/lpfc_sli.c phba->fips_level = 0; phba 5003 drivers/scsi/lpfc/lpfc_sli.c phba->fips_spec_rev = 0; phba 5005 drivers/scsi/lpfc/lpfc_sli.c phba->sli3_options |= LPFC_SLI3_DSS_ENABLED; phba 5006 drivers/scsi/lpfc/lpfc_sli.c phba->fips_level = pmb->u.mb.un.varCfgPort.fips_level; phba 5007 drivers/scsi/lpfc/lpfc_sli.c phba->fips_spec_rev = pmb->u.mb.un.varCfgPort.fips_rev; phba 5008 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 5011 drivers/scsi/lpfc/lpfc_sli.c phba->fips_level, phba->fips_spec_rev); phba 5014 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 5020 drivers/scsi/lpfc/lpfc_sli.c phba->sli3_options |= LPFC_SLI3_HBQ_ENABLED; phba 5022 drivers/scsi/lpfc/lpfc_sli.c phba->sli3_options |= LPFC_SLI3_CRP_ENABLED; phba 5024 drivers/scsi/lpfc/lpfc_sli.c phba->hbq_get = phba->mbox->us.s3_pgp.hbq_get; phba 5025 drivers/scsi/lpfc/lpfc_sli.c phba->port_gp = phba->mbox->us.s3_pgp.port; phba 5027 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli3_options & LPFC_SLI3_BG_ENABLED) { phba 5029 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_enable_bg = 0; phba 5030 drivers/scsi/lpfc/lpfc_sli.c phba->sli3_options &= ~LPFC_SLI3_BG_ENABLED; phba 5031 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 5037 drivers/scsi/lpfc/lpfc_sli.c phba->hbq_get = NULL; phba 5038 drivers/scsi/lpfc/lpfc_sli.c phba->port_gp = phba->mbox->us.s2.port; phba 5039 drivers/scsi/lpfc/lpfc_sli.c phba->max_vpi = 0; phba 5042 drivers/scsi/lpfc/lpfc_sli.c mempool_free(pmb, phba->mbox_mem_pool); phba 5061 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_hba_setup(struct lpfc_hba *phba) phba 5067 drivers/scsi/lpfc/lpfc_sli.c switch (phba->cfg_sli_mode) { phba 5069 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_enable_npiv) { phba 5070 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT | LOG_VPORT, phba 5073 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_sli_mode); phba 5082 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT | LOG_VPORT, phba 5084 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_sli_mode); phba 5088 drivers/scsi/lpfc/lpfc_sli.c phba->fcp_embed_io = 0; /* SLI4 FC support only */ phba 5090 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_config_port(phba, mode); phba 5092 drivers/scsi/lpfc/lpfc_sli.c if (rc && phba->cfg_sli_mode == 3) phba 5093 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT | LOG_VPORT, phba 5097 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_config_port(phba, 2); phba 5099 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_config_port(phba, 3); phba 5104 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_aer_support == 1 && !(phba->hba_flag & HBA_AER_ENABLED)) { phba 5105 drivers/scsi/lpfc/lpfc_sli.c rc = pci_enable_pcie_error_reporting(phba->pcidev); phba 5107 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 5110 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 5111 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_AER_ENABLED; phba 5112 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 5114 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 5118 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_aer_support = 0; phba 5122 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == 3) { phba 5123 drivers/scsi/lpfc/lpfc_sli.c phba->iocb_cmd_size = SLI3_IOCB_CMD_SIZE; phba 5124 drivers/scsi/lpfc/lpfc_sli.c phba->iocb_rsp_size = SLI3_IOCB_RSP_SIZE; phba 5126 drivers/scsi/lpfc/lpfc_sli.c phba->iocb_cmd_size = SLI2_IOCB_CMD_SIZE; phba 5127 drivers/scsi/lpfc/lpfc_sli.c phba->iocb_rsp_size = SLI2_IOCB_RSP_SIZE; phba 5128 drivers/scsi/lpfc/lpfc_sli.c phba->sli3_options = 0; phba 5131 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 5133 drivers/scsi/lpfc/lpfc_sli.c phba->sli_rev, phba->max_vpi); phba 5134 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_ring_map(phba); phba 5140 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV3) { phba 5146 drivers/scsi/lpfc/lpfc_sli.c if ((phba->vpi_bmask == NULL) && (phba->vpi_ids == NULL)) { phba 5147 drivers/scsi/lpfc/lpfc_sli.c longs = (phba->max_vpi + BITS_PER_LONG) / BITS_PER_LONG; phba 5148 drivers/scsi/lpfc/lpfc_sli.c phba->vpi_bmask = kcalloc(longs, phba 5151 drivers/scsi/lpfc/lpfc_sli.c if (!phba->vpi_bmask) { phba 5156 drivers/scsi/lpfc/lpfc_sli.c phba->vpi_ids = kcalloc(phba->max_vpi + 1, phba 5159 drivers/scsi/lpfc/lpfc_sli.c if (!phba->vpi_ids) { phba 5160 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->vpi_bmask); phba 5164 drivers/scsi/lpfc/lpfc_sli.c for (i = 0; i < phba->max_vpi; i++) phba 5165 drivers/scsi/lpfc/lpfc_sli.c phba->vpi_ids[i] = i; phba 5170 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli3_options & LPFC_SLI3_HBQ_ENABLED) { phba 5171 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_hbq_setup(phba); phba 5175 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 5176 drivers/scsi/lpfc/lpfc_sli.c phba->sli.sli_flag |= LPFC_PROCESS_LA; phba 5177 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 5179 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_config_port_post(phba); phba 5186 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 5187 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 5201 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_read_fcoe_params(struct lpfc_hba *phba) phba 5210 drivers/scsi/lpfc/lpfc_sli.c phba->valid_vlan = 0; phba 5211 drivers/scsi/lpfc/lpfc_sli.c phba->fc_map[0] = LPFC_FCOE_FCF_MAP0; phba 5212 drivers/scsi/lpfc/lpfc_sli.c phba->fc_map[1] = LPFC_FCOE_FCF_MAP1; phba 5213 drivers/scsi/lpfc/lpfc_sli.c phba->fc_map[2] = LPFC_FCOE_FCF_MAP2; phba 5215 drivers/scsi/lpfc/lpfc_sli.c mboxq = (LPFC_MBOXQ_t *)mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 5220 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_sli4_dump_cfg_rg23(phba, mboxq)) { phba 5226 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 5228 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_MBOX | LOG_SLI, phba 5250 drivers/scsi/lpfc/lpfc_sli.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 5257 drivers/scsi/lpfc/lpfc_sli.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 5263 drivers/scsi/lpfc/lpfc_sli.c lpfc_parse_fcoe_conf(phba, mp->virt, data_length); phba 5264 drivers/scsi/lpfc/lpfc_sli.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 5269 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mboxq, phba->mbox_mem_pool); phba 5289 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_read_rev(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq, phba 5306 drivers/scsi/lpfc/lpfc_sli.c dmabuf->virt = dma_alloc_coherent(&phba->pcidev->dev, dma_size, phba 5318 drivers/scsi/lpfc/lpfc_sli.c lpfc_read_rev(phba, mboxq); phba 5326 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 5328 drivers/scsi/lpfc/lpfc_sli.c dma_free_coherent(&phba->pcidev->dev, dma_size, phba 5344 drivers/scsi/lpfc/lpfc_sli.c dma_free_coherent(&phba->pcidev->dev, dma_size, phba 5362 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_get_ctl_attr(struct lpfc_hba *phba) phba 5373 drivers/scsi/lpfc/lpfc_sli.c mboxq = (LPFC_MBOXQ_t *)mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 5379 drivers/scsi/lpfc/lpfc_sli.c alloclen = lpfc_sli4_config(phba, mboxq, LPFC_MBOX_SUBSYSTEM_COMMON, phba 5384 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 5391 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 5398 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 5402 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_subsys_get(phba, mboxq), phba 5403 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_opcode_get(phba, mboxq), phba 5410 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.lnk_info.lnk_dv = LPFC_LNK_DAT_VAL; phba 5411 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.lnk_info.lnk_tp = phba 5413 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.lnk_info.lnk_no = phba 5416 drivers/scsi/lpfc/lpfc_sli.c memset(phba->BIOSVersion, 0, sizeof(phba->BIOSVersion)); phba 5417 drivers/scsi/lpfc/lpfc_sli.c strlcat(phba->BIOSVersion, (char *)cntl_attr->bios_ver_str, phba 5418 drivers/scsi/lpfc/lpfc_sli.c sizeof(phba->BIOSVersion)); phba 5420 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 5422 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.lnk_info.lnk_tp, phba 5423 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.lnk_info.lnk_no, phba 5424 drivers/scsi/lpfc/lpfc_sli.c phba->BIOSVersion); phba 5428 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_cmd_free(phba, mboxq); phba 5430 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mboxq, phba->mbox_mem_pool); phba 5447 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_retrieve_pport_name(struct lpfc_hba *phba) phba 5457 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.lnk_info.lnk_dv = LPFC_LNK_DAT_INVAL; phba 5458 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.pport_name_sta = LPFC_SLI4_PPNAME_NON; phba 5460 drivers/scsi/lpfc/lpfc_sli.c mboxq = (LPFC_MBOXQ_t *)mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 5464 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.lnk_info.lnk_dv = LPFC_LNK_DAT_INVAL; phba 5465 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_read_config(phba); phba 5466 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.lnk_info.lnk_dv == LPFC_LNK_DAT_VAL) phba 5470 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_get_ctl_attr(phba); phba 5475 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mboxq, LPFC_MBOX_SUBSYSTEM_COMMON, phba 5484 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.lnk_info.lnk_tp); phba 5485 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 5489 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 5493 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_subsys_get(phba, mboxq), phba 5494 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_opcode_get(phba, mboxq), phba 5499 drivers/scsi/lpfc/lpfc_sli.c switch (phba->sli4_hba.lnk_info.lnk_no) { phba 5503 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.pport_name_sta = LPFC_SLI4_PPNAME_GET; phba 5508 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.pport_name_sta = LPFC_SLI4_PPNAME_GET; phba 5513 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.pport_name_sta = LPFC_SLI4_PPNAME_GET; phba 5518 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.pport_name_sta = LPFC_SLI4_PPNAME_GET; phba 5524 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.pport_name_sta == LPFC_SLI4_PPNAME_GET) { phba 5525 drivers/scsi/lpfc/lpfc_sli.c phba->Port[0] = cport_name; phba 5526 drivers/scsi/lpfc/lpfc_sli.c phba->Port[1] = '\0'; phba 5527 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 5528 drivers/scsi/lpfc/lpfc_sli.c "3091 SLI get port name: %s\n", phba->Port); phba 5534 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_cmd_free(phba, mboxq); phba 5536 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mboxq, phba->mbox_mem_pool); phba 5549 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_arm_cqeq_intr(struct lpfc_hba *phba) phba 5552 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli4_hba *sli4_hba = &phba->sli4_hba; phba 5556 drivers/scsi/lpfc/lpfc_sli.c sli4_hba->sli4_write_cq_db(phba, sli4_hba->mbx_cq, 0, LPFC_QUEUE_REARM); phba 5557 drivers/scsi/lpfc/lpfc_sli.c sli4_hba->sli4_write_cq_db(phba, sli4_hba->els_cq, 0, LPFC_QUEUE_REARM); phba 5559 drivers/scsi/lpfc/lpfc_sli.c sli4_hba->sli4_write_cq_db(phba, sli4_hba->nvmels_cq, 0, phba 5564 drivers/scsi/lpfc/lpfc_sli.c for (qidx = 0; qidx < phba->cfg_hdw_queue; qidx++) { phba 5567 drivers/scsi/lpfc/lpfc_sli.c sli4_hba->sli4_write_cq_db(phba, qp->io_cq, 0, phba 5572 drivers/scsi/lpfc/lpfc_sli.c for (qidx = 0; qidx < phba->cfg_irq_chann; qidx++) { phba 5575 drivers/scsi/lpfc/lpfc_sli.c sli4_hba->sli4_write_eq_db(phba, eq, phba 5580 drivers/scsi/lpfc/lpfc_sli.c if (phba->nvmet_support) { phba 5581 drivers/scsi/lpfc/lpfc_sli.c for (qidx = 0; qidx < phba->cfg_nvmet_mrq; qidx++) { phba 5582 drivers/scsi/lpfc/lpfc_sli.c sli4_hba->sli4_write_cq_db(phba, phba 5602 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_get_avail_extnt_rsrc(struct lpfc_hba *phba, uint16_t type, phba 5611 drivers/scsi/lpfc/lpfc_sli.c mbox = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 5618 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_COMMON, phba 5623 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_mbox_rsrc_extent(phba, mbox, 0, type, phba 5630 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.intr_enable) phba 5631 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 5633 drivers/scsi/lpfc/lpfc_sli.c mbox_tmo = lpfc_mbox_tmo_val(phba, mbox); phba 5634 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox_wait(phba, mbox, mbox_tmo); phba 5644 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_INIT, phba 5660 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 5665 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, phba->mbox_mem_pool); phba 5685 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_chk_avail_extnt_rsrc(struct lpfc_hba *phba, uint16_t type) phba 5695 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_get_avail_extnt_rsrc(phba, type, phba 5703 drivers/scsi/lpfc/lpfc_sli.c rsrc_blk_list = &phba->sli4_hba.lpfc_rpi_blk_list; phba 5706 drivers/scsi/lpfc/lpfc_sli.c rsrc_blk_list = &phba->lpfc_vpi_blk_list; phba 5709 drivers/scsi/lpfc/lpfc_sli.c rsrc_blk_list = &phba->sli4_hba.lpfc_xri_blk_list; phba 5712 drivers/scsi/lpfc/lpfc_sli.c rsrc_blk_list = &phba->sli4_hba.lpfc_vfi_blk_list; phba 5748 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_cfg_post_extnts(struct lpfc_hba *phba, uint16_t extnt_cnt, phba 5778 drivers/scsi/lpfc/lpfc_sli.c alloc_len = lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_COMMON, phba 5782 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 5788 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_mbox_rsrc_extent(phba, mbox, extnt_cnt, type, *emb); phba 5792 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.intr_enable) phba 5793 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 5795 drivers/scsi/lpfc/lpfc_sli.c mbox_tmo = lpfc_mbox_tmo_val(phba, mbox); phba 5796 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox_wait(phba, mbox, mbox_tmo); phba 5813 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_alloc_extent(struct lpfc_hba *phba, uint16_t type) phba 5831 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_get_avail_extnt_rsrc(phba, type, phba 5838 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_INIT, phba 5846 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_MBOX | LOG_INIT | LOG_SLI, phba 5850 drivers/scsi/lpfc/lpfc_sli.c mbox = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 5854 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_cfg_post_extnts(phba, rsrc_cnt, type, &emb, mbox); phba 5887 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.rpi_bmask = kcalloc(longs, phba 5890 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->sli4_hba.rpi_bmask)) { phba 5894 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.rpi_ids = kcalloc(rsrc_id_cnt, phba 5897 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->sli4_hba.rpi_ids)) { phba 5898 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.rpi_bmask); phba 5908 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.next_rpi = rsrc_id_cnt; phba 5911 drivers/scsi/lpfc/lpfc_sli.c bmask = phba->sli4_hba.rpi_bmask; phba 5912 drivers/scsi/lpfc/lpfc_sli.c ids = phba->sli4_hba.rpi_ids; phba 5913 drivers/scsi/lpfc/lpfc_sli.c ext_blk_list = &phba->sli4_hba.lpfc_rpi_blk_list; phba 5916 drivers/scsi/lpfc/lpfc_sli.c phba->vpi_bmask = kcalloc(longs, sizeof(unsigned long), phba 5918 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->vpi_bmask)) { phba 5922 drivers/scsi/lpfc/lpfc_sli.c phba->vpi_ids = kcalloc(rsrc_id_cnt, sizeof(uint16_t), phba 5924 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->vpi_ids)) { phba 5925 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->vpi_bmask); phba 5931 drivers/scsi/lpfc/lpfc_sli.c bmask = phba->vpi_bmask; phba 5932 drivers/scsi/lpfc/lpfc_sli.c ids = phba->vpi_ids; phba 5933 drivers/scsi/lpfc/lpfc_sli.c ext_blk_list = &phba->lpfc_vpi_blk_list; phba 5936 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.xri_bmask = kcalloc(longs, phba 5939 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->sli4_hba.xri_bmask)) { phba 5943 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.max_cfg_param.xri_used = 0; phba 5944 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.xri_ids = kcalloc(rsrc_id_cnt, phba 5947 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->sli4_hba.xri_ids)) { phba 5948 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.xri_bmask); phba 5954 drivers/scsi/lpfc/lpfc_sli.c bmask = phba->sli4_hba.xri_bmask; phba 5955 drivers/scsi/lpfc/lpfc_sli.c ids = phba->sli4_hba.xri_ids; phba 5956 drivers/scsi/lpfc/lpfc_sli.c ext_blk_list = &phba->sli4_hba.lpfc_xri_blk_list; phba 5959 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.vfi_bmask = kcalloc(longs, phba 5962 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->sli4_hba.vfi_bmask)) { phba 5966 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.vfi_ids = kcalloc(rsrc_id_cnt, phba 5969 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->sli4_hba.vfi_ids)) { phba 5970 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.vfi_bmask); phba 5976 drivers/scsi/lpfc/lpfc_sli.c bmask = phba->sli4_hba.vfi_bmask; phba 5977 drivers/scsi/lpfc/lpfc_sli.c ids = phba->sli4_hba.vfi_ids; phba 5978 drivers/scsi/lpfc/lpfc_sli.c ext_blk_list = &phba->sli4_hba.lpfc_vfi_blk_list; phba 6015 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.io_xri_start = rsrc_start + phba 6016 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_get_iocb_cnt(phba); phba 6029 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_cmd_free(phba, mbox); phba 6045 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_dealloc_extent(struct lpfc_hba *phba, uint16_t type) phba 6053 drivers/scsi/lpfc/lpfc_sli.c mbox = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 6064 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_COMMON, phba 6069 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_mbox_rsrc_extent(phba, mbox, 0, type, phba 6075 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.intr_enable) phba 6076 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 6078 drivers/scsi/lpfc/lpfc_sli.c mbox_tmo = lpfc_mbox_tmo_val(phba, mbox); phba 6079 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox_wait(phba, mbox, mbox_tmo); phba 6089 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_INIT, phba 6105 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->vpi_bmask); phba 6106 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->vpi_ids); phba 6107 drivers/scsi/lpfc/lpfc_sli.c bf_set(lpfc_vpi_rsrc_rdy, &phba->sli4_hba.sli4_flags, 0); phba 6109 drivers/scsi/lpfc/lpfc_sli.c &phba->lpfc_vpi_blk_list, list) { phba 6113 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.max_cfg_param.vpi_used = 0; phba 6116 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.xri_bmask); phba 6117 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.xri_ids); phba 6119 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.lpfc_xri_blk_list, list) { phba 6125 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.vfi_bmask); phba 6126 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.vfi_ids); phba 6127 drivers/scsi/lpfc/lpfc_sli.c bf_set(lpfc_vfi_rsrc_rdy, &phba->sli4_hba.sli4_flags, 0); phba 6129 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.lpfc_vfi_blk_list, list) { phba 6137 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.lpfc_rpi_blk_list, list) { phba 6146 drivers/scsi/lpfc/lpfc_sli.c bf_set(lpfc_idx_rsrc_rdy, &phba->sli4_hba.sli4_flags, 0); phba 6149 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, phba->mbox_mem_pool); phba 6154 drivers/scsi/lpfc/lpfc_sli.c lpfc_set_features(struct lpfc_hba *phba, LPFC_MBOXQ_t *mbox, phba 6161 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_COMMON, phba 6193 drivers/scsi/lpfc/lpfc_sli.c lpfc_ras_stop_fwlog(struct lpfc_hba *phba) phba 6195 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_ras_fwlog *ras_fwlog = &phba->ras_fwlog; phba 6201 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.conf_regs_memmap_p + LPFC_CTL_PDEV_CTL_OFFSET); phba 6212 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_ras_dma_free(struct lpfc_hba *phba) phba 6214 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_ras_fwlog *ras_fwlog = &phba->ras_fwlog; phba 6222 drivers/scsi/lpfc/lpfc_sli.c dma_free_coherent(&phba->pcidev->dev, phba 6230 drivers/scsi/lpfc/lpfc_sli.c dma_free_coherent(&phba->pcidev->dev, phba 6252 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_ras_dma_alloc(struct lpfc_hba *phba, phba 6255 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_ras_fwlog *ras_fwlog = &phba->ras_fwlog; phba 6263 drivers/scsi/lpfc/lpfc_sli.c ras_fwlog->lwpd.virt = dma_alloc_coherent(&phba->pcidev->dev, phba 6268 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6280 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 6285 drivers/scsi/lpfc/lpfc_sli.c dmabuf->virt = dma_alloc_coherent(&phba->pcidev->dev, phba 6291 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 6301 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_ras_dma_free(phba); phba 6314 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_ras_mbox_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) phba 6319 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_ras_fwlog *ras_fwlog = &phba->ras_fwlog; phba 6329 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, phba 6340 drivers/scsi/lpfc/lpfc_sli.c mempool_free(pmb, phba->mbox_mem_pool); phba 6346 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_ras_dma_free(phba); phba 6347 drivers/scsi/lpfc/lpfc_sli.c mempool_free(pmb, phba->mbox_mem_pool); phba 6360 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_ras_fwlog_init(struct lpfc_hba *phba, phba 6364 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_ras_fwlog *ras_fwlog = &phba->ras_fwlog; phba 6372 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_ras_fwlog_buffsize); phba 6380 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_ras_dma_alloc(phba, fwlog_entry_count); phba 6382 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 6389 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 6391 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6401 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_LOWLEVEL, phba 6430 drivers/scsi/lpfc/lpfc_sli.c mbox->vport = phba->pport; phba 6433 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); phba 6436 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6440 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, phba->mbox_mem_pool); phba 6447 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_ras_dma_free(phba); phba 6459 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_ras_setup(struct lpfc_hba *phba) phba 6462 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_check_fwlog_support(phba)) phba 6465 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_ras_fwlog_init(phba, phba->cfg_ras_fwlog_level, phba 6476 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_alloc_resource_identifiers(struct lpfc_hba *phba) phba 6482 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.rpi_hdrs_in_use) phba 6483 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.next_rpi = phba->sli4_hba.max_cfg_param.max_rpi; phba 6484 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.extents_in_use) { phba 6490 drivers/scsi/lpfc/lpfc_sli.c if (bf_get(lpfc_idx_rsrc_rdy, &phba->sli4_hba.sli4_flags) == phba 6497 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_chk_avail_extnt_rsrc(phba, phba 6501 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_chk_avail_extnt_rsrc(phba, phba 6505 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_chk_avail_extnt_rsrc(phba, phba 6509 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_chk_avail_extnt_rsrc(phba, phba 6521 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, phba 6526 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_dealloc_extent(phba, phba 6528 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_dealloc_extent(phba, phba 6530 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_dealloc_extent(phba, phba 6532 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_dealloc_extent(phba, phba 6538 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_alloc_extent(phba, LPFC_RSC_TYPE_FCOE_VFI); phba 6542 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_alloc_extent(phba, LPFC_RSC_TYPE_FCOE_VPI); phba 6546 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_alloc_extent(phba, LPFC_RSC_TYPE_FCOE_RPI); phba 6550 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_alloc_extent(phba, LPFC_RSC_TYPE_FCOE_XRI); phba 6553 drivers/scsi/lpfc/lpfc_sli.c bf_set(lpfc_idx_rsrc_rdy, &phba->sli4_hba.sli4_flags, phba 6564 drivers/scsi/lpfc/lpfc_sli.c if (bf_get(lpfc_idx_rsrc_rdy, &phba->sli4_hba.sli4_flags) == phba 6566 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_dealloc_resource_identifiers(phba); phba 6567 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_remove_rpis(phba); phba 6570 drivers/scsi/lpfc/lpfc_sli.c count = phba->sli4_hba.max_cfg_param.max_rpi; phba 6572 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 6578 drivers/scsi/lpfc/lpfc_sli.c base = phba->sli4_hba.max_cfg_param.rpi_base; phba 6580 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.rpi_bmask = kcalloc(longs, phba 6583 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->sli4_hba.rpi_bmask)) { phba 6587 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.rpi_ids = kcalloc(count, sizeof(uint16_t), phba 6589 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->sli4_hba.rpi_ids)) { phba 6595 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.rpi_ids[i] = base + i; phba 6598 drivers/scsi/lpfc/lpfc_sli.c count = phba->sli4_hba.max_cfg_param.max_vpi; phba 6600 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 6606 drivers/scsi/lpfc/lpfc_sli.c base = phba->sli4_hba.max_cfg_param.vpi_base; phba 6608 drivers/scsi/lpfc/lpfc_sli.c phba->vpi_bmask = kcalloc(longs, sizeof(unsigned long), phba 6610 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->vpi_bmask)) { phba 6614 drivers/scsi/lpfc/lpfc_sli.c phba->vpi_ids = kcalloc(count, sizeof(uint16_t), phba 6616 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->vpi_ids)) { phba 6622 drivers/scsi/lpfc/lpfc_sli.c phba->vpi_ids[i] = base + i; phba 6625 drivers/scsi/lpfc/lpfc_sli.c count = phba->sli4_hba.max_cfg_param.max_xri; phba 6627 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 6633 drivers/scsi/lpfc/lpfc_sli.c base = phba->sli4_hba.max_cfg_param.xri_base; phba 6635 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.xri_bmask = kcalloc(longs, phba 6638 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->sli4_hba.xri_bmask)) { phba 6642 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.max_cfg_param.xri_used = 0; phba 6643 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.xri_ids = kcalloc(count, sizeof(uint16_t), phba 6645 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->sli4_hba.xri_ids)) { phba 6651 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.xri_ids[i] = base + i; phba 6654 drivers/scsi/lpfc/lpfc_sli.c count = phba->sli4_hba.max_cfg_param.max_vfi; phba 6656 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 6662 drivers/scsi/lpfc/lpfc_sli.c base = phba->sli4_hba.max_cfg_param.vfi_base; phba 6664 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.vfi_bmask = kcalloc(longs, phba 6667 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->sli4_hba.vfi_bmask)) { phba 6671 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.vfi_ids = kcalloc(count, sizeof(uint16_t), phba 6673 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->sli4_hba.vfi_ids)) { phba 6679 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.vfi_ids[i] = base + i; phba 6685 drivers/scsi/lpfc/lpfc_sli.c bf_set(lpfc_idx_rsrc_rdy, &phba->sli4_hba.sli4_flags, phba 6691 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.vfi_bmask); phba 6692 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.vfi_bmask = NULL; phba 6694 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.xri_ids); phba 6695 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.xri_ids = NULL; phba 6697 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.xri_bmask); phba 6698 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.xri_bmask = NULL; phba 6700 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->vpi_ids); phba 6701 drivers/scsi/lpfc/lpfc_sli.c phba->vpi_ids = NULL; phba 6703 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->vpi_bmask); phba 6704 drivers/scsi/lpfc/lpfc_sli.c phba->vpi_bmask = NULL; phba 6706 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.rpi_ids); phba 6707 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.rpi_ids = NULL; phba 6709 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.rpi_bmask); phba 6710 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.rpi_bmask = NULL; phba 6723 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_dealloc_resource_identifiers(struct lpfc_hba *phba) phba 6725 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.extents_in_use) { phba 6726 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_dealloc_extent(phba, LPFC_RSC_TYPE_FCOE_VPI); phba 6727 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_dealloc_extent(phba, LPFC_RSC_TYPE_FCOE_RPI); phba 6728 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_dealloc_extent(phba, LPFC_RSC_TYPE_FCOE_XRI); phba 6729 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_dealloc_extent(phba, LPFC_RSC_TYPE_FCOE_VFI); phba 6731 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->vpi_bmask); phba 6732 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.max_cfg_param.vpi_used = 0; phba 6733 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->vpi_ids); phba 6734 drivers/scsi/lpfc/lpfc_sli.c bf_set(lpfc_vpi_rsrc_rdy, &phba->sli4_hba.sli4_flags, 0); phba 6735 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.xri_bmask); phba 6736 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.xri_ids); phba 6737 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.vfi_bmask); phba 6738 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.vfi_ids); phba 6739 drivers/scsi/lpfc/lpfc_sli.c bf_set(lpfc_vfi_rsrc_rdy, &phba->sli4_hba.sli4_flags, 0); phba 6740 drivers/scsi/lpfc/lpfc_sli.c bf_set(lpfc_idx_rsrc_rdy, &phba->sli4_hba.sli4_flags, 0); phba 6757 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_get_allocated_extnts(struct lpfc_hba *phba, uint16_t type, phba 6775 drivers/scsi/lpfc/lpfc_sli.c blk_list_head = &phba->lpfc_vpi_blk_list; phba 6778 drivers/scsi/lpfc/lpfc_sli.c blk_list_head = &phba->sli4_hba.lpfc_xri_blk_list; phba 6781 drivers/scsi/lpfc/lpfc_sli.c blk_list_head = &phba->sli4_hba.lpfc_vfi_blk_list; phba 6784 drivers/scsi/lpfc/lpfc_sli.c blk_list_head = &phba->sli4_hba.lpfc_rpi_blk_list; phba 6825 drivers/scsi/lpfc/lpfc_sli.c mbox = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 6830 drivers/scsi/lpfc/lpfc_sli.c alloc_len = lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_COMMON, phba 6834 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 6841 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_mbox_rsrc_extent(phba, mbox, curr_blks, type, emb); phba 6847 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.intr_enable) phba 6848 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 6850 drivers/scsi/lpfc/lpfc_sli.c mbox_tmo = lpfc_mbox_tmo_val(phba, mbox); phba 6851 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox_wait(phba, mbox, mbox_tmo); phba 6877 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_INIT, phba 6887 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_cmd_free(phba, mbox); phba 6909 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_repost_sgl_list(struct lpfc_hba *phba, phba 6924 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 6925 drivers/scsi/lpfc/lpfc_sli.c spin_lock(&phba->sli4_hba.sgl_list_lock); phba 6927 drivers/scsi/lpfc/lpfc_sli.c spin_unlock(&phba->sli4_hba.sgl_list_lock); phba 6928 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 6966 drivers/scsi/lpfc/lpfc_sli.c status = lpfc_sli4_post_sgl(phba, phba 6975 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, phba 6992 drivers/scsi/lpfc/lpfc_sli.c status = lpfc_sli4_post_sgl_list(phba, &blck_sgl_list, phba 7003 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 7022 drivers/scsi/lpfc/lpfc_sli.c lpfc_free_sgl_list(phba, &free_sgl_list); phba 7026 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 7027 drivers/scsi/lpfc/lpfc_sli.c spin_lock(&phba->sli4_hba.sgl_list_lock); phba 7029 drivers/scsi/lpfc/lpfc_sli.c spin_unlock(&phba->sli4_hba.sgl_list_lock); phba 7030 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 7032 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 7054 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_repost_io_sgl_list(struct lpfc_hba *phba) phba 7060 drivers/scsi/lpfc/lpfc_sli.c lpfc_io_buf_flush(phba, &post_nblist); phba 7065 drivers/scsi/lpfc/lpfc_sli.c phba, &post_nblist, phba->sli4_hba.io_xri_cnt); phba 7074 drivers/scsi/lpfc/lpfc_sli.c lpfc_set_host_data(struct lpfc_hba *phba, LPFC_MBOXQ_t *mbox) phba 7080 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_COMMON, phba 7090 drivers/scsi/lpfc/lpfc_sli.c (phba->hba_flag & HBA_FCOE_MODE) ? "FCoE" : "FC"); phba 7094 drivers/scsi/lpfc/lpfc_sli.c lpfc_post_rq_buffer(struct lpfc_hba *phba, struct lpfc_queue *hrq, phba 7105 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, flags); phba 7111 drivers/scsi/lpfc/lpfc_sli.c rqb_buffer = rqbp->rqb_alloc_buffer(phba); phba 7129 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 7138 drivers/scsi/lpfc/lpfc_sli.c rqbp->rqb_free_buffer(phba, rqb_buffer); phba 7145 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 7159 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_hba_setup(struct lpfc_hba *phba) phba 7167 drivers/scsi/lpfc/lpfc_sli.c struct Scsi_Host *shost = lpfc_shost_from_vport(phba->pport); phba 7168 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_vport *vport = phba->pport; phba 7173 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_pci_function_reset(phba); phba 7178 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_post_status_check(phba); phba 7182 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 7183 drivers/scsi/lpfc/lpfc_sli.c phba->sli.sli_flag |= LPFC_SLI_ACTIVE; phba 7184 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 7191 drivers/scsi/lpfc/lpfc_sli.c mboxq = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 7203 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_read_rev(phba, mboxq, vpd, &vpd_size); phba 7210 drivers/scsi/lpfc/lpfc_sli.c phba->sli_rev = bf_get(lpfc_mbx_rd_rev_sli_lvl, &mqe->un.read_rev); phba 7212 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_FCOE_MODE; phba 7213 drivers/scsi/lpfc/lpfc_sli.c phba->fcp_embed_io = 0; /* SLI4 FC support only */ phba 7215 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag &= ~HBA_FCOE_MODE; phba 7220 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_FIP_SUPPORT; phba 7222 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag &= ~HBA_FIP_SUPPORT; phba 7224 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag &= ~HBA_IOQ_FLUSH; phba 7226 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev != LPFC_SLI_REV4) { phba 7227 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 7230 drivers/scsi/lpfc/lpfc_sli.c phba->sli_rev, phba->hba_flag & HBA_FCOE_MODE); phba 7241 drivers/scsi/lpfc/lpfc_sli.c if (phba->hba_flag & HBA_FCOE_MODE && phba 7242 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_read_fcoe_params(phba)) phba 7243 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX | LOG_INIT, phba 7250 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_retrieve_pport_name(phba); phba 7252 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_MBOX | LOG_SLI, phba 7254 drivers/scsi/lpfc/lpfc_sli.c "physical port name: %s.\n", phba->Port); phba 7256 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_get_ctl_attr(phba); phba 7258 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_MBOX | LOG_SLI, phba 7267 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_parse_vpd(phba, vpd, vpd_size); phba 7269 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 7277 drivers/scsi/lpfc/lpfc_sli.c phba->vpd.rev.biuRev = mqe->un.read_rev.first_hw_rev; phba 7278 drivers/scsi/lpfc/lpfc_sli.c phba->vpd.rev.smRev = mqe->un.read_rev.second_hw_rev; phba 7284 drivers/scsi/lpfc/lpfc_sli.c if ((bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) == phba 7286 drivers/scsi/lpfc/lpfc_sli.c (phba->vpd.rev.biuRev == LPFC_G7_ASIC_1) && phba 7287 drivers/scsi/lpfc/lpfc_sli.c (phba->vpd.rev.smRev == 0) && phba 7288 drivers/scsi/lpfc/lpfc_sli.c (phba->cfg_nvme_embed_cmd == 1)) phba 7289 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_nvme_embed_cmd = 0; phba 7291 drivers/scsi/lpfc/lpfc_sli.c phba->vpd.rev.endecRev = mqe->un.read_rev.third_hw_rev; phba 7292 drivers/scsi/lpfc/lpfc_sli.c phba->vpd.rev.fcphHigh = bf_get(lpfc_mbx_rd_rev_fcph_high, phba 7294 drivers/scsi/lpfc/lpfc_sli.c phba->vpd.rev.fcphLow = bf_get(lpfc_mbx_rd_rev_fcph_low, phba 7296 drivers/scsi/lpfc/lpfc_sli.c phba->vpd.rev.feaLevelHigh = bf_get(lpfc_mbx_rd_rev_ftr_lvl_high, phba 7298 drivers/scsi/lpfc/lpfc_sli.c phba->vpd.rev.feaLevelLow = bf_get(lpfc_mbx_rd_rev_ftr_lvl_low, phba 7300 drivers/scsi/lpfc/lpfc_sli.c phba->vpd.rev.sli1FwRev = mqe->un.read_rev.fw_id_rev; phba 7301 drivers/scsi/lpfc/lpfc_sli.c memcpy(phba->vpd.rev.sli1FwName, mqe->un.read_rev.fw_name, 16); phba 7302 drivers/scsi/lpfc/lpfc_sli.c phba->vpd.rev.sli2FwRev = mqe->un.read_rev.ulp_fw_id_rev; phba 7303 drivers/scsi/lpfc/lpfc_sli.c memcpy(phba->vpd.rev.sli2FwName, mqe->un.read_rev.ulp_fw_name, 16); phba 7304 drivers/scsi/lpfc/lpfc_sli.c phba->vpd.rev.opFwRev = mqe->un.read_rev.fw_id_rev; phba 7305 drivers/scsi/lpfc/lpfc_sli.c memcpy(phba->vpd.rev.opFwName, mqe->un.read_rev.fw_name, 16); phba 7306 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_MBOX | LOG_SLI, phba 7311 drivers/scsi/lpfc/lpfc_sli.c phba->vpd.rev.opFwName, phba 7312 drivers/scsi/lpfc/lpfc_sli.c phba->vpd.rev.fcphHigh, phba->vpd.rev.fcphLow, phba 7313 drivers/scsi/lpfc/lpfc_sli.c phba->vpd.rev.feaLevelHigh, phba->vpd.rev.feaLevelLow); phba 7316 drivers/scsi/lpfc/lpfc_sli.c rc = (phba->sli4_hba.max_cfg_param.max_xri >> 3); phba 7317 drivers/scsi/lpfc/lpfc_sli.c if (phba->pport->cfg_lun_queue_depth > rc) { phba 7318 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 7320 drivers/scsi/lpfc/lpfc_sli.c phba->pport->cfg_lun_queue_depth, rc); phba 7321 drivers/scsi/lpfc/lpfc_sli.c phba->pport->cfg_lun_queue_depth = rc; phba 7324 drivers/scsi/lpfc/lpfc_sli.c if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) == phba 7326 drivers/scsi/lpfc/lpfc_sli.c lpfc_set_features(phba, mboxq, LPFC_SET_UE_RECOVERY); phba 7327 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 7329 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_RECOVERABLE_UE; phba 7331 drivers/scsi/lpfc/lpfc_sli.c phba->eratt_poll_interval = 1; phba 7332 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.ue_to_sr = bf_get( phba 7335 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.ue_to_rp = bf_get( phba 7341 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_enable_mds_diags && phba->mds_diags_support) { phba 7343 drivers/scsi/lpfc/lpfc_sli.c lpfc_set_features(phba, mboxq, LPFC_SET_MDS_DIAGS); phba 7344 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 7346 drivers/scsi/lpfc/lpfc_sli.c phba->mds_diags_support = 0; phba 7353 drivers/scsi/lpfc/lpfc_sli.c lpfc_request_features(phba, mboxq); phba 7354 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 7365 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX | LOG_SLI, phba 7371 drivers/scsi/lpfc/lpfc_sli.c if (phba->hba_flag & HBA_FCOE_MODE) { phba 7373 drivers/scsi/lpfc/lpfc_sli.c phba->sli3_options |= LPFC_SLI4_PERFH_ENABLED; phba 7375 drivers/scsi/lpfc/lpfc_sli.c phba->sli3_options &= ~LPFC_SLI4_PERFH_ENABLED; phba 7383 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli3_options & LPFC_SLI3_BG_ENABLED) { phba 7385 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_enable_bg = 0; phba 7386 drivers/scsi/lpfc/lpfc_sli.c phba->sli3_options &= ~LPFC_SLI3_BG_ENABLED; phba 7391 drivers/scsi/lpfc/lpfc_sli.c if (phba->max_vpi && phba->cfg_enable_npiv && phba 7396 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX | LOG_SLI, phba 7399 drivers/scsi/lpfc/lpfc_sli.c mqe->un.req_ftrs.word3, phba->cfg_enable_bg, phba 7400 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_enable_npiv, phba->max_vpi); phba 7402 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_enable_bg = 0; phba 7404 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_enable_npiv = 0; phba 7408 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 7409 drivers/scsi/lpfc/lpfc_sli.c phba->sli3_options |= (LPFC_SLI3_NPIV_ENABLED | LPFC_SLI3_HBQ_ENABLED); phba 7410 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 7416 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_alloc_resource_identifiers(phba); phba 7418 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 7424 drivers/scsi/lpfc/lpfc_sli.c lpfc_set_host_data(phba, mboxq); phba 7426 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 7428 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX | LOG_SLI, phba 7434 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_read_sparam(phba, mboxq, vport->vpi); phba 7436 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 7442 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 7453 drivers/scsi/lpfc/lpfc_sli.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 7457 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 7461 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_HBA_ERROR; phba 7473 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_queue_create(phba); phba 7475 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 7481 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_queue_setup(phba); phba 7483 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 7488 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_setup(phba); phba 7489 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_queue_init(phba); phba 7492 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_els_sgl_update(phba); phba 7494 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 7501 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_repost_sgl_list(phba, &phba->sli4_hba.lpfc_els_sgl_list, phba 7502 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.els_xri_cnt); phba 7504 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 7510 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.els_xri_cnt = rc; phba 7512 drivers/scsi/lpfc/lpfc_sli.c if (phba->nvmet_support) { phba 7514 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_nvmet_sgl_update(phba); phba 7516 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 7524 drivers/scsi/lpfc/lpfc_sli.c phba, phba 7525 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.lpfc_nvmet_sgl_list, phba 7526 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.nvmet_xri_cnt); phba 7528 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 7534 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.nvmet_xri_cnt = rc; phba 7536 drivers/scsi/lpfc/lpfc_sli.c cnt = phba->cfg_iocb_cnt * 1024; phba 7538 drivers/scsi/lpfc/lpfc_sli.c cnt += phba->sli4_hba.nvmet_xri_cnt; phba 7541 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_io_sgl_update(phba); phba 7543 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 7550 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_repost_io_sgl_list(phba); phba 7552 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 7560 drivers/scsi/lpfc/lpfc_sli.c cnt = phba->cfg_iocb_cnt * 1024; phba 7563 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli.iocbq_lookup) { phba 7565 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 7567 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_iocb_cnt, cnt); phba 7568 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_init_iocb_list(phba, cnt); phba 7570 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 7576 drivers/scsi/lpfc/lpfc_sli.c if (phba->nvmet_support) phba 7577 drivers/scsi/lpfc/lpfc_sli.c lpfc_nvmet_create_targetport(phba); phba 7579 drivers/scsi/lpfc/lpfc_sli.c if (phba->nvmet_support && phba->cfg_nvmet_mrq) { phba 7581 drivers/scsi/lpfc/lpfc_sli.c for (i = 0; i < phba->cfg_nvmet_mrq; i++) { phba 7582 drivers/scsi/lpfc/lpfc_sli.c rqbp = phba->sli4_hba.nvmet_mrq_hdr[i]->rqbp; phba 7590 drivers/scsi/lpfc/lpfc_sli.c phba, phba->sli4_hba.nvmet_mrq_hdr[i], phba 7591 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.nvmet_mrq_data[i], phba 7592 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_nvmet_mrq_post, i); phba 7597 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_post_all_rpi_hdrs(phba); phba 7599 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 7605 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_node_prep(phba); phba 7607 drivers/scsi/lpfc/lpfc_sli.c if (!(phba->hba_flag & HBA_FCOE_MODE)) { phba 7608 drivers/scsi/lpfc/lpfc_sli.c if ((phba->nvmet_support == 0) || (phba->cfg_nvmet_mrq == 1)) { phba 7612 drivers/scsi/lpfc/lpfc_sli.c lpfc_reg_fcfi(phba, mboxq); phba 7613 drivers/scsi/lpfc/lpfc_sli.c mboxq->vport = phba->pport; phba 7614 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 7618 drivers/scsi/lpfc/lpfc_sli.c phba->fcf.fcfi = bf_get(lpfc_reg_fcfi_fcfi, phba 7624 drivers/scsi/lpfc/lpfc_sli.c lpfc_reg_fcfi_mrq(phba, mboxq, 0); phba 7625 drivers/scsi/lpfc/lpfc_sli.c mboxq->vport = phba->pport; phba 7626 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 7630 drivers/scsi/lpfc/lpfc_sli.c phba->fcf.fcfi = bf_get(lpfc_reg_fcfi_mrq_fcfi, phba 7634 drivers/scsi/lpfc/lpfc_sli.c lpfc_reg_fcfi_mrq(phba, mboxq, 1); phba 7635 drivers/scsi/lpfc/lpfc_sli.c mboxq->vport = phba->pport; phba 7636 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 7642 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_read_link_ste(phba); phba 7648 drivers/scsi/lpfc/lpfc_sli.c if (phba->nvmet_support == 0) { phba 7649 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.io_xri_cnt == 0) { phba 7651 drivers/scsi/lpfc/lpfc_sli.c phba, phba->sli4_hba.io_xri_max); phba 7657 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_xri_rebalancing) phba 7658 drivers/scsi/lpfc/lpfc_sli.c lpfc_create_multixri_pools(phba); phba 7661 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_xri_rebalancing = 0; phba 7665 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 7666 drivers/scsi/lpfc/lpfc_sli.c phba->sli.sli_flag &= ~LPFC_SLI_ASYNC_MBX_BLK; phba 7667 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 7670 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_rb_setup(phba); phba 7673 drivers/scsi/lpfc/lpfc_sli.c phba->fcf.fcf_flag = 0; phba 7674 drivers/scsi/lpfc/lpfc_sli.c phba->fcf.current_rec.flag = 0; phba 7678 drivers/scsi/lpfc/lpfc_sli.c jiffies + msecs_to_jiffies(1000 * (phba->fc_ratov * 2))); phba 7681 drivers/scsi/lpfc/lpfc_sli.c mod_timer(&phba->hb_tmofunc, phba 7683 drivers/scsi/lpfc/lpfc_sli.c phba->hb_outstanding = 0; phba 7684 drivers/scsi/lpfc/lpfc_sli.c phba->last_completion_time = jiffies; phba 7687 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_auto_imax) phba 7688 drivers/scsi/lpfc/lpfc_sli.c queue_delayed_work(phba->wq, &phba->eq_delay_work, phba 7692 drivers/scsi/lpfc/lpfc_sli.c mod_timer(&phba->eratt_poll, phba 7693 drivers/scsi/lpfc/lpfc_sli.c jiffies + msecs_to_jiffies(1000 * phba->eratt_poll_interval)); phba 7696 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_aer_support == 1 && !(phba->hba_flag & HBA_AER_ENABLED)) { phba 7697 drivers/scsi/lpfc/lpfc_sli.c rc = pci_enable_pcie_error_reporting(phba->pcidev); phba 7699 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 7702 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 7703 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_AER_ENABLED; phba 7704 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 7706 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 7709 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_aer_support = 0; phba 7718 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 7719 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_LINK_DOWN; phba 7722 drivers/scsi/lpfc/lpfc_sli.c if (bf_get(lpfc_conf_trunk_port0, &phba->sli4_hba)) phba 7723 drivers/scsi/lpfc/lpfc_sli.c phba->trunk_link.link0.state = LPFC_LINK_DOWN; phba 7724 drivers/scsi/lpfc/lpfc_sli.c if (bf_get(lpfc_conf_trunk_port1, &phba->sli4_hba)) phba 7725 drivers/scsi/lpfc/lpfc_sli.c phba->trunk_link.link1.state = LPFC_LINK_DOWN; phba 7726 drivers/scsi/lpfc/lpfc_sli.c if (bf_get(lpfc_conf_trunk_port2, &phba->sli4_hba)) phba 7727 drivers/scsi/lpfc/lpfc_sli.c phba->trunk_link.link2.state = LPFC_LINK_DOWN; phba 7728 drivers/scsi/lpfc/lpfc_sli.c if (bf_get(lpfc_conf_trunk_port3, &phba->sli4_hba)) phba 7729 drivers/scsi/lpfc/lpfc_sli.c phba->trunk_link.link3.state = LPFC_LINK_DOWN; phba 7730 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 7733 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_arm_cqeq_intr(phba); phba 7736 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.intr_enable = 1; phba 7738 drivers/scsi/lpfc/lpfc_sli.c if (!(phba->hba_flag & HBA_FCOE_MODE) && phba 7739 drivers/scsi/lpfc/lpfc_sli.c (phba->hba_flag & LINK_DISABLED)) { phba 7740 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT | LOG_SLI, phba 7742 drivers/scsi/lpfc/lpfc_sli.c lpfc_down_link(phba, mboxq); phba 7743 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 7745 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT | LOG_SLI, phba 7750 drivers/scsi/lpfc/lpfc_sli.c } else if (phba->cfg_suppress_link_up == LPFC_INITIALIZE_LINK) { phba 7752 drivers/scsi/lpfc/lpfc_sli.c if (!(phba->link_flag & LS_LOOPBACK_MODE)) { phba 7753 drivers/scsi/lpfc/lpfc_sli.c rc = phba->lpfc_hba_init_link(phba, MBX_NOWAIT); phba 7758 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mboxq, phba->mbox_mem_pool); phba 7762 drivers/scsi/lpfc/lpfc_sli.c lpfc_io_free(phba); phba 7765 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_queue_unset(phba); phba 7767 drivers/scsi/lpfc/lpfc_sli.c lpfc_free_iocb_list(phba); phba 7768 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_queue_destroy(phba); phba 7770 drivers/scsi/lpfc/lpfc_sli.c lpfc_stop_hba_timers(phba); phba 7772 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mboxq, phba->mbox_mem_pool); phba 7791 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = from_timer(phba, t, sli.mbox_tmo); phba 7795 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->pport->work_port_lock, iflag); phba 7796 drivers/scsi/lpfc/lpfc_sli.c tmo_posted = phba->pport->work_port_events & WORKER_MBOX_TMO; phba 7798 drivers/scsi/lpfc/lpfc_sli.c phba->pport->work_port_events |= WORKER_MBOX_TMO; phba 7799 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->pport->work_port_lock, iflag); phba 7802 drivers/scsi/lpfc/lpfc_sli.c lpfc_worker_wake_up(phba); phba 7815 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_completions_pending(struct lpfc_hba *phba) phba 7824 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba) || (phba->sli_rev != LPFC_SLI_REV4)) phba 7829 drivers/scsi/lpfc/lpfc_sli.c mcq = phba->sli4_hba.mbx_cq; phba 7845 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.pc_sli4_params.cqav && !idx) phba 7864 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_process_missed_mbox_completions(struct lpfc_hba *phba) phba 7866 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli4_hba *sli4_hba = &phba->sli4_hba; phba 7872 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba) || (phba->sli_rev != LPFC_SLI_REV4)) phba 7877 drivers/scsi/lpfc/lpfc_sli.c for (eqidx = 0; eqidx < phba->cfg_irq_chann; eqidx++) { phba 7878 drivers/scsi/lpfc/lpfc_sli.c eq = phba->sli4_hba.hba_eq_hdl[eqidx].eq; phba 7894 drivers/scsi/lpfc/lpfc_sli.c mbox_pending = lpfc_sli4_mbox_completions_pending(phba); phba 7905 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_process_eq(phba, fpeq, LPFC_QUEUE_REARM); phba 7908 drivers/scsi/lpfc/lpfc_sli.c sli4_hba->sli4_write_eq_db(phba, fpeq, 0, LPFC_QUEUE_REARM); phba 7923 drivers/scsi/lpfc/lpfc_sli.c lpfc_mbox_timeout_handler(struct lpfc_hba *phba) phba 7925 drivers/scsi/lpfc/lpfc_sli.c LPFC_MBOXQ_t *pmbox = phba->sli.mbox_active; phba 7928 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 7931 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_sli4_process_missed_mbox_completions(phba)) phba 7941 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 7943 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, phba 7947 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 7952 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 7955 drivers/scsi/lpfc/lpfc_sli.c phba->pport->port_state, phba 7956 drivers/scsi/lpfc/lpfc_sli.c phba->sli.sli_flag, phba 7957 drivers/scsi/lpfc/lpfc_sli.c phba->sli.mbox_active); phba 7958 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 7964 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->pport->work_port_lock); phba 7965 drivers/scsi/lpfc/lpfc_sli.c phba->pport->work_port_events &= ~WORKER_MBOX_TMO; phba 7966 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->pport->work_port_lock); phba 7967 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 7968 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = LPFC_LINK_UNKNOWN; phba 7970 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 7972 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_abort_fcp_rings(phba); phba 7974 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 7978 drivers/scsi/lpfc/lpfc_sli.c lpfc_reset_hba(phba); phba 8008 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_issue_mbox_s3(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmbox, phba 8012 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 8022 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, drvr_flag); phba 8024 drivers/scsi/lpfc/lpfc_sli.c phba->sli.sli_flag &= ~LPFC_SLI_MBOX_ACTIVE; phba 8027 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, drvr_flag); phba 8031 drivers/scsi/lpfc/lpfc_sli.c pmbox = lpfc_mbox_get(phba); phba 8033 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, drvr_flag); phba 8041 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, drvr_flag); phba 8042 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, phba 8052 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(pci_channel_offline(phba->pcidev))) { phba 8053 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, drvr_flag); phba 8058 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(phba->hba_flag & DEFER_ERATT)) { phba 8059 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, drvr_flag); phba 8063 drivers/scsi/lpfc/lpfc_sli.c psli = &phba->sli; phba 8068 drivers/scsi/lpfc/lpfc_sli.c if (phba->link_state == LPFC_HBA_ERROR) { phba 8069 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, drvr_flag); phba 8072 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 8081 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HCregaddr, &hc_copy) || phba 8083 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, drvr_flag); phba 8084 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 8100 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, drvr_flag); phba 8103 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 8113 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, drvr_flag); phba 8115 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 8127 drivers/scsi/lpfc/lpfc_sli.c lpfc_mbox_put(phba, pmbox); phba 8130 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_MBOX | LOG_SLI, phba 8135 drivers/scsi/lpfc/lpfc_sli.c phba->pport ? phba->pport->port_state : 0xff, phba 8139 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, drvr_flag); phba 8149 drivers/scsi/lpfc/lpfc_sli.c lpfc_debugfs_disc_trc(phba->pport, phba 8166 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, drvr_flag); phba 8168 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 8177 drivers/scsi/lpfc/lpfc_sli.c timeout = msecs_to_jiffies(lpfc_mbox_tmo_val(phba, pmbox) * phba 8183 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_MBOX | LOG_SLI, phba 8188 drivers/scsi/lpfc/lpfc_sli.c phba->pport ? phba->pport->port_state : 0xff, phba 8200 drivers/scsi/lpfc/lpfc_sli.c lpfc_debugfs_disc_trc(phba->pport, phba 8218 drivers/scsi/lpfc/lpfc_sli.c = (uint8_t *)phba->mbox_ext phba 8219 drivers/scsi/lpfc/lpfc_sli.c - (uint8_t *)phba->mbox; phba 8225 drivers/scsi/lpfc/lpfc_sli.c (uint8_t *)phba->mbox_ext, phba 8229 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_pcimem_bcopy(mbx, phba->mbox, MAILBOX_CMD_SIZE); phba 8238 drivers/scsi/lpfc/lpfc_sli.c lpfc_memcpy_to_slim(phba->MBslimaddr + phba 8244 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_pcimem_bcopy(mbx, phba->mbox, phba 8249 drivers/scsi/lpfc/lpfc_sli.c to_slim = phba->MBslimaddr + sizeof (uint32_t); phba 8255 drivers/scsi/lpfc/lpfc_sli.c to_slim = phba->MBslimaddr; phba 8271 drivers/scsi/lpfc/lpfc_sli.c writel(CA_MBATT, phba->CAregaddr); phba 8272 drivers/scsi/lpfc/lpfc_sli.c readl(phba->CAregaddr); /* flush */ phba 8280 drivers/scsi/lpfc/lpfc_sli.c writel(CA_MBATT, phba->CAregaddr); phba 8281 drivers/scsi/lpfc/lpfc_sli.c readl(phba->CAregaddr); /* flush */ phba 8285 drivers/scsi/lpfc/lpfc_sli.c word0 = *((uint32_t *)phba->mbox); phba 8289 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->MBslimaddr, &word0)) { phba 8290 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, phba 8297 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HAregaddr, &ha_copy)) { phba 8298 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, phba 8302 drivers/scsi/lpfc/lpfc_sli.c timeout = msecs_to_jiffies(lpfc_mbox_tmo_val(phba, pmbox) * phba 8308 drivers/scsi/lpfc/lpfc_sli.c (phba->link_state > LPFC_WARM_START))) { phba 8311 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, phba 8323 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, phba 8326 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, drvr_flag); phba 8331 drivers/scsi/lpfc/lpfc_sli.c word0 = *((uint32_t *)phba->mbox); phba 8337 drivers/scsi/lpfc/lpfc_sli.c slimword0 = readl(phba->MBslimaddr); phba 8348 drivers/scsi/lpfc/lpfc_sli.c word0 = readl(phba->MBslimaddr); phba 8351 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HAregaddr, &ha_copy)) { phba 8352 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, phba 8360 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_pcimem_bcopy(phba->mbox, mbx, phba 8364 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_pcimem_bcopy(phba->mbox_ext, phba 8370 drivers/scsi/lpfc/lpfc_sli.c lpfc_memcpy_from_slim(mbx, phba->MBslimaddr, phba 8376 drivers/scsi/lpfc/lpfc_sli.c phba->MBslimaddr + phba 8382 drivers/scsi/lpfc/lpfc_sli.c writel(HA_MBATT, phba->HAregaddr); phba 8383 drivers/scsi/lpfc/lpfc_sli.c readl(phba->HAregaddr); /* flush */ phba 8389 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, drvr_flag); phba 8395 drivers/scsi/lpfc/lpfc_sli.c lpfc_mbox_cmpl_put(phba, pmbox); phba 8413 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_async_mbox_block(struct lpfc_hba *phba) phba 8415 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 8420 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 8425 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli.mbox_active) phba 8426 drivers/scsi/lpfc/lpfc_sli.c timeout = msecs_to_jiffies(lpfc_mbox_tmo_val(phba, phba 8427 drivers/scsi/lpfc/lpfc_sli.c phba->sli.mbox_active) * phba 8429 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 8433 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_process_missed_mbox_completions(phba); phba 8436 drivers/scsi/lpfc/lpfc_sli.c while (phba->sli.mbox_active) { phba 8448 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 8450 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 8467 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_async_mbox_unblock(struct lpfc_hba *phba) phba 8469 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 8471 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 8474 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 8484 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 8487 drivers/scsi/lpfc/lpfc_sli.c lpfc_worker_wake_up(phba); phba 8502 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_wait_bmbx_ready(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 8508 drivers/scsi/lpfc/lpfc_sli.c timeout = msecs_to_jiffies(lpfc_mbox_tmo_val(phba, mboxq) phba 8512 drivers/scsi/lpfc/lpfc_sli.c bmbx_reg.word0 = readl(phba->sli4_hba.BMBXregaddr); phba 8541 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_post_sync_mbox(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 8547 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 8556 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 8558 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 8559 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 8564 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_subsys_get(phba, mboxq), phba 8565 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_opcode_get(phba, mboxq), phba 8571 drivers/scsi/lpfc/lpfc_sli.c phba->sli.mbox_active = mboxq; phba 8572 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 8575 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_wait_bmbx_ready(phba, mboxq); phba 8584 drivers/scsi/lpfc/lpfc_sli.c memset(phba->sli4_hba.bmbx.avirt, 0, sizeof(struct lpfc_bmbx_create)); phba 8585 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_pcimem_bcopy(mb, phba->sli4_hba.bmbx.avirt, phba 8589 drivers/scsi/lpfc/lpfc_sli.c dma_address = &phba->sli4_hba.bmbx.dma_address; phba 8590 drivers/scsi/lpfc/lpfc_sli.c writel(dma_address->addr_hi, phba->sli4_hba.BMBXregaddr); phba 8593 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_wait_bmbx_ready(phba, mboxq); phba 8598 drivers/scsi/lpfc/lpfc_sli.c writel(dma_address->addr_lo, phba->sli4_hba.BMBXregaddr); phba 8601 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_wait_bmbx_ready(phba, mboxq); phba 8610 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_pcimem_bcopy(phba->sli4_hba.bmbx.avirt, mb, phba 8612 drivers/scsi/lpfc/lpfc_sli.c mbox_rgn = (struct lpfc_bmbx_create *) phba->sli4_hba.bmbx.avirt; phba 8627 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_swap_str(phba, mboxq); phba 8629 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_MBOX | LOG_SLI, phba 8634 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_subsys_get(phba, mboxq), phba 8635 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_opcode_get(phba, mboxq), phba 8648 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 8650 drivers/scsi/lpfc/lpfc_sli.c phba->sli.mbox_active = NULL; phba 8651 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 8668 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_issue_mbox_s4(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq, phba 8671 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 8676 drivers/scsi/lpfc/lpfc_sli.c lpfc_idiag_mbxacc_dump_issue_mbox(phba, &mboxq->u.mb); phba 8678 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_mbox_dev_check(phba); phba 8680 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 8685 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_subsys_get(phba, mboxq), phba 8686 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_opcode_get(phba, mboxq), phba 8692 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.intr_enable) { phba 8694 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_post_sync_mbox(phba, mboxq); phba 8698 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX | LOG_SLI, phba 8705 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_subsys_get(phba, phba 8707 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_opcode_get(phba, phba 8716 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX | LOG_SLI, phba 8722 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_subsys_get(phba, mboxq), phba 8723 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_opcode_get(phba, mboxq), phba 8726 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_async_mbox_block(phba); phba 8729 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_post_sync_mbox(phba, mboxq); phba 8731 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, phba 8739 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_subsys_get(phba, phba 8741 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_opcode_get(phba, phba 8749 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_async_mbox_unblock(phba); phba 8755 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_mbox_cmd_check(phba, mboxq); phba 8757 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 8762 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_subsys_get(phba, mboxq), phba 8763 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_opcode_get(phba, mboxq), phba 8770 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 8771 drivers/scsi/lpfc/lpfc_sli.c lpfc_mbox_put(phba, mboxq); phba 8772 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 8773 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_MBOX | LOG_SLI, phba 8778 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_subsys_get(phba, mboxq), phba 8779 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_opcode_get(phba, mboxq), phba 8780 drivers/scsi/lpfc/lpfc_sli.c phba->pport->port_state, phba 8783 drivers/scsi/lpfc/lpfc_sli.c lpfc_worker_wake_up(phba); phba 8800 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_post_async_mbox(struct lpfc_hba *phba) phba 8802 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 8810 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->sli4_hba.intr_enable)) phba 8814 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 8816 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 8820 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 8823 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(phba->sli.mbox_active)) { phba 8824 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 8825 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 8833 drivers/scsi/lpfc/lpfc_sli.c mboxq = lpfc_mbox_get(phba); phba 8838 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 8841 drivers/scsi/lpfc/lpfc_sli.c phba->sli.mbox_active = mboxq; phba 8842 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 8845 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_mbox_dev_check(phba); phba 8856 drivers/scsi/lpfc/lpfc_sli.c msecs_to_jiffies(1000 * lpfc_mbox_tmo_val(phba, mboxq)))); phba 8858 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_MBOX | LOG_SLI, phba 8862 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_subsys_get(phba, mboxq), phba 8863 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_opcode_get(phba, mboxq), phba 8864 drivers/scsi/lpfc/lpfc_sli.c phba->pport->port_state, psli->sli_flag); phba 8874 drivers/scsi/lpfc/lpfc_sli.c lpfc_debugfs_disc_trc(phba->pport, phba 8884 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_mq_put(phba->sli4_hba.mbx_wq, mqe); phba 8886 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, phba 8891 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_subsys_get(phba, mboxq), phba 8892 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_config_mbox_opcode_get(phba, mboxq), phba 8900 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 8901 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli.mbox_active) { phba 8903 drivers/scsi/lpfc/lpfc_sli.c __lpfc_mbox_cmpl_put(phba, mboxq); phba 8906 drivers/scsi/lpfc/lpfc_sli.c phba->sli.mbox_active = NULL; phba 8908 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 8926 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_issue_mbox(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmbox, uint32_t flag) phba 8928 drivers/scsi/lpfc/lpfc_sli.c return phba->lpfc_sli_issue_mbox(phba, pmbox, flag); phba 8941 drivers/scsi/lpfc/lpfc_sli.c lpfc_mbox_api_table_setup(struct lpfc_hba *phba, uint8_t dev_grp) phba 8946 drivers/scsi/lpfc/lpfc_sli.c phba->lpfc_sli_issue_mbox = lpfc_sli_issue_mbox_s3; phba 8947 drivers/scsi/lpfc/lpfc_sli.c phba->lpfc_sli_handle_slow_ring_event = phba 8949 drivers/scsi/lpfc/lpfc_sli.c phba->lpfc_sli_hbq_to_firmware = lpfc_sli_hbq_to_firmware_s3; phba 8950 drivers/scsi/lpfc/lpfc_sli.c phba->lpfc_sli_brdrestart = lpfc_sli_brdrestart_s3; phba 8951 drivers/scsi/lpfc/lpfc_sli.c phba->lpfc_sli_brdready = lpfc_sli_brdready_s3; phba 8954 drivers/scsi/lpfc/lpfc_sli.c phba->lpfc_sli_issue_mbox = lpfc_sli_issue_mbox_s4; phba 8955 drivers/scsi/lpfc/lpfc_sli.c phba->lpfc_sli_handle_slow_ring_event = phba 8957 drivers/scsi/lpfc/lpfc_sli.c phba->lpfc_sli_hbq_to_firmware = lpfc_sli_hbq_to_firmware_s4; phba 8958 drivers/scsi/lpfc/lpfc_sli.c phba->lpfc_sli_brdrestart = lpfc_sli_brdrestart_s4; phba 8959 drivers/scsi/lpfc/lpfc_sli.c phba->lpfc_sli_brdready = lpfc_sli_brdready_s4; phba 8962 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 8982 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_ringtx_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 8985 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 9008 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_next_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 9013 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 9015 drivers/scsi/lpfc/lpfc_sli.c nextiocb = lpfc_sli_ringtx_get(phba, pring); phba 9047 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_issue_iocb_s3(struct lpfc_hba *phba, uint32_t ring_number, phba 9052 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli_ring *pring = &phba->sli.sli3_ring[ring_number]; phba 9054 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 9059 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, phba 9069 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(pci_channel_offline(phba->pcidev))) phba 9073 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(phba->hba_flag & DEFER_ERATT)) phba 9079 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(phba->link_state < LPFC_LINK_DOWN)) phba 9089 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(phba->link_state == LPFC_LINK_DOWN)) { phba 9097 drivers/scsi/lpfc/lpfc_sli.c if (!(phba->sli.sli_flag & LPFC_MENLO_MAINT) || phba 9127 drivers/scsi/lpfc/lpfc_sli.c !(phba->sli.sli_flag & LPFC_PROCESS_LA))) { phba 9131 drivers/scsi/lpfc/lpfc_sli.c while ((iocb = lpfc_sli_next_iocb_slot(phba, pring)) && phba 9132 drivers/scsi/lpfc/lpfc_sli.c (nextiocb = lpfc_sli_next_iocb(phba, pring, &piocb))) phba 9133 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_submit_iocb(phba, pring, iocb, nextiocb); phba 9136 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_update_ring(phba, pring); phba 9138 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_update_full_ring(phba, pring); phba 9151 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_ringtx_put(phba, pring, piocb); phba 9176 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_bpl2sgl(struct lpfc_hba *phba, struct lpfc_iocbq *piocbq, phba 9281 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_iocb2wqe(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq, phba 9301 drivers/scsi/lpfc/lpfc_sli.c fip = phba->hba_flag & HBA_FIP_SUPPORT; phba 9310 drivers/scsi/lpfc/lpfc_sli.c if (phba->fcp_embed_io) phba 9355 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 9382 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.sli_intf); phba 9394 drivers/scsi/lpfc/lpfc_sli.c !(phba->fc_topology == phba 9399 drivers/scsi/lpfc/lpfc_sli.c phba->vpi_ids[iocbq->vport->vpi]); phba 9403 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]); phba 9407 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]); phba 9424 drivers/scsi/lpfc/lpfc_sli.c if (phba->link_flag & LS_LOOPBACK_MODE) phba 9483 drivers/scsi/lpfc/lpfc_sli.c (phba->cfg_XLanePriority << 1)); phba 9489 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_enable_pbde) phba 9494 drivers/scsi/lpfc/lpfc_sli.c if (phba->fcp_embed_io) { phba 9547 drivers/scsi/lpfc/lpfc_sli.c (phba->cfg_XLanePriority << 1)); phba 9553 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_enable_pbde) phba 9558 drivers/scsi/lpfc/lpfc_sli.c if (phba->fcp_embed_io) { phba 9610 drivers/scsi/lpfc/lpfc_sli.c (phba->cfg_XLanePriority << 1)); phba 9615 drivers/scsi/lpfc/lpfc_sli.c if (phba->fcp_embed_io) { phba 9662 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 9690 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.sli_intf); phba 9709 drivers/scsi/lpfc/lpfc_sli.c phba->vpi_ids[iocbq->vport->vpi]); phba 9717 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]); phba 9720 drivers/scsi/lpfc/lpfc_sli.c if (phba->fc_topology == LPFC_TOPOLOGY_LOOP) { phba 9726 drivers/scsi/lpfc/lpfc_sli.c phba->vpi_ids[phba->pport->vpi]); phba 9736 drivers/scsi/lpfc/lpfc_sli.c if (abrt_iotag != 0 && abrt_iotag <= phba->sli.last_iotag) { phba 9737 drivers/scsi/lpfc/lpfc_sli.c abrtiocbq = phba->sli.iocbq_lookup[abrt_iotag]; phba 9805 drivers/scsi/lpfc/lpfc_sli.c phba->vpi_ids[phba->pport->vpi]); phba 9841 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 9881 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_issue_iocb_s4(struct lpfc_hba *phba, uint32_t ring_number, phba 9892 drivers/scsi/lpfc/lpfc_sli.c wq = phba->sli4_hba.hdwq[piocb->hba_wqidx].io_wq; phba 9894 drivers/scsi/lpfc/lpfc_sli.c wq = phba->sli4_hba.els_wq; phba 9913 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_ringtx_put(phba, phba 9920 drivers/scsi/lpfc/lpfc_sli.c sglq = __lpfc_sli_get_els_sglq(phba, piocb); phba 9923 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_ringtx_put(phba, phba 9940 drivers/scsi/lpfc/lpfc_sli.c sglq = __lpfc_get_active_sglq(phba, piocb->sli4_lxritag); phba 9948 drivers/scsi/lpfc/lpfc_sli.c if (NO_XRI == lpfc_sli4_bpl2sgl(phba, piocb, sglq)) phba 9952 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_sli4_iocb2wqe(phba, piocb, &wqe)) phba 9957 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_ringtxcmpl_put(phba, pring, piocb); phba 9974 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_issue_iocb(struct lpfc_hba *phba, uint32_t ring_number, phba 9977 drivers/scsi/lpfc/lpfc_sli.c return phba->__lpfc_sli_issue_iocb(phba, ring_number, piocb, flag); phba 9990 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_api_table_setup(struct lpfc_hba *phba, uint8_t dev_grp) phba 9995 drivers/scsi/lpfc/lpfc_sli.c phba->__lpfc_sli_issue_iocb = __lpfc_sli_issue_iocb_s3; phba 9996 drivers/scsi/lpfc/lpfc_sli.c phba->__lpfc_sli_release_iocbq = __lpfc_sli_release_iocbq_s3; phba 9999 drivers/scsi/lpfc/lpfc_sli.c phba->__lpfc_sli_issue_iocb = __lpfc_sli_issue_iocb_s4; phba 10000 drivers/scsi/lpfc/lpfc_sli.c phba->__lpfc_sli_release_iocbq = __lpfc_sli_release_iocbq_s4; phba 10003 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 10009 drivers/scsi/lpfc/lpfc_sli.c phba->lpfc_get_iocb_from_iocbq = lpfc_get_iocb_from_iocbq; phba 10024 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_calc_ring(struct lpfc_hba *phba, struct lpfc_iocbq *piocb) phba 10029 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->sli4_hba.hdwq)) phba 10039 drivers/scsi/lpfc/lpfc_sli.c return phba->sli4_hba.hdwq[piocb->hba_wqidx].io_wq->pring; phba 10041 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->sli4_hba.els_wq)) phba 10044 drivers/scsi/lpfc/lpfc_sli.c return phba->sli4_hba.els_wq->pring; phba 10062 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_issue_iocb(struct lpfc_hba *phba, uint32_t ring_number, phba 10070 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 10071 drivers/scsi/lpfc/lpfc_sli.c eq = phba->sli4_hba.hdwq[piocb->hba_wqidx].hba_eq; phba 10073 drivers/scsi/lpfc/lpfc_sli.c pring = lpfc_sli4_calc_ring(phba, piocb); phba 10078 drivers/scsi/lpfc/lpfc_sli.c rc = __lpfc_sli_issue_iocb(phba, ring_number, piocb, flag); phba 10084 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 10085 drivers/scsi/lpfc/lpfc_sli.c rc = __lpfc_sli_issue_iocb(phba, ring_number, piocb, flag); phba 10086 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 10103 drivers/scsi/lpfc/lpfc_sli.c lpfc_extra_ring_setup( struct lpfc_hba *phba) phba 10108 drivers/scsi/lpfc/lpfc_sli.c psli = &phba->sli; phba 10131 drivers/scsi/lpfc/lpfc_sli.c pring->prt[0].rctl = phba->cfg_multi_ring_rctl; phba 10132 drivers/scsi/lpfc/lpfc_sli.c pring->prt[0].type = phba->cfg_multi_ring_type; phba 10150 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_abts_err_handler(struct lpfc_hba *phba, phba 10161 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 10166 drivers/scsi/lpfc/lpfc_sli.c vport = lpfc_find_vport_by_vpid(phba, vpi); phba 10178 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 10196 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_abts_err_handler(struct lpfc_hba *phba, phba 10204 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 10211 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 10214 drivers/scsi/lpfc/lpfc_sli.c ndlp->vport->vpi, phba->sli4_hba.rpi_ids[ndlp->nlp_rpi], phba 10244 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_async_event_handler(struct lpfc_hba * phba, phba 10263 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_TEMP, phba 10269 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_TEMP, phba 10276 drivers/scsi/lpfc/lpfc_sli.c shost = lpfc_shost_from_vport(phba->pport); phba 10282 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_abts_err_handler(phba, iocbq); phba 10286 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 10316 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_setup(struct lpfc_hba *phba) phba 10320 drivers/scsi/lpfc/lpfc_sli.c pring = phba->sli4_hba.els_wq->pring; phba 10361 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_setup(struct lpfc_hba *phba) phba 10364 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 10389 drivers/scsi/lpfc/lpfc_sli.c pring->sli.sli3.sizeCiocb = (phba->sli_rev == 3) ? phba 10392 drivers/scsi/lpfc/lpfc_sli.c pring->sli.sli3.sizeRiocb = (phba->sli_rev == 3) ? phba 10397 drivers/scsi/lpfc/lpfc_sli.c (phba->cfg_hba_queue_depth * 2); phba 10405 drivers/scsi/lpfc/lpfc_sli.c pring->sli.sli3.sizeCiocb = (phba->sli_rev == 3) ? phba 10408 drivers/scsi/lpfc/lpfc_sli.c pring->sli.sli3.sizeRiocb = (phba->sli_rev == 3) ? phba 10411 drivers/scsi/lpfc/lpfc_sli.c pring->iotag_max = phba->cfg_hba_queue_depth; phba 10418 drivers/scsi/lpfc/lpfc_sli.c pring->sli.sli3.sizeCiocb = (phba->sli_rev == 3) ? phba 10421 drivers/scsi/lpfc/lpfc_sli.c pring->sli.sli3.sizeRiocb = (phba->sli_rev == 3) ? phba 10464 drivers/scsi/lpfc/lpfc_sli.c phba->brd_no, totiocbsize, phba 10467 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_multi_ring_support == 2) phba 10468 drivers/scsi/lpfc/lpfc_sli.c lpfc_extra_ring_setup(phba); phba 10485 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_queue_init(struct lpfc_hba *phba) phba 10491 drivers/scsi/lpfc/lpfc_sli.c psli = &phba->sli; phba 10492 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 10496 drivers/scsi/lpfc/lpfc_sli.c for (i = 0; i < phba->cfg_hdw_queue; i++) { phba 10497 drivers/scsi/lpfc/lpfc_sli.c pring = phba->sli4_hba.hdwq[i].io_wq->pring; phba 10506 drivers/scsi/lpfc/lpfc_sli.c pring = phba->sli4_hba.els_wq->pring; phba 10515 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) { phba 10516 drivers/scsi/lpfc/lpfc_sli.c pring = phba->sli4_hba.nvmels_wq->pring; phba 10526 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 10541 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_queue_init(struct lpfc_hba *phba) phba 10547 drivers/scsi/lpfc/lpfc_sli.c psli = &phba->sli; phba 10548 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 10566 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 10585 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_mbox_sys_flush(struct lpfc_hba *phba) phba 10588 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 10596 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 10599 drivers/scsi/lpfc/lpfc_sli.c list_splice_init(&phba->sli.mboxq, &completions); phba 10607 drivers/scsi/lpfc/lpfc_sli.c list_splice_init(&phba->sli.mboxq_cmpl, &completions); phba 10608 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 10618 drivers/scsi/lpfc/lpfc_sli.c pmb->mbox_cmpl(phba, pmb); phba 10643 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = vport->phba; phba 10644 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 10654 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, flags); phba 10661 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev != LPFC_SLI_REV4) { phba 10669 drivers/scsi/lpfc/lpfc_sli.c set_bit(LPFC_DATA_READY, &phba->data_flags); phba 10681 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_issue_abort_iotag(phba, pring, iocb); phba 10686 drivers/scsi/lpfc/lpfc_sli.c list_for_each_entry(qp, &phba->sli4_hba.lpfc_wq_list, wq_list) { phba 10690 drivers/scsi/lpfc/lpfc_sli.c if (pring == phba->sli4_hba.els_wq->pring) { phba 10693 drivers/scsi/lpfc/lpfc_sli.c set_bit(LPFC_DATA_READY, &phba->data_flags); phba 10708 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_issue_abort_iotag(phba, pring, iocb); phba 10713 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 10716 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT, phba 10737 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_hba_down(struct lpfc_hba *phba) phba 10740 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 10748 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_mbox_sys_shutdown(phba, LPFC_MBX_WAIT); phba 10750 drivers/scsi/lpfc/lpfc_sli.c lpfc_hba_down_prep(phba); phba 10755 drivers/scsi/lpfc/lpfc_sli.c lpfc_fabric_abort_hba(phba); phba 10757 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, flags); phba 10763 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev != LPFC_SLI_REV4) { phba 10770 drivers/scsi/lpfc/lpfc_sli.c set_bit(LPFC_DATA_READY, &phba->data_flags); phba 10775 drivers/scsi/lpfc/lpfc_sli.c list_for_each_entry(qp, &phba->sli4_hba.lpfc_wq_list, wq_list) { phba 10782 drivers/scsi/lpfc/lpfc_sli.c if (pring == phba->sli4_hba.els_wq->pring) { phba 10785 drivers/scsi/lpfc/lpfc_sli.c set_bit(LPFC_DATA_READY, &phba->data_flags); phba 10789 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 10792 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT, phba 10795 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, flags); phba 10796 drivers/scsi/lpfc/lpfc_sli.c list_splice_init(&phba->elsbuf, &completions); phba 10797 drivers/scsi/lpfc/lpfc_sli.c phba->elsbuf_cnt = 0; phba 10798 drivers/scsi/lpfc/lpfc_sli.c phba->elsbuf_prev_cnt = 0; phba 10799 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, flags); phba 10804 drivers/scsi/lpfc/lpfc_sli.c lpfc_mbuf_free(phba, buf_ptr->virt, buf_ptr->phys); phba 10814 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->pport->work_port_lock, flags); phba 10815 drivers/scsi/lpfc/lpfc_sli.c phba->pport->work_port_events &= ~WORKER_MBOX_TMO; phba 10816 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->pport->work_port_lock, flags); phba 10889 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_ringpostbuf_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 10894 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 10897 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 10913 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_get_buffer_tag(struct lpfc_hba *phba) phba 10915 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 10916 drivers/scsi/lpfc/lpfc_sli.c phba->buffer_tag_count++; phba 10921 drivers/scsi/lpfc/lpfc_sli.c phba->buffer_tag_count |= QUE_BUFTAG_BIT; phba 10922 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 10923 drivers/scsi/lpfc/lpfc_sli.c return phba->buffer_tag_count; phba 10942 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_ring_taggedbuf_get(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 10949 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 10954 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 10959 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 10960 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 10986 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_ringpostbuf_get(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 10993 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 10998 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 11003 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 11004 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 11024 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_abort_els_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 11040 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 11041 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev < LPFC_SLI_REV4) { phba 11045 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 11049 drivers/scsi/lpfc/lpfc_sli.c abort_iotag <= phba->sli.last_iotag) phba 11051 drivers/scsi/lpfc/lpfc_sli.c phba->sli.iocbq_lookup[abort_iotag]; phba 11058 drivers/scsi/lpfc/lpfc_sli.c abort_iocb = phba->sli.iocbq_lookup[abort_context]; phba 11060 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_ELS | LOG_SLI, phba 11067 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 11070 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_release_iocbq(phba, cmdiocb); phba 11086 drivers/scsi/lpfc/lpfc_sli.c lpfc_ignore_els_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 11092 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_ELS, phba 11098 drivers/scsi/lpfc/lpfc_sli.c lpfc_ct_free_iocb(phba, cmdiocb); phba 11100 drivers/scsi/lpfc/lpfc_sli.c lpfc_els_free_iocb(phba, cmdiocb); phba 11117 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_abort_iotag_issue(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 11128 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 11142 drivers/scsi/lpfc/lpfc_sli.c abtsiocbp = __lpfc_sli_get_iocbq(phba); phba 11154 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 11174 drivers/scsi/lpfc/lpfc_sli.c if (phba->link_state >= LPFC_LINK_UP) phba 11189 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 11190 drivers/scsi/lpfc/lpfc_sli.c pring = lpfc_sli4_calc_ring(phba, abtsiocbp); phba 11195 drivers/scsi/lpfc/lpfc_sli.c retval = __lpfc_sli_issue_iocb(phba, pring->ringno, phba 11199 drivers/scsi/lpfc/lpfc_sli.c retval = __lpfc_sli_issue_iocb(phba, pring->ringno, phba 11204 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_release_iocbq(phba, abtsiocbp); phba 11228 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_issue_abort_iotag(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, phba 11235 drivers/scsi/lpfc/lpfc_sli.c lockdep_assert_held(&phba->hbalock); phba 11270 drivers/scsi/lpfc/lpfc_sli.c retval = lpfc_sli_abort_iotag_issue(phba, pring, cmdiocb); phba 11288 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_hba_iocb_abort(struct lpfc_hba *phba) phba 11290 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 11295 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev != LPFC_SLI_REV4) { phba 11298 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_abort_iocb_ring(phba, pring); phba 11302 drivers/scsi/lpfc/lpfc_sli.c list_for_each_entry(qp, &phba->sli4_hba.lpfc_wq_list, wq_list) { phba 11306 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_abort_iocb_ring(phba, pring); phba 11399 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = vport->phba; phba 11403 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 11404 drivers/scsi/lpfc/lpfc_sli.c for (i = 1, sum = 0; i <= phba->sli.last_iotag; i++) { phba 11405 drivers/scsi/lpfc/lpfc_sli.c iocbq = phba->sli.iocbq_lookup[i]; phba 11411 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 11427 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_abort_fcp_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 11430 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 11438 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_release_iocbq(phba, cmdiocb); phba 11467 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = vport->phba; phba 11476 drivers/scsi/lpfc/lpfc_sli.c if (phba->hba_flag & HBA_IOQ_FLUSH) phba 11479 drivers/scsi/lpfc/lpfc_sli.c for (i = 1; i <= phba->sli.last_iotag; i++) { phba 11480 drivers/scsi/lpfc/lpfc_sli.c iocbq = phba->sli.iocbq_lookup[i]; phba 11494 drivers/scsi/lpfc/lpfc_sli.c abtsiocb = lpfc_sli_get_iocbq(phba); phba 11506 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4) phba 11521 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_is_link_up(phba)) phba 11528 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 11529 drivers/scsi/lpfc/lpfc_sli.c pring_s4 = lpfc_sli4_calc_ring(phba, iocbq); phba 11532 drivers/scsi/lpfc/lpfc_sli.c ret_val = lpfc_sli_issue_iocb(phba, pring_s4->ringno, phba 11535 drivers/scsi/lpfc/lpfc_sli.c ret_val = lpfc_sli_issue_iocb(phba, pring->ringno, phba 11538 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_release_iocbq(phba, abtsiocb); phba 11573 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = vport->phba; phba 11583 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 11586 drivers/scsi/lpfc/lpfc_sli.c if (phba->hba_flag & HBA_IOQ_FLUSH) { phba 11587 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 11592 drivers/scsi/lpfc/lpfc_sli.c for (i = 1; i <= phba->sli.last_iotag; i++) { phba 11593 drivers/scsi/lpfc/lpfc_sli.c iocbq = phba->sli.iocbq_lookup[i]; phba 11608 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 11610 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.hdwq[iocbq->hba_wqidx].io_wq->pring; phba 11625 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4) phba 11632 drivers/scsi/lpfc/lpfc_sli.c abtsiocbq = __lpfc_sli_get_iocbq(phba); phba 11634 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4) phba 11643 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4) phba 11661 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_is_link_up(phba) && phba 11676 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 11677 drivers/scsi/lpfc/lpfc_sli.c ret_val = __lpfc_sli_issue_iocb(phba, pring_s4->ringno, phba 11681 drivers/scsi/lpfc/lpfc_sli.c ret_val = __lpfc_sli_issue_iocb(phba, pring->ringno, phba 11688 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_release_iocbq(phba, abtsiocbq); phba 11692 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 11714 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_wake_iocb_wait(struct lpfc_hba *phba, phba 11722 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 11731 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 11735 drivers/scsi/lpfc/lpfc_sli.c (cmdiocbq->iocb_cmpl)(phba, cmdiocbq, NULL); phba 11737 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_release_iocbq(phba, cmdiocbq); phba 11760 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 11777 drivers/scsi/lpfc/lpfc_sli.c lpfc_chk_iocb_flg(struct lpfc_hba *phba, phba 11783 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 11785 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 11827 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_issue_iocb_wait(struct lpfc_hba *phba, phba 11844 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev >= LPFC_SLI_REV4) phba 11845 drivers/scsi/lpfc/lpfc_sli.c pring = lpfc_sli4_calc_ring(phba, piocb); phba 11847 drivers/scsi/lpfc/lpfc_sli.c pring = &phba->sli.sli3_ring[ring_number]; phba 11863 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_poll & DISABLE_FCP_RING_INT) { phba 11864 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HCregaddr, &creg_val)) phba 11867 drivers/scsi/lpfc/lpfc_sli.c writel(creg_val, phba->HCregaddr); phba 11868 drivers/scsi/lpfc/lpfc_sli.c readl(phba->HCregaddr); /* flush */ phba 11871 drivers/scsi/lpfc/lpfc_sli.c retval = lpfc_sli_issue_iocb(phba, ring_number, piocb, phba 11876 drivers/scsi/lpfc/lpfc_sli.c lpfc_chk_iocb_flg(phba, piocb, LPFC_IO_WAKE), phba 11878 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 11889 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 11891 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 11899 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 11904 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 11911 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_log_verbose & LOG_SLI) { phba 11918 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 11920 drivers/scsi/lpfc/lpfc_sli.c phba->iocb_cnt, txq_cnt, txcmplq_cnt); phba 11924 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 11930 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_poll & DISABLE_FCP_RING_INT) { phba 11931 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HCregaddr, &creg_val)) phba 11934 drivers/scsi/lpfc/lpfc_sli.c writel(creg_val, phba->HCregaddr); phba 11935 drivers/scsi/lpfc/lpfc_sli.c readl(phba->HCregaddr); /* flush */ phba 11973 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_issue_mbox_wait(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmboxq, phba 11988 drivers/scsi/lpfc/lpfc_sli.c retval = lpfc_sli_issue_mbox(phba, pmboxq, MBX_NOWAIT); phba 11993 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, flag); phba 12005 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, flag); phba 12026 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_mbox_sys_shutdown(struct lpfc_hba *phba, int mbx_action) phba 12028 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_sli *psli = &phba->sli; phba 12034 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_mbox_sys_flush(phba); phba 12042 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 12049 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli.mbox_active) phba 12050 drivers/scsi/lpfc/lpfc_sli.c timeout = msecs_to_jiffies(lpfc_mbox_tmo_val(phba, phba 12051 drivers/scsi/lpfc/lpfc_sli.c phba->sli.mbox_active) * phba 12053 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 12058 drivers/scsi/lpfc/lpfc_sli.c while (phba->sli.mbox_active) { phba 12068 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 12074 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_mbox_sys_flush(phba); phba 12089 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_eratt_read(struct lpfc_hba *phba) phba 12094 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HAregaddr, &ha_copy)) phba 12099 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_sli_read_hs(phba)) phba 12103 drivers/scsi/lpfc/lpfc_sli.c if ((HS_FFER1 & phba->work_hs) && phba 12105 drivers/scsi/lpfc/lpfc_sli.c HS_FFER6 | HS_FFER7 | HS_FFER8) & phba->work_hs)) { phba 12106 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= DEFER_ERATT; phba 12108 drivers/scsi/lpfc/lpfc_sli.c writel(0, phba->HCregaddr); phba 12109 drivers/scsi/lpfc/lpfc_sli.c readl(phba->HCregaddr); phba 12113 drivers/scsi/lpfc/lpfc_sli.c phba->work_ha |= HA_ERATT; phba 12115 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_ERATT_HANDLED; phba 12122 drivers/scsi/lpfc/lpfc_sli.c phba->work_hs |= UNPLUG_ERR; phba 12124 drivers/scsi/lpfc/lpfc_sli.c phba->work_ha |= HA_ERATT; phba 12126 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_ERATT_HANDLED; phba 12142 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_eratt_read(struct lpfc_hba *phba) phba 12152 drivers/scsi/lpfc/lpfc_sli.c if_type = bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf); phba 12155 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->sli4_hba.u.if_type0.UERRLOregaddr, phba 12157 drivers/scsi/lpfc/lpfc_sli.c lpfc_readl(phba->sli4_hba.u.if_type0.UERRHIregaddr, phba 12159 drivers/scsi/lpfc/lpfc_sli.c phba->work_hs |= UNPLUG_ERR; phba 12160 drivers/scsi/lpfc/lpfc_sli.c phba->work_ha |= HA_ERATT; phba 12161 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_ERATT_HANDLED; phba 12164 drivers/scsi/lpfc/lpfc_sli.c if ((~phba->sli4_hba.ue_mask_lo & uerr_sta_lo) || phba 12165 drivers/scsi/lpfc/lpfc_sli.c (~phba->sli4_hba.ue_mask_hi & uerr_sta_hi)) { phba 12166 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12172 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.ue_mask_lo, phba 12173 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.ue_mask_hi); phba 12174 drivers/scsi/lpfc/lpfc_sli.c phba->work_status[0] = uerr_sta_lo; phba 12175 drivers/scsi/lpfc/lpfc_sli.c phba->work_status[1] = uerr_sta_hi; phba 12176 drivers/scsi/lpfc/lpfc_sli.c phba->work_ha |= HA_ERATT; phba 12177 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_ERATT_HANDLED; phba 12183 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->sli4_hba.u.if_type2.STATUSregaddr, phba 12185 drivers/scsi/lpfc/lpfc_sli.c lpfc_readl(phba->sli4_hba.PSMPHRregaddr, phba 12187 drivers/scsi/lpfc/lpfc_sli.c phba->work_hs |= UNPLUG_ERR; phba 12188 drivers/scsi/lpfc/lpfc_sli.c phba->work_ha |= HA_ERATT; phba 12189 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_ERATT_HANDLED; phba 12193 drivers/scsi/lpfc/lpfc_sli.c phba->work_status[0] = phba 12194 drivers/scsi/lpfc/lpfc_sli.c readl(phba->sli4_hba.u.if_type2.ERR1regaddr); phba 12195 drivers/scsi/lpfc/lpfc_sli.c phba->work_status[1] = phba 12196 drivers/scsi/lpfc/lpfc_sli.c readl(phba->sli4_hba.u.if_type2.ERR2regaddr); phba 12197 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12204 drivers/scsi/lpfc/lpfc_sli.c phba->work_status[0], phba 12205 drivers/scsi/lpfc/lpfc_sli.c phba->work_status[1]); phba 12206 drivers/scsi/lpfc/lpfc_sli.c phba->work_ha |= HA_ERATT; phba 12207 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_ERATT_HANDLED; phba 12213 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12233 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_check_eratt(struct lpfc_hba *phba) phba 12240 drivers/scsi/lpfc/lpfc_sli.c if (phba->link_flag & LS_IGNORE_ERATT) phba 12244 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 12245 drivers/scsi/lpfc/lpfc_sli.c if (phba->hba_flag & HBA_ERATT_HANDLED) { phba 12247 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 12255 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(phba->hba_flag & DEFER_ERATT)) { phba 12256 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 12261 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(pci_channel_offline(phba->pcidev))) { phba 12262 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 12266 drivers/scsi/lpfc/lpfc_sli.c switch (phba->sli_rev) { phba 12270 drivers/scsi/lpfc/lpfc_sli.c ha_copy = lpfc_sli_eratt_read(phba); phba 12274 drivers/scsi/lpfc/lpfc_sli.c ha_copy = lpfc_sli4_eratt_read(phba); phba 12277 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 12279 drivers/scsi/lpfc/lpfc_sli.c phba->sli_rev); phba 12283 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 12299 drivers/scsi/lpfc/lpfc_sli.c lpfc_intr_state_check(struct lpfc_hba *phba) phba 12302 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(pci_channel_offline(phba->pcidev))) phba 12306 drivers/scsi/lpfc/lpfc_sli.c phba->sli.slistat.sli_intr++; phba 12309 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(phba->link_state < LPFC_LINK_DOWN)) phba 12339 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba; phba 12357 drivers/scsi/lpfc/lpfc_sli.c phba = (struct lpfc_hba *)dev_id; phba 12359 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba)) phba 12366 drivers/scsi/lpfc/lpfc_sli.c if (phba->intr_type == MSIX) { phba 12368 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_intr_state_check(phba)) phba 12371 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 12372 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HAregaddr, &ha_copy)) phba 12377 drivers/scsi/lpfc/lpfc_sli.c if (phba->link_flag & LS_IGNORE_ERATT) phba 12381 drivers/scsi/lpfc/lpfc_sli.c if (phba->hba_flag & HBA_ERATT_HANDLED) phba 12386 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_ERATT_HANDLED; phba 12393 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(phba->hba_flag & DEFER_ERATT)) { phba 12394 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 12399 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HCregaddr, &hc_copy)) phba 12404 drivers/scsi/lpfc/lpfc_sli.c phba->HCregaddr); phba 12406 drivers/scsi/lpfc/lpfc_sli.c phba->HAregaddr); phba 12407 drivers/scsi/lpfc/lpfc_sli.c writel(hc_copy, phba->HCregaddr); phba 12408 drivers/scsi/lpfc/lpfc_sli.c readl(phba->HAregaddr); /* flush */ phba 12409 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 12411 drivers/scsi/lpfc/lpfc_sli.c ha_copy = phba->ha_copy; phba 12413 drivers/scsi/lpfc/lpfc_sli.c work_ha_copy = ha_copy & phba->work_ha_mask; phba 12417 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli.sli_flag & LPFC_PROCESS_LA) { phba 12422 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 12423 drivers/scsi/lpfc/lpfc_sli.c phba->sli.sli_flag &= ~LPFC_PROCESS_LA; phba 12424 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HCregaddr, &control)) phba 12427 drivers/scsi/lpfc/lpfc_sli.c writel(control, phba->HCregaddr); phba 12428 drivers/scsi/lpfc/lpfc_sli.c readl(phba->HCregaddr); /* flush */ phba 12429 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 12444 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 12445 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HCregaddr, &control)) phba 12448 drivers/scsi/lpfc/lpfc_sli.c lpfc_debugfs_slow_ring_trc(phba, phba 12451 drivers/scsi/lpfc/lpfc_sli.c (uint32_t)phba->sli.slistat.sli_intr); phba 12454 drivers/scsi/lpfc/lpfc_sli.c lpfc_debugfs_slow_ring_trc(phba, phba 12457 drivers/scsi/lpfc/lpfc_sli.c phba->work_ha, work_ha_copy, phba 12459 drivers/scsi/lpfc/lpfc_sli.c &phba->work_waitq)); phba 12463 drivers/scsi/lpfc/lpfc_sli.c writel(control, phba->HCregaddr); phba 12464 drivers/scsi/lpfc/lpfc_sli.c readl(phba->HCregaddr); /* flush */ phba 12467 drivers/scsi/lpfc/lpfc_sli.c lpfc_debugfs_slow_ring_trc(phba, phba 12470 drivers/scsi/lpfc/lpfc_sli.c phba->work_ha, work_ha_copy, phba 12472 drivers/scsi/lpfc/lpfc_sli.c &phba->work_waitq)); phba 12474 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 12477 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 12479 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_sli_read_hs(phba)) phba 12485 drivers/scsi/lpfc/lpfc_sli.c if ((HS_FFER1 & phba->work_hs) && phba 12488 drivers/scsi/lpfc/lpfc_sli.c phba->work_hs)) { phba 12489 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= DEFER_ERATT; phba 12491 drivers/scsi/lpfc/lpfc_sli.c writel(0, phba->HCregaddr); phba 12492 drivers/scsi/lpfc/lpfc_sli.c readl(phba->HCregaddr); phba 12496 drivers/scsi/lpfc/lpfc_sli.c if ((work_ha_copy & HA_MBATT) && (phba->sli.mbox_active)) { phba 12497 drivers/scsi/lpfc/lpfc_sli.c pmb = phba->sli.mbox_active; phba 12499 drivers/scsi/lpfc/lpfc_sli.c mbox = phba->mbox; phba 12505 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 12510 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | phba 12521 drivers/scsi/lpfc/lpfc_sli.c phba->sli.mbox_active = NULL; phba 12522 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 12523 drivers/scsi/lpfc/lpfc_sli.c phba->last_completion_time = jiffies; phba 12524 drivers/scsi/lpfc/lpfc_sli.c del_timer(&phba->sli.mbox_tmo); phba 12531 drivers/scsi/lpfc/lpfc_sli.c phba->mbox_ext, phba 12556 drivers/scsi/lpfc/lpfc_sli.c lpfc_unreg_login(phba, phba 12565 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, phba 12569 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, phba 12579 drivers/scsi/lpfc/lpfc_sli.c &phba->pport->work_port_lock, phba 12581 drivers/scsi/lpfc/lpfc_sli.c phba->pport->work_port_events &= phba 12584 drivers/scsi/lpfc/lpfc_sli.c &phba->pport->work_port_lock, phba 12586 drivers/scsi/lpfc/lpfc_sli.c lpfc_mbox_cmpl_put(phba, pmb); phba 12589 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 12592 drivers/scsi/lpfc/lpfc_sli.c (phba->sli.mbox_active == NULL)) { phba 12596 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, NULL, phba 12600 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | phba 12605 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 12606 drivers/scsi/lpfc/lpfc_sli.c phba->work_ha |= work_ha_copy; phba 12607 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 12608 drivers/scsi/lpfc/lpfc_sli.c lpfc_worker_wake_up(phba); phba 12612 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 12639 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba; phba 12648 drivers/scsi/lpfc/lpfc_sli.c phba = (struct lpfc_hba *) dev_id; phba 12650 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba)) phba 12657 drivers/scsi/lpfc/lpfc_sli.c if (phba->intr_type == MSIX) { phba 12659 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_intr_state_check(phba)) phba 12662 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HAregaddr, &ha_copy)) phba 12665 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 12670 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(phba->hba_flag & DEFER_ERATT)) { phba 12671 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 12675 drivers/scsi/lpfc/lpfc_sli.c phba->HAregaddr); phba 12676 drivers/scsi/lpfc/lpfc_sli.c readl(phba->HAregaddr); /* flush */ phba 12677 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 12679 drivers/scsi/lpfc/lpfc_sli.c ha_copy = phba->ha_copy; phba 12684 drivers/scsi/lpfc/lpfc_sli.c ha_copy &= ~(phba->work_ha_mask); phba 12688 drivers/scsi/lpfc/lpfc_sli.c pring = &phba->sli.sli3_ring[LPFC_FCP_RING]; phba 12690 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_handle_fast_ring_event(phba, pring, status); phba 12692 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_multi_ring_support == 2) { phba 12700 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_handle_fast_ring_event(phba, phba 12701 drivers/scsi/lpfc/lpfc_sli.c &phba->sli.sli3_ring[LPFC_EXTRA_RING], phba 12728 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba; phba 12737 drivers/scsi/lpfc/lpfc_sli.c phba = (struct lpfc_hba *) dev_id; phba 12739 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba)) phba 12743 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_intr_state_check(phba)) phba 12746 drivers/scsi/lpfc/lpfc_sli.c spin_lock(&phba->hbalock); phba 12747 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HAregaddr, &phba->ha_copy)) { phba 12748 drivers/scsi/lpfc/lpfc_sli.c spin_unlock(&phba->hbalock); phba 12752 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->ha_copy)) { phba 12753 drivers/scsi/lpfc/lpfc_sli.c spin_unlock(&phba->hbalock); phba 12755 drivers/scsi/lpfc/lpfc_sli.c } else if (phba->ha_copy & HA_ERATT) { phba 12756 drivers/scsi/lpfc/lpfc_sli.c if (phba->hba_flag & HBA_ERATT_HANDLED) phba 12758 drivers/scsi/lpfc/lpfc_sli.c phba->ha_copy &= ~HA_ERATT; phba 12761 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_ERATT_HANDLED; phba 12767 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(phba->hba_flag & DEFER_ERATT)) { phba 12768 drivers/scsi/lpfc/lpfc_sli.c spin_unlock(&phba->hbalock); phba 12773 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_readl(phba->HCregaddr, &hc_copy)) { phba 12774 drivers/scsi/lpfc/lpfc_sli.c spin_unlock(&phba->hbalock); phba 12779 drivers/scsi/lpfc/lpfc_sli.c phba->HCregaddr); phba 12780 drivers/scsi/lpfc/lpfc_sli.c writel((phba->ha_copy & ~(HA_LATT | HA_ERATT)), phba->HAregaddr); phba 12781 drivers/scsi/lpfc/lpfc_sli.c writel(hc_copy, phba->HCregaddr); phba 12782 drivers/scsi/lpfc/lpfc_sli.c readl(phba->HAregaddr); /* flush */ phba 12783 drivers/scsi/lpfc/lpfc_sli.c spin_unlock(&phba->hbalock); phba 12790 drivers/scsi/lpfc/lpfc_sli.c status1 = phba->ha_copy & (HA_MBATT | HA_LATT | HA_ERATT); phba 12793 drivers/scsi/lpfc/lpfc_sli.c status2 = (phba->ha_copy & (HA_RXMASK << (4*LPFC_ELS_RING))); phba 12806 drivers/scsi/lpfc/lpfc_sli.c status1 = (phba->ha_copy & (HA_RXMASK << (4*LPFC_FCP_RING))); phba 12810 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_multi_ring_support == 2) { phba 12811 drivers/scsi/lpfc/lpfc_sli.c status2 = (phba->ha_copy & (HA_RXMASK << (4*LPFC_EXTRA_RING))); phba 12832 drivers/scsi/lpfc/lpfc_sli.c void lpfc_sli4_els_xri_abort_event_proc(struct lpfc_hba *phba) phba 12837 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 12838 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag &= ~ELS_XRI_ABORT_EVENT; phba 12839 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 12841 drivers/scsi/lpfc/lpfc_sli.c while (!list_empty(&phba->sli4_hba.sp_els_xri_aborted_work_queue)) { phba 12843 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 12844 drivers/scsi/lpfc/lpfc_sli.c list_remove_head(&phba->sli4_hba.sp_els_xri_aborted_work_queue, phba 12846 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 12848 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_els_xri_aborted(phba, &cq_event->cqe.wcqe_axri); phba 12850 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_cq_event_release(phba, cq_event); phba 12866 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_iocb_param_transfer(struct lpfc_hba *phba, phba 12964 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 12966 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 12982 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_els_wcqe_to_rspiocbq(struct lpfc_hba *phba, phba 12990 drivers/scsi/lpfc/lpfc_sli.c pring = lpfc_phba_elsring(phba); phba 12997 drivers/scsi/lpfc/lpfc_sli.c cmdiocbq = lpfc_sli_iocbq_lookup_by_tag(phba, pring, phba 13000 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 13005 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_release_iocbq(phba, irspiocbq); phba 13011 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_ringtxcmpl_put(phba, pring, cmdiocbq); phba 13015 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_iocb_param_transfer(phba, irspiocbq, cmdiocbq, wcqe); phba 13021 drivers/scsi/lpfc/lpfc_sli.c lpfc_cq_event_setup(struct lpfc_hba *phba, void *entry, int size) phba 13026 drivers/scsi/lpfc/lpfc_sli.c cq_event = lpfc_sli4_cq_event_alloc(phba); phba 13028 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 13049 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_sp_handle_async_event(struct lpfc_hba *phba, struct lpfc_mcqe *mcqe) phba 13054 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 13059 drivers/scsi/lpfc/lpfc_sli.c cq_event = lpfc_cq_event_setup(phba, mcqe, sizeof(struct lpfc_mcqe)); phba 13062 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 13063 drivers/scsi/lpfc/lpfc_sli.c list_add_tail(&cq_event->list, &phba->sli4_hba.sp_asynce_work_queue); phba 13065 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= ASYNC_EVENT; phba 13066 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 13082 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_sp_handle_mbox_event(struct lpfc_hba *phba, struct lpfc_mcqe *mcqe) phba 13100 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 13101 drivers/scsi/lpfc/lpfc_sli.c pmb = phba->sli.mbox_active; phba 13103 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX, phba 13105 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 13108 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 13111 drivers/scsi/lpfc/lpfc_sli.c mbox = phba->mbox; phba 13115 drivers/scsi/lpfc/lpfc_sli.c phba->last_completion_time = jiffies; phba 13116 drivers/scsi/lpfc/lpfc_sli.c del_timer(&phba->sli.mbox_tmo); phba 13144 drivers/scsi/lpfc/lpfc_sli.c lpfc_unreg_login(phba, vport->vpi, phba 13150 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_NOWAIT); phba 13152 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | phba 13159 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->pport->work_port_lock, iflags); phba 13160 drivers/scsi/lpfc/lpfc_sli.c phba->pport->work_port_events &= ~WORKER_MBOX_TMO; phba 13161 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->pport->work_port_lock, iflags); phba 13164 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 13165 drivers/scsi/lpfc/lpfc_sli.c __lpfc_mbox_cmpl_put(phba, pmb); phba 13166 drivers/scsi/lpfc/lpfc_sli.c phba->work_ha |= HA_MBATT; phba 13167 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 13171 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 13173 drivers/scsi/lpfc/lpfc_sli.c phba->sli.sli_flag &= ~LPFC_SLI_MBOX_ACTIVE; phba 13175 drivers/scsi/lpfc/lpfc_sli.c phba->sli.mbox_active = NULL; phba 13177 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mq_release(phba->sli4_hba.mbx_wq); phba 13178 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 13180 drivers/scsi/lpfc/lpfc_sli.c lpfc_worker_wake_up(phba); phba 13184 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 13186 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mq_release(phba->sli4_hba.mbx_wq); phba 13187 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 13203 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_sp_handle_mcqe(struct lpfc_hba *phba, struct lpfc_queue *cq, phba 13216 drivers/scsi/lpfc/lpfc_sli.c workposted = lpfc_sli4_sp_handle_mbox_event(phba, &mcqe); phba 13218 drivers/scsi/lpfc/lpfc_sli.c workposted = lpfc_sli4_sp_handle_async_event(phba, &mcqe); phba 13233 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_sp_handle_els_wcqe(struct lpfc_hba *phba, struct lpfc_queue *cq, phba 13246 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 13255 drivers/scsi/lpfc/lpfc_sli.c irspiocbq = lpfc_sli_get_iocbq(phba); phba 13261 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 13264 drivers/scsi/lpfc/lpfc_sli.c txq_cnt, phba->iocb_cnt, phba 13272 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 13274 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.sp_queue_event); phba 13275 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_SP_QUEUE_EVT; phba 13276 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 13290 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_sp_handle_rel_wcqe(struct lpfc_hba *phba, phba 13294 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->sli4_hba.els_wq)) phba 13297 drivers/scsi/lpfc/lpfc_sli.c if (bf_get(lpfc_wcqe_r_wq_id, wcqe) == phba->sli4_hba.els_wq->queue_id) phba 13298 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_wq_release(phba->sli4_hba.els_wq, phba 13301 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 13305 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.els_wq->queue_id); phba 13319 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_sp_handle_abort_xri_wcqe(struct lpfc_hba *phba, phba 13329 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_io_xri_aborted(phba, wcqe, cq->hdwq); phba 13330 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) { phba 13332 drivers/scsi/lpfc/lpfc_sli.c if (phba->nvmet_support) phba 13333 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_nvmet_xri_aborted(phba, wcqe); phba 13340 drivers/scsi/lpfc/lpfc_sli.c phba, wcqe, sizeof(struct sli4_wcqe_xri_aborted)); phba 13344 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 13346 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.sp_els_xri_aborted_work_queue); phba 13348 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= ELS_XRI_ABORT_EVENT; phba 13349 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 13353 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 13376 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_sp_handle_rcqe(struct lpfc_hba *phba, struct lpfc_rcqe *rcqe) phba 13380 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_queue *hrq = phba->sli4_hba.hdr_rq; phba 13381 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_queue *drq = phba->sli4_hba.dat_rq; phba 13401 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 13405 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 13407 drivers/scsi/lpfc/lpfc_sli.c dma_buf = lpfc_sli_hbqbuf_get(&phba->hbqs[0].hbq_buffer_list); phba 13410 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 13421 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 13423 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_handle_mds_loopback(phba->pport, dma_buf); phba 13429 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.sp_queue_event); phba 13431 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_SP_QUEUE_EVT; phba 13432 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 13436 drivers/scsi/lpfc/lpfc_sli.c if (phba->nvmet_support) { phba 13437 drivers/scsi/lpfc/lpfc_sli.c tgtp = phba->targetport->private; phba 13438 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI | LOG_NVME, phba 13452 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 13453 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_POST_RECEIVE_BUFFER; phba 13454 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 13474 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_sp_handle_cqe(struct lpfc_hba *phba, struct lpfc_queue *cq, phba 13487 drivers/scsi/lpfc/lpfc_sli.c phba->last_completion_time = jiffies; phba 13488 drivers/scsi/lpfc/lpfc_sli.c workposted = lpfc_sli4_sp_handle_els_wcqe(phba, cq, phba 13493 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_sp_handle_rel_wcqe(phba, phba 13498 drivers/scsi/lpfc/lpfc_sli.c phba->last_completion_time = jiffies; phba 13499 drivers/scsi/lpfc/lpfc_sli.c workposted = lpfc_sli4_sp_handle_abort_xri_wcqe(phba, cq, phba 13505 drivers/scsi/lpfc/lpfc_sli.c phba->last_completion_time = jiffies; phba 13506 drivers/scsi/lpfc/lpfc_sli.c workposted = lpfc_sli4_sp_handle_rcqe(phba, phba 13510 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 13532 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_sp_handle_eqe(struct lpfc_hba *phba, struct lpfc_eqe *eqe, phba 13548 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli.sli_flag & LPFC_SLI_ACTIVE) phba 13549 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 13558 drivers/scsi/lpfc/lpfc_sli.c if (!queue_work_on(cq->chann, phba->wq, &cq->spwork)) phba 13559 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 13586 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli4_process_cq(struct lpfc_hba *phba, struct lpfc_queue *cq, phba 13605 drivers/scsi/lpfc/lpfc_sli.c workposted |= handler(phba, cq, cqe); phba 13606 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli4_consume_cqe(phba, cq, cqe); phba 13613 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.sli4_write_cq_db(phba, cq, consumed, phba 13623 drivers/scsi/lpfc/lpfc_sli.c if (count >= phba->cfg_cq_poll_threshold) { phba 13636 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 13643 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.sli4_write_cq_db(phba, cq, consumed, phba 13667 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = cq->phba; phba 13674 drivers/scsi/lpfc/lpfc_sli.c workposted |= __lpfc_sli4_process_cq(phba, cq, phba 13680 drivers/scsi/lpfc/lpfc_sli.c workposted |= __lpfc_sli4_process_cq(phba, cq, phba 13684 drivers/scsi/lpfc/lpfc_sli.c workposted |= __lpfc_sli4_process_cq(phba, cq, phba 13689 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 13696 drivers/scsi/lpfc/lpfc_sli.c if (!queue_delayed_work_on(cq->chann, phba->wq, phba 13698 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 13706 drivers/scsi/lpfc/lpfc_sli.c lpfc_worker_wake_up(phba); phba 13749 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_fp_handle_fcp_wcqe(struct lpfc_hba *phba, struct lpfc_queue *cq, phba 13766 drivers/scsi/lpfc/lpfc_sli.c phba->lpfc_rampdown_queue_depth(phba); phba 13769 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 13781 drivers/scsi/lpfc/lpfc_sli.c cmdiocbq = lpfc_sli_iocbq_lookup_by_tag(phba, pring, phba 13784 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 13796 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 13798 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 13802 drivers/scsi/lpfc/lpfc_sli.c (cmdiocbq->wqe_cmpl)(phba, cmdiocbq, wcqe); phba 13805 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 13813 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_iocb_param_transfer(phba, &irspiocbq, cmdiocbq, wcqe); phba 13816 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 13818 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 13822 drivers/scsi/lpfc/lpfc_sli.c (cmdiocbq->iocb_cmpl)(phba, cmdiocbq, &irspiocbq); phba 13835 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_fp_handle_rel_wcqe(struct lpfc_hba *phba, struct lpfc_queue *cq, phba 13849 drivers/scsi/lpfc/lpfc_sli.c lpfc_nvmet_wqfull_process(phba, childwq); phba 13856 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 13871 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_nvmet_handle_rcqe(struct lpfc_hba *phba, struct lpfc_queue *cq, phba 13884 drivers/scsi/lpfc/lpfc_sli.c if ((phba->nvmet_support == 0) || phba 13885 drivers/scsi/lpfc/lpfc_sli.c (phba->sli4_hba.nvmet_cqset == NULL)) phba 13888 drivers/scsi/lpfc/lpfc_sli.c idx = cq->queue_id - phba->sli4_hba.nvmet_cqset[0]->queue_id; phba 13889 drivers/scsi/lpfc/lpfc_sli.c hrq = phba->sli4_hba.nvmet_mrq_hdr[idx]; phba 13890 drivers/scsi/lpfc/lpfc_sli.c drq = phba->sli4_hba.nvmet_mrq_data[idx]; phba 13901 drivers/scsi/lpfc/lpfc_sli.c if ((phba->nvmet_support == 0) || phba 13908 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 13912 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 13914 drivers/scsi/lpfc/lpfc_sli.c dma_buf = lpfc_sli_rqbuf_get(phba, hrq); phba 13917 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 13920 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 13938 drivers/scsi/lpfc/lpfc_sli.c phba, idx, dma_buf, cq->isr_timestamp, phba 13943 drivers/scsi/lpfc/lpfc_sli.c lpfc_rq_buf_free(phba, &dma_buf->hbuf); phba 13946 drivers/scsi/lpfc/lpfc_sli.c if (phba->nvmet_support) { phba 13947 drivers/scsi/lpfc/lpfc_sli.c tgtp = phba->targetport->private; phba 13948 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI | LOG_NVME, phba 13980 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_fp_handle_cqe(struct lpfc_hba *phba, struct lpfc_queue *cq, phba 13995 drivers/scsi/lpfc/lpfc_sli.c phba->last_completion_time = jiffies; phba 13997 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_fp_handle_fcp_wcqe(phba, cq, phba 14003 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_fp_handle_rel_wcqe(phba, cq, phba 14009 drivers/scsi/lpfc/lpfc_sli.c phba->last_completion_time = jiffies; phba 14010 drivers/scsi/lpfc/lpfc_sli.c workposted = lpfc_sli4_sp_handle_abort_xri_wcqe(phba, cq, phba 14015 drivers/scsi/lpfc/lpfc_sli.c phba->last_completion_time = jiffies; phba 14018 drivers/scsi/lpfc/lpfc_sli.c phba, cq, (struct lpfc_rcqe *)&wcqe); phba 14022 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 14043 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_hba_handle_eqe(struct lpfc_hba *phba, struct lpfc_queue *eq, phba 14051 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 14063 drivers/scsi/lpfc/lpfc_sli.c if (cqid <= phba->sli4_hba.cq_max) { phba 14064 drivers/scsi/lpfc/lpfc_sli.c cq = phba->sli4_hba.cq_lookup[cqid]; phba 14070 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_nvmet_mrq && phba->sli4_hba.nvmet_cqset) { phba 14071 drivers/scsi/lpfc/lpfc_sli.c id = phba->sli4_hba.nvmet_cqset[0]->queue_id; phba 14072 drivers/scsi/lpfc/lpfc_sli.c if ((cqid >= id) && (cqid < (id + phba->cfg_nvmet_mrq))) { phba 14074 drivers/scsi/lpfc/lpfc_sli.c cq = phba->sli4_hba.nvmet_cqset[cqid - id]; phba 14079 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.nvmels_cq && phba 14080 drivers/scsi/lpfc/lpfc_sli.c (cqid == phba->sli4_hba.nvmels_cq->queue_id)) { phba 14082 drivers/scsi/lpfc/lpfc_sli.c cq = phba->sli4_hba.nvmels_cq; phba 14087 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_sp_handle_eqe(phba, eqe, phba 14088 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.hdwq[qidx].hba_eq); phba 14094 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 14103 drivers/scsi/lpfc/lpfc_sli.c if (phba->ktime_on) phba 14108 drivers/scsi/lpfc/lpfc_sli.c if (!queue_work_on(cq->chann, phba->wq, &cq->irqwork)) phba 14109 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 14133 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = cq->phba; phba 14138 drivers/scsi/lpfc/lpfc_sli.c workposted |= __lpfc_sli4_process_cq(phba, cq, lpfc_sli4_fp_handle_cqe, phba 14142 drivers/scsi/lpfc/lpfc_sli.c if (!queue_delayed_work_on(cq->chann, phba->wq, phba 14144 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 14152 drivers/scsi/lpfc/lpfc_sli.c lpfc_worker_wake_up(phba); phba 14214 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba; phba 14225 drivers/scsi/lpfc/lpfc_sli.c phba = hba_eq_hdl->phba; phba 14228 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba)) phba 14230 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba->sli4_hba.hdwq)) phba 14234 drivers/scsi/lpfc/lpfc_sli.c fpeq = phba->sli4_hba.hba_eq_hdl[hba_eqidx].eq; phba 14239 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(lpfc_intr_state_check(phba))) { phba 14241 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 14242 drivers/scsi/lpfc/lpfc_sli.c if (phba->link_state < LPFC_LINK_DOWN) phba 14244 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_eq_flush(phba, fpeq); phba 14245 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 14249 drivers/scsi/lpfc/lpfc_sli.c eqi = phba->sli4_hba.eq_info; phba 14254 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_irq_chann == 1 && phba 14255 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_auto_imax && phba 14257 drivers/scsi/lpfc/lpfc_sli.c phba->sli.sli_flag & LPFC_SLI_USE_EQDR) phba 14258 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mod_hba_eq_delay(phba, fpeq, LPFC_MAX_AUTO_EQ_DELAY); phba 14261 drivers/scsi/lpfc/lpfc_sli.c ecount = lpfc_sli4_process_eq(phba, fpeq, LPFC_QUEUE_REARM); phba 14265 drivers/scsi/lpfc/lpfc_sli.c if (phba->intr_type == MSIX) phba 14267 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 14297 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba; phba 14303 drivers/scsi/lpfc/lpfc_sli.c phba = (struct lpfc_hba *)dev_id; phba 14305 drivers/scsi/lpfc/lpfc_sli.c if (unlikely(!phba)) phba 14311 drivers/scsi/lpfc/lpfc_sli.c for (qidx = 0; qidx < phba->cfg_irq_chann; qidx++) { phba 14313 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.hba_eq_hdl[qidx]); phba 14323 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = from_timer(phba, t, cpuhp_poll_timer); phba 14329 drivers/scsi/lpfc/lpfc_sli.c list_for_each_entry_rcu(eq, &phba->poll_list, _poll_list) phba 14331 drivers/scsi/lpfc/lpfc_sli.c if (!list_empty(&phba->poll_list)) phba 14332 drivers/scsi/lpfc/lpfc_sli.c mod_timer(&phba->cpuhp_poll_timer, phba 14340 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = eq->phba; phba 14360 drivers/scsi/lpfc/lpfc_sli.c i = lpfc_sli4_process_eq(phba, eq, LPFC_QUEUE_NOARM); phba 14367 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = eq->phba; phba 14369 drivers/scsi/lpfc/lpfc_sli.c if (list_empty(&phba->poll_list)) { phba 14370 drivers/scsi/lpfc/lpfc_sli.c timer_setup(&phba->cpuhp_poll_timer, lpfc_sli4_poll_hbtimer, 0); phba 14372 drivers/scsi/lpfc/lpfc_sli.c mod_timer(&phba->cpuhp_poll_timer, phba 14376 drivers/scsi/lpfc/lpfc_sli.c list_add_rcu(&eq->_poll_list, &phba->poll_list); phba 14382 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = eq->phba; phba 14390 drivers/scsi/lpfc/lpfc_sli.c if (list_empty(&phba->poll_list)) phba 14391 drivers/scsi/lpfc/lpfc_sli.c del_timer_sync(&phba->cpuhp_poll_timer); phba 14394 drivers/scsi/lpfc/lpfc_sli.c void lpfc_sli4_cleanup_poll_list(struct lpfc_hba *phba) phba 14398 drivers/scsi/lpfc/lpfc_sli.c list_for_each_entry_safe(eq, next, &phba->poll_list, _poll_list) phba 14401 drivers/scsi/lpfc/lpfc_sli.c INIT_LIST_HEAD(&phba->poll_list); phba 14448 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = eq->phba; phba 14459 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.sli4_write_eq_db(phba, eq, 0, LPFC_QUEUE_REARM); phba 14484 drivers/scsi/lpfc/lpfc_sli.c dma_free_coherent(&queue->phba->pcidev->dev, queue->page_size, phba 14489 drivers/scsi/lpfc/lpfc_sli.c lpfc_free_rq_buffer(queue->phba, queue); phba 14513 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_queue_alloc(struct lpfc_hba *phba, uint32_t page_size, phba 14518 drivers/scsi/lpfc/lpfc_sli.c uint32_t hw_page_size = phba->sli4_hba.pc_sli4_params.if_page_sz; phba 14521 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.pc_sli4_params.supported) phba 14527 drivers/scsi/lpfc/lpfc_sli.c if (pgcnt > phba->sli4_hba.pc_sli4_params.wqpcnt) phba 14528 drivers/scsi/lpfc/lpfc_sli.c pgcnt = phba->sli4_hba.pc_sli4_params.wqpcnt; phba 14552 drivers/scsi/lpfc/lpfc_sli.c queue->phba = phba; phba 14556 drivers/scsi/lpfc/lpfc_sli.c dev_to_node(&phba->pcidev->dev)); phba 14559 drivers/scsi/lpfc/lpfc_sli.c dmabuf->virt = dma_alloc_coherent(&phba->pcidev->dev, phba 14594 drivers/scsi/lpfc/lpfc_sli.c lpfc_dual_chute_pci_bar_map(struct lpfc_hba *phba, uint16_t pci_barset) phba 14596 drivers/scsi/lpfc/lpfc_sli.c if (!phba->pcidev) phba 14601 drivers/scsi/lpfc/lpfc_sli.c return phba->pci_bar0_memmap_p; phba 14603 drivers/scsi/lpfc/lpfc_sli.c return phba->pci_bar2_memmap_p; phba 14605 drivers/scsi/lpfc/lpfc_sli.c return phba->pci_bar4_memmap_p; phba 14636 drivers/scsi/lpfc/lpfc_sli.c lpfc_modify_hba_eq_delay(struct lpfc_hba *phba, uint32_t startq, phba 14648 drivers/scsi/lpfc/lpfc_sli.c if (startq >= phba->cfg_irq_chann) phba 14652 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT | LOG_FCP | LOG_NVME, phba 14659 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli.sli_flag & LPFC_SLI_USE_EQDR) { phba 14660 drivers/scsi/lpfc/lpfc_sli.c for (qidx = startq; qidx < phba->cfg_irq_chann; qidx++) { phba 14661 drivers/scsi/lpfc/lpfc_sli.c eq = phba->sli4_hba.hba_eq_hdl[qidx].eq; phba 14665 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mod_hba_eq_delay(phba, eq, usdelay); phba 14675 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 14677 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT | LOG_FCP | LOG_NVME, phba 14684 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_COMMON, phba 14696 drivers/scsi/lpfc/lpfc_sli.c for (qidx = startq; qidx < phba->cfg_irq_chann; qidx++) { phba 14697 drivers/scsi/lpfc/lpfc_sli.c eq = phba->sli4_hba.hba_eq_hdl[qidx].eq; phba 14710 drivers/scsi/lpfc/lpfc_sli.c mbox->vport = phba->pport; phba 14714 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 14719 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 14724 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, phba->mbox_mem_pool); phba 14749 drivers/scsi/lpfc/lpfc_sli.c lpfc_eq_create(struct lpfc_hba *phba, struct lpfc_queue *eq, uint32_t imax) phba 14758 drivers/scsi/lpfc/lpfc_sli.c uint32_t hw_page_size = phba->sli4_hba.pc_sli4_params.if_page_sz; phba 14763 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.pc_sli4_params.supported) phba 14766 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 14771 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_COMMON, phba 14783 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.pc_sli4_params.eqav) { phba 14787 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.pc_sli4_params.eqav); phba 14796 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 14832 drivers/scsi/lpfc/lpfc_sli.c mbox->vport = phba->pport; phba 14836 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 14840 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 14855 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, phba->mbox_mem_pool); phba 14881 drivers/scsi/lpfc/lpfc_sli.c lpfc_cq_create(struct lpfc_hba *phba, struct lpfc_queue *cq, phba 14895 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 14900 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_COMMON, phba 14910 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.pc_sli4_params.cqv); phba 14911 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.pc_sli4_params.cqv == LPFC_Q_CREATE_VERSION_2) { phba 14917 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.pc_sli4_params.cqav); phba 14925 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.pc_sli4_params.cqv == phba 14936 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 14966 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 14972 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 14994 drivers/scsi/lpfc/lpfc_sli.c cq->max_proc_limit = min(phba->cfg_cq_max_proc_limit, cq->entry_count); phba 14996 drivers/scsi/lpfc/lpfc_sli.c if (cq->queue_id > phba->sli4_hba.cq_max) phba 14997 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.cq_max = cq->queue_id; phba 14999 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, phba->mbox_mem_pool); phba 15026 drivers/scsi/lpfc/lpfc_sli.c lpfc_cq_create_set(struct lpfc_hba *phba, struct lpfc_queue **cqp, phba 15039 drivers/scsi/lpfc/lpfc_sli.c uint32_t hw_page_size = phba->sli4_hba.pc_sli4_params.if_page_sz; phba 15042 drivers/scsi/lpfc/lpfc_sli.c numcq = phba->cfg_nvmet_mrq; phba 15046 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 15053 drivers/scsi/lpfc/lpfc_sli.c alloclen = lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_FCOE, phba 15057 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 15075 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.pc_sli4_params.supported) phba 15095 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.pc_sli4_params.cqav); phba 15099 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.pc_sli4_params.cqv == phba 15111 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 15206 drivers/scsi/lpfc/lpfc_sli.c cq->max_proc_limit = min(phba->cfg_cq_max_proc_limit, phba 15223 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 15229 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 15245 drivers/scsi/lpfc/lpfc_sli.c if (cq->queue_id > phba->sli4_hba.cq_max) phba 15246 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.cq_max = cq->queue_id; phba 15250 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_cmd_free(phba, mbox); phba 15269 drivers/scsi/lpfc/lpfc_sli.c lpfc_mq_create_fb_init(struct lpfc_hba *phba, struct lpfc_queue *mq, phba 15278 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_COMMON, phba 15335 drivers/scsi/lpfc/lpfc_sli.c lpfc_mq_create(struct lpfc_hba *phba, struct lpfc_queue *mq, phba 15345 drivers/scsi/lpfc/lpfc_sli.c uint32_t hw_page_size = phba->sli4_hba.pc_sli4_params.if_page_sz; phba 15350 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.pc_sli4_params.supported) phba 15353 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 15358 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_COMMON, phba 15378 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.pc_sli4_params.mqv); phba 15379 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.pc_sli4_params.mqv == LPFC_Q_CREATE_VERSION_1) phba 15387 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 15423 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 15427 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 15431 drivers/scsi/lpfc/lpfc_sli.c lpfc_mq_create_fb_init(phba, mq, mbox, cq); phba 15433 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 15443 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 15463 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, phba->mbox_mem_pool); phba 15490 drivers/scsi/lpfc/lpfc_sli.c lpfc_wq_create(struct lpfc_hba *phba, struct lpfc_queue *wq, phba 15499 drivers/scsi/lpfc/lpfc_sli.c uint32_t hw_page_size = phba->sli4_hba.pc_sli4_params.if_page_sz; phba 15512 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.pc_sli4_params.supported) phba 15515 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 15520 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_FCOE, phba 15532 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.pc_sli4_params.wqv); phba 15534 drivers/scsi/lpfc/lpfc_sli.c if ((phba->sli4_hba.pc_sli4_params.wqsize & LPFC_WQ_SZ128_SUPPORT) || phba 15541 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.pc_sli4_params.wqsize & LPFC_WQ_SZ128_SUPPORT) phba 15584 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.fw_func_mode & LPFC_DUA_MODE) phba 15587 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 15592 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 15614 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.fw_func_mode & LPFC_DUA_MODE) { phba 15619 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 15628 drivers/scsi/lpfc/lpfc_sli.c bar_memmap_p = lpfc_dual_chute_pci_bar_map(phba, phba 15631 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 15641 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 15649 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 15654 drivers/scsi/lpfc/lpfc_sli.c wq->db_regaddr = phba->sli4_hba.WQDBregaddr; phba 15662 drivers/scsi/lpfc/lpfc_sli.c bar_memmap_p = lpfc_dual_chute_pci_bar_map(phba, phba 15665 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 15678 drivers/scsi/lpfc/lpfc_sli.c bar_memmap_p = lpfc_dual_chute_pci_bar_map(phba, phba 15681 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 15690 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 15702 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 15706 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_enable_dpp = 0; phba 15709 drivers/scsi/lpfc/lpfc_sli.c phba->cfg_enable_dpp = 0; phba 15712 drivers/scsi/lpfc/lpfc_sli.c wq->db_regaddr = phba->sli4_hba.WQDBregaddr; phba 15729 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, phba->mbox_mem_pool); phba 15757 drivers/scsi/lpfc/lpfc_sli.c lpfc_rq_create(struct lpfc_hba *phba, struct lpfc_queue *hrq, phba 15766 drivers/scsi/lpfc/lpfc_sli.c uint32_t hw_page_size = phba->sli4_hba.pc_sli4_params.if_page_sz; phba 15774 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.pc_sli4_params.supported) phba 15779 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 15784 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_FCOE, phba 15790 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.pc_sli4_params.rqv); phba 15791 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.pc_sli4_params.rqv == LPFC_Q_CREATE_VERSION_1) { phba 15805 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 15848 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.fw_func_mode & LPFC_DUA_MODE) phba 15851 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 15856 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 15869 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.fw_func_mode & LPFC_DUA_MODE) { phba 15874 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 15884 drivers/scsi/lpfc/lpfc_sli.c bar_memmap_p = lpfc_dual_chute_pci_bar_map(phba, pci_barset); phba 15886 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 15897 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 15905 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 15911 drivers/scsi/lpfc/lpfc_sli.c hrq->db_regaddr = phba->sli4_hba.RQDBregaddr; phba 15921 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_FCOE, phba 15925 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.pc_sli4_params.rqv); phba 15926 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.pc_sli4_params.rqv == LPFC_Q_CREATE_VERSION_1) { phba 15942 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 15990 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.fw_func_mode & LPFC_DUA_MODE) phba 15992 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 16018 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, phba->mbox_mem_pool); phba 16046 drivers/scsi/lpfc/lpfc_sli.c lpfc_mrq_create(struct lpfc_hba *phba, struct lpfc_queue **hrqp, phba 16058 drivers/scsi/lpfc/lpfc_sli.c uint32_t hw_page_size = phba->sli4_hba.pc_sli4_params.if_page_sz; phba 16060 drivers/scsi/lpfc/lpfc_sli.c numrq = phba->cfg_nvmet_mrq; phba 16064 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.pc_sli4_params.supported) phba 16067 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 16075 drivers/scsi/lpfc/lpfc_sli.c alloclen = lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_FCOE, phba 16079 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 16163 drivers/scsi/lpfc/lpfc_sli.c hrq->db_regaddr = phba->sli4_hba.RQDBregaddr; phba 16172 drivers/scsi/lpfc/lpfc_sli.c drq->db_regaddr = phba->sli4_hba.RQDBregaddr; phba 16184 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 16189 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 16211 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_cmd_free(phba, mbox); phba 16228 drivers/scsi/lpfc/lpfc_sli.c lpfc_eq_destroy(struct lpfc_hba *phba, struct lpfc_queue *eq) phba 16239 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(eq->phba->mbox_mem_pool, GFP_KERNEL); phba 16244 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_COMMON, phba 16249 drivers/scsi/lpfc/lpfc_sli.c mbox->vport = eq->phba->pport; phba 16252 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(eq->phba, mbox, MBX_POLL); phba 16259 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 16268 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, eq->phba->mbox_mem_pool); phba 16285 drivers/scsi/lpfc/lpfc_sli.c lpfc_cq_destroy(struct lpfc_hba *phba, struct lpfc_queue *cq) phba 16295 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(cq->phba->mbox_mem_pool, GFP_KERNEL); phba 16300 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_COMMON, phba 16305 drivers/scsi/lpfc/lpfc_sli.c mbox->vport = cq->phba->pport; phba 16307 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(cq->phba, mbox, MBX_POLL); phba 16314 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 16322 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, cq->phba->mbox_mem_pool); phba 16339 drivers/scsi/lpfc/lpfc_sli.c lpfc_mq_destroy(struct lpfc_hba *phba, struct lpfc_queue *mq) phba 16349 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(mq->phba->mbox_mem_pool, GFP_KERNEL); phba 16354 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_COMMON, phba 16359 drivers/scsi/lpfc/lpfc_sli.c mbox->vport = mq->phba->pport; phba 16361 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(mq->phba, mbox, MBX_POLL); phba 16368 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 16376 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, mq->phba->mbox_mem_pool); phba 16393 drivers/scsi/lpfc/lpfc_sli.c lpfc_wq_destroy(struct lpfc_hba *phba, struct lpfc_queue *wq) phba 16403 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(wq->phba->mbox_mem_pool, GFP_KERNEL); phba 16408 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_FCOE, phba 16413 drivers/scsi/lpfc/lpfc_sli.c mbox->vport = wq->phba->pport; phba 16415 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(wq->phba, mbox, MBX_POLL); phba 16421 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 16431 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, wq->phba->mbox_mem_pool); phba 16448 drivers/scsi/lpfc/lpfc_sli.c lpfc_rq_destroy(struct lpfc_hba *phba, struct lpfc_queue *hrq, phba 16459 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(hrq->phba->mbox_mem_pool, GFP_KERNEL); phba 16464 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_FCOE, phba 16469 drivers/scsi/lpfc/lpfc_sli.c mbox->vport = hrq->phba->pport; phba 16471 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(hrq->phba, mbox, MBX_POLL); phba 16478 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 16483 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, hrq->phba->mbox_mem_pool); phba 16488 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(drq->phba, mbox, MBX_POLL); phba 16494 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 16502 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, hrq->phba->mbox_mem_pool); phba 16529 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_post_sgl(struct lpfc_hba *phba, phba 16542 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 16547 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 16551 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_FCOE, phba 16570 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.intr_enable) phba 16571 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 16573 drivers/scsi/lpfc/lpfc_sli.c mbox_tmo = lpfc_mbox_tmo_val(phba, mbox); phba 16574 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox_wait(phba, mbox, mbox_tmo); phba 16581 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, phba->mbox_mem_pool); phba 16583 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 16605 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_alloc_xri(struct lpfc_hba *phba) phba 16613 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 16614 drivers/scsi/lpfc/lpfc_sli.c xri = find_next_zero_bit(phba->sli4_hba.xri_bmask, phba 16615 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.max_cfg_param.max_xri, 0); phba 16616 drivers/scsi/lpfc/lpfc_sli.c if (xri >= phba->sli4_hba.max_cfg_param.max_xri) { phba 16617 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 16620 drivers/scsi/lpfc/lpfc_sli.c set_bit(xri, phba->sli4_hba.xri_bmask); phba 16621 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.max_cfg_param.xri_used++; phba 16623 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 16635 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli4_free_xri(struct lpfc_hba *phba, int xri) phba 16637 drivers/scsi/lpfc/lpfc_sli.c if (test_and_clear_bit(xri, phba->sli4_hba.xri_bmask)) { phba 16638 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.max_cfg_param.xri_used--; phba 16650 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_free_xri(struct lpfc_hba *phba, int xri) phba 16652 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 16653 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli4_free_xri(phba, xri); phba 16654 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 16668 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_next_xritag(struct lpfc_hba *phba) phba 16672 drivers/scsi/lpfc/lpfc_sli.c xri_index = lpfc_sli4_alloc_xri(phba); phba 16674 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 16678 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.max_cfg_param.max_xri, phba 16679 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.max_cfg_param.xri_used); phba 16695 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_post_sgl_list(struct lpfc_hba *phba, phba 16714 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 16720 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 16725 drivers/scsi/lpfc/lpfc_sli.c alloclen = lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_FCOE, phba 16730 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 16734 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_cmd_free(phba, mbox); phba 16766 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.intr_enable) phba 16767 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 16769 drivers/scsi/lpfc/lpfc_sli.c mbox_tmo = lpfc_mbox_tmo_val(phba, mbox); phba 16770 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox_wait(phba, mbox, mbox_tmo); phba 16776 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_cmd_free(phba, mbox); phba 16778 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 16799 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_post_io_sgl_block(struct lpfc_hba *phba, struct list_head *nblist, phba 16819 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, phba 16824 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 16826 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 16832 drivers/scsi/lpfc/lpfc_sli.c alloclen = lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_FCOE, phba 16837 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 16841 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_cmd_free(phba, mbox); phba 16859 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_sg_dma_buf_size > SGL_PAGE_SIZE) phba 16879 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.intr_enable) { phba 16880 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 16882 drivers/scsi/lpfc/lpfc_sli.c mbox_tmo = lpfc_mbox_tmo_val(phba, mbox); phba 16883 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox_wait(phba, mbox, mbox_tmo); phba 16889 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_cmd_free(phba, mbox); phba 16891 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 16915 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_post_io_sgl_list(struct lpfc_hba *phba, phba 16932 drivers/scsi/lpfc/lpfc_sli.c sgl_size = phba->cfg_sg_dma_buf_size; phba 16973 drivers/scsi/lpfc/lpfc_sli.c phba, lpfc_ncmd->dma_phys_sgl, phba 16996 drivers/scsi/lpfc/lpfc_sli.c status = lpfc_sli4_post_io_sgl_block(phba, &blck_nblist, phba 17023 drivers/scsi/lpfc/lpfc_sli.c lpfc_io_buf_replenish(phba, &nvme_nblist); phba 17039 drivers/scsi/lpfc/lpfc_sli.c lpfc_fc_frame_check(struct lpfc_hba *phba, struct fc_frame_header *fc_hdr) phba 17080 drivers/scsi/lpfc/lpfc_sli.c return lpfc_fc_frame_check(phba, fc_hdr); phba 17098 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_ELS, phba 17108 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_ELS, phba 17145 drivers/scsi/lpfc/lpfc_sli.c lpfc_fc_frame_to_vport(struct lpfc_hba *phba, struct fc_frame_header *fc_hdr, phba 17153 drivers/scsi/lpfc/lpfc_sli.c return phba->pport; phba 17154 drivers/scsi/lpfc/lpfc_sli.c if ((phba->pport->fc_flag & FC_PT2PT) && phba 17155 drivers/scsi/lpfc/lpfc_sli.c !(phba->link_state == LPFC_HBA_READY)) phba 17156 drivers/scsi/lpfc/lpfc_sli.c return phba->pport; phba 17158 drivers/scsi/lpfc/lpfc_sli.c vports = lpfc_create_vport_work_array(phba); phba 17160 drivers/scsi/lpfc/lpfc_sli.c for (i = 0; i <= phba->max_vpi && vports[i] != NULL; i++) { phba 17161 drivers/scsi/lpfc/lpfc_sli.c if (phba->fcf.fcfi == fcfi && phba 17169 drivers/scsi/lpfc/lpfc_sli.c lpfc_destroy_vport_work_array(phba, vports); phba 17220 drivers/scsi/lpfc/lpfc_sli.c lpfc_in_buf_free(vport->phba, d_buf); phba 17222 drivers/scsi/lpfc/lpfc_sli.c lpfc_in_buf_free(vport->phba, &dmabuf->dbuf); phba 17247 drivers/scsi/lpfc/lpfc_sli.c timeout = (msecs_to_jiffies(vport->phba->fc_edtov) + phba 17255 drivers/scsi/lpfc/lpfc_sli.c timeout = (msecs_to_jiffies(vport->phba->fc_edtov) + phba 17264 drivers/scsi/lpfc/lpfc_sli.c lpfc_in_buf_free(vport->phba, d_buf); phba 17266 drivers/scsi/lpfc/lpfc_sli.c lpfc_in_buf_free(vport->phba, &dmabuf->dbuf); phba 17408 drivers/scsi/lpfc/lpfc_sli.c lpfc_in_buf_free(vport->phba, d_buf); phba 17434 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = vport->phba; phba 17438 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev < LPFC_SLI_REV4) phba 17442 drivers/scsi/lpfc/lpfc_sli.c handled = lpfc_ct_handle_unsol_abort(phba, dmabuf); phba 17460 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_seq_abort_rsp_cmpl(struct lpfc_hba *phba, phba 17470 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_release_iocbq(phba, cmd_iocbq); phba 17475 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 17490 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_xri_inrange(struct lpfc_hba *phba, phba 17495 drivers/scsi/lpfc/lpfc_sli.c for (i = 0; i < phba->sli4_hba.max_cfg_param.max_xri; i++) { phba 17496 drivers/scsi/lpfc/lpfc_sli.c if (xri == phba->sli4_hba.xri_ids[i]) phba 17514 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = vport->phba; phba 17522 drivers/scsi/lpfc/lpfc_sli.c if (!lpfc_is_link_up(phba)) phba 17552 drivers/scsi/lpfc/lpfc_sli.c ctiocb = lpfc_sli_get_iocbq(phba); phba 17571 drivers/scsi/lpfc/lpfc_sli.c icmd->ulpContext = phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]; phba 17574 drivers/scsi/lpfc/lpfc_sli.c ctiocb->vport = phba->pport; phba 17586 drivers/scsi/lpfc/lpfc_sli.c lxri = lpfc_sli4_xri_inrange(phba, xri); phba 17588 drivers/scsi/lpfc/lpfc_sli.c lpfc_set_rrq_active(phba, ndlp, lxri, phba 17596 drivers/scsi/lpfc/lpfc_sli.c (lxri > lpfc_sli4_get_iocb_cnt(phba))) { phba 17633 drivers/scsi/lpfc/lpfc_sli.c icmd->un.xseq64.w5.hcsw.Rctl, oxid, phba->link_state); phba 17635 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, ctiocb, 0); phba 17641 drivers/scsi/lpfc/lpfc_sli.c phba->link_state); phba 17644 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_release_iocbq(phba, ctiocb); phba 17665 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = vport->phba; phba 17683 drivers/scsi/lpfc/lpfc_sli.c lpfc_in_buf_free(phba, &dmabuf->dbuf); phba 17685 drivers/scsi/lpfc/lpfc_sli.c if (phba->nvmet_support) { phba 17773 drivers/scsi/lpfc/lpfc_sli.c first_iocbq = lpfc_sli_get_iocbq(vport->phba); phba 17793 drivers/scsi/lpfc/lpfc_sli.c vport->phba->vpi_ids[vport->vpi]; phba 17818 drivers/scsi/lpfc/lpfc_sli.c lpfc_in_buf_free(vport->phba, d_buf); phba 17838 drivers/scsi/lpfc/lpfc_sli.c iocbq = lpfc_sli_get_iocbq(vport->phba); phba 17846 drivers/scsi/lpfc/lpfc_sli.c lpfc_in_buf_free(vport->phba, d_buf); phba 17878 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = vport->phba; phba 17883 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 17890 drivers/scsi/lpfc/lpfc_sli.c if (!lpfc_complete_unsol_iocb(phba, phba 17891 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.els_wq->pring, phba 17894 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 17904 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_release_iocbq(phba, curr_iocb); phba 17906 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_release_iocbq(phba, iocbq); phba 17910 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mds_loopback_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba 17916 drivers/scsi/lpfc/lpfc_sli.c dma_pool_free(phba->lpfc_drb_pool, pcmd->virt, pcmd->phys); phba 17918 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_release_iocbq(phba, cmdiocb); phba 17919 drivers/scsi/lpfc/lpfc_sli.c lpfc_drain_txq(phba); phba 17927 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = vport->phba; phba 17939 drivers/scsi/lpfc/lpfc_sli.c iocbq = lpfc_sli_get_iocbq(phba); phba 17942 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflags); phba 17944 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.sp_queue_event); phba 17945 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= HBA_SP_QUEUE_EVT; phba 17946 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflags); phba 17947 drivers/scsi/lpfc/lpfc_sli.c lpfc_worker_wake_up(phba); phba 17954 drivers/scsi/lpfc/lpfc_sli.c pcmd->virt = dma_pool_alloc(phba->lpfc_drb_pool, GFP_KERNEL, phba 17992 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, iocbq, 0); phba 17996 drivers/scsi/lpfc/lpfc_sli.c lpfc_in_buf_free(phba, &dmabuf->dbuf); phba 18000 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, phba 18003 drivers/scsi/lpfc/lpfc_sli.c dma_pool_free(phba->lpfc_drb_pool, pcmd->virt, pcmd->phys); phba 18006 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_release_iocbq(phba, iocbq); phba 18007 drivers/scsi/lpfc/lpfc_sli.c lpfc_in_buf_free(phba, &dmabuf->dbuf); phba 18022 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_handle_received_buffer(struct lpfc_hba *phba, phba 18036 drivers/scsi/lpfc/lpfc_sli.c vport = phba->pport; phba 18043 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_fc_frame_check(phba, fc_hdr)) { phba 18044 drivers/scsi/lpfc/lpfc_sli.c lpfc_in_buf_free(phba, &dmabuf->dbuf); phba 18057 drivers/scsi/lpfc/lpfc_sli.c vport = phba->pport; phba 18058 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 18070 drivers/scsi/lpfc/lpfc_sli.c vport = lpfc_fc_frame_to_vport(phba, fc_hdr, fcfi, did); phba 18073 drivers/scsi/lpfc/lpfc_sli.c lpfc_in_buf_free(phba, &dmabuf->dbuf); phba 18086 drivers/scsi/lpfc/lpfc_sli.c (phba->link_state == LPFC_HBA_READY)) { phba 18087 drivers/scsi/lpfc/lpfc_sli.c lpfc_in_buf_free(phba, &dmabuf->dbuf); phba 18102 drivers/scsi/lpfc/lpfc_sli.c lpfc_in_buf_free(phba, &dmabuf->dbuf); phba 18135 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_post_all_rpi_hdrs(struct lpfc_hba *phba) phba 18142 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.rpi_hdrs_in_use) phba 18144 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.extents_in_use) phba 18147 drivers/scsi/lpfc/lpfc_sli.c list_for_each_entry(rpi_page, &phba->sli4_hba.lpfc_rpi_hdr_list, list) { phba 18153 drivers/scsi/lpfc/lpfc_sli.c if (bf_get(lpfc_rpi_rsrc_rdy, &phba->sli4_hba.sli4_flags) != phba 18155 drivers/scsi/lpfc/lpfc_sli.c rpi_page->start_rpi = phba->sli4_hba.rpi_ids[lrpi]; phba 18157 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_post_rpi_hdr(phba, rpi_page); phba 18159 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 18168 drivers/scsi/lpfc/lpfc_sli.c bf_set(lpfc_rpi_rsrc_rdy, &phba->sli4_hba.sli4_flags, phba 18188 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_post_rpi_hdr(struct lpfc_hba *phba, struct lpfc_rpi_hdr *rpi_page) phba 18197 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.rpi_hdrs_in_use) phba 18199 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli4_hba.extents_in_use) phba 18203 drivers/scsi/lpfc/lpfc_sli.c mboxq = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 18205 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 18213 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mboxq, LPFC_MBOX_SUBSYSTEM_FCOE, phba 18228 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 18233 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mboxq, phba->mbox_mem_pool); phba 18235 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 18245 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 18246 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.next_rpi = rpi_page->next_rpi; phba 18247 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 18266 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_alloc_rpi(struct lpfc_hba *phba) phba 18278 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irqsave(&phba->hbalock, iflag); phba 18279 drivers/scsi/lpfc/lpfc_sli.c max_rpi = phba->sli4_hba.max_cfg_param.max_rpi; phba 18280 drivers/scsi/lpfc/lpfc_sli.c rpi_limit = phba->sli4_hba.next_rpi; phba 18282 drivers/scsi/lpfc/lpfc_sli.c rpi = find_next_zero_bit(phba->sli4_hba.rpi_bmask, rpi_limit, 0); phba 18286 drivers/scsi/lpfc/lpfc_sli.c set_bit(rpi, phba->sli4_hba.rpi_bmask); phba 18287 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.max_cfg_param.rpi_used++; phba 18288 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.rpi_count++; phba 18290 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 18299 drivers/scsi/lpfc/lpfc_sli.c (phba->sli4_hba.rpi_count >= max_rpi)) { phba 18300 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 18308 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.rpi_hdrs_in_use) { phba 18309 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 18319 drivers/scsi/lpfc/lpfc_sli.c rpi_remaining = phba->sli4_hba.next_rpi - phba->sli4_hba.rpi_count; phba 18320 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irqrestore(&phba->hbalock, iflag); phba 18322 drivers/scsi/lpfc/lpfc_sli.c rpi_hdr = lpfc_sli4_create_rpi_hdr(phba); phba 18324 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 18329 drivers/scsi/lpfc/lpfc_sli.c rpi_hdr->start_rpi = phba->sli4_hba.rpi_ids[lrpi]; phba 18330 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_post_rpi_hdr(phba, rpi_hdr); phba 18345 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli4_free_rpi(struct lpfc_hba *phba, int rpi) phba 18354 drivers/scsi/lpfc/lpfc_sli.c if (test_and_clear_bit(rpi, phba->sli4_hba.rpi_bmask)) { phba 18355 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.rpi_count--; phba 18356 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.max_cfg_param.rpi_used--; phba 18358 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 18372 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_free_rpi(struct lpfc_hba *phba, int rpi) phba 18374 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 18375 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli4_free_rpi(phba, rpi); phba 18376 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 18387 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_remove_rpis(struct lpfc_hba *phba) phba 18389 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.rpi_bmask); phba 18390 drivers/scsi/lpfc/lpfc_sli.c kfree(phba->sli4_hba.rpi_ids); phba 18391 drivers/scsi/lpfc/lpfc_sli.c bf_set(lpfc_rpi_rsrc_rdy, &phba->sli4_hba.sli4_flags, 0); phba 18406 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = ndlp->phba; phba 18410 drivers/scsi/lpfc/lpfc_sli.c mboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 18423 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_NOWAIT); phba 18425 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 18429 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mboxq, phba->mbox_mem_pool); phba 18452 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = vport->phba; phba 18453 drivers/scsi/lpfc/lpfc_sli.c mboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 18456 drivers/scsi/lpfc/lpfc_sli.c lpfc_init_vpi(phba, mboxq, vport->vpi); phba 18457 drivers/scsi/lpfc/lpfc_sli.c mbox_tmo = lpfc_mbox_tmo_val(phba, mboxq); phba 18458 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox_wait(phba, mboxq, mbox_tmo); phba 18467 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mboxq, vport->phba->mbox_mem_pool); phba 18482 drivers/scsi/lpfc/lpfc_sli.c lpfc_mbx_cmpl_add_fcf_record(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) phba 18496 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 18501 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_cmd_free(phba, mboxq); phba 18514 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_add_fcf_record(struct lpfc_hba *phba, struct fcf_record *fcf_record) phba 18524 drivers/scsi/lpfc/lpfc_sli.c mboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 18526 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 18535 drivers/scsi/lpfc/lpfc_sli.c alloc_len = lpfc_sli4_config(phba, mboxq, LPFC_MBOX_SUBSYSTEM_FCOE, phba 18539 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 18543 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_cmd_free(phba, mboxq); phba 18568 drivers/scsi/lpfc/lpfc_sli.c mboxq->vport = phba->pport; phba 18570 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_NOWAIT); phba 18572 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 18575 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_cmd_free(phba, mboxq); phba 18594 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_build_dflt_fcf_record(struct lpfc_hba *phba, phba 18602 drivers/scsi/lpfc/lpfc_sli.c bf_set(lpfc_fcf_record_mac_0, fcf_record, phba->fc_map[0]); phba 18603 drivers/scsi/lpfc/lpfc_sli.c bf_set(lpfc_fcf_record_mac_1, fcf_record, phba->fc_map[1]); phba 18604 drivers/scsi/lpfc/lpfc_sli.c bf_set(lpfc_fcf_record_mac_2, fcf_record, phba->fc_map[2]); phba 18608 drivers/scsi/lpfc/lpfc_sli.c bf_set(lpfc_fcf_record_fc_map_0, fcf_record, phba->fc_map[0]); phba 18609 drivers/scsi/lpfc/lpfc_sli.c bf_set(lpfc_fcf_record_fc_map_1, fcf_record, phba->fc_map[1]); phba 18610 drivers/scsi/lpfc/lpfc_sli.c bf_set(lpfc_fcf_record_fc_map_2, fcf_record, phba->fc_map[2]); phba 18617 drivers/scsi/lpfc/lpfc_sli.c if (phba->valid_vlan) { phba 18618 drivers/scsi/lpfc/lpfc_sli.c fcf_record->vlan_bitmap[phba->vlan_id / 8] phba 18619 drivers/scsi/lpfc/lpfc_sli.c = 1 << (phba->vlan_id % 8); phba 18636 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_fcf_scan_read_fcf_rec(struct lpfc_hba *phba, uint16_t fcf_index) phba 18641 drivers/scsi/lpfc/lpfc_sli.c phba->fcoe_eventtag_at_fcf_scan = phba->fcoe_eventtag; phba 18642 drivers/scsi/lpfc/lpfc_sli.c phba->fcoe_cvl_eventtag_attn = phba->fcoe_cvl_eventtag; phba 18643 drivers/scsi/lpfc/lpfc_sli.c mboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 18645 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 18652 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_mbx_read_fcf_rec(phba, mboxq, fcf_index); phba 18658 drivers/scsi/lpfc/lpfc_sli.c mboxq->vport = phba->pport; phba 18661 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 18662 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= FCF_TS_INPROG; phba 18663 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 18665 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_NOWAIT); phba 18671 drivers/scsi/lpfc/lpfc_sli.c phba->fcf.eligible_fcf_cnt = 0; phba 18677 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_cmd_free(phba, mboxq); phba 18679 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 18680 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag &= ~FCF_TS_INPROG; phba 18681 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 18698 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_fcf_rr_read_fcf_rec(struct lpfc_hba *phba, uint16_t fcf_index) phba 18703 drivers/scsi/lpfc/lpfc_sli.c mboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 18705 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP | LOG_INIT, phba 18712 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_mbx_read_fcf_rec(phba, mboxq, fcf_index); phba 18718 drivers/scsi/lpfc/lpfc_sli.c mboxq->vport = phba->pport; phba 18720 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_NOWAIT); phba 18728 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_cmd_free(phba, mboxq); phba 18744 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_read_fcf_rec(struct lpfc_hba *phba, uint16_t fcf_index) phba 18749 drivers/scsi/lpfc/lpfc_sli.c mboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 18751 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP | LOG_INIT, phba 18758 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_mbx_read_fcf_rec(phba, mboxq, fcf_index); phba 18764 drivers/scsi/lpfc/lpfc_sli.c mboxq->vport = phba->pport; phba 18766 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_NOWAIT); phba 18774 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_mbox_cmd_free(phba, mboxq); phba 18792 drivers/scsi/lpfc/lpfc_sli.c lpfc_check_next_fcf_pri_level(struct lpfc_hba *phba) phba 18800 drivers/scsi/lpfc/lpfc_sli.c last_index = find_first_bit(phba->fcf.fcf_rr_bmask, phba 18802 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 18806 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 18807 drivers/scsi/lpfc/lpfc_sli.c if (list_empty(&phba->fcf.fcf_pri_list) || phba 18808 drivers/scsi/lpfc/lpfc_sli.c list_is_singular(&phba->fcf.fcf_pri_list)) { phba 18809 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 18810 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP, phba 18814 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 18821 drivers/scsi/lpfc/lpfc_sli.c memset(phba->fcf.fcf_rr_bmask, 0, phba 18822 drivers/scsi/lpfc/lpfc_sli.c sizeof(*phba->fcf.fcf_rr_bmask)); phba 18823 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 18824 drivers/scsi/lpfc/lpfc_sli.c list_for_each_entry(fcf_pri, &phba->fcf.fcf_pri_list, list) { phba 18833 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 18835 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_fcf_rr_index_set(phba, phba 18840 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 18847 drivers/scsi/lpfc/lpfc_sli.c if (!next_fcf_pri && !list_empty(&phba->fcf.fcf_pri_list)) { phba 18848 drivers/scsi/lpfc/lpfc_sli.c list_for_each_entry(fcf_pri, &phba->fcf.fcf_pri_list, list) { phba 18856 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 18858 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli4_fcf_rr_index_set(phba, phba 18863 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 18867 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 18882 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_fcf_rr_next_index_get(struct lpfc_hba *phba) phba 18888 drivers/scsi/lpfc/lpfc_sli.c next_fcf_index = phba->fcf.current_rec.fcf_indx; phba 18893 drivers/scsi/lpfc/lpfc_sli.c next_fcf_index = find_next_bit(phba->fcf.fcf_rr_bmask, phba 18904 drivers/scsi/lpfc/lpfc_sli.c next_fcf_index = find_next_bit(phba->fcf.fcf_rr_bmask, phba 18911 drivers/scsi/lpfc/lpfc_sli.c next_fcf_index == phba->fcf.current_rec.fcf_indx) { phba 18918 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_check_next_fcf_pri_level(phba)) phba 18920 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_WARNING, LOG_FIP, phba 18927 drivers/scsi/lpfc/lpfc_sli.c phba->fcf.fcf_pri[next_fcf_index].fcf_rec.flag & phba 18929 drivers/scsi/lpfc/lpfc_sli.c if (list_is_singular(&phba->fcf.fcf_pri_list)) phba 18935 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 18955 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_fcf_rr_index_set(struct lpfc_hba *phba, uint16_t fcf_index) phba 18958 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP, phba 18965 drivers/scsi/lpfc/lpfc_sli.c set_bit(fcf_index, phba->fcf.fcf_rr_bmask); phba 18967 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 18984 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_fcf_rr_index_clear(struct lpfc_hba *phba, uint16_t fcf_index) phba 18988 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP, phba 18995 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 18996 drivers/scsi/lpfc/lpfc_sli.c list_for_each_entry_safe(fcf_pri, fcf_pri_next, &phba->fcf.fcf_pri_list, phba 19003 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 19004 drivers/scsi/lpfc/lpfc_sli.c clear_bit(fcf_index, phba->fcf.fcf_rr_bmask); phba 19006 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 19020 drivers/scsi/lpfc/lpfc_sli.c lpfc_mbx_cmpl_redisc_fcf_table(struct lpfc_hba *phba, LPFC_MBOXQ_t *mbox) phba 19032 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_FIP, phba 19036 drivers/scsi/lpfc/lpfc_sli.c if (phba->fcf.fcf_flag & FCF_ACVL_DISC) { phba 19037 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 19038 drivers/scsi/lpfc/lpfc_sli.c phba->fcf.fcf_flag &= ~FCF_ACVL_DISC; phba 19039 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 19044 drivers/scsi/lpfc/lpfc_sli.c lpfc_retry_pport_discovery(phba); phba 19046 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 19047 drivers/scsi/lpfc/lpfc_sli.c phba->fcf.fcf_flag &= ~FCF_DEAD_DISC; phba 19048 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 19054 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_fcf_dead_failthrough(phba); phba 19057 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_FIP, phba 19063 drivers/scsi/lpfc/lpfc_sli.c lpfc_fcf_redisc_wait_start_timer(phba); phba 19066 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, phba->mbox_mem_pool); phba 19077 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_redisc_fcf_table(struct lpfc_hba *phba) phba 19084 drivers/scsi/lpfc/lpfc_sli.c lpfc_cancel_all_vport_retry_delay_timer(phba); phba 19086 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 19088 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 19096 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_FCOE, phba 19105 drivers/scsi/lpfc/lpfc_sli.c mbox->vport = phba->pport; phba 19107 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT); phba 19110 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, phba->mbox_mem_pool); phba 19124 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_fcf_dead_failthrough(struct lpfc_hba *phba) phba 19133 drivers/scsi/lpfc/lpfc_sli.c link_state = phba->link_state; phba 19134 drivers/scsi/lpfc/lpfc_sli.c lpfc_linkdown(phba); phba 19135 drivers/scsi/lpfc/lpfc_sli.c phba->link_state = link_state; phba 19138 drivers/scsi/lpfc/lpfc_sli.c lpfc_unregister_unused_fcf(phba); phba 19151 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_get_config_region23(struct lpfc_hba *phba, char *rgn23_data) phba 19161 drivers/scsi/lpfc/lpfc_sli.c pmb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 19163 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 19170 drivers/scsi/lpfc/lpfc_sli.c lpfc_dump_mem(phba, pmb, offset, DMP_REGION_23); phba 19171 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, pmb, MBX_POLL); phba 19174 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 19195 drivers/scsi/lpfc/lpfc_sli.c mempool_free(pmb, phba->mbox_mem_pool); phba 19209 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_get_config_region23(struct lpfc_hba *phba, char *rgn23_data) phba 19220 drivers/scsi/lpfc/lpfc_sli.c mboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 19222 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 19227 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_sli4_dump_cfg_rg23(phba, mboxq)) phba 19231 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mboxq, MBX_POLL); phba 19243 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mboxq, phba->mbox_mem_pool); phba 19245 drivers/scsi/lpfc/lpfc_sli.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 19260 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_read_link_ste(struct lpfc_hba *phba) phba 19271 drivers/scsi/lpfc/lpfc_sli.c if (phba->sli_rev < LPFC_SLI_REV4) phba 19272 drivers/scsi/lpfc/lpfc_sli.c data_size = lpfc_sli_get_config_region23(phba, rgn23_data); phba 19275 drivers/scsi/lpfc/lpfc_sli.c &phba->sli4_hba.sli_intf); phba 19278 drivers/scsi/lpfc/lpfc_sli.c data_size = lpfc_sli4_get_config_region23(phba, rgn23_data); phba 19286 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 19294 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 19338 drivers/scsi/lpfc/lpfc_sli.c phba->hba_flag |= LINK_DISABLED; phba 19369 drivers/scsi/lpfc/lpfc_sli.c lpfc_wr_object(struct lpfc_hba *phba, struct list_head *dmabuf_list, phba 19381 drivers/scsi/lpfc/lpfc_sli.c mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 19385 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_config(phba, mbox, LPFC_MBOX_SUBSYSTEM_COMMON, phba 19418 drivers/scsi/lpfc/lpfc_sli.c if (!phba->sli4_hba.intr_enable) phba 19419 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox(phba, mbox, MBX_POLL); phba 19421 drivers/scsi/lpfc/lpfc_sli.c mbox_tmo = lpfc_mbox_tmo_val(phba, mbox); phba 19422 drivers/scsi/lpfc/lpfc_sli.c rc = lpfc_sli_issue_mbox_wait(phba, mbox, mbox_tmo); phba 19434 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 19439 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 19444 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 19450 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_INIT, phba 19459 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mbox, phba->mbox_mem_pool); phba 19461 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_INIT, phba 19484 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_hba *phba = vport->phba; phba 19494 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 19495 drivers/scsi/lpfc/lpfc_sli.c list_for_each_entry_safe(mb, nextmb, &phba->sli.mboxq, list) { phba 19507 drivers/scsi/lpfc/lpfc_sli.c mb = phba->sli.mbox_active; phba 19523 drivers/scsi/lpfc/lpfc_sli.c list_for_each_entry(mb, &phba->sli.mboxq_cmpl, list) { phba 19542 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 19546 drivers/scsi/lpfc/lpfc_sli.c spin_lock_irq(&phba->hbalock); phba 19552 drivers/scsi/lpfc/lpfc_sli.c spin_unlock_irq(&phba->hbalock); phba 19560 drivers/scsi/lpfc/lpfc_sli.c __lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 19573 drivers/scsi/lpfc/lpfc_sli.c mempool_free(mb, phba->mbox_mem_pool); phba 19597 drivers/scsi/lpfc/lpfc_sli.c lpfc_drain_txq(struct lpfc_hba *phba) phba 19609 drivers/scsi/lpfc/lpfc_sli.c if (phba->link_flag & LS_MDS_LOOPBACK) { phba 19611 drivers/scsi/lpfc/lpfc_sli.c wq = phba->sli4_hba.hdwq[0].io_wq; phba 19616 drivers/scsi/lpfc/lpfc_sli.c wq = phba->sli4_hba.els_wq; phba 19619 drivers/scsi/lpfc/lpfc_sli.c pring = lpfc_phba_elsring(phba); phba 19638 drivers/scsi/lpfc/lpfc_sli.c piocbq = lpfc_sli_ringtx_get(phba, pring); phba 19641 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 19646 drivers/scsi/lpfc/lpfc_sli.c sglq = __lpfc_sli_get_els_sglq(phba, piocbq); phba 19648 drivers/scsi/lpfc/lpfc_sli.c __lpfc_sli_ringtx_put(phba, pring, piocbq); phba 19659 drivers/scsi/lpfc/lpfc_sli.c if (NO_XRI == lpfc_sli4_bpl2sgl(phba, piocbq, sglq)) phba 19661 drivers/scsi/lpfc/lpfc_sli.c else if (lpfc_sli4_iocb2wqe(phba, piocbq, &wqe)) phba 19666 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_ringtxcmpl_put(phba, pring, piocbq); phba 19670 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_ERR, LOG_SLI, phba 19681 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT, phba 19705 drivers/scsi/lpfc/lpfc_sli.c lpfc_wqe_bpl2sgl(struct lpfc_hba *phba, struct lpfc_iocbq *pwqeq, phba 19819 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli4_issue_wqe(struct lpfc_hba *phba, struct lpfc_sli4_hdw_queue *qp, phba 19832 drivers/scsi/lpfc/lpfc_sli.c pring = phba->sli4_hba.nvmels_wq->pring; phba 19835 drivers/scsi/lpfc/lpfc_sli.c sglq = __lpfc_sli_get_els_sglq(phba, pwqe); phba 19842 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_wqe_bpl2sgl(phba, pwqe, sglq) == NO_XRI) { phba 19848 drivers/scsi/lpfc/lpfc_sli.c ret = lpfc_sli4_wq_put(phba->sli4_hba.nvmels_wq, wqe); phba 19854 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_ringtxcmpl_put(phba, pring, pwqe); phba 19876 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_ringtxcmpl_put(phba, pring, pwqe); phba 19906 drivers/scsi/lpfc/lpfc_sli.c lpfc_sli_ringtxcmpl_put(phba, pring, pwqe); phba 19930 drivers/scsi/lpfc/lpfc_sli.c void lpfc_snapshot_mxp(struct lpfc_hba *phba, u32 hwqid) phba 19938 drivers/scsi/lpfc/lpfc_sli.c qp = &phba->sli4_hba.hdwq[hwqid]; phba 19965 drivers/scsi/lpfc/lpfc_sli.c void lpfc_adjust_pvt_pool_count(struct lpfc_hba *phba, u32 hwqid) phba 19971 drivers/scsi/lpfc/lpfc_sli.c multixri_pool = phba->sli4_hba.hdwq[hwqid].p_multixri_pool; phba 19984 drivers/scsi/lpfc/lpfc_sli.c lpfc_move_xri_pvt_to_pbl(phba, hwqid); phba 19996 drivers/scsi/lpfc/lpfc_sli.c void lpfc_adjust_high_watermark(struct lpfc_hba *phba, u32 hwqid) phba 20007 drivers/scsi/lpfc/lpfc_sli.c qp = &phba->sli4_hba.hdwq[hwqid]; phba 20041 drivers/scsi/lpfc/lpfc_sli.c void lpfc_move_xri_pvt_to_pbl(struct lpfc_hba *phba, u32 hwqid) phba 20052 drivers/scsi/lpfc/lpfc_sli.c qp = &phba->sli4_hba.hdwq[hwqid]; phba 20111 drivers/scsi/lpfc/lpfc_sli.c _lpfc_move_xri_pbl_to_pvt(struct lpfc_hba *phba, struct lpfc_sli4_hdw_queue *qp, phba 20160 drivers/scsi/lpfc/lpfc_sli.c void lpfc_move_xri_pbl_to_pvt(struct lpfc_hba *phba, u32 hwqid, u32 count) phba 20171 drivers/scsi/lpfc/lpfc_sli.c qp = &phba->sli4_hba.hdwq[hwqid]; phba 20177 drivers/scsi/lpfc/lpfc_sli.c ret = _lpfc_move_xri_pbl_to_pvt(phba, qp, pbl_pool, pvt_pool, count); phba 20185 drivers/scsi/lpfc/lpfc_sli.c hwq_count = phba->cfg_hdw_queue; phba 20195 drivers/scsi/lpfc/lpfc_sli.c phba->sli4_hba.hdwq[next_hwqid].p_multixri_pool; phba 20200 drivers/scsi/lpfc/lpfc_sli.c phba, qp, pbl_pool, pvt_pool, count); phba 20231 drivers/scsi/lpfc/lpfc_sli.c void lpfc_keep_pvt_pool_above_lowwm(struct lpfc_hba *phba, u32 hwqid) phba 20236 drivers/scsi/lpfc/lpfc_sli.c multixri_pool = phba->sli4_hba.hdwq[hwqid].p_multixri_pool; phba 20240 drivers/scsi/lpfc/lpfc_sli.c lpfc_move_xri_pbl_to_pvt(phba, hwqid, XRI_BATCH); phba 20255 drivers/scsi/lpfc/lpfc_sli.c void lpfc_release_io_buf(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_ncmd, phba 20272 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_xpsgl && !phba->nvmet_support && phba 20274 drivers/scsi/lpfc/lpfc_sli.c lpfc_put_sgl_per_hdwq(phba, lpfc_ncmd); phba 20277 drivers/scsi/lpfc/lpfc_sli.c lpfc_put_cmd_rsp_buf_per_hdwq(phba, lpfc_ncmd); phba 20279 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_xri_rebalancing) { phba 20282 drivers/scsi/lpfc/lpfc_sli.c epd_pool = &phba->epd_pool; phba 20358 drivers/scsi/lpfc/lpfc_sli.c lpfc_get_io_buf_from_private_pool(struct lpfc_hba *phba, phba 20371 drivers/scsi/lpfc/lpfc_sli.c phba, ndlp, lpfc_ncmd->cur_iocbq.sli4_lxritag)) phba 20394 drivers/scsi/lpfc/lpfc_sli.c lpfc_get_io_buf_from_expedite_pool(struct lpfc_hba *phba) phba 20401 drivers/scsi/lpfc/lpfc_sli.c epd_pool = &phba->epd_pool; phba 20442 drivers/scsi/lpfc/lpfc_sli.c lpfc_get_io_buf_from_multixri_pools(struct lpfc_hba *phba, phba 20451 drivers/scsi/lpfc/lpfc_sli.c qp = &phba->sli4_hba.hdwq[hwqid]; phba 20459 drivers/scsi/lpfc/lpfc_sli.c lpfc_move_xri_pbl_to_pvt(phba, hwqid, XRI_BATCH); phba 20462 drivers/scsi/lpfc/lpfc_sli.c lpfc_ncmd = lpfc_get_io_buf_from_private_pool(phba, qp, pvt_pool, ndlp); phba 20471 drivers/scsi/lpfc/lpfc_sli.c lpfc_ncmd = lpfc_get_io_buf_from_expedite_pool(phba); phba 20478 drivers/scsi/lpfc/lpfc_sli.c lpfc_io_buf(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp, int idx) phba 20483 drivers/scsi/lpfc/lpfc_sli.c qp = &phba->sli4_hba.hdwq[idx]; phba 20486 drivers/scsi/lpfc/lpfc_sli.c if (lpfc_test_rrq_active(phba, ndlp, phba 20520 drivers/scsi/lpfc/lpfc_sli.c struct lpfc_io_buf *lpfc_get_io_buf(struct lpfc_hba *phba, phba 20528 drivers/scsi/lpfc/lpfc_sli.c qp = &phba->sli4_hba.hdwq[hwqid]; phba 20531 drivers/scsi/lpfc/lpfc_sli.c if (phba->cfg_xri_rebalancing) phba 20533 drivers/scsi/lpfc/lpfc_sli.c phba, ndlp, hwqid, expedite); phba 20538 drivers/scsi/lpfc/lpfc_sli.c lpfc_cmd = lpfc_io_buf(phba, ndlp, hwqid); phba 20550 drivers/scsi/lpfc/lpfc_sli.c lpfc_cmd = lpfc_io_buf(phba, ndlp, hwqid); phba 20571 drivers/scsi/lpfc/lpfc_sli.c lpfc_get_sgl_per_hdwq(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_buf) phba 20596 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 20603 drivers/scsi/lpfc/lpfc_sli.c tmp->dma_sgl = dma_pool_alloc(phba->lpfc_sg_dma_buf_pool, phba 20606 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 20639 drivers/scsi/lpfc/lpfc_sli.c lpfc_put_sgl_per_hdwq(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_buf) phba 20676 drivers/scsi/lpfc/lpfc_sli.c lpfc_free_sgl_per_hdwq(struct lpfc_hba *phba, phba 20689 drivers/scsi/lpfc/lpfc_sli.c dma_pool_free(phba->lpfc_sg_dma_buf_pool, phba 20712 drivers/scsi/lpfc/lpfc_sli.c lpfc_get_cmd_rsp_buf_per_hdwq(struct lpfc_hba *phba, phba 20739 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 20746 drivers/scsi/lpfc/lpfc_sli.c tmp->fcp_cmnd = dma_pool_alloc(phba->lpfc_cmd_rsp_buf_pool, phba 20751 drivers/scsi/lpfc/lpfc_sli.c lpfc_printf_log(phba, KERN_INFO, LOG_SLI, phba 20787 drivers/scsi/lpfc/lpfc_sli.c lpfc_put_cmd_rsp_buf_per_hdwq(struct lpfc_hba *phba, phba 20825 drivers/scsi/lpfc/lpfc_sli.c lpfc_free_cmd_rsp_buf_per_hdwq(struct lpfc_hba *phba, phba 20839 drivers/scsi/lpfc/lpfc_sli.c dma_pool_free(phba->lpfc_cmd_rsp_buf_pool, phba 156 drivers/scsi/lpfc/lpfc_sli4.h struct lpfc_hba *phba; phba 470 drivers/scsi/lpfc/lpfc_sli4.h struct lpfc_hba *phba; phba 799 drivers/scsi/lpfc/lpfc_sli4.h void (*sli4_write_eq_db)(struct lpfc_hba *phba, struct lpfc_queue *eq, phba 801 drivers/scsi/lpfc/lpfc_sli4.h void (*sli4_write_cq_db)(struct lpfc_hba *phba, struct lpfc_queue *cq, phba 1019 drivers/scsi/lpfc/lpfc_sli4.h struct lpfc_queue *lpfc_sli4_queue_alloc(struct lpfc_hba *phba, phba 1025 drivers/scsi/lpfc/lpfc_sli4.h void lpfc_modify_hba_eq_delay(struct lpfc_hba *phba, uint32_t startq, phba 1029 drivers/scsi/lpfc/lpfc_sli4.h int lpfc_cq_create_set(struct lpfc_hba *phba, struct lpfc_queue **cqp, phba 1038 drivers/scsi/lpfc/lpfc_sli4.h int lpfc_mrq_create(struct lpfc_hba *phba, struct lpfc_queue **hrqp, phba 1050 drivers/scsi/lpfc/lpfc_sli4.h int lpfc_repost_io_sgl_list(struct lpfc_hba *phba); phba 1072 drivers/scsi/lpfc/lpfc_sli4.h void lpfc_sli4_nvme_xri_aborted(struct lpfc_hba *phba, phba 1075 drivers/scsi/lpfc/lpfc_sli4.h void lpfc_sli4_io_xri_aborted(struct lpfc_hba *phba, phba 1077 drivers/scsi/lpfc/lpfc_sli4.h void lpfc_sli4_nvmet_xri_aborted(struct lpfc_hba *phba, phba 1087 drivers/scsi/lpfc/lpfc_sli4.h int lpfc_sli4_get_iocb_cnt(struct lpfc_hba *phba); phba 1090 drivers/scsi/lpfc/lpfc_sli4.h void lpfc_sli4_write_cq_db(struct lpfc_hba *phba, struct lpfc_queue *q, phba 1092 drivers/scsi/lpfc/lpfc_sli4.h void lpfc_sli4_write_eq_db(struct lpfc_hba *phba, struct lpfc_queue *q, phba 1095 drivers/scsi/lpfc/lpfc_sli4.h void lpfc_sli4_if6_write_cq_db(struct lpfc_hba *phba, struct lpfc_queue *q, phba 1097 drivers/scsi/lpfc/lpfc_sli4.h void lpfc_sli4_if6_write_eq_db(struct lpfc_hba *phba, struct lpfc_queue *q, phba 1110 drivers/scsi/lpfc/lpfc_sli4.h void lpfc_sli4_ras_dma_free(struct lpfc_hba *phba); phba 1111 drivers/scsi/lpfc/lpfc_sli4.h struct sli4_hybrid_sgl *lpfc_get_sgl_per_hdwq(struct lpfc_hba *phba, phba 1113 drivers/scsi/lpfc/lpfc_sli4.h struct fcp_cmd_rsp_buf *lpfc_get_cmd_rsp_buf_per_hdwq(struct lpfc_hba *phba, phba 1115 drivers/scsi/lpfc/lpfc_sli4.h int lpfc_put_sgl_per_hdwq(struct lpfc_hba *phba, struct lpfc_io_buf *buf); phba 1116 drivers/scsi/lpfc/lpfc_sli4.h int lpfc_put_cmd_rsp_buf_per_hdwq(struct lpfc_hba *phba, phba 1118 drivers/scsi/lpfc/lpfc_sli4.h void lpfc_free_sgl_per_hdwq(struct lpfc_hba *phba, phba 1120 drivers/scsi/lpfc/lpfc_sli4.h void lpfc_free_cmd_rsp_buf_per_hdwq(struct lpfc_hba *phba, phba 88 drivers/scsi/lpfc/lpfc_vport.c lpfc_alloc_vpi(struct lpfc_hba *phba) phba 92 drivers/scsi/lpfc/lpfc_vport.c spin_lock_irq(&phba->hbalock); phba 94 drivers/scsi/lpfc/lpfc_vport.c vpi = find_next_zero_bit(phba->vpi_bmask, (phba->max_vpi + 1), 1); phba 95 drivers/scsi/lpfc/lpfc_vport.c if (vpi > phba->max_vpi) phba 98 drivers/scsi/lpfc/lpfc_vport.c set_bit(vpi, phba->vpi_bmask); phba 99 drivers/scsi/lpfc/lpfc_vport.c if (phba->sli_rev == LPFC_SLI_REV4) phba 100 drivers/scsi/lpfc/lpfc_vport.c phba->sli4_hba.max_cfg_param.vpi_used++; phba 101 drivers/scsi/lpfc/lpfc_vport.c spin_unlock_irq(&phba->hbalock); phba 106 drivers/scsi/lpfc/lpfc_vport.c lpfc_free_vpi(struct lpfc_hba *phba, int vpi) phba 110 drivers/scsi/lpfc/lpfc_vport.c spin_lock_irq(&phba->hbalock); phba 111 drivers/scsi/lpfc/lpfc_vport.c clear_bit(vpi, phba->vpi_bmask); phba 112 drivers/scsi/lpfc/lpfc_vport.c if (phba->sli_rev == LPFC_SLI_REV4) phba 113 drivers/scsi/lpfc/lpfc_vport.c phba->sli4_hba.max_cfg_param.vpi_used--; phba 114 drivers/scsi/lpfc/lpfc_vport.c spin_unlock_irq(&phba->hbalock); phba 118 drivers/scsi/lpfc/lpfc_vport.c lpfc_vport_sparm(struct lpfc_hba *phba, struct lpfc_vport *vport) phba 125 drivers/scsi/lpfc/lpfc_vport.c pmb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); phba 131 drivers/scsi/lpfc/lpfc_vport.c rc = lpfc_read_sparam(phba, pmb, vport->vpi); phba 133 drivers/scsi/lpfc/lpfc_vport.c mempool_free(pmb, phba->mbox_mem_pool); phba 145 drivers/scsi/lpfc/lpfc_vport.c rc = lpfc_sli_issue_mbox_wait(phba, pmb, phba->fc_ratov * 2); phba 151 drivers/scsi/lpfc/lpfc_vport.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 154 drivers/scsi/lpfc/lpfc_vport.c mempool_free(pmb, phba->mbox_mem_pool); phba 161 drivers/scsi/lpfc/lpfc_vport.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 164 drivers/scsi/lpfc/lpfc_vport.c mempool_free(pmb, phba->mbox_mem_pool); phba 175 drivers/scsi/lpfc/lpfc_vport.c lpfc_mbuf_free(phba, mp->virt, mp->phys); phba 177 drivers/scsi/lpfc/lpfc_vport.c mempool_free(pmb, phba->mbox_mem_pool); phba 183 drivers/scsi/lpfc/lpfc_vport.c lpfc_valid_wwn_format(struct lpfc_hba *phba, struct lpfc_name *wwn, phba 193 drivers/scsi/lpfc/lpfc_vport.c lpfc_printf_log(phba, KERN_ERR, LOG_VPORT, phba 205 drivers/scsi/lpfc/lpfc_vport.c lpfc_unique_wwpn(struct lpfc_hba *phba, struct lpfc_vport *new_vport) phba 210 drivers/scsi/lpfc/lpfc_vport.c spin_lock_irqsave(&phba->port_list_lock, flags); phba 211 drivers/scsi/lpfc/lpfc_vport.c list_for_each_entry(vport, &phba->port_list, listentry) { phba 218 drivers/scsi/lpfc/lpfc_vport.c spin_unlock_irqrestore(&phba->port_list_lock, flags); phba 222 drivers/scsi/lpfc/lpfc_vport.c spin_unlock_irqrestore(&phba->port_list_lock, flags); phba 243 drivers/scsi/lpfc/lpfc_vport.c struct lpfc_hba *phba = vport->phba; phba 256 drivers/scsi/lpfc/lpfc_vport.c wait_time_max = msecs_to_jiffies(((phba->fc_ratov * 3) + 3) * 1000); phba 300 drivers/scsi/lpfc/lpfc_vport.c struct lpfc_hba *phba = pport->phba; phba 307 drivers/scsi/lpfc/lpfc_vport.c if ((phba->sli_rev < 3) || !(phba->cfg_enable_npiv)) { phba 308 drivers/scsi/lpfc/lpfc_vport.c lpfc_printf_log(phba, KERN_ERR, LOG_VPORT, phba 311 drivers/scsi/lpfc/lpfc_vport.c phba->sli_rev); phba 317 drivers/scsi/lpfc/lpfc_vport.c if (phba->nvmet_support) { phba 318 drivers/scsi/lpfc/lpfc_vport.c lpfc_printf_log(phba, KERN_ERR, LOG_VPORT, phba 325 drivers/scsi/lpfc/lpfc_vport.c vpi = lpfc_alloc_vpi(phba); phba 327 drivers/scsi/lpfc/lpfc_vport.c lpfc_printf_log(phba, KERN_ERR, LOG_VPORT, phba 330 drivers/scsi/lpfc/lpfc_vport.c phba->max_vpi); phba 337 drivers/scsi/lpfc/lpfc_vport.c lpfc_printf_log(phba, KERN_ERR, LOG_VPORT, phba 340 drivers/scsi/lpfc/lpfc_vport.c lpfc_free_vpi(phba, vpi); phba 345 drivers/scsi/lpfc/lpfc_vport.c vport = lpfc_create_port(phba, instance, &fc_vport->dev); phba 347 drivers/scsi/lpfc/lpfc_vport.c lpfc_printf_log(phba, KERN_ERR, LOG_VPORT, phba 349 drivers/scsi/lpfc/lpfc_vport.c lpfc_free_vpi(phba, vpi); phba 357 drivers/scsi/lpfc/lpfc_vport.c if ((status = lpfc_vport_sparm(phba, vport))) { phba 368 drivers/scsi/lpfc/lpfc_vport.c lpfc_free_vpi(phba, vpi); phba 379 drivers/scsi/lpfc/lpfc_vport.c if (!lpfc_valid_wwn_format(phba, &vport->fc_sparam.nodeName, "WWNN") || phba 380 drivers/scsi/lpfc/lpfc_vport.c !lpfc_valid_wwn_format(phba, &vport->fc_sparam.portName, "WWPN")) { phba 384 drivers/scsi/lpfc/lpfc_vport.c lpfc_free_vpi(phba, vpi); phba 390 drivers/scsi/lpfc/lpfc_vport.c if (!lpfc_unique_wwpn(phba, vport)) { phba 394 drivers/scsi/lpfc/lpfc_vport.c lpfc_free_vpi(phba, vpi); phba 404 drivers/scsi/lpfc/lpfc_vport.c vport->cfg_lun_queue_depth = phba->pport->cfg_lun_queue_depth; phba 414 drivers/scsi/lpfc/lpfc_vport.c if (phba->cfg_enable_SmartSAN || phba 415 drivers/scsi/lpfc/lpfc_vport.c (phba->cfg_fdmi_on == LPFC_FDMI_SUPPORT)) { phba 417 drivers/scsi/lpfc/lpfc_vport.c vport->fdmi_hba_mask = phba->pport->fdmi_hba_mask; phba 418 drivers/scsi/lpfc/lpfc_vport.c vport->fdmi_port_mask = phba->pport->fdmi_port_mask; phba 425 drivers/scsi/lpfc/lpfc_vport.c if ((phba->sli_rev == LPFC_SLI_REV4) && phba 429 drivers/scsi/lpfc/lpfc_vport.c lpfc_printf_log(phba, KERN_ERR, LOG_VPORT, phba 433 drivers/scsi/lpfc/lpfc_vport.c lpfc_free_vpi(phba, vpi); phba 436 drivers/scsi/lpfc/lpfc_vport.c } else if (phba->sli_rev == LPFC_SLI_REV4) { phba 447 drivers/scsi/lpfc/lpfc_vport.c if ((phba->link_state < LPFC_LINK_UP) || phba 449 drivers/scsi/lpfc/lpfc_vport.c (phba->fc_topology == LPFC_TOPOLOGY_LOOP)) { phba 464 drivers/scsi/lpfc/lpfc_vport.c ndlp = lpfc_findnode_did(phba->pport, Fabric_DID); phba 467 drivers/scsi/lpfc/lpfc_vport.c if (phba->link_flag & LS_NPIV_FAB_SUPPORTED) { phba 492 drivers/scsi/lpfc/lpfc_vport.c struct lpfc_hba *phba = vport->phba; phba 499 drivers/scsi/lpfc/lpfc_vport.c && phba->link_state >= LPFC_LINK_UP) { phba 501 drivers/scsi/lpfc/lpfc_vport.c timeout = msecs_to_jiffies(phba->fc_ratov * 2000); phba 530 drivers/scsi/lpfc/lpfc_vport.c if (phba->sli_rev == LPFC_SLI_REV4) { phba 546 drivers/scsi/lpfc/lpfc_vport.c struct lpfc_hba *phba = vport->phba; phba 550 drivers/scsi/lpfc/lpfc_vport.c if ((phba->link_state < LPFC_LINK_UP) || phba 551 drivers/scsi/lpfc/lpfc_vport.c (phba->fc_topology == LPFC_TOPOLOGY_LOOP)) { phba 570 drivers/scsi/lpfc/lpfc_vport.c ndlp = lpfc_findnode_did(phba->pport, Fabric_DID); phba 573 drivers/scsi/lpfc/lpfc_vport.c if (phba->link_flag & LS_NPIV_FAB_SUPPORTED) { phba 607 drivers/scsi/lpfc/lpfc_vport.c struct lpfc_hba *phba = vport->phba; phba 620 drivers/scsi/lpfc/lpfc_vport.c !(phba->pport->load_flag & FC_UNLOADING)) { phba 626 drivers/scsi/lpfc/lpfc_vport.c spin_lock_irq(&phba->hbalock); phba 628 drivers/scsi/lpfc/lpfc_vport.c spin_unlock_irq(&phba->hbalock); phba 633 drivers/scsi/lpfc/lpfc_vport.c if (!(phba->pport->load_flag & FC_UNLOADING)) { phba 635 drivers/scsi/lpfc/lpfc_vport.c while (check_count < ((phba->fc_ratov * 3) + 3) && phba 686 drivers/scsi/lpfc/lpfc_vport.c ndlp = lpfc_findnode_did(phba->pport, Fabric_DID); phba 692 drivers/scsi/lpfc/lpfc_vport.c if (phba->pport->load_flag & FC_UNLOADING) { phba 695 drivers/scsi/lpfc/lpfc_vport.c phba->link_state >= LPFC_LINK_UP) { phba 710 drivers/scsi/lpfc/lpfc_vport.c spin_lock_irq(&phba->ndlp_lock); phba 712 drivers/scsi/lpfc/lpfc_vport.c spin_unlock_irq(&phba->ndlp_lock); phba 722 drivers/scsi/lpfc/lpfc_vport.c phba->link_state >= LPFC_LINK_UP && phba 723 drivers/scsi/lpfc/lpfc_vport.c phba->fc_topology != LPFC_TOPOLOGY_LOOP) { phba 725 drivers/scsi/lpfc/lpfc_vport.c timeout = msecs_to_jiffies(phba->fc_ratov * 2000); phba 730 drivers/scsi/lpfc/lpfc_vport.c lpfc_printf_log(vport->phba, KERN_WARNING, phba 754 drivers/scsi/lpfc/lpfc_vport.c spin_lock_irq(&phba->ndlp_lock); phba 760 drivers/scsi/lpfc/lpfc_vport.c spin_unlock_irq(&phba->ndlp_lock); phba 763 drivers/scsi/lpfc/lpfc_vport.c spin_unlock_irq(&phba->ndlp_lock); phba 777 drivers/scsi/lpfc/lpfc_vport.c timeout = msecs_to_jiffies(phba->fc_ratov * 2000); phba 783 drivers/scsi/lpfc/lpfc_vport.c if (!(phba->pport->load_flag & FC_UNLOADING)) phba 802 drivers/scsi/lpfc/lpfc_vport.c if (!(phba->pport->load_flag & FC_UNLOADING)) { phba 815 drivers/scsi/lpfc/lpfc_vport.c lpfc_free_vpi(phba, vport->vpi); phba 817 drivers/scsi/lpfc/lpfc_vport.c spin_lock_irq(&phba->port_list_lock); phba 819 drivers/scsi/lpfc/lpfc_vport.c spin_unlock_irq(&phba->port_list_lock); phba 827 drivers/scsi/lpfc/lpfc_vport.c lpfc_create_vport_work_array(struct lpfc_hba *phba) phba 832 drivers/scsi/lpfc/lpfc_vport.c vports = kcalloc(phba->max_vports + 1, sizeof(struct lpfc_vport *), phba 836 drivers/scsi/lpfc/lpfc_vport.c spin_lock_irq(&phba->port_list_lock); phba 837 drivers/scsi/lpfc/lpfc_vport.c list_for_each_entry(port_iterator, &phba->port_list, listentry) { phba 848 drivers/scsi/lpfc/lpfc_vport.c spin_unlock_irq(&phba->port_list_lock); phba 853 drivers/scsi/lpfc/lpfc_vport.c lpfc_destroy_vport_work_array(struct lpfc_hba *phba, struct lpfc_vport **vports) phba 858 drivers/scsi/lpfc/lpfc_vport.c for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) phba 95 drivers/scsi/lpfc/lpfc_vport.h int lpfc_alloc_vpi(struct lpfc_hba *phba);