summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx
diff options
context:
space:
mode:
authorhimanshu.madhani@cavium.com <himanshu.madhani@cavium.com>2018-01-15 23:46:47 -0500
committerMartin K. Petersen <martin.petersen@oracle.com>2018-01-17 01:34:24 -0500
commit3efc31f76dd7fc8a71cd86683909f637e9b7cadb (patch)
treea987a101ed941a107e17b59b75b40b350826aff8 /drivers/scsi/qla2xxx
parentd64d6c5671db5e693a0caaee79f2571b098749c9 (diff)
scsi: qla2xxx: Fix recursion while sending terminate exchange
During error test case where switch port status is toggled from enable to disable, following stack trace is seen which indicates recursion trying to send terminate exchange. This regression was introduced by commit 82de802ad46e ("scsi: qla2xxx: Preparation for Target MQ.") BUG: stack guard page was hit at ffffb96488383ff8 (stack is ffffb96488384000..ffffb96488387fff) BUG: stack guard page was hit at ffffb964886c3ff8 (stack is ffffb964886c4000..ffffb964886c7fff) kernel stack overflow (double-fault): 0000 [#1] SMP qlt_term_ctio_exchange+0x9c/0xb0 [qla2xxx] qlt_term_ctio_exchange+0x9c/0xb0 [qla2xxx] qlt_term_ctio_exchange+0x9c/0xb0 [qla2xxx] qlt_term_ctio_exchange+0x9c/0xb0 [qla2xxx] qlt_term_ctio_exchange+0x9c/0xb0 [qla2xxx] Fixes: 82de802ad46e ("scsi: qla2xxx: Preparation for Target MQ.") Cc: <stable@vger.kernel.org> #4.10 Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/qla2xxx')
-rw-r--r--drivers/scsi/qla2xxx/qla_target.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c
index 0d3c3f647f91..cc80e57675e4 100644
--- a/drivers/scsi/qla2xxx/qla_target.c
+++ b/drivers/scsi/qla2xxx/qla_target.c
@@ -3756,7 +3756,7 @@ static int qlt_term_ctio_exchange(struct qla_qpair *qpair, void *ctio,
3756 term = 1; 3756 term = 1;
3757 3757
3758 if (term) 3758 if (term)
3759 qlt_term_ctio_exchange(qpair, ctio, cmd, status); 3759 qlt_send_term_exchange(qpair, cmd, &cmd->atio, 1, 0);
3760 3760
3761 return term; 3761 return term;
3762} 3762}