Blame SOURCES/0062-scsi-scsi-qla2xxx-Make-qla2x00_process_response_queu.patch

3c6e85
From f9c796c0dde3f8a4d20562572d77b22e64c21197 Mon Sep 17 00:00:00 2001
3c6e85
From: Himanshu Madhani <hmadhani@redhat.com>
3c6e85
Date: Thu, 1 Aug 2019 15:55:22 -0400
3c6e85
Subject: [PATCH 062/124] [scsi] scsi: qla2xxx: Make
3c6e85
 qla2x00_process_response_queue() easier to read
3c6e85
3c6e85
Message-id: <20190801155618.12650-63-hmadhani@redhat.com>
3c6e85
Patchwork-id: 267840
3c6e85
O-Subject: [RHEL 7.8 e-stor PATCH 062/118] scsi: qla2xxx: Make qla2x00_process_response_queue() easier to read
3c6e85
Bugzilla: 1729270
3c6e85
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
3c6e85
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
3c6e85
3c6e85
From: Bart Van Assche <bvanassche@acm.org>
3c6e85
3c6e85
Bugzilla 1729270
3c6e85
3c6e85
Make qla2x00_process_response_queue() easier to read by splitting this
3c6e85
function. This patch does not change any functionality.
3c6e85
3c6e85
Cc: Himanshu Madhani <hmadhani@marvell.com>
3c6e85
Cc: Giridhar Malavali <gmalavali@marvell.com>
3c6e85
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
3c6e85
Acked-by: Himanshu Madhani <hmadhani@marvell.com>
3c6e85
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
3c6e85
(cherry picked from commit 7b006b9755ac099f0e5b414425534353f620d585)
3c6e85
Signed-off-by: Himanshu Madhani <hmadhani@redhat.com>
3c6e85
Signed-off-by: Jan Stancek <jstancek@redhat.com>
3c6e85
---
3c6e85
 drivers/scsi/qla2xxx/qla_isr.c | 85 +++++++++++++++++++++++-------------------
3c6e85
 1 file changed, 47 insertions(+), 38 deletions(-)
3c6e85
3c6e85
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
3c6e85
index bac8fcdf5356..4c2f21d6735b 100644
3c6e85
--- a/drivers/scsi/qla2xxx/qla_isr.c
3c6e85
+++ b/drivers/scsi/qla2xxx/qla_isr.c
3c6e85
@@ -1971,6 +1971,52 @@ static void qla_ctrlvp_completed(scsi_qla_host_t *vha, struct req_que *req,
3c6e85
 	sp->done(sp, rval);
3c6e85
 }
3c6e85
 
