qla_els_pt_iocb(vha, els_iocb, a);
 
        ql_dbg(ql_dbg_edif, vha, 0x0183,
-           "Sending ELS reject...\n");
+           "Sending ELS reject ox_id %04x s:%06x -> d:%06x\n",
+           a->ox_id, a->sid.b24, a->did.b24);
        ql_dump_buffer(ql_dbg_edif + ql_dbg_verbose, vha, 0x0185,
            vha->hw->elsrej.c, sizeof(*vha->hw->elsrej.c));
        /* flush iocb to mem before notifying hw doorbell */
        a.tx_addr = vha->hw->elsrej.cdma;
        a.vp_idx = vha->vp_idx;
        a.control_flags = EPD_ELS_RJT;
+       a.ox_id = le16_to_cpu(p->ox_id);
 
        sid = p->s_id[0] | (p->s_id[1] << 8) | (p->s_id[2] << 16);
 
        purex->pur_info.pur_did.b.al_pa =  p->d_id[0];
        purex->pur_info.vp_idx = p->vp_idx;
 
+       a.sid = purex->pur_info.pur_did;
+
        rc = __qla_copy_purex_to_buffer(vha, pkt, rsp, purex->msgp,
                purex->msgp_len);
        if (rc) {
 
                    vha->e_dbell.db_flags & EDB_ACTIVE) {
                        lio->u.logio.flags |=
                                (SRB_LOGIN_FCSP | SRB_LOGIN_SKIP_PRLI);
-                       ql_dbg(ql_dbg_disc, vha, 0x2072,
-                           "Async-login: w/ FCSP %8phC hdl=%x, loopid=%x portid=%06x\n",
-                           fcport->port_name, sp->handle, fcport->loop_id, fcport->d_id.b24);
                } else {
                        lio->u.logio.flags |= SRB_LOGIN_COND_PLOGI;
                }
        if (NVME_TARGET(vha->hw, fcport))
                lio->u.logio.flags |= SRB_LOGIN_SKIP_PRLI;
 
+       rval = qla2x00_start_sp(sp);
+
        ql_dbg(ql_dbg_disc, vha, 0x2072,
-              "Async-login - %8phC hdl=%x, loopid=%x portid=%06x retries=%d.\n",
+              "Async-login - %8phC hdl=%x, loopid=%x portid=%06x retries=%d %s.\n",
               fcport->port_name, sp->handle, fcport->loop_id,
-              fcport->d_id.b24, fcport->login_retry);
+              fcport->d_id.b24, fcport->login_retry,
+              lio->u.logio.flags & SRB_LOGIN_FCSP ? "FCSP" : "");
 
-       rval = qla2x00_start_sp(sp);
        if (rval != QLA_SUCCESS) {
                fcport->flags |= FCF_LOGIN_NEEDED;
                set_bit(RELOGIN_NEEDED, &vha->dpc_flags);
 
        qla2x00_update_fcport(fcport->vha, fcport);
 
+       ql_dbg(ql_dbg_disc, fcport->vha, 0x911e,
+              "%s rscn gen %d/%d next DS %d\n", __func__,
+              rscn_gen, fcport->rscn_gen, fcport->next_disc_state);
+
        if (rscn_gen != fcport->rscn_gen) {
                /* RSCN(s) came in while registration */
                switch (fcport->next_disc_state) {