This is a note to let you know that I've just added the patch titled
scsi: qla2xxx: Fix scan state field for fcport
to the 4.15-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
scsi-qla2xxx-fix-scan-state-field-for-fcport.patch
and it can be found in the queue-4.15 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From 76f9a2dd4c60183879a1898bcd56a1dbab19a85d Mon Sep 17 00:00:00 2001
From: Quinn Tran <quinn.tran(a)cavium.com>
Date: Mon, 4 Dec 2017 14:45:11 -0800
Subject: scsi: qla2xxx: Fix scan state field for fcport
From: Quinn Tran <quinn.tran(a)cavium.com>
commit 76f9a2dd4c60183879a1898bcd56a1dbab19a85d upstream.
Add correct value of scan_state field indicating state of the FC port
Fixes: 726b85487067d ("qla2xxx: Add framework for async fabric discovery")
Cc: <stable(a)vger.kernel.org> # 4.10+
Signed-off-by: Quinn Tran <quinn.tran(a)cavium.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani(a)cavium.com>
Reviewed-by: Hannes Reinecke <hare(a)suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/scsi/qla2xxx/qla_target.c | 1 +
1 file changed, 1 insertion(+)
--- a/drivers/scsi/qla2xxx/qla_target.c
+++ b/drivers/scsi/qla2xxx/qla_target.c
@@ -5811,6 +5811,7 @@ static fc_port_t *qlt_get_port_database(
tfcp->port_type = fcport->port_type;
tfcp->supported_classes = fcport->supported_classes;
tfcp->flags |= fcport->flags;
+ tfcp->scan_state = QLA_FCPORT_FOUND;
del = fcport;
fcport = tfcp;
Patches currently in stable-queue which might be from quinn.tran(a)cavium.com are
queue-4.15/scsi-qla2xxx-retry-switch-command-on-time-out.patch
queue-4.15/scsi-qla2xxx-relogin-to-target-port-on-a-cable-swap.patch
queue-4.15/scsi-qla2xxx-fix-abort-command-deadlock-due-to-spinlock.patch
queue-4.15/scsi-qla2xxx-fix-re-login-for-nport-handle-in-use.patch
queue-4.15/scsi-qla2xxx-fix-login-state-machine-stuck-at-gpdb.patch
queue-4.15/scsi-qla2xxx-fix-system-crash-for-notify-ack-timeout-handling.patch
queue-4.15/scsi-qla2xxx-replace-fcport-alloc-with-qla2x00_alloc_fcport.patch
queue-4.15/scsi-qla2xxx-clear-loop-id-after-delete.patch
queue-4.15/scsi-qla2xxx-fix-relogin-being-triggered-too-fast.patch
queue-4.15/scsi-qla2xxx-skip-irq-affinity-for-target-qpairs.patch
queue-4.15/scsi-qla2xxx-fix-scan-state-field-for-fcport.patch
queue-4.15/scsi-qla2xxx-fix-prli-state-check.patch
queue-4.15/scsi-qla2xxx-fix-system-crash-in-qlt_plogi_ack_unref.patch
queue-4.15/scsi-qla2xxx-serialize-gpnid-for-multiple-rscn.patch
queue-4.15/scsi-qla2xxx-fix-gpnid-error-processing.patch
queue-4.15/scsi-qla2xxx-move-session-delete-to-driver-work-queue.patch
This is a note to let you know that I've just added the patch titled
scsi: qla2xxx: Fix PRLI state check
to the 4.15-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
scsi-qla2xxx-fix-prli-state-check.patch
and it can be found in the queue-4.15 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From 23c645595dab7b414f23639d0a428a07515807df Mon Sep 17 00:00:00 2001
From: Quinn Tran <quinn.tran(a)cavium.com>
Date: Mon, 4 Dec 2017 14:45:08 -0800
Subject: scsi: qla2xxx: Fix PRLI state check
From: Quinn Tran <quinn.tran(a)cavium.com>
commit 23c645595dab7b414f23639d0a428a07515807df upstream.
Get Port Database MBX cmd is to validate current Login state upon PRLI
completion. Current code looks at the last login state for re-validation
which was incorrect. This patch removed incorrect state check.
Fixes: 15f30a5752287 ("qla2xxx: Use IOCB interface to submit non-critical MBX.")
Cc: <stable(a)vger.kernel.org> # 4.10+
Signed-off-by: Quinn Tran <quinn.tran(a)cavium.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani(a)cavium.com>
Reviewed-by: Hannes Reinecke <hare(a)suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/scsi/qla2xxx/qla_mbx.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
--- a/drivers/scsi/qla2xxx/qla_mbx.c
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
@@ -6160,8 +6160,7 @@ int __qla24xx_parse_gpdb(struct scsi_qla
}
/* Check for logged in state. */
- if (current_login_state != PDS_PRLI_COMPLETE &&
- last_login_state != PDS_PRLI_COMPLETE) {
+ if (current_login_state != PDS_PRLI_COMPLETE) {
ql_dbg(ql_dbg_mbx, vha, 0x119a,
"Unable to verify login-state (%x/%x) for loop_id %x.\n",
current_login_state, last_login_state, fcport->loop_id);
Patches currently in stable-queue which might be from quinn.tran(a)cavium.com are
queue-4.15/scsi-qla2xxx-retry-switch-command-on-time-out.patch
queue-4.15/scsi-qla2xxx-relogin-to-target-port-on-a-cable-swap.patch
queue-4.15/scsi-qla2xxx-fix-abort-command-deadlock-due-to-spinlock.patch
queue-4.15/scsi-qla2xxx-fix-re-login-for-nport-handle-in-use.patch
queue-4.15/scsi-qla2xxx-fix-login-state-machine-stuck-at-gpdb.patch
queue-4.15/scsi-qla2xxx-fix-system-crash-for-notify-ack-timeout-handling.patch
queue-4.15/scsi-qla2xxx-replace-fcport-alloc-with-qla2x00_alloc_fcport.patch
queue-4.15/scsi-qla2xxx-clear-loop-id-after-delete.patch
queue-4.15/scsi-qla2xxx-fix-relogin-being-triggered-too-fast.patch
queue-4.15/scsi-qla2xxx-skip-irq-affinity-for-target-qpairs.patch
queue-4.15/scsi-qla2xxx-fix-scan-state-field-for-fcport.patch
queue-4.15/scsi-qla2xxx-fix-prli-state-check.patch
queue-4.15/scsi-qla2xxx-fix-system-crash-in-qlt_plogi_ack_unref.patch
queue-4.15/scsi-qla2xxx-serialize-gpnid-for-multiple-rscn.patch
queue-4.15/scsi-qla2xxx-fix-gpnid-error-processing.patch
queue-4.15/scsi-qla2xxx-move-session-delete-to-driver-work-queue.patch
This is a note to let you know that I've just added the patch titled
scsi: qla2xxx: Fix NPIV host cleanup in target mode
to the 4.15-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
scsi-qla2xxx-fix-npiv-host-cleanup-in-target-mode.patch
and it can be found in the queue-4.15 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From 3be63b1e1838e35ce93e83f19573e949f4b389b4 Mon Sep 17 00:00:00 2001
From: Sawan Chandak <sawan.chandak(a)cavium.com>
Date: Mon, 4 Dec 2017 14:45:04 -0800
Subject: scsi: qla2xxx: Fix NPIV host cleanup in target mode
From: Sawan Chandak <sawan.chandak(a)cavium.com>
commit 3be63b1e1838e35ce93e83f19573e949f4b389b4 upstream.
Add check to make sure we are cleaning up global target host list only
for NPIV hosts
Fixes: bdbe24de281e2 ("scsi: qla2xxx: Cleanup NPIV host in target mode during config teardown")
Cc: <stable(a)vger.kernel.org> # 4.10+
Signed-off-by: Sawan Chandak <sawan.chandak(a)cavium.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani(a)cavium.com>
Reviewed-by: Hannes Reinecke <hare(a)suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/scsi/qla2xxx/qla_target.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
--- a/drivers/scsi/qla2xxx/qla_target.c
+++ b/drivers/scsi/qla2xxx/qla_target.c
@@ -1561,8 +1561,11 @@ static void qlt_release(struct qla_tgt *
btree_destroy64(&tgt->lun_qpair_map);
- if (ha->tgt.tgt_ops && ha->tgt.tgt_ops->remove_target)
- ha->tgt.tgt_ops->remove_target(vha);
+ if (vha->vp_idx)
+ if (ha->tgt.tgt_ops &&
+ ha->tgt.tgt_ops->remove_target &&
+ vha->vha_tgt.target_lport_ptr)
+ ha->tgt.tgt_ops->remove_target(vha);
vha->vha_tgt.qla_tgt = NULL;
Patches currently in stable-queue which might be from sawan.chandak(a)cavium.com are
queue-4.15/scsi-qla2xxx-fix-npiv-host-cleanup-in-target-mode.patch
This is a note to let you know that I've just added the patch titled
scsi: qla2xxx: Fix memory leak in dual/target mode
to the 4.15-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
scsi-qla2xxx-fix-memory-leak-in-dual-target-mode.patch
and it can be found in the queue-4.15 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From 7867b98dceb7741065c9c1b645136facad5c2e93 Mon Sep 17 00:00:00 2001
From: "himanshu.madhani(a)cavium.com" <himanshu.madhani(a)cavium.com>
Date: Mon, 4 Dec 2017 14:45:16 -0800
Subject: scsi: qla2xxx: Fix memory leak in dual/target mode
From: himanshu.madhani(a)cavium.com <himanshu.madhani(a)cavium.com>
commit 7867b98dceb7741065c9c1b645136facad5c2e93 upstream.
When driver is loaded in Target/Dual mode, it creates QPair to support
MQ and allocates resources for each QPair. This Qpair initialization is
delayed until the FW personality is changed to Dual/Target mode by
issuing chip reset. At the time of chip reset firmware is re-initilized
in correct personality all the QPairs are initialized by sending
MBC_INITIALIZE_MULTIQ (001Fh).
This patch fixes memory leak by adding check to issue
MBC_INITIALIZE_MULTIQ command only while deleting rsp/req queue when the
flag is set for initiator mode, and clean up QPair resources correctly
during the driver unload. This MBX does not need to be issued for
Target/Dual mode because chip reset will reset ISP.
Fixes: d65237c7f0860 ("scsi: qla2xxx: Fix mailbox failure while deleting Queue pairs")
Cc: <stable(a)vger.kernel.org> # 4.10+
Signed-off-by: Himanshu Madhani <himanshu.madhani(a)cavium.com>
Reviewed-by: Hannes Reinecke <hare(a)suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/scsi/qla2xxx/qla_init.c | 4 +---
drivers/scsi/qla2xxx/qla_mid.c | 18 ++++++++++--------
2 files changed, 11 insertions(+), 11 deletions(-)
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -8221,9 +8221,6 @@ int qla2xxx_delete_qpair(struct scsi_qla
int ret = QLA_FUNCTION_FAILED;
struct qla_hw_data *ha = qpair->hw;
- if (!vha->flags.qpairs_req_created && !vha->flags.qpairs_rsp_created)
- goto fail;
-
qpair->delete_in_progress = 1;
while (atomic_read(&qpair->ref_count))
msleep(500);
@@ -8231,6 +8228,7 @@ int qla2xxx_delete_qpair(struct scsi_qla
ret = qla25xx_delete_req_que(vha, qpair->req);
if (ret != QLA_SUCCESS)
goto fail;
+
ret = qla25xx_delete_rsp_que(vha, qpair->rsp);
if (ret != QLA_SUCCESS)
goto fail;
--- a/drivers/scsi/qla2xxx/qla_mid.c
+++ b/drivers/scsi/qla2xxx/qla_mid.c
@@ -575,14 +575,15 @@ qla25xx_free_rsp_que(struct scsi_qla_hos
int
qla25xx_delete_req_que(struct scsi_qla_host *vha, struct req_que *req)
{
- int ret = -1;
+ int ret = QLA_SUCCESS;
- if (req) {
+ if (req && vha->flags.qpairs_req_created) {
req->options |= BIT_0;
ret = qla25xx_init_req_que(vha, req);
+ if (ret != QLA_SUCCESS)
+ return QLA_FUNCTION_FAILED;
}
- if (ret == QLA_SUCCESS)
- qla25xx_free_req_que(vha, req);
+ qla25xx_free_req_que(vha, req);
return ret;
}
@@ -590,14 +591,15 @@ qla25xx_delete_req_que(struct scsi_qla_h
int
qla25xx_delete_rsp_que(struct scsi_qla_host *vha, struct rsp_que *rsp)
{
- int ret = -1;
+ int ret = QLA_SUCCESS;
- if (rsp) {
+ if (rsp && vha->flags.qpairs_rsp_created) {
rsp->options |= BIT_0;
ret = qla25xx_init_rsp_que(vha, rsp);
+ if (ret != QLA_SUCCESS)
+ return QLA_FUNCTION_FAILED;
}
- if (ret == QLA_SUCCESS)
- qla25xx_free_rsp_que(vha, rsp);
+ qla25xx_free_rsp_que(vha, rsp);
return ret;
}
Patches currently in stable-queue which might be from himanshu.madhani(a)cavium.com are
queue-4.15/scsi-qla2xxx-fix-null-pointer-crash-due-to-active-timer-for-abts.patch
queue-4.15/scsi-qla2xxx-retry-switch-command-on-time-out.patch
queue-4.15/scsi-qla2xxx-relogin-to-target-port-on-a-cable-swap.patch
queue-4.15/scsi-qla2xxx-fix-abort-command-deadlock-due-to-spinlock.patch
queue-4.15/scsi-qla2xxx-fix-re-login-for-nport-handle-in-use.patch
queue-4.15/scsi-qla2xxx-fix-login-state-machine-stuck-at-gpdb.patch
queue-4.15/scsi-qla2xxx-fix-system-crash-for-notify-ack-timeout-handling.patch
queue-4.15/scsi-qla2xxx-replace-fcport-alloc-with-qla2x00_alloc_fcport.patch
queue-4.15/scsi-qla2xxx-clear-loop-id-after-delete.patch
queue-4.15/scsi-qla2xxx-defer-processing-of-gs-iocb-calls.patch
queue-4.15/scsi-qla2xxx-remove-aborting-els-iocb-call-issued-as-part-of-timeout.patch
queue-4.15/scsi-qla2xxx-fix-memory-leak-in-dual-target-mode.patch
queue-4.15/scsi-qla2xxx-fix-npiv-host-cleanup-in-target-mode.patch
queue-4.15/scsi-qla2xxx-fix-relogin-being-triggered-too-fast.patch
queue-4.15/scsi-qla2xxx-skip-irq-affinity-for-target-qpairs.patch
queue-4.15/scsi-qla2xxx-fix-scan-state-field-for-fcport.patch
queue-4.15/scsi-qla2xxx-fix-prli-state-check.patch
queue-4.15/scsi-qla2xxx-fix-recursion-while-sending-terminate-exchange.patch
queue-4.15/scsi-qla2xxx-fix-null-pointer-crash-due-to-probe-failure.patch
queue-4.15/scsi-qla2xxx-fix-system-crash-in-qlt_plogi_ack_unref.patch
queue-4.15/scsi-qla2xxx-serialize-gpnid-for-multiple-rscn.patch
queue-4.15/scsi-qla2xxx-fix-gpnid-error-processing.patch
queue-4.15/scsi-qla2xxx-move-session-delete-to-driver-work-queue.patch
This is a note to let you know that I've just added the patch titled
scsi: qla2xxx: Fix gpnid error processing
to the 4.15-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
scsi-qla2xxx-fix-gpnid-error-processing.patch
and it can be found in the queue-4.15 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From 22e786ea47f8795c561e1a01b6a66bb2cae2fc20 Mon Sep 17 00:00:00 2001
From: Quinn Tran <quinn.tran(a)cavium.com>
Date: Mon, 4 Dec 2017 14:44:57 -0800
Subject: scsi: qla2xxx: Fix gpnid error processing
From: Quinn Tran <quinn.tran(a)cavium.com>
commit 22e786ea47f8795c561e1a01b6a66bb2cae2fc20 upstream.
Stop GPNID command from advancing if command has failed.
Fixes: 726b85487067d ("qla2xxx: Add framework for async fabric discovery")
Cc: <stable(a)vger.kernel.org> # 4.10+
Signed-off-by: Quinn Tran <quinn.tran(a)cavium.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani(a)cavium.com>
Reviewed-by: Hannes Reinecke <hare(a)suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/scsi/qla2xxx/qla_gs.c | 5 +++++
1 file changed, 5 insertions(+)
--- a/drivers/scsi/qla2xxx/qla_gs.c
+++ b/drivers/scsi/qla2xxx/qla_gs.c
@@ -3211,6 +3211,11 @@ static void qla2x00_async_gpnid_sp_done(
sp->name, res, ct_req->req.port_id.port_id,
ct_rsp->rsp.gpn_id.port_name);
+ if (res) {
+ sp->free(sp);
+ return;
+ }
+
memset(&ea, 0, sizeof(ea));
memcpy(ea.port_name, ct_rsp->rsp.gpn_id.port_name, WWN_SIZE);
ea.sp = sp;
Patches currently in stable-queue which might be from quinn.tran(a)cavium.com are
queue-4.15/scsi-qla2xxx-retry-switch-command-on-time-out.patch
queue-4.15/scsi-qla2xxx-relogin-to-target-port-on-a-cable-swap.patch
queue-4.15/scsi-qla2xxx-fix-abort-command-deadlock-due-to-spinlock.patch
queue-4.15/scsi-qla2xxx-fix-re-login-for-nport-handle-in-use.patch
queue-4.15/scsi-qla2xxx-fix-login-state-machine-stuck-at-gpdb.patch
queue-4.15/scsi-qla2xxx-fix-system-crash-for-notify-ack-timeout-handling.patch
queue-4.15/scsi-qla2xxx-replace-fcport-alloc-with-qla2x00_alloc_fcport.patch
queue-4.15/scsi-qla2xxx-clear-loop-id-after-delete.patch
queue-4.15/scsi-qla2xxx-fix-relogin-being-triggered-too-fast.patch
queue-4.15/scsi-qla2xxx-skip-irq-affinity-for-target-qpairs.patch
queue-4.15/scsi-qla2xxx-fix-scan-state-field-for-fcport.patch
queue-4.15/scsi-qla2xxx-fix-prli-state-check.patch
queue-4.15/scsi-qla2xxx-fix-system-crash-in-qlt_plogi_ack_unref.patch
queue-4.15/scsi-qla2xxx-serialize-gpnid-for-multiple-rscn.patch
queue-4.15/scsi-qla2xxx-fix-gpnid-error-processing.patch
queue-4.15/scsi-qla2xxx-move-session-delete-to-driver-work-queue.patch
This is a note to let you know that I've just added the patch titled
scsi: qla2xxx: Fix login state machine stuck at GPDB
to the 4.15-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
scsi-qla2xxx-fix-login-state-machine-stuck-at-gpdb.patch
and it can be found in the queue-4.15 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From 414d9ff3f8039f85d23f619dcbbd1ba2628a1a67 Mon Sep 17 00:00:00 2001
From: Quinn Tran <quinn.tran(a)cavium.com>
Date: Mon, 4 Dec 2017 14:45:03 -0800
Subject: scsi: qla2xxx: Fix login state machine stuck at GPDB
From: Quinn Tran <quinn.tran(a)cavium.com>
commit 414d9ff3f8039f85d23f619dcbbd1ba2628a1a67 upstream.
This patch returns discovery state machine back to Login Complete.
Fixes: 726b85487067d ("qla2xxx: Add framework for async fabric discovery")
Cc: <stable(a)vger.kernel.org> # 4.10+
Signed-off-by: Quinn Tran <quinn.tran(a)cavium.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani(a)cavium.com>
Reviewed-by: Hannes Reinecke <hare(a)suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/scsi/qla2xxx/qla_init.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -863,6 +863,7 @@ void qla24xx_handle_gpdb_event(scsi_qla_
int rval = ea->rc;
fc_port_t *fcport = ea->fcport;
unsigned long flags;
+ u16 opt = ea->sp->u.iocb_cmd.u.mbx.out_mb[10];
fcport->flags &= ~FCF_ASYNC_SENT;
@@ -893,7 +894,8 @@ void qla24xx_handle_gpdb_event(scsi_qla_
}
spin_lock_irqsave(&vha->hw->tgt.sess_lock, flags);
- ea->fcport->login_gen++;
+ if (opt != PDO_FORCE_ADISC)
+ ea->fcport->login_gen++;
ea->fcport->deleted = 0;
ea->fcport->logout_on_delete = 1;
@@ -917,6 +919,13 @@ void qla24xx_handle_gpdb_event(scsi_qla_
qla24xx_post_gpsc_work(vha, fcport);
}
+ } else if (ea->fcport->login_succ) {
+ /*
+ * We have an existing session. A late RSCN delivery
+ * must have triggered the session to be re-validate.
+ * session is still valid.
+ */
+ fcport->disc_state = DSC_LOGIN_COMPLETE;
}
spin_unlock_irqrestore(&vha->hw->tgt.sess_lock, flags);
} /* gpdb event */
Patches currently in stable-queue which might be from quinn.tran(a)cavium.com are
queue-4.15/scsi-qla2xxx-retry-switch-command-on-time-out.patch
queue-4.15/scsi-qla2xxx-relogin-to-target-port-on-a-cable-swap.patch
queue-4.15/scsi-qla2xxx-fix-abort-command-deadlock-due-to-spinlock.patch
queue-4.15/scsi-qla2xxx-fix-re-login-for-nport-handle-in-use.patch
queue-4.15/scsi-qla2xxx-fix-login-state-machine-stuck-at-gpdb.patch
queue-4.15/scsi-qla2xxx-fix-system-crash-for-notify-ack-timeout-handling.patch
queue-4.15/scsi-qla2xxx-replace-fcport-alloc-with-qla2x00_alloc_fcport.patch
queue-4.15/scsi-qla2xxx-clear-loop-id-after-delete.patch
queue-4.15/scsi-qla2xxx-fix-relogin-being-triggered-too-fast.patch
queue-4.15/scsi-qla2xxx-skip-irq-affinity-for-target-qpairs.patch
queue-4.15/scsi-qla2xxx-fix-scan-state-field-for-fcport.patch
queue-4.15/scsi-qla2xxx-fix-prli-state-check.patch
queue-4.15/scsi-qla2xxx-fix-system-crash-in-qlt_plogi_ack_unref.patch
queue-4.15/scsi-qla2xxx-serialize-gpnid-for-multiple-rscn.patch
queue-4.15/scsi-qla2xxx-fix-gpnid-error-processing.patch
queue-4.15/scsi-qla2xxx-move-session-delete-to-driver-work-queue.patch
This is a note to let you know that I've just added the patch titled
scsi: qla2xxx: Defer processing of GS IOCB calls
to the 4.15-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
scsi-qla2xxx-defer-processing-of-gs-iocb-calls.patch
and it can be found in the queue-4.15 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From 5d3300a9b8b122b4743aed5a178bf12c87e2b8c9 Mon Sep 17 00:00:00 2001
From: Giridhar Malavali <giridhar.malavali(a)cavium.com>
Date: Mon, 4 Dec 2017 14:45:13 -0800
Subject: scsi: qla2xxx: Defer processing of GS IOCB calls
From: Giridhar Malavali <giridhar.malavali(a)cavium.com>
commit 5d3300a9b8b122b4743aed5a178bf12c87e2b8c9 upstream.
This patch defers processing of GS IOCB calls from interrupt context to
avoid hardware spinlock recursion.
Following stack trace is seen
? mod_timer+0x193/0x330
? ql_dbg+0xa7/0xf0 [qla2xxx]
_raw_spin_lock_irqsave+0x31/0x40
qla2x00_start_sp+0x3b/0x250 [qla2xxx]
qla24xx_async_gnl+0x1d3/0x240 [qla2xxx]
qla24xx_fcport_handle_login+0x285/0x290 [qla2xxx]
? vprintk_func+0x20/0x50
Fixes: 726b85487067d ("qla2xxx: Add framework for async fabric discovery")
Cc: <stable(a)vger.kernel.org> # 4.10+
Signed-off-by: Giridhar Malavali <giridhar.malavali(a)cavium.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani(a)cavium.com>
Reviewed-by: Hannes Reinecke <hare(a)suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/scsi/qla2xxx/qla_init.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -975,7 +975,7 @@ int qla24xx_fcport_handle_login(struct s
ql_dbg(ql_dbg_disc, vha, 0x20bd,
"%s %d %8phC post gnl\n",
__func__, __LINE__, fcport->port_name);
- qla24xx_async_gnl(vha, fcport);
+ qla24xx_post_gnl_work(vha, fcport);
} else {
ql_dbg(ql_dbg_disc, vha, 0x20bf,
"%s %d %8phC post login\n",
@@ -1143,7 +1143,7 @@ void qla24xx_handle_relogin_event(scsi_q
ql_dbg(ql_dbg_disc, vha, 0x20e9, "%s %d %8phC post gidpn\n",
__func__, __LINE__, fcport->port_name);
- qla24xx_async_gidpn(vha, fcport);
+ qla24xx_post_gidpn_work(vha, fcport);
return;
}
Patches currently in stable-queue which might be from giridhar.malavali(a)cavium.com are
queue-4.15/scsi-qla2xxx-defer-processing-of-gs-iocb-calls.patch
queue-4.15/scsi-qla2xxx-remove-aborting-els-iocb-call-issued-as-part-of-timeout.patch
queue-4.15/scsi-qla2xxx-fix-system-crash-in-qlt_plogi_ack_unref.patch
This is a note to let you know that I've just added the patch titled
scsi: qla2xxx: Clear loop id after delete
to the 4.15-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
scsi-qla2xxx-clear-loop-id-after-delete.patch
and it can be found in the queue-4.15 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From ba743f9148e951abe1c94f89c174ec8e44fb145b Mon Sep 17 00:00:00 2001
From: Quinn Tran <quinn.tran(a)cavium.com>
Date: Mon, 4 Dec 2017 14:45:12 -0800
Subject: scsi: qla2xxx: Clear loop id after delete
From: Quinn Tran <quinn.tran(a)cavium.com>
commit ba743f9148e951abe1c94f89c174ec8e44fb145b upstream.
Clear loop id after delete to prevent session invalidation of stale
session.
Fixes: 726b85487067d ("qla2xxx: Add framework for async fabric discovery")
Cc: <stable(a)vger.kernel.org> # 4.10+
Signed-off-by: Quinn Tran <quinn.tran(a)cavium.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani(a)cavium.com>
Reviewed-by: Hannes Reinecke <hare(a)suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/scsi/qla2xxx/qla_target.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
--- a/drivers/scsi/qla2xxx/qla_target.c
+++ b/drivers/scsi/qla2xxx/qla_target.c
@@ -985,7 +985,7 @@ static void qlt_free_session_done(struct
qlt_send_first_logo(vha, &logo);
}
- if (sess->logout_on_delete) {
+ if (sess->logout_on_delete && sess->loop_id != FC_NO_LOOP_ID) {
int rc;
rc = qla2x00_post_async_logout_work(vha, sess, NULL);
@@ -1044,8 +1044,7 @@ static void qlt_free_session_done(struct
sess->login_succ = 0;
}
- if (sess->chip_reset != ha->base_qpair->chip_reset)
- qla2x00_clear_loop_id(sess);
+ qla2x00_clear_loop_id(sess);
if (sess->conflict) {
sess->conflict->login_pause = 0;
@@ -4599,9 +4598,9 @@ qlt_find_sess_invalidate_other(scsi_qla_
"Invalidating sess %p loop_id %d wwn %llx.\n",
other_sess, other_sess->loop_id, other_wwn);
-
other_sess->keep_nport_handle = 1;
- *conflict_sess = other_sess;
+ if (other_sess->disc_state != DSC_DELETED)
+ *conflict_sess = other_sess;
qlt_schedule_sess_for_deletion(other_sess,
true);
}
Patches currently in stable-queue which might be from quinn.tran(a)cavium.com are
queue-4.15/scsi-qla2xxx-retry-switch-command-on-time-out.patch
queue-4.15/scsi-qla2xxx-relogin-to-target-port-on-a-cable-swap.patch
queue-4.15/scsi-qla2xxx-fix-abort-command-deadlock-due-to-spinlock.patch
queue-4.15/scsi-qla2xxx-fix-re-login-for-nport-handle-in-use.patch
queue-4.15/scsi-qla2xxx-fix-login-state-machine-stuck-at-gpdb.patch
queue-4.15/scsi-qla2xxx-fix-system-crash-for-notify-ack-timeout-handling.patch
queue-4.15/scsi-qla2xxx-replace-fcport-alloc-with-qla2x00_alloc_fcport.patch
queue-4.15/scsi-qla2xxx-clear-loop-id-after-delete.patch
queue-4.15/scsi-qla2xxx-fix-relogin-being-triggered-too-fast.patch
queue-4.15/scsi-qla2xxx-skip-irq-affinity-for-target-qpairs.patch
queue-4.15/scsi-qla2xxx-fix-scan-state-field-for-fcport.patch
queue-4.15/scsi-qla2xxx-fix-prli-state-check.patch
queue-4.15/scsi-qla2xxx-fix-system-crash-in-qlt_plogi_ack_unref.patch
queue-4.15/scsi-qla2xxx-serialize-gpnid-for-multiple-rscn.patch
queue-4.15/scsi-qla2xxx-fix-gpnid-error-processing.patch
queue-4.15/scsi-qla2xxx-move-session-delete-to-driver-work-queue.patch