3c6e85
+/* Process a single response queue entry. */
3c6e85
+static void qla2x00_process_response_entry(struct scsi_qla_host *vha,
3c6e85
+					   struct rsp_que *rsp,
3c6e85
+					   sts_entry_t *pkt)
3c6e85
+{
3c6e85
+	sts21_entry_t *sts21_entry;
3c6e85
+	sts22_entry_t *sts22_entry;
3c6e85
+	uint16_t handle_cnt;
3c6e85
+	uint16_t cnt;
3c6e85
+
3c6e85
+	switch (pkt->entry_type) {
3c6e85
+	case STATUS_TYPE:
3c6e85
+		qla2x00_status_entry(vha, rsp, pkt);
3c6e85
+		break;
3c6e85
+	case STATUS_TYPE_21:
3c6e85
+		sts21_entry = (sts21_entry_t *)pkt;
3c6e85
+		handle_cnt = sts21_entry->handle_count;
3c6e85
+		for (cnt = 0; cnt < handle_cnt; cnt++)
3c6e85
+			qla2x00_process_completed_request(vha, rsp->req,
3c6e85
+						sts21_entry->handle[cnt]);
3c6e85
+		break;
3c6e85
+	case STATUS_TYPE_22:
3c6e85
+		sts22_entry = (sts22_entry_t *)pkt;
3c6e85
+		handle_cnt = sts22_entry->handle_count;
3c6e85
+		for (cnt = 0; cnt < handle_cnt; cnt++)
3c6e85
+			qla2x00_process_completed_request(vha, rsp->req,
3c6e85
+						sts22_entry->handle[cnt]);
3c6e85
+		break;
3c6e85
+	case STATUS_CONT_TYPE:
3c6e85
+		qla2x00_status_cont_entry(rsp, (sts_cont_entry_t *)pkt);
3c6e85
+		break;
3c6e85
+	case MBX_IOCB_TYPE:
3c6e85
+		qla2x00_mbx_iocb_entry(vha, rsp->req, (struct mbx_entry *)pkt);
3c6e85
+		break;
3c6e85
+	case CT_IOCB_TYPE:
3c6e85
+		qla2x00_ct_entry(vha, rsp->req, pkt, CT_IOCB_TYPE);
3c6e85
+		break;
3c6e85
+	default:
3c6e85
+		/* Type Not Supported. */
3c6e85
+		ql_log(ql_log_warn, vha, 0x504a,
3c6e85
+		       "Received unknown response pkt type %x entry status=%x.\n",
3c6e85
+		       pkt->entry_type, pkt->entry_status);
3c6e85
+		break;
3c6e85
+	}
3c6e85
+}
3c6e85
+
3c6e85
 /**
3c6e85
  * qla2x00_process_response_queue() - Process response queue entries.
3c6e85
  * @rsp: response queue
3c6e85
@@ -1982,8 +2028,6 @@ qla2x00_process_response_queue(struct rsp_que *rsp)
3c6e85
 	struct qla_hw_data *ha = rsp->hw;
3c6e85
 	struct device_reg_2xxx __iomem *reg = &ha->iobase->isp;
3c6e85
 	sts_entry_t	*pkt;
3c6e85
-	uint16_t        handle_cnt;
3c6e85
-	uint16_t        cnt;
3c6e85
 
3c6e85
 	vha = pci_get_drvdata(ha->pdev);
3c6e85
 
3c6e85
@@ -2008,42 +2052,7 @@ qla2x00_process_response_queue(struct rsp_que *rsp)
3c6e85
 			continue;
3c6e85
 		}
3c6e85
 
3c6e85
-		switch (pkt->entry_type) {
3c6e85
-		case STATUS_TYPE:
3c6e85
-			qla2x00_status_entry(vha, rsp, pkt);
3c6e85
-			break;
3c6e85
-		case STATUS_TYPE_21:
3c6e85
-			handle_cnt = ((sts21_entry_t *)pkt)->handle_count;
3c6e85
-			for (cnt = 0; cnt < handle_cnt; cnt++) {
3c6e85
-				qla2x00_process_completed_request(vha, rsp->req,
3c6e85
-				    ((sts21_entry_t *)pkt)->handle[cnt]);
3c6e85
-			}
3c6e85
-			break;
3c6e85
-		case STATUS_TYPE_22:
3c6e85
-			handle_cnt = ((sts22_entry_t *)pkt)->handle_count;
3c6e85
-			for (cnt = 0; cnt < handle_cnt; cnt++) {
3c6e85
-				qla2x00_process_completed_request(vha, rsp->req,
3c6e85
-				    ((sts22_entry_t *)pkt)->handle[cnt]);
3c6e85
-			}
3c6e85
-			break;
3c6e85
-		case STATUS_CONT_TYPE:
3c6e85
-			qla2x00_status_cont_entry(rsp, (sts_cont_entry_t *)pkt);
3c6e85
-			break;
3c6e85
-		case MBX_IOCB_TYPE:
3c6e85
-			qla2x00_mbx_iocb_entry(vha, rsp->req,
3c6e85
-			    (struct mbx_entry *)pkt);
3c6e85
-			break;
3c6e85
-		case CT_IOCB_TYPE:
3c6e85
-			qla2x00_ct_entry(vha, rsp->req, pkt, CT_IOCB_TYPE);
3c6e85
-			break;
3c6e85
-		default:
3c6e85
-			/* Type Not Supported. */
3c6e85
-			ql_log(ql_log_warn, vha, 0x504a,
3c6e85
-			    "Received unknown response pkt type %x "
3c6e85
-			    "entry status=%x.\n",
3c6e85
-			    pkt->entry_type, pkt->entry_status);
3c6e85
-			break;
3c6e85
-		}
3c6e85
+		qla2x00_process_response_entry(vha, rsp, pkt);
3c6e85
 		((response_t *)pkt)->signature = RESPONSE_PROCESSED;
3c6e85
 		wmb();
3c6e85
 	}
3c6e85
-- 
3c6e85
2.13.6
3c6e85