|
Hannes Reinecke |
43d46a |
From: Quinn Tran <quinn.tran@cavium.com>
|
|
Hannes Reinecke |
43d46a |
Date: Tue, 1 May 2018 09:01:48 -0700
|
|
Hannes Reinecke |
43d46a |
Subject: [PATCH] scsi: qla2xxx: Move GPSC and GFPNID out of session management
|
|
Hannes Reinecke |
43d46a |
References: bsc#1086327,FATE#324903
|
|
Hannes Reinecke |
43d46a |
Git-commit: cc28e0ace97c5615cc2333d98827751cd0d794d1
|
|
Hannes Reinecke |
43d46a |
Patch-mainline: v4.18-rc1
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
Move GPSC & GFPNID commands out of session management to reduce time lag
|
|
Hannes Reinecke |
43d46a |
in reporting the session state to remote port. These commands are not
|
|
Hannes Reinecke |
43d46a |
essential when it comes to maintaining the rport state. Delay sending
|
|
Hannes Reinecke |
43d46a |
these commands after rport state is set to Online.
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
Signed-off-by: Quinn Tran <quinn.tran@cavium.com>
|
|
Hannes Reinecke |
43d46a |
Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com>
|
|
Hannes Reinecke |
43d46a |
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
|
|
Hannes Reinecke |
43d46a |
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
|
Hannes Reinecke |
43d46a |
---
|
|
Hannes Reinecke |
43d46a |
drivers/scsi/qla2xxx/qla_def.h | 3 +-
|
|
Hannes Reinecke |
43d46a |
drivers/scsi/qla2xxx/qla_gbl.h | 3 +-
|
|
Hannes Reinecke |
43d46a |
drivers/scsi/qla2xxx/qla_gs.c | 10 +----
|
|
Hannes Reinecke |
43d46a |
drivers/scsi/qla2xxx/qla_init.c | 78 +++++++++++++++++++++++----------------
|
|
Hannes Reinecke |
43d46a |
drivers/scsi/qla2xxx/qla_os.c | 4 ++
|
|
Hannes Reinecke |
43d46a |
drivers/scsi/qla2xxx/qla_target.c | 1 -
|
|
Hannes Reinecke |
43d46a |
6 files changed, 55 insertions(+), 44 deletions(-)
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
|
|
Hannes Reinecke |
43d46a |
index 5c433b3d728f..bb7e7cf3689c 100644
|
|
Hannes Reinecke |
43d46a |
--- a/drivers/scsi/qla2xxx/qla_def.h
|
|
Hannes Reinecke |
43d46a |
+++ b/drivers/scsi/qla2xxx/qla_def.h
|
|
Hannes Reinecke |
43d46a |
@@ -2283,8 +2283,6 @@ enum discovery_state {
|
|
Hannes Reinecke |
43d46a |
DSC_LOGIN_PEND,
|
|
Hannes Reinecke |
43d46a |
DSC_LOGIN_FAILED,
|
|
Hannes Reinecke |
43d46a |
DSC_GPDB,
|
|
Hannes Reinecke |
43d46a |
- DSC_GFPN_ID,
|
|
Hannes Reinecke |
43d46a |
- DSC_GPSC,
|
|
Hannes Reinecke |
43d46a |
DSC_UPD_FCPORT,
|
|
Hannes Reinecke |
43d46a |
DSC_LOGIN_COMPLETE,
|
|
Hannes Reinecke |
43d46a |
DSC_ADISC,
|
|
Hannes Reinecke |
43d46a |
@@ -3230,6 +3228,7 @@ enum qla_work_type {
|
|
Hannes Reinecke |
43d46a |
QLA_EVT_GNNID,
|
|
Hannes Reinecke |
43d46a |
QLA_EVT_GFPNID,
|
|
Hannes Reinecke |
43d46a |
QLA_EVT_SP_RETRY,
|
|
Hannes Reinecke |
43d46a |
+ QLA_EVT_IIDMA,
|
|
Hannes Reinecke |
43d46a |
};
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
|
|
Hannes Reinecke |
43d46a |
index 7373e63d13ad..04776fbb4a6f 100644
|
|
Hannes Reinecke |
43d46a |
--- a/drivers/scsi/qla2xxx/qla_gbl.h
|
|
Hannes Reinecke |
43d46a |
+++ b/drivers/scsi/qla2xxx/qla_gbl.h
|
|
Hannes Reinecke |
43d46a |
@@ -116,7 +116,8 @@ extern int qla2x00_post_async_prlo_work(struct scsi_qla_host *, fc_port_t *,
|
|
Hannes Reinecke |
43d46a |
uint16_t *);
|
|
Hannes Reinecke |
43d46a |
extern int qla2x00_post_async_prlo_done_work(struct scsi_qla_host *,
|
|
Hannes Reinecke |
43d46a |
fc_port_t *, uint16_t *);
|
|
Hannes Reinecke |
43d46a |
-
|
|
Hannes Reinecke |
43d46a |
+int qla_post_iidma_work(struct scsi_qla_host *vha, fc_port_t *fcport);
|
|
Hannes Reinecke |
43d46a |
+void qla_do_iidma_work(struct scsi_qla_host *vha, fc_port_t *fcport);
|
|
Hannes Reinecke |
43d46a |
/*
|
|
Hannes Reinecke |
43d46a |
* Global Data in qla_os.c source file.
|
|
Hannes Reinecke |
43d46a |
*/
|
|
Hannes Reinecke |
43d46a |
diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c
|
|
Hannes Reinecke |
43d46a |
index fdc9b8f475c0..f77fff7bad29 100644
|
|
Hannes Reinecke |
43d46a |
--- a/drivers/scsi/qla2xxx/qla_gs.c
|
|
Hannes Reinecke |
43d46a |
+++ b/drivers/scsi/qla2xxx/qla_gs.c
|
|
Hannes Reinecke |
43d46a |
@@ -3185,7 +3185,6 @@ int qla24xx_async_gidpn(scsi_qla_host_t *vha, fc_port_t *fcport)
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
done_free_sp:
|
|
Hannes Reinecke |
43d46a |
sp->free(sp);
|
|
Hannes Reinecke |
43d46a |
- fcport->flags &= ~FCF_ASYNC_SENT;
|
|
Hannes Reinecke |
43d46a |
done:
|
|
Hannes Reinecke |
43d46a |
fcport->flags &= ~FCF_ASYNC_ACTIVE;
|
|
Hannes Reinecke |
43d46a |
return rval;
|
|
Hannes Reinecke |
43d46a |
@@ -3249,7 +3248,7 @@ void qla24xx_handle_gpsc_event(scsi_qla_host_t *vha, struct event_arg *ea)
|
|
Hannes Reinecke |
43d46a |
return;
|
|
Hannes Reinecke |
43d46a |
}
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
- qla24xx_post_upd_fcport_work(vha, ea->fcport);
|
|
Hannes Reinecke |
43d46a |
+ qla_post_iidma_work(vha, fcport);
|
|
Hannes Reinecke |
43d46a |
}
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
static void qla24xx_async_gpsc_sp_done(void *s, int res)
|
|
Hannes Reinecke |
43d46a |
@@ -3267,8 +3266,6 @@ static void qla24xx_async_gpsc_sp_done(void *s, int res)
|
|
Hannes Reinecke |
43d46a |
"Async done-%s res %x, WWPN %8phC \n",
|
|
Hannes Reinecke |
43d46a |
sp->name, res, fcport->port_name);
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
- fcport->flags &= ~(FCF_ASYNC_SENT | FCF_ASYNC_ACTIVE);
|
|
Hannes Reinecke |
43d46a |
-
|
|
Hannes Reinecke |
43d46a |
if (res == (DID_ERROR << 16)) {
|
|
Hannes Reinecke |
43d46a |
/* entry status error */
|
|
Hannes Reinecke |
43d46a |
goto done;
|
|
Hannes Reinecke |
43d46a |
@@ -3337,7 +3334,6 @@ int qla24xx_async_gpsc(scsi_qla_host_t *vha, fc_port_t *fcport)
|
|
Hannes Reinecke |
43d46a |
if (!sp)
|
|
Hannes Reinecke |
43d46a |
goto done;
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
- fcport->flags |= FCF_ASYNC_SENT;
|
|
Hannes Reinecke |
43d46a |
sp->type = SRB_CT_PTHRU_CMD;
|
|
Hannes Reinecke |
43d46a |
sp->name = "gpsc";
|
|
Hannes Reinecke |
43d46a |
sp->gen1 = fcport->rscn_gen;
|
|
Hannes Reinecke |
43d46a |
@@ -4554,7 +4550,6 @@ int qla24xx_async_gnnid(scsi_qla_host_t *vha, fc_port_t *fcport)
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
done_free_sp:
|
|
Hannes Reinecke |
43d46a |
sp->free(sp);
|
|
Hannes Reinecke |
43d46a |
- fcport->flags &= ~FCF_ASYNC_SENT;
|
|
Hannes Reinecke |
43d46a |
done:
|
|
Hannes Reinecke |
43d46a |
return rval;
|
|
Hannes Reinecke |
43d46a |
}
|
|
Hannes Reinecke |
43d46a |
@@ -4616,7 +4611,6 @@ static void qla2x00_async_gfpnid_sp_done(void *s, int res)
|
|
Hannes Reinecke |
43d46a |
struct event_arg ea;
|
|
Hannes Reinecke |
43d46a |
u64 wwn;
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
- fcport->flags &= ~FCF_ASYNC_SENT;
|
|
Hannes Reinecke |
43d46a |
wwn = wwn_to_u64(fpn);
|
|
Hannes Reinecke |
43d46a |
if (wwn)
|
|
Hannes Reinecke |
43d46a |
memcpy(fcport->fabric_port_name, fpn, WWN_SIZE);
|
|
Hannes Reinecke |
43d46a |
@@ -4645,12 +4639,10 @@ int qla24xx_async_gfpnid(scsi_qla_host_t *vha, fc_port_t *fcport)
|
|
Hannes Reinecke |
43d46a |
if (!vha->flags.online || (fcport->flags & FCF_ASYNC_SENT))
|
|
Hannes Reinecke |
43d46a |
return rval;
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
- fcport->disc_state = DSC_GFPN_ID;
|
|
Hannes Reinecke |
43d46a |
sp = qla2x00_get_sp(vha, fcport, GFP_ATOMIC);
|
|
Hannes Reinecke |
43d46a |
if (!sp)
|
|
Hannes Reinecke |
43d46a |
goto done;
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
- fcport->flags |= FCF_ASYNC_SENT;
|
|
Hannes Reinecke |
43d46a |
sp->type = SRB_CT_PTHRU_CMD;
|
|
Hannes Reinecke |
43d46a |
sp->name = "gfpnid";
|
|
Hannes Reinecke |
43d46a |
sp->gen1 = fcport->rscn_gen;
|
|
Hannes Reinecke |
43d46a |
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
|
|
Hannes Reinecke |
43d46a |
index 83ab15bf5e23..f9e7a96b6ef3 100644
|
|
Hannes Reinecke |
43d46a |
--- a/drivers/scsi/qla2xxx/qla_init.c
|
|
Hannes Reinecke |
43d46a |
+++ b/drivers/scsi/qla2xxx/qla_init.c
|
|
Hannes Reinecke |
43d46a |
@@ -1023,30 +1023,11 @@ void __qla24xx_handle_gpdb_event(scsi_qla_host_t *vha, struct event_arg *ea)
|
|
Hannes Reinecke |
43d46a |
vha->fcport_count++;
|
|
Hannes Reinecke |
43d46a |
ea->fcport->login_succ = 1;
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
- if (!IS_IIDMA_CAPABLE(vha->hw) ||
|
|
Hannes Reinecke |
43d46a |
- !vha->hw->flags.gpsc_supported) {
|
|
Hannes Reinecke |
43d46a |
- ql_dbg(ql_dbg_disc, vha, 0x20d6,
|
|
Hannes Reinecke |
43d46a |
- "%s %d %8phC post upd_fcport fcp_cnt %d\n",
|
|
Hannes Reinecke |
43d46a |
- __func__, __LINE__, ea->fcport->port_name,
|
|
Hannes Reinecke |
43d46a |
- vha->fcport_count);
|
|
Hannes Reinecke |
43d46a |
-
|
|
Hannes Reinecke |
43d46a |
- qla24xx_post_upd_fcport_work(vha, ea->fcport);
|
|
Hannes Reinecke |
43d46a |
- } else {
|
|
Hannes Reinecke |
43d46a |
- if (ea->fcport->id_changed) {
|
|
Hannes Reinecke |
43d46a |
- ea->fcport->id_changed = 0;
|
|
Hannes Reinecke |
43d46a |
- ql_dbg(ql_dbg_disc, vha, 0x20d7,
|
|
Hannes Reinecke |
43d46a |
- "%s %d %8phC post gfpnid fcp_cnt %d\n",
|
|
Hannes Reinecke |
43d46a |
- __func__, __LINE__, ea->fcport->port_name,
|
|
Hannes Reinecke |
43d46a |
- vha->fcport_count);
|
|
Hannes Reinecke |
43d46a |
- qla24xx_post_gfpnid_work(vha, ea->fcport);
|
|
Hannes Reinecke |
43d46a |
- } else {
|
|
Hannes Reinecke |
43d46a |
- ql_dbg(ql_dbg_disc, vha, 0x20d7,
|
|
Hannes Reinecke |
43d46a |
- "%s %d %8phC post gpsc fcp_cnt %d\n",
|
|
Hannes Reinecke |
43d46a |
- __func__, __LINE__, ea->fcport->port_name,
|
|
Hannes Reinecke |
43d46a |
- vha->fcport_count);
|
|
Hannes Reinecke |
43d46a |
- qla24xx_post_gpsc_work(vha, ea->fcport);
|
|
Hannes Reinecke |
43d46a |
- }
|
|
Hannes Reinecke |
43d46a |
- }
|
|
Hannes Reinecke |
43d46a |
+ ql_dbg(ql_dbg_disc, vha, 0x20d6,
|
|
Hannes Reinecke |
43d46a |
+ "%s %d %8phC post upd_fcport fcp_cnt %d\n",
|
|
Hannes Reinecke |
43d46a |
+ __func__, __LINE__, ea->fcport->port_name,
|
|
Hannes Reinecke |
43d46a |
+ vha->fcport_count);
|
|
Hannes Reinecke |
43d46a |
+ qla24xx_post_upd_fcport_work(vha, ea->fcport);
|
|
Hannes Reinecke |
43d46a |
} else if (ea->fcport->login_succ) {
|
|
Hannes Reinecke |
43d46a |
/*
|
|
Hannes Reinecke |
43d46a |
* We have an existing session. A late RSCN delivery
|
|
Hannes Reinecke |
43d46a |
@@ -5052,6 +5033,24 @@ qla2x00_iidma_fcport(scsi_qla_host_t *vha, fc_port_t *fcport)
|
|
Hannes Reinecke |
43d46a |
}
|
|
Hannes Reinecke |
43d46a |
}
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
+void qla_do_iidma_work(struct scsi_qla_host *vha, fc_port_t *fcport)
|
|
Hannes Reinecke |
43d46a |
+{
|
|
Hannes Reinecke |
43d46a |
+ qla2x00_iidma_fcport(vha, fcport);
|
|
Hannes Reinecke |
43d46a |
+ qla24xx_update_fcport_fcp_prio(vha, fcport);
|
|
Hannes Reinecke |
43d46a |
+}
|
|
Hannes Reinecke |
43d46a |
+
|
|
Hannes Reinecke |
43d46a |
+int qla_post_iidma_work(struct scsi_qla_host *vha, fc_port_t *fcport)
|
|
Hannes Reinecke |
43d46a |
+{
|
|
Hannes Reinecke |
43d46a |
+ struct qla_work_evt *e;
|
|
Hannes Reinecke |
43d46a |
+
|
|
Hannes Reinecke |
43d46a |
+ e = qla2x00_alloc_work(vha, QLA_EVT_IIDMA);
|
|
Hannes Reinecke |
43d46a |
+ if (!e)
|
|
Hannes Reinecke |
43d46a |
+ return QLA_FUNCTION_FAILED;
|
|
Hannes Reinecke |
43d46a |
+
|
|
Hannes Reinecke |
43d46a |
+ e->u.fcport.fcport = fcport;
|
|
Hannes Reinecke |
43d46a |
+ return qla2x00_post_work(vha, e);
|
|
Hannes Reinecke |
43d46a |
+}
|
|
Hannes Reinecke |
43d46a |
+
|
|
Hannes Reinecke |
43d46a |
/* qla2x00_reg_remote_port is reserved for Initiator Mode only.*/
|
|
Hannes Reinecke |
43d46a |
static void
|
|
Hannes Reinecke |
43d46a |
qla2x00_reg_remote_port(scsi_qla_host_t *vha, fc_port_t *fcport)
|
|
Hannes Reinecke |
43d46a |
@@ -5120,13 +5119,14 @@ qla2x00_update_fcport(scsi_qla_host_t *vha, fc_port_t *fcport)
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
if (IS_QLAFX00(vha->hw)) {
|
|
Hannes Reinecke |
43d46a |
qla2x00_set_fcport_state(fcport, FCS_ONLINE);
|
|
Hannes Reinecke |
43d46a |
- goto reg_port;
|
|
Hannes Reinecke |
43d46a |
+ } else {
|
|
Hannes Reinecke |
43d46a |
+ fcport->login_retry = 0;
|
|
Hannes Reinecke |
43d46a |
+ fcport->flags &= ~(FCF_LOGIN_NEEDED | FCF_ASYNC_SENT);
|
|
Hannes Reinecke |
43d46a |
+ fcport->disc_state = DSC_LOGIN_COMPLETE;
|
|
Hannes Reinecke |
43d46a |
+ fcport->deleted = 0;
|
|
Hannes Reinecke |
43d46a |
+ fcport->logout_on_delete = 1;
|
|
Hannes Reinecke |
43d46a |
+ qla2x00_set_fcport_state(fcport, FCS_ONLINE);
|
|
Hannes Reinecke |
43d46a |
}
|
|
Hannes Reinecke |
43d46a |
- fcport->login_retry = 0;
|
|
Hannes Reinecke |
43d46a |
- fcport->flags &= ~(FCF_LOGIN_NEEDED | FCF_ASYNC_SENT);
|
|
Hannes Reinecke |
43d46a |
- fcport->disc_state = DSC_LOGIN_COMPLETE;
|
|
Hannes Reinecke |
43d46a |
- fcport->deleted = 0;
|
|
Hannes Reinecke |
43d46a |
- fcport->logout_on_delete = 1;
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
qla2x00_set_fcport_state(fcport, FCS_ONLINE);
|
|
Hannes Reinecke |
43d46a |
qla2x00_iidma_fcport(vha, fcport);
|
|
Hannes Reinecke |
43d46a |
@@ -5138,7 +5138,6 @@ qla2x00_update_fcport(scsi_qla_host_t *vha, fc_port_t *fcport)
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
qla24xx_update_fcport_fcp_prio(vha, fcport);
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
-reg_port:
|
|
Hannes Reinecke |
43d46a |
switch (vha->host->active_mode) {
|
|
Hannes Reinecke |
43d46a |
case MODE_INITIATOR:
|
|
Hannes Reinecke |
43d46a |
qla2x00_reg_remote_port(vha, fcport);
|
|
Hannes Reinecke |
43d46a |
@@ -5157,6 +5156,23 @@ qla2x00_update_fcport(scsi_qla_host_t *vha, fc_port_t *fcport)
|
|
Hannes Reinecke |
43d46a |
default:
|
|
Hannes Reinecke |
43d46a |
break;
|
|
Hannes Reinecke |
43d46a |
}
|
|
Hannes Reinecke |
43d46a |
+
|
|
Hannes Reinecke |
43d46a |
+ if (IS_IIDMA_CAPABLE(vha->hw) && vha->hw->flags.gpsc_supported) {
|
|
Hannes Reinecke |
43d46a |
+ if (fcport->id_changed) {
|
|
Hannes Reinecke |
43d46a |
+ fcport->id_changed = 0;
|
|
Hannes Reinecke |
43d46a |
+ ql_dbg(ql_dbg_disc, vha, 0x20d7,
|
|
Hannes Reinecke |
43d46a |
+ "%s %d %8phC post gfpnid fcp_cnt %d\n",
|
|
Hannes Reinecke |
43d46a |
+ __func__, __LINE__, fcport->port_name,
|
|
Hannes Reinecke |
43d46a |
+ vha->fcport_count);
|
|
Hannes Reinecke |
43d46a |
+ qla24xx_post_gfpnid_work(vha, fcport);
|
|
Hannes Reinecke |
43d46a |
+ } else {
|
|
Hannes Reinecke |
43d46a |
+ ql_dbg(ql_dbg_disc, vha, 0x20d7,
|
|
Hannes Reinecke |
43d46a |
+ "%s %d %8phC post gpsc fcp_cnt %d\n",
|
|
Hannes Reinecke |
43d46a |
+ __func__, __LINE__, fcport->port_name,
|
|
Hannes Reinecke |
43d46a |
+ vha->fcport_count);
|
|
Hannes Reinecke |
43d46a |
+ qla24xx_post_gpsc_work(vha, fcport);
|
|
Hannes Reinecke |
43d46a |
+ }
|
|
Hannes Reinecke |
43d46a |
+ }
|
|
Hannes Reinecke |
43d46a |
}
|
|
Hannes Reinecke |
43d46a |
|
|
Hannes Reinecke |
43d46a |
/*
|
|
Hannes Reinecke |
43d46a |
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
|
|
Hannes Reinecke |
43d46a |
index 85ee085f03af..4ff9c074cf76 100644
|
|
Hannes Reinecke |
43d46a |
--- a/drivers/scsi/qla2xxx/qla_os.c
|
|
Hannes Reinecke |
43d46a |
+++ b/drivers/scsi/qla2xxx/qla_os.c
|
|
Hannes Reinecke |
43d46a |
@@ -5036,6 +5036,10 @@ qla2x00_do_work(struct scsi_qla_host *vha)
|
|
Hannes Reinecke |
43d46a |
break;
|
|
Hannes Reinecke |
43d46a |
case QLA_EVT_SP_RETRY:
|
|
Hannes Reinecke |
43d46a |
qla_sp_retry(vha, e);
|
|
Hannes Reinecke |
43d46a |
+ break;
|
|
Hannes Reinecke |
43d46a |
+ case QLA_EVT_IIDMA:
|
|
Hannes Reinecke |
43d46a |
+ qla_do_iidma_work(vha, e->u.fcport.fcport);
|
|
Hannes Reinecke |
43d46a |
+ break;
|
|
Hannes Reinecke |
43d46a |
}
|
|
Hannes Reinecke |
43d46a |
if (e->flags & QLA_EVT_FLAG_FREE)
|
|
Hannes Reinecke |
43d46a |
kfree(e);
|
|
Hannes Reinecke |
43d46a |
diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c
|
|
Hannes Reinecke |
43d46a |
index b65480efb516..531ed219ba6c 100644
|
|
Hannes Reinecke |
43d46a |
--- a/drivers/scsi/qla2xxx/qla_target.c
|
|
Hannes Reinecke |
43d46a |
+++ b/drivers/scsi/qla2xxx/qla_target.c
|
|
Hannes Reinecke |
43d46a |
@@ -4840,7 +4840,6 @@ static int qlt_24xx_handle_els(struct scsi_qla_host *vha,
|
|
Hannes Reinecke |
43d46a |
switch (sess->disc_state) {
|
|
Hannes Reinecke |
43d46a |
case DSC_LOGIN_PEND:
|
|
Hannes Reinecke |
43d46a |
case DSC_GPDB:
|
|
Hannes Reinecke |
43d46a |
- case DSC_GPSC:
|
|
Hannes Reinecke |
43d46a |
case DSC_UPD_FCPORT:
|
|
Hannes Reinecke |
43d46a |
case DSC_LOGIN_COMPLETE:
|
|
Hannes Reinecke |
43d46a |
case DSC_ADISC:
|
|
Hannes Reinecke |
43d46a |
--
|
|
Hannes Reinecke |
43d46a |
2.12.3
|
|
Hannes Reinecke |
43d46a |
|