Blame SOURCES/0023-scsi-scsi-qla2xxx-Move-marker-request-behind-QPair.patch

3c6e85
From f0679c28288d4f52ef463ae395c74349d81af824 Mon Sep 17 00:00:00 2001
3c6e85
From: Himanshu Madhani <hmadhani@redhat.com>
3c6e85
Date: Thu, 1 Aug 2019 15:54:43 -0400
3c6e85
Subject: [PATCH 023/124] [scsi] scsi: qla2xxx: Move marker request behind
3c6e85
 QPair
3c6e85
3c6e85
Message-id: <20190801155618.12650-24-hmadhani@redhat.com>
3c6e85
Patchwork-id: 267797
3c6e85
O-Subject: [RHEL 7.8 e-stor PATCH 023/118] scsi: qla2xxx: Move marker request behind QPair
3c6e85
Bugzilla: 1729270
3c6e85
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
3c6e85
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
3c6e85
3c6e85
From: Quinn Tran <qtran@marvell.com>
3c6e85
3c6e85
Bugzilla 1729270
3c6e85
3c6e85
Current code hard codes marker request to use request and response queue
3c6e85
0. This patch make use of the qpair as the path to access the
3c6e85
request/response queues.  It allows marker to be place on any hardware
3c6e85
queue.
3c6e85
3c6e85
Signed-off-by: Quinn Tran <qtran@marvell.com>
3c6e85
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
3c6e85
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
3c6e85
(cherry picked from commit 9eb9c6dc3ab06cf80d2c15cab39cbcd38816bde0)
3c6e85
Signed-off-by: Himanshu Madhani <hmadhani@redhat.com>
3c6e85
Signed-off-by: Jan Stancek <jstancek@redhat.com>
3c6e85
---
3c6e85
 drivers/scsi/qla2xxx/qla_gbl.h  |  4 ++--
3c6e85
 drivers/scsi/qla2xxx/qla_init.c | 30 ++++++-------------------
3c6e85
 drivers/scsi/qla2xxx/qla_iocb.c | 50 +++++++++++++++++------------------------
3c6e85
 drivers/scsi/qla2xxx/qla_mbx.c  | 18 +++------------
3c6e85
 4 files changed, 33 insertions(+), 69 deletions(-)
3c6e85
3c6e85
diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
3c6e85
index 522865df61cc..3b97724d27ec 100644
3c6e85
--- a/drivers/scsi/qla2xxx/qla_gbl.h
3c6e85
+++ b/drivers/scsi/qla2xxx/qla_gbl.h
3c6e85
@@ -269,8 +269,8 @@ extern void qla24xx_build_scsi_iocbs(srb_t *, struct cmd_type_7 *,
3c6e85
 	uint16_t, struct req_que *);
3c6e85
 extern int qla2x00_start_scsi(srb_t *sp);
3c6e85
 extern int qla24xx_start_scsi(srb_t *sp);
3c6e85
-int qla2x00_marker(struct scsi_qla_host *, struct req_que *, struct rsp_que *,
3c6e85
-						uint16_t, uint16_t, uint8_t);
3c6e85
+int qla2x00_marker(struct scsi_qla_host *, struct qla_qpair *,
3c6e85
+    uint16_t, uint64_t, uint8_t);
3c6e85
 extern int qla2x00_start_sp(srb_t *);
3c6e85
 extern int qla24xx_dif_start_scsi(srb_t *);
3c6e85
 extern int qla2x00_start_bidir(srb_t *, struct scsi_qla_host *, uint32_t);
