aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_init.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_init.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 3cafbef40737..259f51137493 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -71,7 +71,7 @@ qla2x00_ctx_sp_free(srb_t *sp)
71 struct srb_iocb *iocb = ctx->u.iocb_cmd; 71 struct srb_iocb *iocb = ctx->u.iocb_cmd;
72 struct scsi_qla_host *vha = sp->fcport->vha; 72 struct scsi_qla_host *vha = sp->fcport->vha;
73 73
74 del_timer_sync(&iocb->timer); 74 del_timer(&iocb->timer);
75 kfree(iocb); 75 kfree(iocb);
76 kfree(ctx); 76 kfree(ctx);
77 mempool_free(sp, sp->fcport->vha->hw->srb_mempool); 77 mempool_free(sp, sp->fcport->vha->hw->srb_mempool);
@@ -1344,6 +1344,13 @@ cont_alloc:
1344 qla_printk(KERN_WARNING, ha, "Unable to allocate (%d KB) for " 1344 qla_printk(KERN_WARNING, ha, "Unable to allocate (%d KB) for "
1345 "firmware dump!!!\n", dump_size / 1024); 1345 "firmware dump!!!\n", dump_size / 1024);
1346 1346
1347 if (ha->fce) {
1348 dma_free_coherent(&ha->pdev->dev, FCE_SIZE, ha->fce,
1349 ha->fce_dma);
1350 ha->fce = NULL;
1351 ha->fce_dma = 0;
1352 }
1353
1347 if (ha->eft) { 1354 if (ha->eft) {
1348 dma_free_coherent(&ha->pdev->dev, eft_size, ha->eft, 1355 dma_free_coherent(&ha->pdev->dev, eft_size, ha->eft,
1349 ha->eft_dma); 1356 ha->eft_dma);
@@ -1818,14 +1825,14 @@ qla2x00_init_rings(scsi_qla_host_t *vha)
1818 qla2x00_init_response_q_entries(rsp); 1825 qla2x00_init_response_q_entries(rsp);
1819 } 1826 }
1820 1827
1821 spin_lock_irqsave(&ha->vport_slock, flags); 1828 spin_lock(&ha->vport_slock);
1822 /* Clear RSCN queue. */ 1829 /* Clear RSCN queue. */
1823 list_for_each_entry(vp, &ha->vp_list, list) { 1830 list_for_each_entry(vp, &ha->vp_list, list) {
1824 vp->rscn_in_ptr = 0; 1831 vp->rscn_in_ptr = 0;
1825 vp->rscn_out_ptr = 0; 1832 vp->rscn_out_ptr = 0;
1826 } 1833 }
1827 1834
1828 spin_unlock_irqrestore(&ha->vport_slock, flags); 1835 spin_unlock(&ha->vport_slock);
1829 1836
1830 ha->isp_ops->config_rings(vha); 1837 ha->isp_ops->config_rings(vha);
1831 1838
@@ -2916,21 +2923,13 @@ qla2x00_reg_remote_port(scsi_qla_host_t *vha, fc_port_t *fcport)
2916void 2923void
2917qla2x00_update_fcport(scsi_qla_host_t *vha, fc_port_t *fcport) 2924qla2x00_update_fcport(scsi_qla_host_t *vha, fc_port_t *fcport)
2918{ 2925{
2919 struct qla_hw_data *ha = vha->hw;
2920
2921 fcport->vha = vha; 2926 fcport->vha = vha;
2922 fcport->login_retry = 0; 2927 fcport->login_retry = 0;
2923 fcport->port_login_retry_count = ha->port_down_retry_count *
2924 PORT_RETRY_TIME;
2925 atomic_set(&fcport->port_down_timer, ha->port_down_retry_count *
2926 PORT_RETRY_TIME);
2927 fcport->flags &= ~(FCF_LOGIN_NEEDED | FCF_ASYNC_SENT); 2928 fcport->flags &= ~(FCF_LOGIN_NEEDED | FCF_ASYNC_SENT);
2928 2929
2929 qla2x00_iidma_fcport(vha, fcport); 2930 qla2x00_iidma_fcport(vha, fcport);
2930
2931 atomic_set(&fcport->state, FCS_ONLINE);
2932
2933 qla2x00_reg_remote_port(vha, fcport); 2931 qla2x00_reg_remote_port(vha, fcport);
2932 atomic_set(&fcport->state, FCS_ONLINE);
2934} 2933}
2935 2934
2936/* 2935/*
@@ -3292,8 +3291,9 @@ qla2x00_find_all_fabric_devs(scsi_qla_host_t *vha,
3292 continue; 3291 continue;
3293 3292
3294 /* Bypass ports whose FCP-4 type is not FCP_SCSI */ 3293 /* Bypass ports whose FCP-4 type is not FCP_SCSI */
3295 if (new_fcport->fc4_type != FC4_TYPE_FCP_SCSI && 3294 if (ql2xgffidenable &&
3296 new_fcport->fc4_type != FC4_TYPE_UNKNOWN) 3295 (new_fcport->fc4_type != FC4_TYPE_FCP_SCSI &&
3296 new_fcport->fc4_type != FC4_TYPE_UNKNOWN))
3297 continue; 3297 continue;
3298 3298
3299 /* Locate matching device in database. */ 3299 /* Locate matching device in database. */