Loading drivers/scsi/qla2xxx/qla_init.c +0 −112 Original line number Diff line number Diff line Loading @@ -4686,110 +4686,6 @@ qla2x00_configure_loop(scsi_qla_host_t *vha) return (rval); } /* * N2N Login * Updates Fibre Channel Device Database with local loop devices. * * Input: * ha = adapter block pointer. * * Returns: */ static int qla24xx_n2n_handle_login(struct scsi_qla_host *vha, fc_port_t *fcport) { struct qla_hw_data *ha = vha->hw; int res = QLA_SUCCESS, rval; int greater_wwpn = 0; int logged_in = 0; if (ha->current_topology != ISP_CFG_N) return res; if (wwn_to_u64(vha->port_name) > wwn_to_u64(vha->n2n_port_name)) { ql_dbg(ql_dbg_disc, vha, 0x2002, "HBA WWPN is greater %llx > target %llx\n", wwn_to_u64(vha->port_name), wwn_to_u64(vha->n2n_port_name)); greater_wwpn = 1; fcport->d_id.b24 = vha->n2n_id; } fcport->loop_id = vha->loop_id; fcport->fc4f_nvme = 0; fcport->query = 1; ql_dbg(ql_dbg_disc, vha, 0x4001, "Initiate N2N login handler: HBA port_id=%06x loopid=%d\n", fcport->d_id.b24, vha->loop_id); /* Fill in member data. */ if (!greater_wwpn) { rval = qla2x00_get_port_database(vha, fcport, 0); ql_dbg(ql_dbg_disc, vha, 0x1051, "Remote login-state (%x/%x) port_id=%06x loop_id=%x, rval=%d\n", fcport->current_login_state, fcport->last_login_state, fcport->d_id.b24, fcport->loop_id, rval); if (((fcport->current_login_state & 0xf) == 0x4) || ((fcport->current_login_state & 0xf) == 0x6)) logged_in = 1; } if (logged_in || greater_wwpn) { if (!vha->nvme_local_port && vha->flags.nvme_enabled) qla_nvme_register_hba(vha); /* Set connected N_Port d_id */ if (vha->flags.nvme_enabled) fcport->fc4f_nvme = 1; fcport->scan_state = QLA_FCPORT_FOUND; fcport->fw_login_state = DSC_LS_PORT_UNAVAIL; fcport->disc_state = DSC_GNL; fcport->n2n_flag = 1; fcport->flags = 3; vha->hw->flags.gpsc_supported = 0; if (greater_wwpn) { ql_dbg(ql_dbg_disc, vha, 0x20e5, "%s %d PLOGI ELS %8phC\n", __func__, __LINE__, fcport->port_name); res = qla24xx_els_dcmd2_iocb(vha, ELS_DCMD_PLOGI, fcport, fcport->d_id); } if (res != QLA_SUCCESS) { ql_log(ql_log_info, vha, 0xd04d, "PLOGI Failed: portid=%06x - retrying\n", fcport->d_id.b24); res = QLA_SUCCESS; } else { /* State 0x6 means FCP PRLI complete */ if ((fcport->current_login_state & 0xf) == 0x6) { ql_dbg(ql_dbg_disc, vha, 0x2118, "%s %d %8phC post GPDB work\n", __func__, __LINE__, fcport->port_name); fcport->chip_reset = vha->hw->base_qpair->chip_reset; qla24xx_post_gpdb_work(vha, fcport, 0); } else { ql_dbg(ql_dbg_disc, vha, 0x2118, "%s %d %8phC post NVMe PRLI\n", __func__, __LINE__, fcport->port_name); qla24xx_post_prli_work(vha, fcport); } } } else { /* Wait for next database change */ set_bit(N2N_LOGIN_NEEDED, &vha->dpc_flags); } return res; } /* * qla2x00_configure_local_loop * Updates Fibre Channel Device Database with local loop devices. Loading Loading @@ -4847,14 +4743,6 @@ qla2x00_configure_local_loop(scsi_qla_host_t *vha) } new_fcport->flags &= ~FCF_FABRIC_DEVICE; /* Inititae N2N login. */ if (test_and_clear_bit(N2N_LOGIN_NEEDED, &vha->dpc_flags)) { rval = qla24xx_n2n_handle_login(vha, new_fcport); if (rval != QLA_SUCCESS) goto cleanup_allocation; return QLA_SUCCESS; } /* Add devices to port list. */ id_iter = (char *)ha->gid_list; for (index = 0; index < entries; index++) { Loading drivers/scsi/qla2xxx/qla_iocb.c +0 −25 Original line number Diff line number Diff line Loading @@ -2567,26 +2567,6 @@ qla24xx_els_logo_iocb(srb_t *sp, struct els_entry_24xx *els_iocb) sp->vha->qla_stats.control_requests++; } static void qla2x00_els_dcmd2_sp_free(void *data) { srb_t *sp = data; struct srb_iocb *elsio = &sp->u.iocb_cmd; if (elsio->u.els_plogi.els_plogi_pyld) dma_free_coherent(&sp->vha->hw->pdev->dev, DMA_POOL_SIZE, elsio->u.els_plogi.els_plogi_pyld, elsio->u.els_plogi.els_plogi_pyld_dma); if (elsio->u.els_plogi.els_resp_pyld) dma_free_coherent(&sp->vha->hw->pdev->dev, DMA_POOL_SIZE, elsio->u.els_plogi.els_resp_pyld, elsio->u.els_plogi.els_resp_pyld_dma); del_timer(&elsio->timer); qla2x00_rel_sp(sp); } static void qla2x00_els_dcmd2_iocb_timeout(void *data) { Loading Loading @@ -2648,10 +2628,6 @@ qla24xx_els_dcmd2_iocb(scsi_qla_host_t *vha, int els_opcode, } elsio = &sp->u.iocb_cmd; fcport->d_id.b.domain = remote_did.b.domain; fcport->d_id.b.area = remote_did.b.area; fcport->d_id.b.al_pa = remote_did.b.al_pa; ql_dbg(ql_dbg_io, vha, 0x3073, "Enter: PLOGI portid=%06x\n", fcport->d_id.b24); Loading @@ -2664,7 +2640,6 @@ qla24xx_els_dcmd2_iocb(scsi_qla_host_t *vha, int els_opcode, qla2x00_init_timer(sp, ELS_DCMD_TIMEOUT); sp->done = qla2x00_els_dcmd2_sp_done; sp->free = qla2x00_els_dcmd2_sp_free; ptr = elsio->u.els_plogi.els_plogi_pyld = dma_alloc_coherent(&ha->pdev->dev, DMA_POOL_SIZE, Loading Loading
drivers/scsi/qla2xxx/qla_init.c +0 −112 Original line number Diff line number Diff line Loading @@ -4686,110 +4686,6 @@ qla2x00_configure_loop(scsi_qla_host_t *vha) return (rval); } /* * N2N Login * Updates Fibre Channel Device Database with local loop devices. * * Input: * ha = adapter block pointer. * * Returns: */ static int qla24xx_n2n_handle_login(struct scsi_qla_host *vha, fc_port_t *fcport) { struct qla_hw_data *ha = vha->hw; int res = QLA_SUCCESS, rval; int greater_wwpn = 0; int logged_in = 0; if (ha->current_topology != ISP_CFG_N) return res; if (wwn_to_u64(vha->port_name) > wwn_to_u64(vha->n2n_port_name)) { ql_dbg(ql_dbg_disc, vha, 0x2002, "HBA WWPN is greater %llx > target %llx\n", wwn_to_u64(vha->port_name), wwn_to_u64(vha->n2n_port_name)); greater_wwpn = 1; fcport->d_id.b24 = vha->n2n_id; } fcport->loop_id = vha->loop_id; fcport->fc4f_nvme = 0; fcport->query = 1; ql_dbg(ql_dbg_disc, vha, 0x4001, "Initiate N2N login handler: HBA port_id=%06x loopid=%d\n", fcport->d_id.b24, vha->loop_id); /* Fill in member data. */ if (!greater_wwpn) { rval = qla2x00_get_port_database(vha, fcport, 0); ql_dbg(ql_dbg_disc, vha, 0x1051, "Remote login-state (%x/%x) port_id=%06x loop_id=%x, rval=%d\n", fcport->current_login_state, fcport->last_login_state, fcport->d_id.b24, fcport->loop_id, rval); if (((fcport->current_login_state & 0xf) == 0x4) || ((fcport->current_login_state & 0xf) == 0x6)) logged_in = 1; } if (logged_in || greater_wwpn) { if (!vha->nvme_local_port && vha->flags.nvme_enabled) qla_nvme_register_hba(vha); /* Set connected N_Port d_id */ if (vha->flags.nvme_enabled) fcport->fc4f_nvme = 1; fcport->scan_state = QLA_FCPORT_FOUND; fcport->fw_login_state = DSC_LS_PORT_UNAVAIL; fcport->disc_state = DSC_GNL; fcport->n2n_flag = 1; fcport->flags = 3; vha->hw->flags.gpsc_supported = 0; if (greater_wwpn) { ql_dbg(ql_dbg_disc, vha, 0x20e5, "%s %d PLOGI ELS %8phC\n", __func__, __LINE__, fcport->port_name); res = qla24xx_els_dcmd2_iocb(vha, ELS_DCMD_PLOGI, fcport, fcport->d_id); } if (res != QLA_SUCCESS) { ql_log(ql_log_info, vha, 0xd04d, "PLOGI Failed: portid=%06x - retrying\n", fcport->d_id.b24); res = QLA_SUCCESS; } else { /* State 0x6 means FCP PRLI complete */ if ((fcport->current_login_state & 0xf) == 0x6) { ql_dbg(ql_dbg_disc, vha, 0x2118, "%s %d %8phC post GPDB work\n", __func__, __LINE__, fcport->port_name); fcport->chip_reset = vha->hw->base_qpair->chip_reset; qla24xx_post_gpdb_work(vha, fcport, 0); } else { ql_dbg(ql_dbg_disc, vha, 0x2118, "%s %d %8phC post NVMe PRLI\n", __func__, __LINE__, fcport->port_name); qla24xx_post_prli_work(vha, fcport); } } } else { /* Wait for next database change */ set_bit(N2N_LOGIN_NEEDED, &vha->dpc_flags); } return res; } /* * qla2x00_configure_local_loop * Updates Fibre Channel Device Database with local loop devices. Loading Loading @@ -4847,14 +4743,6 @@ qla2x00_configure_local_loop(scsi_qla_host_t *vha) } new_fcport->flags &= ~FCF_FABRIC_DEVICE; /* Inititae N2N login. */ if (test_and_clear_bit(N2N_LOGIN_NEEDED, &vha->dpc_flags)) { rval = qla24xx_n2n_handle_login(vha, new_fcport); if (rval != QLA_SUCCESS) goto cleanup_allocation; return QLA_SUCCESS; } /* Add devices to port list. */ id_iter = (char *)ha->gid_list; for (index = 0; index < entries; index++) { Loading
drivers/scsi/qla2xxx/qla_iocb.c +0 −25 Original line number Diff line number Diff line Loading @@ -2567,26 +2567,6 @@ qla24xx_els_logo_iocb(srb_t *sp, struct els_entry_24xx *els_iocb) sp->vha->qla_stats.control_requests++; } static void qla2x00_els_dcmd2_sp_free(void *data) { srb_t *sp = data; struct srb_iocb *elsio = &sp->u.iocb_cmd; if (elsio->u.els_plogi.els_plogi_pyld) dma_free_coherent(&sp->vha->hw->pdev->dev, DMA_POOL_SIZE, elsio->u.els_plogi.els_plogi_pyld, elsio->u.els_plogi.els_plogi_pyld_dma); if (elsio->u.els_plogi.els_resp_pyld) dma_free_coherent(&sp->vha->hw->pdev->dev, DMA_POOL_SIZE, elsio->u.els_plogi.els_resp_pyld, elsio->u.els_plogi.els_resp_pyld_dma); del_timer(&elsio->timer); qla2x00_rel_sp(sp); } static void qla2x00_els_dcmd2_iocb_timeout(void *data) { Loading Loading @@ -2648,10 +2628,6 @@ qla24xx_els_dcmd2_iocb(scsi_qla_host_t *vha, int els_opcode, } elsio = &sp->u.iocb_cmd; fcport->d_id.b.domain = remote_did.b.domain; fcport->d_id.b.area = remote_did.b.area; fcport->d_id.b.al_pa = remote_did.b.al_pa; ql_dbg(ql_dbg_io, vha, 0x3073, "Enter: PLOGI portid=%06x\n", fcport->d_id.b24); Loading @@ -2664,7 +2640,6 @@ qla24xx_els_dcmd2_iocb(scsi_qla_host_t *vha, int els_opcode, qla2x00_init_timer(sp, ELS_DCMD_TIMEOUT); sp->done = qla2x00_els_dcmd2_sp_done; sp->free = qla2x00_els_dcmd2_sp_free; ptr = elsio->u.els_plogi.els_plogi_pyld = dma_alloc_coherent(&ha->pdev->dev, DMA_POOL_SIZE, Loading