3c6e85
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
3c6e85
index 04d38d0dfb69..29eb7174a719 100644
3c6e85
--- a/drivers/scsi/qla2xxx/qla_init.c
3c6e85
+++ b/drivers/scsi/qla2xxx/qla_init.c
3c6e85
@@ -1705,8 +1705,8 @@ qla2x00_async_tm_cmd(fc_port_t *fcport, uint32_t flags, uint32_t lun,
3c6e85
 		lun = (uint16_t)tm_iocb->u.tmf.lun;
3c6e85
 
3c6e85
 		/* Issue Marker IOCB */
3c6e85
-		qla2x00_marker(vha, vha->hw->req_q_map[0],
3c6e85
-		    vha->hw->rsp_q_map[0], sp->fcport->loop_id, lun,
3c6e85
+		qla2x00_marker(vha, vha->hw->base_qpair,
3c6e85
+		    sp->fcport->loop_id, lun,
3c6e85
 		    flags == TCF_LUN_RESET ? MK_SYNC_ID_LUN : MK_SYNC_ID);
3c6e85
 	}
3c6e85
 
3c6e85
@@ -6055,11 +6055,6 @@ qla2x00_loop_resync(scsi_qla_host_t *vha)
3c6e85
 {
3c6e85
 	int rval = QLA_SUCCESS;
3c6e85
 	uint32_t wait_time;
3c6e85
-	struct req_que *req;
3c6e85
-	struct rsp_que *rsp;
3c6e85
-
3c6e85
-	req = vha->req;
3c6e85
-	rsp = req->rsp;
3c6e85
 
3c6e85
 	clear_bit(ISP_ABORT_RETRY, &vha->dpc_flags);
3c6e85
 	if (vha->flags.online) {
3c6e85
@@ -6072,8 +6067,8 @@ qla2x00_loop_resync(scsi_qla_host_t *vha)
3c6e85
 					 * Issue a marker after FW becomes
3c6e85
 					 * ready.
3c6e85
 					 */
3c6e85
-					qla2x00_marker(vha, req, rsp, 0, 0,
3c6e85
-						MK_SYNC_ALL);
3c6e85
+					qla2x00_marker(vha, vha->hw->base_qpair,
3c6e85
+					    0, 0, MK_SYNC_ALL);
3c6e85
 					vha->marker_needed = 0;
3c6e85
 				}
3c6e85
 
3c6e85
@@ -6811,8 +6806,6 @@ qla2x00_restart_isp(scsi_qla_host_t *vha)
3c6e85
 {
3c6e85
 	int status = 0;
3c6e85
 	struct qla_hw_data *ha = vha->hw;
3c6e85
-	struct req_que *req = ha->req_q_map[0];
3c6e85
-	struct rsp_que *rsp = ha->rsp_q_map[0];
3c6e85
 
3c6e85
 	/* If firmware needs to be loaded */
3c6e85
 	if (qla2x00_isp_firmware(vha)) {
3c6e85
@@ -6832,7 +6825,7 @@ qla2x00_restart_isp(scsi_qla_host_t *vha)
3c6e85
 		status = qla2x00_fw_ready(vha);
3c6e85
 		if (!status) {
3c6e85
 			/* Issue a marker after FW becomes ready. */
3c6e85
-			qla2x00_marker(vha, req, rsp, 0, 0, MK_SYNC_ALL);
3c6e85
+			qla2x00_marker(vha, ha->base_qpair, 0, 0, MK_SYNC_ALL);
3c6e85
 			set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags);
3c6e85
 		}
3c6e85
 
3c6e85
@@ -7887,22 +7880,15 @@ qla24xx_configure_vhba(scsi_qla_host_t *vha)
3c6e85
 	uint16_t mb[MAILBOX_REGISTER_COUNT];
3c6e85
 	struct qla_hw_data *ha = vha->hw;
3c6e85
 	struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev);
3c6e85
-	struct req_que *req;
3c6e85
-	struct rsp_que *rsp;
3c6e85
 
3c6e85
 	if (!vha->vp_idx)
3c6e85
 		return -EINVAL;
3c6e85
 
3c6e85
 	rval = qla2x00_fw_ready(base_vha);
3c6e85
-	if (vha->qpair)
3c6e85
-		req = vha->qpair->req;
3c6e85
-	else
3c6e85
-		req = ha->req_q_map[0];
3c6e85
-	rsp = req->rsp;
3c6e85
 
3c6e85
 	if (rval == QLA_SUCCESS) {
3c6e85
 		clear_bit(RESET_MARKER_NEEDED, &vha->dpc_flags);
3c6e85
-		qla2x00_marker(vha, req, rsp, 0, 0, MK_SYNC_ALL);
3c6e85
+		qla2x00_marker(vha, ha->base_qpair, 0, 0, MK_SYNC_ALL);
3c6e85
 	}
3c6e85
 
3c6e85
 	vha->flags.management_server_logged_in = 0;
3c6e85
@@ -8294,8 +8280,6 @@ qla82xx_restart_isp(scsi_qla_host_t *vha)
3c6e85
 {
3c6e85
 	int status, rval;
3c6e85
 	struct qla_hw_data *ha = vha->hw;
3c6e85
-	struct req_que *req = ha->req_q_map[0];
3c6e85
-	struct rsp_que *rsp = ha->rsp_q_map[0];
3c6e85
 	struct scsi_qla_host *vp;
3c6e85
 	unsigned long flags;
3c6e85
 
3c6e85
@@ -8307,7 +8291,7 @@ qla82xx_restart_isp(scsi_qla_host_t *vha)
3c6e85
 		status = qla2x00_fw_ready(vha);
3c6e85
 		if (!status) {
3c6e85
 			/* Issue a marker after FW becomes ready. */
3c6e85
-			qla2x00_marker(vha, req, rsp, 0, 0, MK_SYNC_ALL);
3c6e85
+			qla2x00_marker(vha, ha->base_qpair, 0, 0, MK_SYNC_ALL);
3c6e85
 			vha->flags.online = 1;
3c6e85
 			set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags);
3c6e85
 		}
3c6e85
diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c
3c6e85
index 1acdd4cea6a3..ba64b3746462 100644
3c6e85
--- a/drivers/scsi/qla2xxx/qla_iocb.c
3c6e85
+++ b/drivers/scsi/qla2xxx/qla_iocb.c
3c6e85
@@ -336,7 +336,7 @@ qla2x00_start_scsi(srb_t *sp)
3c6e85
 
3c6e85
 	/* Send marker if required */
3c6e85
 	if (vha->marker_needed != 0) {
3c6e85
-		if (qla2x00_marker(vha, req, rsp, 0, 0, MK_SYNC_ALL) !=
3c6e85
+		if (qla2x00_marker(vha, ha->base_qpair, 0, 0, MK_SYNC_ALL) !=
3c6e85
 		    QLA_SUCCESS) {
3c6e85
 			return (QLA_FUNCTION_FAILED);
3c6e85
 		}
3c6e85
@@ -490,8 +490,7 @@ qla2x00_start_iocbs(struct scsi_qla_host *vha, struct req_que *req)
3c6e85
 /**
3c6e85
  * qla2x00_marker() - Send a marker IOCB to the firmware.
3c6e85
  * @vha: HA context
3c6e85
- * @req: request queue
3c6e85
- * @rsp: response queue
3c6e85
+ * @qpair: queue pair pointer
3c6e85
  * @loop_id: loop ID
3c6e85
  * @lun: LUN
3c6e85
  * @type: marker modifier
3c6e85
@@ -501,18 +500,16 @@ qla2x00_start_iocbs(struct scsi_qla_host *vha, struct req_que *req)
3c6e85
  * Returns non-zero if a failure occurred, else zero.
3c6e85
  */
3c6e85
 static int
3c6e85
-__qla2x00_marker(struct scsi_qla_host *vha, struct req_que *req,
3c6e85
-			struct rsp_que *rsp, uint16_t loop_id,
3c6e85
-			uint16_t lun, uint8_t type)
3c6e85
+__qla2x00_marker(struct scsi_qla_host *vha, struct qla_qpair *qpair,
3c6e85
+    uint16_t loop_id, uint64_t lun, uint8_t type)
3c6e85
 {
3c6e85
 	mrk_entry_t *mrk;
3c6e85
 	struct mrk_entry_24xx *mrk24 = NULL;
3c6e85
-
3c6e85
+	struct req_que *req = qpair->req;
3c6e85
 	struct qla_hw_data *ha = vha->hw;
3c6e85
 	scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev);
3c6e85
 
3c6e85
-	req = ha->req_q_map[0];
3c6e85
-	mrk = (mrk_entry_t *)qla2x00_alloc_iocbs(vha, NULL);
3c6e85
+	mrk = (mrk_entry_t *)__qla2x00_alloc_iocbs(qpair, NULL);
3c6e85
 	if (mrk == NULL) {
3c6e85
 		ql_log(ql_log_warn, base_vha, 0x3026,
3c6e85
 		    "Failed to allocate Marker IOCB.\n");
3c6e85
@@ -544,16 +541,15 @@ __qla2x00_marker(struct scsi_qla_host *vha, struct req_que *req,
3c6e85
 }
3c6e85
 
3c6e85
 int
3c6e85
-qla2x00_marker(struct scsi_qla_host *vha, struct req_que *req,
3c6e85
-		struct rsp_que *rsp, uint16_t loop_id, uint16_t lun,
3c6e85
-		uint8_t type)
3c6e85
+qla2x00_marker(struct scsi_qla_host *vha, struct qla_qpair *qpair,
3c6e85
+    uint16_t loop_id, uint64_t lun, uint8_t type)
3c6e85
 {
3c6e85
 	int ret;
3c6e85
 	unsigned long flags = 0;
3c6e85
 
3c6e85
-	spin_lock_irqsave(&vha->hw->hardware_lock, flags);
3c6e85
-	ret = __qla2x00_marker(vha, req, rsp, loop_id, lun, type);
3c6e85
-	spin_unlock_irqrestore(&vha->hw->hardware_lock, flags);
3c6e85
+	spin_lock_irqsave(qpair->qp_lock_ptr, flags);
3c6e85
+	ret = __qla2x00_marker(vha, qpair, loop_id, lun, type);
3c6e85
+	spin_unlock_irqrestore(qpair->qp_lock_ptr, flags);
3c6e85
 
3c6e85
 	return (ret);
3c6e85
 }
3c6e85
@@ -568,11 +564,11 @@ qla2x00_marker(struct scsi_qla_host *vha, struct req_que *req,
3c6e85
 int qla2x00_issue_marker(scsi_qla_host_t *vha, int ha_locked)
3c6e85
 {
3c6e85
 	if (ha_locked) {
3c6e85
-		if (__qla2x00_marker(vha, vha->req, vha->req->rsp, 0, 0,
3c6e85
+		if (__qla2x00_marker(vha, vha->hw->base_qpair, 0, 0,
3c6e85
 					MK_SYNC_ALL) != QLA_SUCCESS)
3c6e85
 			return QLA_FUNCTION_FAILED;
3c6e85
 	} else {
3c6e85
-		if (qla2x00_marker(vha, vha->req, vha->req->rsp, 0, 0,
3c6e85
+		if (qla2x00_marker(vha, vha->hw->base_qpair, 0, 0,
3c6e85
 					MK_SYNC_ALL) != QLA_SUCCESS)
3c6e85
 			return QLA_FUNCTION_FAILED;
3c6e85
 	}
3c6e85
@@ -1653,7 +1649,6 @@ qla24xx_start_scsi(srb_t *sp)
3c6e85
 	uint16_t	req_cnt;
3c6e85
 	uint16_t	tot_dsds;
3c6e85
 	struct req_que *req = NULL;
3c6e85
-	struct rsp_que *rsp = NULL;
3c6e85
 	struct scsi_cmnd *cmd = GET_CMD_SP(sp);
3c6e85
 	struct scsi_qla_host *vha = sp->vha;
3c6e85
 	struct qla_hw_data *ha = vha->hw;
3c6e85
@@ -1661,14 +1656,13 @@ qla24xx_start_scsi(srb_t *sp)
3c6e85
 
3c6e85
 	/* Setup device pointers. */
3c6e85
 	req = vha->req;
3c6e85
-	rsp = req->rsp;
3c6e85
 
3c6e85
 	/* So we know we haven't pci_map'ed anything yet */
3c6e85
 	tot_dsds = 0;
3c6e85
 
3c6e85
 	/* Send marker if required */
3c6e85
 	if (vha->marker_needed != 0) {
3c6e85
-		if (qla2x00_marker(vha, req, rsp, 0, 0, MK_SYNC_ALL) !=
3c6e85
+		if (qla2x00_marker(vha, ha->base_qpair, 0, 0, MK_SYNC_ALL) !=
3c6e85
 		    QLA_SUCCESS)
3c6e85
 			return QLA_FUNCTION_FAILED;
3c6e85
 		vha->marker_needed = 0;
3c6e85
@@ -1836,7 +1830,7 @@ qla24xx_dif_start_scsi(srb_t *sp)
3c6e85
 
3c6e85
 	/* Send marker if required */
3c6e85
 	if (vha->marker_needed != 0) {
3c6e85
-		if (qla2x00_marker(vha, req, rsp, 0, 0, MK_SYNC_ALL) !=
3c6e85
+		if (qla2x00_marker(vha, ha->base_qpair, 0, 0, MK_SYNC_ALL) !=
3c6e85
 		    QLA_SUCCESS)
3c6e85
 			return QLA_FUNCTION_FAILED;
3c6e85
 		vha->marker_needed = 0;
3c6e85
@@ -2007,7 +2001,6 @@ qla2xxx_start_scsi_mq(srb_t *sp)
3c6e85
 	uint16_t	req_cnt;
3c6e85
 	uint16_t	tot_dsds;
3c6e85
 	struct req_que *req = NULL;
3c6e85
-	struct rsp_que *rsp = NULL;
3c6e85
 	struct scsi_cmnd *cmd = GET_CMD_SP(sp);
3c6e85
 	struct scsi_qla_host *vha = sp->fcport->vha;
3c6e85
 	struct qla_hw_data *ha = vha->hw;
3c6e85
@@ -2017,7 +2010,6 @@ qla2xxx_start_scsi_mq(srb_t *sp)
3c6e85
 	spin_lock_irqsave(&qpair->qp_lock, flags);
3c6e85
 
3c6e85
 	/* Setup qpair pointers */
3c6e85
-	rsp = qpair->rsp;
3c6e85
 	req = qpair->req;
3c6e85
 
3c6e85
 	/* So we know we haven't pci_map'ed anything yet */
3c6e85
@@ -2025,7 +2017,7 @@ qla2xxx_start_scsi_mq(srb_t *sp)
3c6e85
 
3c6e85
 	/* Send marker if required */
3c6e85
 	if (vha->marker_needed != 0) {
3c6e85
-		if (__qla2x00_marker(vha, req, rsp, 0, 0, MK_SYNC_ALL) !=
3c6e85
+		if (__qla2x00_marker(vha, qpair, 0, 0, MK_SYNC_ALL) !=
3c6e85
 		    QLA_SUCCESS) {
3c6e85
 			spin_unlock_irqrestore(&qpair->qp_lock, flags);
3c6e85
 			return QLA_FUNCTION_FAILED;
3c6e85
@@ -2193,7 +2185,7 @@ qla2xxx_dif_start_scsi_mq(srb_t *sp)
3c6e85
 
3c6e85
 	/* Send marker if required */
3c6e85
 	if (vha->marker_needed != 0) {
3c6e85
-		if (__qla2x00_marker(vha, req, rsp, 0, 0, MK_SYNC_ALL) !=
3c6e85
+		if (__qla2x00_marker(vha, qpair, 0, 0, MK_SYNC_ALL) !=
3c6e85
 		    QLA_SUCCESS) {
3c6e85
 			spin_unlock_irqrestore(&qpair->qp_lock, flags);
3c6e85
 			return QLA_FUNCTION_FAILED;
3c6e85
@@ -3246,8 +3238,8 @@ qla82xx_start_scsi(srb_t *sp)
3c6e85
 
3c6e85
 	/* Send marker if required */
3c6e85
 	if (vha->marker_needed != 0) {
3c6e85
-		if (qla2x00_marker(vha, req,
3c6e85
-			rsp, 0, 0, MK_SYNC_ALL) != QLA_SUCCESS) {
3c6e85
+		if (qla2x00_marker(vha, ha->base_qpair,
3c6e85
+			0, 0, MK_SYNC_ALL) != QLA_SUCCESS) {
3c6e85
 			ql_log(ql_log_warn, vha, 0x300c,
3c6e85
 			    "qla2x00_marker failed for cmd=%p.\n", cmd);
3c6e85
 			return QLA_FUNCTION_FAILED;
3c6e85
@@ -3930,8 +3922,8 @@ qla2x00_start_bidir(srb_t *sp, struct scsi_qla_host *vha, uint32_t tot_dsds)
3c6e85
 
3c6e85
 	/* Send marker if required */
3c6e85
 	if (vha->marker_needed != 0) {
3c6e85
-		if (qla2x00_marker(vha, req,
3c6e85
-			rsp, 0, 0, MK_SYNC_ALL) != QLA_SUCCESS)
3c6e85
+		if (qla2x00_marker(vha, ha->base_qpair,
3c6e85
+			0, 0, MK_SYNC_ALL) != QLA_SUCCESS)
3c6e85
 			return EXT_STATUS_MAILBOX;
3c6e85
 		vha->marker_needed = 0;
3c6e85
 	}
3c6e85
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
3c6e85
index 3068422cd7a5..d588784c5aa5 100644
3c6e85
--- a/drivers/scsi/qla2xxx/qla_mbx.c
3c6e85
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
3c6e85
@@ -1515,16 +1515,12 @@ qla2x00_abort_target(struct fc_port *fcport, unsigned int l, int tag)
3c6e85
 	mbx_cmd_t  mc;
3c6e85
 	mbx_cmd_t  *mcp = &mc;
3c6e85
 	scsi_qla_host_t *vha;
3c6e85
-	struct req_que *req;
3c6e85
-	struct rsp_que *rsp;
3c6e85
 
3c6e85
 	vha = fcport->vha;
3c6e85
 
3c6e85
 	ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x103e,
3c6e85
 	    "Entered %s.\n", __func__);
3c6e85
 
3c6e85
-	req = vha->hw->req_q_map[0];
3c6e85
-	rsp = req->rsp;
3c6e85
 	mcp->mb[0] = MBC_ABORT_TARGET;
3c6e85
 	mcp->out_mb = MBX_9|MBX_2|MBX_1|MBX_0;
3c6e85
 	if (HAS_EXTENDED_IDS(vha->hw)) {
3c6e85
@@ -1547,7 +1543,7 @@ qla2x00_abort_target(struct fc_port *fcport, unsigned int l, int tag)
3c6e85
 	}
3c6e85
 
3c6e85
 	/* Issue marker IOCB. */
3c6e85
-	rval2 = qla2x00_marker(vha, req, rsp, fcport->loop_id, 0,
3c6e85
+	rval2 = qla2x00_marker(vha, vha->hw->base_qpair, fcport->loop_id, 0,
3c6e85
 							MK_SYNC_ID);
3c6e85
 	if (rval2 != QLA_SUCCESS) {
3c6e85
 		ql_dbg(ql_dbg_mbx, vha, 0x1040,
3c6e85
@@ -1567,16 +1563,12 @@ qla2x00_lun_reset(struct fc_port *fcport, unsigned int l, int tag)
3c6e85
 	mbx_cmd_t  mc;
3c6e85
 	mbx_cmd_t  *mcp = &mc;
3c6e85
 	scsi_qla_host_t *vha;
3c6e85
-	struct req_que *req;
3c6e85
-	struct rsp_que *rsp;
3c6e85
 
3c6e85
 	vha = fcport->vha;
3c6e85
 
3c6e85
 	ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1042,
3c6e85
 	    "Entered %s.\n", __func__);
3c6e85
 
3c6e85
-	req = vha->hw->req_q_map[0];
3c6e85
-	rsp = req->rsp;
3c6e85
 	mcp->mb[0] = MBC_LUN_RESET;
3c6e85
 	mcp->out_mb = MBX_9|MBX_3|MBX_2|MBX_1|MBX_0;
3c6e85
 	if (HAS_EXTENDED_IDS(vha->hw))
3c6e85
@@ -1596,7 +1588,7 @@ qla2x00_lun_reset(struct fc_port *fcport, unsigned int l, int tag)
3c6e85
 	}
3c6e85
 
3c6e85
 	/* Issue marker IOCB. */
3c6e85
-	rval2 = qla2x00_marker(vha, req, rsp, fcport->loop_id, l,
3c6e85
+	rval2 = qla2x00_marker(vha, vha->hw->base_qpair, fcport->loop_id, l,
3c6e85
 								MK_SYNC_ID_LUN);
3c6e85
 	if (rval2 != QLA_SUCCESS) {
3c6e85
 		ql_dbg(ql_dbg_mbx, vha, 0x1044,
3c6e85
@@ -3188,7 +3180,6 @@ __qla24xx_issue_tmf(char *name, uint32_t type, struct fc_port *fcport,
3c6e85
 	scsi_qla_host_t *vha;
3c6e85
 	struct qla_hw_data *ha;
3c6e85
 	struct req_que *req;
3c6e85
-	struct rsp_que *rsp;
3c6e85
 	struct qla_qpair *qpair;
3c6e85
 
3c6e85
 	vha = fcport->vha;
3c6e85
@@ -3201,10 +3192,7 @@ __qla24xx_issue_tmf(char *name, uint32_t type, struct fc_port *fcport,
3c6e85
 	if (vha->flags.qpairs_available) {
3c6e85
 		/* NPIV port */
3c6e85
 		qpair = vha->qpair;
3c6e85
-		rsp = qpair->rsp;
3c6e85
 		req = qpair->req;
3c6e85
-	} else {
3c6e85
-		rsp = req->rsp;
3c6e85
 	}
3c6e85
 
3c6e85
 	tsk = dma_pool_zalloc(ha->s_dma_pool, GFP_KERNEL, &tsk_dma);
3c6e85
@@ -3261,7 +3249,7 @@ __qla24xx_issue_tmf(char *name, uint32_t type, struct fc_port *fcport,
3c6e85
 	}
3c6e85
 
3c6e85
 	/* Issue marker IOCB. */
3c6e85
-	rval2 = qla2x00_marker(vha, req, rsp, fcport->loop_id, l,
3c6e85
+	rval2 = qla2x00_marker(vha, ha->base_qpair, fcport->loop_id, l,
3c6e85
 	    type == TCF_LUN_RESET ? MK_SYNC_ID_LUN: MK_SYNC_ID);
3c6e85
 	if (rval2 != QLA_SUCCESS) {
3c6e85
 		ql_dbg(ql_dbg_mbx, vha, 0x1099,
3c6e85
-- 
3c6e85
2.13.6
3c6e85