fcport->login_retry = vha->hw->login_retry_count;
        fcport->n2n_chip_reset = fcport->n2n_link_reset_cnt = 0;
 
-       qla2x00_iidma_fcport(vha, fcport);
-
        switch (vha->hw->current_topology) {
        case ISP_CFG_N:
        case ISP_CFG_NL:
                break;
        }
 
+       qla2x00_iidma_fcport(vha, fcport);
+
        if (fcport->fc4f_nvme) {
                qla_nvme_register_remote(vha, fcport);
                fcport->disc_state = DSC_LOGIN_COMPLETE;
                break;
        }
 
+       qla2x00_set_fcport_state(fcport, FCS_ONLINE);
+
        if (IS_IIDMA_CAPABLE(vha->hw) && vha->hw->flags.gpsc_supported) {
                if (fcport->id_changed) {
                        fcport->id_changed = 0;
                        qla24xx_post_gpsc_work(vha, fcport);
                }
        }
-       qla2x00_set_fcport_state(fcport, FCS_ONLINE);
 
        fcport->disc_state = DSC_LOGIN_COMPLETE;
 }