linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch.
@ 2012-11-21  7:40 Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 01/19] qla2xxx: Clear unsupported 'states' during Get-FW-State queries Saurav Kashyap
                   ` (18 more replies)
  0 siblings, 19 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

From: Saurav Kashyap <saurav.kashyap@qlogic.com> 

Hi James,

Please apply the following patches to the scsi tree at your earliest
convenience for inclusion in the next mainline merge window.

Thanks,
~Saurav 


Andrew Vasquez (2):
  qla2xxx: Clear unsupported 'states' during Get-FW-State queries.
  qla2xxx: Use correct Request-Q-Out register during bidirectional
    request processing

Armen Baloyan (1):
  qla2xxx: No fcport FC-4 type assignment in GA_NXT response.

Chad Dupuis (3):
  qla2xxx: Remove spurious taking of ha->vport_slock spinlock.
  qla2xxx: Move noisy Start scsi failed messages to verbose logging
    level.
  qla2xxx: Update ql2xextended_error_logging parameter description with
    new option.

Joe Carnuccio (4):
  qla2xxx: Add acquiring of risc semaphore before doing ISP reset.
  qla2xxx: Move marking fcport online ahead of setting iiDMA speed.
  qla2xxx: Add 16Gb/s case to get port speed capability.
  qla2xxx: Parameterize the link speed of hba rather than fcport.

Masanari Iida (1):
  qla2xxx: Fix typo in qla2xxx driver.

Saurav Kashyap (8):
  qla2xxx: Honor status value of 2 for report-id acquisition.
  qla2xxx: Fix for warnings reported by sparse.
  qla2xxx: Fix coccinelle warnings in qla2x00_relogin.
  qla2xxx: Add Gen3 PCIe speed 8GT/s to the log message.
  qla2xxx: Fix typo in qla83xx_fw_dump function.
  qla2xxx: Ignore driver ack bit if corresponding presence bit is not
    set.
  qla2xxx: Dont clear drv active on iospace config failure.
  qla2xxx: Display that driver is operating in legacy interrupt mode.

 drivers/scsi/qla2xxx/qla_dbg.c    |    8 +-
 drivers/scsi/qla2xxx/qla_def.h    |    4 +-
 drivers/scsi/qla2xxx/qla_fw.h     |   21 +++++
 drivers/scsi/qla2xxx/qla_gbl.h    |    3 +-
 drivers/scsi/qla2xxx/qla_gs.c     |    6 ++
 drivers/scsi/qla2xxx/qla_init.c   |  153 ++++++++++++++++++++++---------------
 drivers/scsi/qla2xxx/qla_iocb.c   |   15 +---
 drivers/scsi/qla2xxx/qla_isr.c    |   42 +++++-----
 drivers/scsi/qla2xxx/qla_mbx.c    |    6 +-
 drivers/scsi/qla2xxx/qla_nx.c     |   83 ++++++++-------------
 drivers/scsi/qla2xxx/qla_os.c     |   50 ++++++++-----
 drivers/scsi/qla2xxx/qla_target.c |    2 +-
 12 files changed, 214 insertions(+), 179 deletions(-)

-- 
1.7.7


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 01/19] qla2xxx: Clear unsupported 'states' during Get-FW-State queries.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 02/19] qla2xxx: Remove spurious taking of ha->vport_slock spinlock Saurav Kashyap
                   ` (17 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

From: Andrew Vasquez <andrew.vasquez@qlogic.com>

Rather than returning stale mailbox values.

Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_init.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 48fca47..214c0e9 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -1971,6 +1971,7 @@ qla2x00_fw_ready(scsi_qla_host_t *vha)
 		    "Waiting for LIP to complete.\n");
 
 	do {
+		memset(state, -1, sizeof(state));
 		rval = qla2x00_get_firmware_state(vha, state);
 		if (rval == QLA_SUCCESS) {
 			if (state[0] < FSTATE_LOSS_OF_SYNC) {
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 02/19] qla2xxx: Remove spurious taking of ha->vport_slock spinlock.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 01/19] qla2xxx: Clear unsupported 'states' during Get-FW-State queries Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 03/19] qla2xxx: Honor status value of 2 for report-id acquisition Saurav Kashyap
                   ` (16 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

From: Chad Dupuis <chad.dupuis@qlogic.com>

Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_init.c |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 214c0e9..39044fc 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -1888,10 +1888,6 @@ qla2x00_init_rings(scsi_qla_host_t *vha)
 		qla2x00_init_response_q_entries(rsp);
 	}
 
-	spin_lock(&ha->vport_slock);
-
-	spin_unlock(&ha->vport_slock);
-
 	ha->tgt.atio_ring_ptr = ha->tgt.atio_ring;
 	ha->tgt.atio_ring_index = 0;
 	/* Initialize ATIO queue entries */
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 03/19] qla2xxx: Honor status value of 2 for report-id acquisition.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 01/19] qla2xxx: Clear unsupported 'states' during Get-FW-State queries Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 02/19] qla2xxx: Remove spurious taking of ha->vport_slock spinlock Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 04/19] qla2xxx: Fix for warnings reported by sparse Saurav Kashyap
                   ` (15 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

The value of 2 is informational message and it means that port id has
changed. The driver should honor the value and continue its normal course.

Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_mbx.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
index 18c509f..bdf7fa7 100644
--- a/drivers/scsi/qla2xxx/qla_mbx.c
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
@@ -3122,7 +3122,7 @@ qla24xx_report_id_acquisition(scsi_qla_host_t *vha,
 		if (vp_idx == 0 && (MSB(stat) != 1))
 			goto reg_needed;
 
-		if (MSB(stat) != 0) {
+		if (MSB(stat) != 0 && MSB(stat) != 2) {
 			ql_dbg(ql_dbg_mbx, vha, 0x10ba,
 			    "Could not acquire ID for VP[%d].\n", vp_idx);
 			return;
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 04/19] qla2xxx: Fix for warnings reported by sparse.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
                   ` (2 preceding siblings ...)
  2012-11-21  7:40 ` [PATCH 03/19] qla2xxx: Honor status value of 2 for report-id acquisition Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 05/19] qla2xxx: No fcport FC-4 type assignment in GA_NXT response Saurav Kashyap
                   ` (14 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_dbg.c    |    4 +-
 drivers/scsi/qla2xxx/qla_def.h    |    4 +-
 drivers/scsi/qla2xxx/qla_gbl.h    |    1 -
 drivers/scsi/qla2xxx/qla_init.c   |   62 +++--------------------------
 drivers/scsi/qla2xxx/qla_iocb.c   |    4 +-
 drivers/scsi/qla2xxx/qla_isr.c    |    2 +-
 drivers/scsi/qla2xxx/qla_mbx.c    |    4 +-
 drivers/scsi/qla2xxx/qla_nx.c     |   77 ++++++++++++++-----------------------
 drivers/scsi/qla2xxx/qla_os.c     |   15 ++++---
 drivers/scsi/qla2xxx/qla_target.c |    2 +-
 10 files changed, 54 insertions(+), 121 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_dbg.c b/drivers/scsi/qla2xxx/qla_dbg.c
index 44efe3c..04b2823 100644
--- a/drivers/scsi/qla2xxx/qla_dbg.c
+++ b/drivers/scsi/qla2xxx/qla_dbg.c
@@ -526,8 +526,8 @@ qla25xx_copy_mq(struct qla_hw_data *ha, void *ptr, uint32_t **last_chain)
 		ha->max_req_queues : ha->max_rsp_queues;
 	mq->count = htonl(que_cnt);
 	for (cnt = 0; cnt < que_cnt; cnt++) {
-		reg = (struct device_reg_25xxmq *) ((void *)
-			ha->mqiobase + cnt * QLA_QUE_PAGE);
+		reg = (struct device_reg_25xxmq __iomem *)
+			(ha->mqiobase + cnt * QLA_QUE_PAGE);
 		que_idx = cnt * 4;
 		mq->qregs[que_idx] = htonl(RD_REG_DWORD(&reg->req_q_in));
 		mq->qregs[que_idx+1] = htonl(RD_REG_DWORD(&reg->req_q_out));
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
index a9725bf..6e7727f 100644
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -2486,9 +2486,9 @@ struct bidi_statistics {
 #define QLA_MAX_QUEUES 256
 #define ISP_QUE_REG(ha, id) \
 	((ha->mqenable || IS_QLA83XX(ha)) ? \
-	((void *)(ha->mqiobase) +\
+	((device_reg_t __iomem *)(ha->mqiobase) +\
 	(QLA_QUE_PAGE * id)) :\
-	((void *)(ha->iobase)))
+	((device_reg_t __iomem *)(ha->iobase)))
 #define QLA_REQ_QUE_ID(tag) \
 	((tag < QLA_MAX_QUEUES && tag > 0) ? tag : 0)
 #define QLA_DEFAULT_QUE_QOS 5
diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
index 6acb397..dfad959 100644
--- a/drivers/scsi/qla2xxx/qla_gbl.h
+++ b/drivers/scsi/qla2xxx/qla_gbl.h
@@ -598,7 +598,6 @@ extern void qla82xx_init_flags(struct qla_hw_data *);
 
 /* ISP 8021 hardware related */
 extern void qla82xx_set_drv_active(scsi_qla_host_t *);
-extern void qla82xx_crb_win_unlock(struct qla_hw_data *);
 extern int qla82xx_wr_32(struct qla_hw_data *, ulong, u32);
 extern int qla82xx_rd_32(struct qla_hw_data *, ulong);
 extern int qla82xx_rdmem(struct qla_hw_data *, u64, void *, int);
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 39044fc..b7e42a8 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -429,7 +429,7 @@ qla2x00_async_adisc_done(struct scsi_qla_host *vha, fc_port_t *fcport,
 /*                QLogic ISP2x00 Hardware Support Functions.                */
 /****************************************************************************/
 
-int
+static int
 qla83xx_nic_core_fw_load(scsi_qla_host_t *vha)
 {
 	int rval = QLA_SUCCESS;
@@ -997,7 +997,7 @@ qla2x00_reset_chip(scsi_qla_host_t *vha)
  *
  * Returns 0 on success.
  */
-int
+static int
 qla81xx_reset_mpi(scsi_qla_host_t *vha)
 {
 	uint16_t mb[4] = {0x1010, 0, 1, 0};
@@ -3865,7 +3865,7 @@ qla83xx_reset_ownership(scsi_qla_host_t *vha)
 	}
 }
 
-int
+static int
 __qla83xx_set_drv_ack(scsi_qla_host_t *vha)
 {
 	int rval = QLA_SUCCESS;
@@ -3881,19 +3881,7 @@ __qla83xx_set_drv_ack(scsi_qla_host_t *vha)
 	return rval;
 }
 
-int
-qla83xx_set_drv_ack(scsi_qla_host_t *vha)
-{
-	int rval = QLA_SUCCESS;
-
-	qla83xx_idc_lock(vha, 0);
-	rval = __qla83xx_set_drv_ack(vha);
-	qla83xx_idc_unlock(vha, 0);
-
-	return rval;
-}
-
-int
+static int
 __qla83xx_clear_drv_ack(scsi_qla_host_t *vha)
 {
 	int rval = QLA_SUCCESS;
@@ -3909,19 +3897,7 @@ __qla83xx_clear_drv_ack(scsi_qla_host_t *vha)
 	return rval;
 }
 
-int
-qla83xx_clear_drv_ack(scsi_qla_host_t *vha)
-{
-	int rval = QLA_SUCCESS;
-
-	qla83xx_idc_lock(vha, 0);
-	rval = __qla83xx_clear_drv_ack(vha);
-	qla83xx_idc_unlock(vha, 0);
-
-	return rval;
-}
-
-const char *
+static const char *
 qla83xx_dev_state_to_string(uint32_t dev_state)
 {
 	switch (dev_state) {
@@ -3975,7 +3951,7 @@ qla83xx_idc_audit(scsi_qla_host_t *vha, int audit_type)
 }
 
 /* Assumes idc_lock always held on entry */
-int
+static int
 qla83xx_initiating_reset(scsi_qla_host_t *vha)
 {
 	struct qla_hw_data *ha = vha->hw;
@@ -4023,36 +3999,12 @@ __qla83xx_set_idc_control(scsi_qla_host_t *vha, uint32_t idc_control)
 }
 
 int
-qla83xx_set_idc_control(scsi_qla_host_t *vha, uint32_t idc_control)
-{
-	int rval = QLA_SUCCESS;
-
-	qla83xx_idc_lock(vha, 0);
-	rval = __qla83xx_set_idc_control(vha, idc_control);
-	qla83xx_idc_unlock(vha, 0);
-
-	return rval;
-}
-
-int
 __qla83xx_get_idc_control(scsi_qla_host_t *vha, uint32_t *idc_control)
 {
 	return qla83xx_rd_reg(vha, QLA83XX_IDC_CONTROL, idc_control);
 }
 
-int
-qla83xx_get_idc_control(scsi_qla_host_t *vha, uint32_t *idc_control)
-{
-	int rval = QLA_SUCCESS;
-
-	qla83xx_idc_lock(vha, 0);
-	rval = __qla83xx_get_idc_control(vha, idc_control);
-	qla83xx_idc_unlock(vha, 0);
-
-	return rval;
-}
-
-int
+static int
 qla83xx_check_driver_presence(scsi_qla_host_t *vha)
 {
 	uint32_t drv_presence = 0;
diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c
index 03b7526..b610404 100644
--- a/drivers/scsi/qla2xxx/qla_iocb.c
+++ b/drivers/scsi/qla2xxx/qla_iocb.c
@@ -520,7 +520,7 @@ __qla2x00_marker(struct scsi_qla_host *vha, struct req_que *req,
 
 	mrk24 = NULL;
 	req = ha->req_q_map[0];
-	mrk = (mrk_entry_t *)qla2x00_alloc_iocbs(vha, 0);
+	mrk = (mrk_entry_t *)qla2x00_alloc_iocbs(vha, NULL);
 	if (mrk == NULL) {
 		ql_log(ql_log_warn, base_vha, 0x3026,
 		    "Failed to allocate Marker IOCB.\n");
@@ -2551,7 +2551,7 @@ sufficient_dsds:
 			(unsigned long __iomem *)ha->nxdb_wr_ptr,
 			dbval);
 		wmb();
-		while (RD_REG_DWORD(ha->nxdb_rd_ptr) != dbval) {
+		while (RD_REG_DWORD((void __iomem *)ha->nxdb_rd_ptr) != dbval) {
 			WRT_REG_DWORD(
 				(unsigned long __iomem *)ha->nxdb_wr_ptr,
 				dbval);
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index 5733811..bb611e2 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -337,7 +337,7 @@ qla2x00_get_link_speed_str(struct qla_hw_data *ha)
 	return link_speed;
 }
 
-void
+static void
 qla83xx_handle_8200_aen(scsi_qla_host_t *vha, uint16_t *mb)
 {
 	struct qla_hw_data *ha = vha->hw;
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
index bdf7fa7..68c55ea 100644
--- a/drivers/scsi/qla2xxx/qla_mbx.c
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
@@ -3536,7 +3536,7 @@ qla25xx_init_req_que(struct scsi_qla_host *vha, struct req_que *req)
 	if (IS_QLA83XX(ha))
 		mcp->mb[15] = 0;
 
-	reg = (struct device_reg_25xxmq *)((void *)(ha->mqiobase) +
+	reg = (struct device_reg_25xxmq __iomem *)((ha->mqiobase) +
 		QLA_QUE_PAGE * req->id);
 
 	mcp->mb[4] = req->id;
@@ -3605,7 +3605,7 @@ qla25xx_init_rsp_que(struct scsi_qla_host *vha, struct rsp_que *rsp)
 	if (IS_QLA83XX(ha))
 		mcp->mb[15] = 0;
 
-	reg = (struct device_reg_25xxmq *)((void *)(ha->mqiobase) +
+	reg = (struct device_reg_25xxmq __iomem *)((ha->mqiobase) +
 		QLA_QUE_PAGE * rsp->id);
 
 	mcp->mb[4] = rsp->id;
diff --git a/drivers/scsi/qla2xxx/qla_nx.c b/drivers/scsi/qla2xxx/qla_nx.c
index 14cd361..f0fdc22 100644
--- a/drivers/scsi/qla2xxx/qla_nx.c
+++ b/drivers/scsi/qla2xxx/qla_nx.c
@@ -36,7 +36,7 @@
 
 #define MAX_CRB_XFORM 60
 static unsigned long crb_addr_xform[MAX_CRB_XFORM];
-int qla82xx_crb_table_initialized;
+static int qla82xx_crb_table_initialized;
 
 #define qla82xx_crb_addr_transform(name) \
 	(crb_addr_xform[QLA82XX_HW_PX_MAP_CRB_##name] = \
@@ -102,7 +102,7 @@ static void qla82xx_crb_addr_transform_setup(void)
 	qla82xx_crb_table_initialized = 1;
 }
 
-struct crb_128M_2M_block_map crb_128M_2M_map[64] = {
+static struct crb_128M_2M_block_map crb_128M_2M_map[64] = {
 	{{{0, 0,         0,         0} } },
 	{{{1, 0x0100000, 0x0102000, 0x120000},
 	{1, 0x0110000, 0x0120000, 0x130000},
@@ -262,7 +262,7 @@ struct crb_128M_2M_block_map crb_128M_2M_map[64] = {
 /*
  * top 12 bits of crb internal address (hub, agent)
  */
-unsigned qla82xx_crb_hub_agt[64] = {
+static unsigned qla82xx_crb_hub_agt[64] = {
 	0,
 	QLA82XX_HW_CRB_HUB_AGT_ADR_PS,
 	QLA82XX_HW_CRB_HUB_AGT_ADR_MN,
@@ -330,7 +330,7 @@ unsigned qla82xx_crb_hub_agt[64] = {
 };
 
 /* Device states */
-char *q_dev_state[] = {
+static char *q_dev_state[] = {
 	 "Unknown",
 	"Cold",
 	"Initializing",
@@ -359,12 +359,13 @@ qla82xx_pci_set_crbwindow_2M(struct qla_hw_data *ha, ulong *off)
 
 	ha->crb_win = CRB_HI(*off);
 	writel(ha->crb_win,
-		(void *)(CRB_WINDOW_2M + ha->nx_pcibase));
+		(void __iomem *)(CRB_WINDOW_2M + ha->nx_pcibase));
 
 	/* Read back value to make sure write has gone through before trying
 	 * to use it.
 	 */
-	win_read = RD_REG_DWORD((void *)(CRB_WINDOW_2M + ha->nx_pcibase));
+	win_read = RD_REG_DWORD((void __iomem *)
+	    (CRB_WINDOW_2M + ha->nx_pcibase));
 	if (win_read != ha->crb_win) {
 		ql_dbg(ql_dbg_p3p, vha, 0xb000,
 		    "%s: Written crbwin (0x%x) "
@@ -567,7 +568,7 @@ qla82xx_pci_mem_bound_check(struct qla_hw_data *ha,
 		return 1;
 }
 
-int qla82xx_pci_set_window_warning_count;
+static int qla82xx_pci_set_window_warning_count;
 
 static unsigned long
 qla82xx_pci_set_window(struct qla_hw_data *ha, unsigned long long addr)
@@ -677,10 +678,10 @@ static int qla82xx_pci_mem_read_direct(struct qla_hw_data *ha,
 	u64 off, void *data, int size)
 {
 	unsigned long   flags;
-	void           *addr = NULL;
+	void __iomem *addr = NULL;
 	int             ret = 0;
 	u64             start;
-	uint8_t         *mem_ptr = NULL;
+	uint8_t __iomem  *mem_ptr = NULL;
 	unsigned long   mem_base;
 	unsigned long   mem_page;
 	scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev);
@@ -712,7 +713,7 @@ static int qla82xx_pci_mem_read_direct(struct qla_hw_data *ha,
 		mem_ptr = ioremap(mem_base + mem_page, PAGE_SIZE * 2);
 	else
 		mem_ptr = ioremap(mem_base + mem_page, PAGE_SIZE);
-	if (mem_ptr == 0UL) {
+	if (mem_ptr == NULL) {
 		*(u8  *)data = 0;
 		return -1;
 	}
@@ -749,10 +750,10 @@ qla82xx_pci_mem_write_direct(struct qla_hw_data *ha,
 	u64 off, void *data, int size)
 {
 	unsigned long   flags;
-	void           *addr = NULL;
+	void  __iomem *addr = NULL;
 	int             ret = 0;
 	u64             start;
-	uint8_t         *mem_ptr = NULL;
+	uint8_t __iomem *mem_ptr = NULL;
 	unsigned long   mem_base;
 	unsigned long   mem_page;
 	scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev);
@@ -784,7 +785,7 @@ qla82xx_pci_mem_write_direct(struct qla_hw_data *ha,
 		mem_ptr = ioremap(mem_base + mem_page, PAGE_SIZE*2);
 	else
 		mem_ptr = ioremap(mem_base + mem_page, PAGE_SIZE);
-	if (mem_ptr == 0UL)
+	if (mem_ptr == NULL)
 		return -1;
 
 	addr = mem_ptr;
@@ -908,24 +909,24 @@ qla82xx_wait_rom_done(struct qla_hw_data *ha)
 	return 0;
 }
 
-int
+static int
 qla82xx_md_rw_32(struct qla_hw_data *ha, uint32_t off, u32 data, uint8_t flag)
 {
 	uint32_t  off_value, rval = 0;
 
-	WRT_REG_DWORD((void *)(CRB_WINDOW_2M + ha->nx_pcibase),
+	WRT_REG_DWORD((void __iomem *)(CRB_WINDOW_2M + ha->nx_pcibase),
 	    (off & 0xFFFF0000));
 
 	/* Read back value to make sure write has gone through */
-	RD_REG_DWORD((void *)(CRB_WINDOW_2M + ha->nx_pcibase));
+	RD_REG_DWORD((void __iomem *)(CRB_WINDOW_2M + ha->nx_pcibase));
 	off_value  = (off & 0x0000FFFF);
 
 	if (flag)
-		WRT_REG_DWORD((void *)
+		WRT_REG_DWORD((void __iomem *)
 		    (off_value + CRB_INDIRECT_2M + ha->nx_pcibase),
 		    data);
 	else
-		rval = RD_REG_DWORD((void *)
+		rval = RD_REG_DWORD((void __iomem *)
 		    (off_value + CRB_INDIRECT_2M + ha->nx_pcibase));
 
 	return rval;
@@ -1764,14 +1765,6 @@ void qla82xx_config_rings(struct scsi_qla_host *vha)
 	WRT_REG_DWORD((unsigned long  __iomem *)&reg->rsp_q_out[0], 0);
 }
 
-void qla82xx_reset_adapter(struct scsi_qla_host *vha)
-{
-	struct qla_hw_data *ha = vha->hw;
-	vha->flags.online = 0;
-	qla2x00_try_to_stop_firmware(vha);
-	ha->isp_ops->disable_intrs(ha);
-}
-
 static int
 qla82xx_fw_load_from_blob(struct qla_hw_data *ha)
 {
@@ -1856,7 +1849,7 @@ qla82xx_set_product_offset(struct qla_hw_data *ha)
 	return -1;
 }
 
-int
+static int
 qla82xx_validate_firmware_blob(scsi_qla_host_t *vha, uint8_t fw_type)
 {
 	__le32 val;
@@ -1961,20 +1954,6 @@ qla82xx_check_rcvpeg_state(struct qla_hw_data *ha)
 }
 
 /* ISR related functions */
-uint32_t qla82xx_isr_int_target_mask_enable[8] = {
-	ISR_INT_TARGET_MASK, ISR_INT_TARGET_MASK_F1,
-	ISR_INT_TARGET_MASK_F2, ISR_INT_TARGET_MASK_F3,
-	ISR_INT_TARGET_MASK_F4, ISR_INT_TARGET_MASK_F5,
-	ISR_INT_TARGET_MASK_F7, ISR_INT_TARGET_MASK_F7
-};
-
-uint32_t qla82xx_isr_int_target_status[8] = {
-	ISR_INT_TARGET_STATUS, ISR_INT_TARGET_STATUS_F1,
-	ISR_INT_TARGET_STATUS_F2, ISR_INT_TARGET_STATUS_F3,
-	ISR_INT_TARGET_STATUS_F4, ISR_INT_TARGET_STATUS_F5,
-	ISR_INT_TARGET_STATUS_F7, ISR_INT_TARGET_STATUS_F7
-};
-
 static struct qla82xx_legacy_intr_set legacy_intr[] = \
 	QLA82XX_LEGACY_INTR_CONFIG;
 
@@ -2813,7 +2792,7 @@ qla82xx_start_iocbs(scsi_qla_host_t *vha)
 	else {
 		WRT_REG_DWORD((unsigned long __iomem *)ha->nxdb_wr_ptr, dbval);
 		wmb();
-		while (RD_REG_DWORD(ha->nxdb_rd_ptr) != dbval) {
+		while (RD_REG_DWORD((void __iomem *)ha->nxdb_rd_ptr) != dbval) {
 			WRT_REG_DWORD((unsigned long  __iomem *)ha->nxdb_wr_ptr,
 				dbval);
 			wmb();
@@ -2821,7 +2800,8 @@ qla82xx_start_iocbs(scsi_qla_host_t *vha)
 	}
 }
 
-void qla82xx_rom_lock_recovery(struct qla_hw_data *ha)
+static void
+qla82xx_rom_lock_recovery(struct qla_hw_data *ha)
 {
 	scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev);
 
@@ -3177,7 +3157,7 @@ qla82xx_check_md_needed(scsi_qla_host_t *vha)
 }
 
 
-int
+static int
 qla82xx_check_fw_alive(scsi_qla_host_t *vha)
 {
 	uint32_t fw_heartbeat_counter;
@@ -3817,7 +3797,8 @@ qla82xx_minidump_process_rdocm(scsi_qla_host_t *vha,
 	loop_cnt = ocm_hdr->op_count;
 
 	for (i = 0; i < loop_cnt; i++) {
-		r_value = RD_REG_DWORD((void *)(r_addr + ha->nx_pcibase));
+		r_value = RD_REG_DWORD((void __iomem *)
+		    (r_addr + ha->nx_pcibase));
 		*data_ptr++ = cpu_to_le32(r_value);
 		r_addr += r_stride;
 	}
@@ -4376,7 +4357,7 @@ qla82xx_md_free(scsi_qla_host_t *vha)
 		    ha->md_tmplt_hdr, ha->md_template_size / 1024);
 		dma_free_coherent(&ha->pdev->dev, ha->md_template_size,
 		    ha->md_tmplt_hdr, ha->md_tmplt_hdr_dma);
-		ha->md_tmplt_hdr = 0;
+		ha->md_tmplt_hdr = NULL;
 	}
 
 	/* Release the template data buffer allocated */
@@ -4386,7 +4367,7 @@ qla82xx_md_free(scsi_qla_host_t *vha)
 		    ha->md_dump, ha->md_dump_size / 1024);
 		vfree(ha->md_dump);
 		ha->md_dump_size = 0;
-		ha->md_dump = 0;
+		ha->md_dump = NULL;
 	}
 }
 
@@ -4423,7 +4404,7 @@ qla82xx_md_prep(scsi_qla_host_t *vha)
 				dma_free_coherent(&ha->pdev->dev,
 				    ha->md_template_size,
 				    ha->md_tmplt_hdr, ha->md_tmplt_hdr_dma);
-				ha->md_tmplt_hdr = 0;
+				ha->md_tmplt_hdr = NULL;
 			}
 
 		}
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index f4b1fc8..0cdc6e2 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -41,7 +41,7 @@ static struct kmem_cache *ctx_cachep;
  */
 int ql_errlev = ql_log_all;
 
-int ql2xenableclass2;
+static int ql2xenableclass2;
 module_param(ql2xenableclass2, int, S_IRUGO|S_IRUSR);
 MODULE_PARM_DESC(ql2xenableclass2,
 		"Specify if Class 2 operations are supported from the very "
@@ -3835,7 +3835,7 @@ qla83xx_idc_state_handler_work(struct work_struct *work)
 	qla83xx_idc_unlock(base_vha, 0);
 }
 
-int
+static int
 qla83xx_check_nic_core_fw_alive(scsi_qla_host_t *base_vha)
 {
 	int rval = QLA_SUCCESS;
@@ -3953,7 +3953,7 @@ qla83xx_wait_logic(void)
 	}
 }
 
-int
+static int
 qla83xx_force_lock_recovery(scsi_qla_host_t *base_vha)
 {
 	int rval;
@@ -4012,7 +4012,7 @@ qla83xx_force_lock_recovery(scsi_qla_host_t *base_vha)
 	return rval;
 }
 
-int
+static int
 qla83xx_idc_lock_recovery(scsi_qla_host_t *base_vha)
 {
 	int rval = QLA_SUCCESS;
@@ -4211,7 +4211,7 @@ qla83xx_clear_drv_presence(scsi_qla_host_t *vha)
 	return rval;
 }
 
-void
+static void
 qla83xx_need_reset_handler(scsi_qla_host_t *vha)
 {
 	struct qla_hw_data *ha = vha->hw;
@@ -4250,7 +4250,7 @@ qla83xx_need_reset_handler(scsi_qla_host_t *vha)
 	ql_log(ql_log_info, vha, 0xb068, "HW State: COLD/RE-INIT.\n");
 }
 
-int
+static int
 qla83xx_device_bootstrap(scsi_qla_host_t *vha)
 {
 	int rval = QLA_SUCCESS;
@@ -4986,7 +4986,8 @@ qla2xxx_pci_mmio_enabled(struct pci_dev *pdev)
 		return PCI_ERS_RESULT_RECOVERED;
 }
 
-uint32_t qla82xx_error_recovery(scsi_qla_host_t *base_vha)
+static uint32_t
+qla82xx_error_recovery(scsi_qla_host_t *base_vha)
 {
 	uint32_t rval = QLA_FUNCTION_FAILED;
 	uint32_t drv_active = 0;
diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c
index 62aa558..dc98ec9 100644
--- a/drivers/scsi/qla2xxx/qla_target.c
+++ b/drivers/scsi/qla2xxx/qla_target.c
@@ -1029,7 +1029,7 @@ void qlt_stop_phase2(struct qla_tgt *tgt)
 EXPORT_SYMBOL(qlt_stop_phase2);
 
 /* Called from qlt_remove_target() -> qla2x00_remove_one() */
-void qlt_release(struct qla_tgt *tgt)
+static void qlt_release(struct qla_tgt *tgt)
 {
 	struct qla_hw_data *ha = tgt->ha;
 
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 05/19] qla2xxx: No fcport FC-4 type assignment in GA_NXT response.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
                   ` (3 preceding siblings ...)
  2012-11-21  7:40 ` [PATCH 04/19] qla2xxx: Fix for warnings reported by sparse Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 06/19] qla2xxx: Fix coccinelle warnings in qla2x00_relogin Saurav Kashyap
                   ` (13 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

From: Armen Baloyan <armen.baloyan@qlogic.com>

Signed-off-by: Armen Baloyan <armen.baloyan@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_gs.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c
index f4e4bd7..c51929c 100644
--- a/drivers/scsi/qla2xxx/qla_gs.c
+++ b/drivers/scsi/qla2xxx/qla_gs.c
@@ -218,6 +218,9 @@ qla2x00_ga_nxt(scsi_qla_host_t *vha, fc_port_t *fcport)
 		memcpy(fcport->port_name, ct_rsp->rsp.ga_nxt.port_name,
 		    WWN_SIZE);
 
+		fcport->fc4_type = (ct_rsp->rsp.ga_nxt.fc4_types[2] & BIT_0) ?
+		    FC4_TYPE_FCP_SCSI : FC4_TYPE_OTHER;
+
 		if (ct_rsp->rsp.ga_nxt.port_type != NS_N_PORT_TYPE &&
 		    ct_rsp->rsp.ga_nxt.port_type != NS_NL_PORT_TYPE)
 			fcport->d_id.b.domain = 0xf0;
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 06/19] qla2xxx: Fix coccinelle warnings in qla2x00_relogin.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
                   ` (4 preceding siblings ...)
  2012-11-21  7:40 ` [PATCH 05/19] qla2xxx: No fcport FC-4 type assignment in GA_NXT response Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 07/19] qla2xxx: Move noisy Start scsi failed messages to verbose logging level Saurav Kashyap
                   ` (12 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

Reported-by: Fengguang Wu <Fengguang.wu@intel.com>
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_os.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 0cdc6e2..132556b 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -3720,10 +3720,9 @@ void qla2x00_relogin(struct scsi_qla_host *vha)
 						if (fcport->flags &
 						    FCF_FCP2_DEVICE)
 							opts |= BIT_1;
-							status2 =
-							    qla2x00_get_port_database(
-								vha, fcport,
-								opts);
+						status2 =
+						    qla2x00_get_port_database(
+							vha, fcport, opts);
 						if (status2 != QLA_SUCCESS)
 							status = 1;
 					}
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 07/19] qla2xxx: Move noisy Start scsi failed messages to verbose logging level.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
                   ` (5 preceding siblings ...)
  2012-11-21  7:40 ` [PATCH 06/19] qla2xxx: Fix coccinelle warnings in qla2x00_relogin Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 08/19] qla2xxx: Use correct Request-Q-Out register during bidirectional request processing Saurav Kashyap
                   ` (11 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

From: Chad Dupuis <chad.dupuis@qlogic.com>

This message can fill up the system logs and is not a common occurrence so move
it to the verbose logging level.

Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_os.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 132556b..e4fd192 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -719,7 +719,7 @@ qla2xxx_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd)
 
 	rval = ha->isp_ops->start_scsi(sp);
 	if (rval != QLA_SUCCESS) {
-		ql_dbg(ql_dbg_io, vha, 0x3013,
+		ql_dbg(ql_dbg_io + ql_dbg_verbose, vha, 0x3013,
 		    "Start scsi failed rval=%d for cmd=%p.\n", rval, cmd);
 		goto qc24_host_busy_free_sp;
 	}
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 08/19] qla2xxx: Use correct Request-Q-Out register during bidirectional request processing
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
                   ` (6 preceding siblings ...)
  2012-11-21  7:40 ` [PATCH 07/19] qla2xxx: Move noisy Start scsi failed messages to verbose logging level Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 09/19] qla2xxx: Add Gen3 PCIe speed 8GT/s to the log message Saurav Kashyap
                   ` (10 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

From: Andrew Vasquez <andrew.vasquez@qlogic.com>

Original code was not corrected for ISP83xx support. Instead code should used
the cached reference from the req_que structure, rather than the legacy
'if (ISP-TYPE(X))... else if (ISP-TYPE(Y))...' codes.

Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_iocb.c |   11 +----------
 1 files changed, 1 insertions(+), 10 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c
index b610404..a481684 100644
--- a/drivers/scsi/qla2xxx/qla_iocb.c
+++ b/drivers/scsi/qla2xxx/qla_iocb.c
@@ -2748,7 +2748,6 @@ qla2x00_start_bidir(srb_t *sp, struct scsi_qla_host *vha, uint32_t tot_dsds)
 	struct rsp_que *rsp;
 	struct req_que *req;
 	int rval = EXT_STATUS_OK;
-	device_reg_t __iomem *reg = ISP_QUE_REG(ha, vha->req->id);
 
 	rval = QLA_SUCCESS;
 
@@ -2786,15 +2785,7 @@ qla2x00_start_bidir(srb_t *sp, struct scsi_qla_host *vha, uint32_t tot_dsds)
 
 	/* Check for room on request queue. */
 	if (req->cnt < req_cnt + 2) {
-		if (ha->mqenable)
-			cnt = RD_REG_DWORD(&reg->isp25mq.req_q_out);
-		else if (IS_QLA82XX(ha))
-			cnt = RD_REG_DWORD(&reg->isp82.req_q_out);
-		else if (IS_FWI2_CAPABLE(ha))
-			cnt = RD_REG_DWORD(&reg->isp24.req_q_out);
-		else
-			cnt = qla2x00_debounce_register(
-					ISP_REQ_Q_OUT(ha, &reg->isp));
+		cnt = RD_REG_DWORD_RELAXED(req->req_q_out);
 
 		if  (req->ring_index < cnt)
 			req->cnt = cnt - req->ring_index;
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 09/19] qla2xxx: Add Gen3 PCIe speed 8GT/s to the log message.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
                   ` (7 preceding siblings ...)
  2012-11-21  7:40 ` [PATCH 08/19] qla2xxx: Use correct Request-Q-Out register during bidirectional request processing Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 10/19] qla2xxx: Fix typo in qla83xx_fw_dump function Saurav Kashyap
                   ` (9 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_os.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index e4fd192..67f7b56 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -494,12 +494,20 @@ qla24xx_pci_info_str(struct scsi_qla_host *vha, char *str)
 		    (BIT_4 | BIT_5 | BIT_6 | BIT_7 | BIT_8 | BIT_9)) >> 4;
 
 		strcpy(str, "PCIe (");
-		if (lspeed == 1)
+		switch (lspeed) {
+		case 1:
 			strcat(str, "2.5GT/s ");
-		else if (lspeed == 2)
+			break;
+		case 2:
 			strcat(str, "5.0GT/s ");
-		else
+			break;
+		case 3:
+			strcat(str, "8.0GT/s ");
+			break;
+		default:
 			strcat(str, "<unknown> ");
+			break;
+		}
 		snprintf(lwstr, sizeof(lwstr), "x%d)", lwidth);
 		strcat(str, lwstr);
 
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 10/19] qla2xxx: Fix typo in qla83xx_fw_dump function.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
                   ` (8 preceding siblings ...)
  2012-11-21  7:40 ` [PATCH 09/19] qla2xxx: Add Gen3 PCIe speed 8GT/s to the log message Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 11/19] qla2xxx: Ignore driver ack bit if corresponding presence bit is not set Saurav Kashyap
                   ` (8 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_dbg.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_dbg.c b/drivers/scsi/qla2xxx/qla_dbg.c
index 04b2823..9b9c632 100644
--- a/drivers/scsi/qla2xxx/qla_dbg.c
+++ b/drivers/scsi/qla2xxx/qla_dbg.c
@@ -2268,7 +2268,7 @@ qla83xx_fw_dump(scsi_qla_host_t *vha, int hardware_locked)
 
 		if (!cnt) {
 			nxt = fw->code_ram;
-			nxt += sizeof(fw->code_ram),
+			nxt += sizeof(fw->code_ram);
 			nxt += (ha->fw_memory_size - 0x100000 + 1);
 			goto copy_queue;
 		} else
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 11/19] qla2xxx: Ignore driver ack bit if corresponding presence bit is not set.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
                   ` (9 preceding siblings ...)
  2012-11-21  7:40 ` [PATCH 10/19] qla2xxx: Fix typo in qla83xx_fw_dump function Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 12/19] qla2xxx: Add acquiring of risc semaphore before doing ISP reset Saurav Kashyap
                   ` (7 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_os.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 67f7b56..9ad66a3 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -4230,7 +4230,7 @@ qla83xx_need_reset_handler(scsi_qla_host_t *vha)
 	while (1) {
 		qla83xx_rd_reg(vha, QLA83XX_IDC_DRIVER_ACK, &drv_ack);
 		qla83xx_rd_reg(vha, QLA83XX_IDC_DRV_PRESENCE, &drv_presence);
-		if (drv_ack == drv_presence)
+		if ((drv_ack & drv_presence) == drv_presence)
 			break;
 
 		if (time_after_eq(jiffies, ack_timeout)) {
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 12/19] qla2xxx: Add acquiring of risc semaphore before doing ISP reset.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
                   ` (10 preceding siblings ...)
  2012-11-21  7:40 ` [PATCH 11/19] qla2xxx: Ignore driver ack bit if corresponding presence bit is not set Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 13/19] qla2xxx: Move marking fcport online ahead of setting iiDMA speed Saurav Kashyap
                   ` (6 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

From: Joe Carnuccio <joe.carnuccio@qlogic.com>

Try to acquire the semaphore; if semaphore is hung then acquire it by force.
The ISP reset clears the semaphore, thereby implicitly releasing it.

Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_fw.h   |   21 ++++++++++
 drivers/scsi/qla2xxx/qla_init.c |   79 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 100 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h
index 59524aa..be6d61a 100644
--- a/drivers/scsi/qla2xxx/qla_fw.h
+++ b/drivers/scsi/qla2xxx/qla_fw.h
@@ -1092,6 +1092,27 @@ struct device_reg_24xx {
 	uint32_t unused_6[2];		/* Gap. */
 	uint32_t iobase_sdata;
 };
+/* RISC-RISC semaphore register PCI offet */
+#define RISC_REGISTER_BASE_OFFSET	0x7010
+#define RISC_REGISTER_WINDOW_OFFET	0x6
+
+/* RISC-RISC semaphore/flag register (risc address 0x7016) */
+
+#define RISC_SEMAPHORE		0x1UL
+#define RISC_SEMAPHORE_WE	(RISC_SEMAPHORE << 16)
+#define RISC_SEMAPHORE_CLR	(RISC_SEMAPHORE_WE | 0x0UL)
+#define RISC_SEMAPHORE_SET	(RISC_SEMAPHORE_WE | RISC_SEMAPHORE)
+
+#define RISC_SEMAPHORE_FORCE		0x8000UL
+#define RISC_SEMAPHORE_FORCE_WE		(RISC_SEMAPHORE_FORCE << 16)
+#define RISC_SEMAPHORE_FORCE_CLR	(RISC_SEMAPHORE_FORCE_WE | 0x0UL)
+#define RISC_SEMAPHORE_FORCE_SET	\
+		(RISC_SEMAPHORE_FORCE_WE | RISC_SEMAPHORE_FORCE)
+
+/* RISC semaphore timeouts (ms) */
+#define TIMEOUT_SEMAPHORE		2500
+#define TIMEOUT_SEMAPHORE_FORCE		2000
+#define TIMEOUT_TOTAL_ELAPSED		4500
 
 /* Trace Control *************************************************************/
 
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index b7e42a8..7464a47 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -1095,6 +1095,83 @@ qla24xx_reset_risc(scsi_qla_host_t *vha)
 		ha->isp_ops->enable_intrs(ha);
 }
 
+static void
+qla25xx_read_risc_sema_reg(scsi_qla_host_t *vha, uint32_t *data)
+{
+	struct device_reg_24xx __iomem *reg = &vha->hw->iobase->isp24;
+
+	WRT_REG_DWORD(&reg->iobase_addr, RISC_REGISTER_BASE_OFFSET);
+	*data = RD_REG_DWORD(&reg->iobase_window + RISC_REGISTER_WINDOW_OFFET);
+
+}
+
+static void
+qla25xx_write_risc_sema_reg(scsi_qla_host_t *vha, uint32_t data)
+{
+	struct device_reg_24xx __iomem *reg = &vha->hw->iobase->isp24;
+
+	WRT_REG_DWORD(&reg->iobase_addr, RISC_REGISTER_BASE_OFFSET);
+	WRT_REG_DWORD(&reg->iobase_window + RISC_REGISTER_WINDOW_OFFET, data);
+}
+
+static void
+qla25xx_manipulate_risc_semaphore(scsi_qla_host_t *vha)
+{
+	struct qla_hw_data *ha = vha->hw;
+	uint32_t wd32 = 0;
+	uint delta_msec = 100;
+	uint elapsed_msec = 0;
+	uint timeout_msec;
+	ulong n;
+
+	if (!IS_QLA25XX(ha) && !IS_QLA2031(ha))
+		return;
+
+attempt:
+	timeout_msec = TIMEOUT_SEMAPHORE;
+	n = timeout_msec / delta_msec;
+	while (n--) {
+		qla25xx_write_risc_sema_reg(vha, RISC_SEMAPHORE_SET);
+		qla25xx_read_risc_sema_reg(vha, &wd32);
+		if (wd32 & RISC_SEMAPHORE)
+			break;
+		msleep(delta_msec);
+		elapsed_msec += delta_msec;
+		if (elapsed_msec > TIMEOUT_TOTAL_ELAPSED)
+			goto force;
+	}
+
+	if (!(wd32 & RISC_SEMAPHORE))
+		goto force;
+
+	if (!(wd32 & RISC_SEMAPHORE_FORCE))
+		goto acquired;
+
+	qla25xx_write_risc_sema_reg(vha, RISC_SEMAPHORE_CLR);
+	timeout_msec = TIMEOUT_SEMAPHORE_FORCE;
+	n = timeout_msec / delta_msec;
+	while (n--) {
+		qla25xx_read_risc_sema_reg(vha, &wd32);
+		if (!(wd32 & RISC_SEMAPHORE_FORCE))
+			break;
+		msleep(delta_msec);
+		elapsed_msec += delta_msec;
+		if (elapsed_msec > TIMEOUT_TOTAL_ELAPSED)
+			goto force;
+	}
+
+	if (wd32 & RISC_SEMAPHORE_FORCE)
+		qla25xx_write_risc_sema_reg(vha, RISC_SEMAPHORE_FORCE_CLR);
+
+	goto attempt;
+
+force:
+	qla25xx_write_risc_sema_reg(vha, RISC_SEMAPHORE_FORCE_SET);
+
+acquired:
+	return;
+}
+
 /**
  * qla24xx_reset_chip() - Reset ISP24xx chip.
  * @ha: HA context
@@ -1113,6 +1190,8 @@ qla24xx_reset_chip(scsi_qla_host_t *vha)
 
 	ha->isp_ops->disable_intrs(ha);
 
+	qla25xx_manipulate_risc_semaphore(vha);
+
 	/* Perform RISC reset. */
 	qla24xx_reset_risc(vha);
 }
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 13/19] qla2xxx: Move marking fcport online ahead of setting iiDMA speed.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
                   ` (11 preceding siblings ...)
  2012-11-21  7:40 ` [PATCH 12/19] qla2xxx: Add acquiring of risc semaphore before doing ISP reset Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 14/19] qla2xxx: Add 16Gb/s case to get port speed capability Saurav Kashyap
                   ` (5 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

From: Joe Carnuccio <joe.carnuccio@qlogic.com>

Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_init.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 7464a47..1b5f40d 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -3083,10 +3083,10 @@ qla2x00_update_fcport(scsi_qla_host_t *vha, fc_port_t *fcport)
 	fcport->login_retry = 0;
 	fcport->flags &= ~(FCF_LOGIN_NEEDED | FCF_ASYNC_SENT);
 
+	qla2x00_set_fcport_state(fcport, FCS_ONLINE);
 	qla2x00_iidma_fcport(vha, fcport);
 	qla24xx_update_fcport_fcp_prio(vha, fcport);
 	qla2x00_reg_remote_port(vha, fcport);
-	qla2x00_set_fcport_state(fcport, FCS_ONLINE);
 }
 
 /*
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 14/19] qla2xxx: Add 16Gb/s case to get port speed capability.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
                   ` (12 preceding siblings ...)
  2012-11-21  7:40 ` [PATCH 13/19] qla2xxx: Move marking fcport online ahead of setting iiDMA speed Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 15/19] qla2xxx: Parameterize the link speed of hba rather than fcport Saurav Kashyap
                   ` (4 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

From: Joe Carnuccio <joe.carnuccio@qlogic.com>

Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_gs.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c
index c51929c..01efc0e 100644
--- a/drivers/scsi/qla2xxx/qla_gs.c
+++ b/drivers/scsi/qla2xxx/qla_gs.c
@@ -1933,6 +1933,9 @@ qla2x00_gpsc(scsi_qla_host_t *vha, sw_info_t *list)
 			case BIT_11:
 				list[i].fp_speed = PORT_SPEED_8GB;
 				break;
+			case BIT_10:
+				list[i].fp_speed = PORT_SPEED_16GB;
+				break;
 			}
 
 			ql_dbg(ql_dbg_disc, vha, 0x205b,
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 15/19] qla2xxx: Parameterize the link speed of hba rather than fcport.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
                   ` (13 preceding siblings ...)
  2012-11-21  7:40 ` [PATCH 14/19] qla2xxx: Add 16Gb/s case to get port speed capability Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 16/19] qla2xxx: Update ql2xextended_error_logging parameter description with new option Saurav Kashyap
                   ` (3 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

From: Joe Carnuccio <joe.carnuccio@qlogic.com>

Parameterize qla2x00_get_link_speed_str() to be generic on link speed.

Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_gbl.h  |    2 +-
 drivers/scsi/qla2xxx/qla_init.c |    5 ++---
 drivers/scsi/qla2xxx/qla_isr.c  |   32 ++++++++++++++------------------
 3 files changed, 17 insertions(+), 22 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
index dfad959..2411d1a 100644
--- a/drivers/scsi/qla2xxx/qla_gbl.h
+++ b/drivers/scsi/qla2xxx/qla_gbl.h
@@ -416,7 +416,7 @@ extern int qla2x00_request_irqs(struct qla_hw_data *, struct rsp_que *);
 extern void qla2x00_free_irqs(scsi_qla_host_t *);
 
 extern int qla2x00_get_data_rate(scsi_qla_host_t *);
-extern char *qla2x00_get_link_speed_str(struct qla_hw_data *);
+extern const char *qla2x00_get_link_speed_str(struct qla_hw_data *, uint16_t);
 
 /*
  * Global Function Prototypes in qla_sup.c source file.
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 1b5f40d..563eee3 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -2983,7 +2983,6 @@ cleanup_allocation:
 static void
 qla2x00_iidma_fcport(scsi_qla_host_t *vha, fc_port_t *fcport)
 {
-	char *link_speed;
 	int rval;
 	uint16_t mb[4];
 	struct qla_hw_data *ha = vha->hw;
@@ -3010,10 +3009,10 @@ qla2x00_iidma_fcport(scsi_qla_host_t *vha, fc_port_t *fcport)
 		    fcport->port_name[6], fcport->port_name[7], rval,
 		    fcport->fp_speed, mb[0], mb[1]);
 	} else {
-		link_speed = qla2x00_get_link_speed_str(ha);
 		ql_dbg(ql_dbg_disc, vha, 0x2005,
 		    "iIDMA adjusted to %s GB/s "
-		    "on %02x%02x%02x%02x%02x%02x%02x%02x.\n", link_speed,
+		    "on %02x%02x%02x%02x%02x%02x%02x%02x.\n",
+		    qla2x00_get_link_speed_str(ha, fcport->fp_speed),
 		    fcport->port_name[0], fcport->port_name[1],
 		    fcport->port_name[2], fcport->port_name[3],
 		    fcport->port_name[4], fcport->port_name[5],
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index bb611e2..e43b4d5 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -316,25 +316,21 @@ qla81xx_idc_event(scsi_qla_host_t *vha, uint16_t aen, uint16_t descr)
 }
 
 #define LS_UNKNOWN	2
-char *
-qla2x00_get_link_speed_str(struct qla_hw_data *ha)
+const char *
+qla2x00_get_link_speed_str(struct qla_hw_data *ha, uint16_t speed)
 {
-	static char *link_speeds[] = {"1", "2", "?", "4", "8", "16", "10"};
-	char *link_speed;
-	int fw_speed = ha->link_data_rate;
+	static const char * const link_speeds[] = {
+		"1", "2", "?", "4", "8", "16", "10"
+	};
 
 	if (IS_QLA2100(ha) || IS_QLA2200(ha))
-		link_speed = link_speeds[0];
-	else if (fw_speed == 0x13)
-		link_speed = link_speeds[6];
-	else {
-		link_speed = link_speeds[LS_UNKNOWN];
-		if (fw_speed < 6)
-			link_speed =
-			    link_speeds[fw_speed];
-	}
-
-	return link_speed;
+		return link_speeds[0];
+	else if (speed == 0x13)
+		return link_speeds[6];
+	else if (speed < 6)
+		return link_speeds[speed];
+	else
+		return link_speeds[LS_UNKNOWN];
 }
 
 static void
@@ -671,7 +667,7 @@ skip_rio:
 
 		ql_dbg(ql_dbg_async, vha, 0x500a,
 		    "LOOP UP detected (%s Gbps).\n",
-		    qla2x00_get_link_speed_str(ha));
+		    qla2x00_get_link_speed_str(ha, ha->link_data_rate));
 
 		vha->flags.management_server_logged_in = 0;
 		qla2x00_post_aen_work(vha, FCH_EVT_LINKUP, ha->link_data_rate);
@@ -860,7 +856,7 @@ skip_rio:
 		    mb[1], mb[2], mb[3]);
 		ql_log(ql_log_warn, vha, 0x505f,
 		    "Link is operational (%s Gbps).\n",
-		    qla2x00_get_link_speed_str(ha));
+		    qla2x00_get_link_speed_str(ha, ha->link_data_rate));
 
 		/*
 		 * Mark all devices as missing so we will login again.
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 16/19] qla2xxx: Update ql2xextended_error_logging parameter description with new option.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
                   ` (14 preceding siblings ...)
  2012-11-21  7:40 ` [PATCH 15/19] qla2xxx: Parameterize the link speed of hba rather than fcport Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 17/19] qla2xxx: Fix typo in qla2xxx driver Saurav Kashyap
                   ` (2 subsequent siblings)
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

From: Chad Dupuis <chad.dupuis@qlogic.com>

Update the parameter description for the ql2xextended_error_logging parameter
with the following new option:

0x00008000 - Verbose output
0x00004000 - Target mode
0x00002000 - Target mode management
0x00001000 - Target mode task management

Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_os.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 9ad66a3..6af369b 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -89,6 +89,8 @@ MODULE_PARM_DESC(ql2xextended_error_logging,
 		"\t\t0x00200000 - AER/EEH.       0x00100000 - Multi Q.\n"
 		"\t\t0x00080000 - P3P Specific.  0x00040000 - Virtual Port.\n"
 		"\t\t0x00020000 - Buffer Dump.   0x00010000 - Misc.\n"
+		"\t\t0x00008000 - Verbose.       0x00004000 - Target.\n"
+		"\t\t0x00002000 - Target Mgmt.   0x00001000 - Target TMF.\n"
 		"\t\t0x7fffffff - For enabling all logs, can be too many logs.\n"
 		"\t\t0x1e400000 - Preferred value for capturing essential "
 		"debug information (equivalent to old "
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 17/19] qla2xxx: Fix typo in qla2xxx driver.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
                   ` (15 preceding siblings ...)
  2012-11-21  7:40 ` [PATCH 16/19] qla2xxx: Update ql2xextended_error_logging parameter description with new option Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 18/19] qla2xxx: Dont clear drv active on iospace config failure Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 19/19] qla2xxx: Display that driver is operating in legacy interrupt mode Saurav Kashyap
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

From: Masanari Iida <standby24x7@gmail.com>

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_isr.c |    4 ++--
 drivers/scsi/qla2xxx/qla_nx.c  |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index e43b4d5..55ee3ba 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -251,7 +251,7 @@ qla2x00_mbx_completion(scsi_qla_host_t *vha, uint16_t mb0)
 	/* Read all mbox registers? */
 	mboxes = (1 << ha->mbx_count) - 1;
 	if (!ha->mcp)
-		ql_dbg(ql_dbg_async, vha, 0x5001, "MBX pointer ERRROR.\n");
+		ql_dbg(ql_dbg_async, vha, 0x5001, "MBX pointer ERROR.\n");
 	else
 		mboxes = ha->mcp->in_mb;
 
@@ -2314,7 +2314,7 @@ qla24xx_mbx_completion(scsi_qla_host_t *vha, uint16_t mb0)
 	/* Read all mbox registers? */
 	mboxes = (1 << ha->mbx_count) - 1;
 	if (!ha->mcp)
-		ql_dbg(ql_dbg_async, vha, 0x504e, "MBX pointer ERRROR.\n");
+		ql_dbg(ql_dbg_async, vha, 0x504e, "MBX pointer ERROR.\n");
 	else
 		mboxes = ha->mcp->in_mb;
 
diff --git a/drivers/scsi/qla2xxx/qla_nx.c b/drivers/scsi/qla2xxx/qla_nx.c
index f0fdc22..45f6191 100644
--- a/drivers/scsi/qla2xxx/qla_nx.c
+++ b/drivers/scsi/qla2xxx/qla_nx.c
@@ -956,7 +956,7 @@ qla82xx_rom_fast_read(struct qla_hw_data *ha, int addr, int *valp)
 	}
 	if (loops >= 50000) {
 		ql_log(ql_log_fatal, vha, 0x00b9,
-		    "Failed to aquire SEM2 lock.\n");
+		    "Failed to acquire SEM2 lock.\n");
 		return -1;
 	}
 	ret = qla82xx_do_rom_fast_read(ha, addr, valp);
@@ -1123,7 +1123,7 @@ qla82xx_pinit_from_rom(scsi_qla_host_t *vha)
 		long data;
 	};
 
-	/* Halt all the indiviual PEGs and other blocks of the ISP */
+	/* Halt all the individual PEGs and other blocks of the ISP */
 	qla82xx_rom_lock(ha);
 
 	/* disable all I2Q */
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 18/19] qla2xxx: Dont clear drv active on iospace config failure.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
                   ` (16 preceding siblings ...)
  2012-11-21  7:40 ` [PATCH 17/19] qla2xxx: Fix typo in qla2xxx driver Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  2012-11-21  7:40 ` [PATCH 19/19] qla2xxx: Display that driver is operating in legacy interrupt mode Saurav Kashyap
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_nx.c |    2 --
 drivers/scsi/qla2xxx/qla_os.c |    8 ++++++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_nx.c b/drivers/scsi/qla2xxx/qla_nx.c
index 45f6191..3e3f593 100644
--- a/drivers/scsi/qla2xxx/qla_nx.c
+++ b/drivers/scsi/qla2xxx/qla_nx.c
@@ -1655,7 +1655,6 @@ qla82xx_iospace_config(struct qla_hw_data *ha)
 	if (!ha->nx_pcibase) {
 		ql_log_pci(ql_log_fatal, ha->pdev, 0x000e,
 		    "Cannot remap pcibase MMIO, aborting.\n");
-		pci_release_regions(ha->pdev);
 		goto iospace_error_exit;
 	}
 
@@ -1670,7 +1669,6 @@ qla82xx_iospace_config(struct qla_hw_data *ha)
 		if (!ha->nxdb_wr_ptr) {
 			ql_log_pci(ql_log_fatal, ha->pdev, 0x000f,
 			    "Cannot remap MMIO, aborting.\n");
-			pci_release_regions(ha->pdev);
 			goto iospace_error_exit;
 		}
 
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 6af369b..3a1661c 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -2367,7 +2367,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
 	/* Configure PCI I/O space */
 	ret = ha->isp_ops->iospace_config(ha);
 	if (ret)
-		goto probe_hw_failed;
+		goto iospace_config_failed;
 
 	ql_log_pci(ql_log_info, pdev, 0x001d,
 	    "Found an ISP%04X irq %d iobase 0x%p.\n",
@@ -2678,7 +2678,11 @@ probe_hw_failed:
 		qla82xx_idc_lock(ha);
 		qla82xx_clear_drv_active(ha);
 		qla82xx_idc_unlock(ha);
-		iounmap((device_reg_t __iomem *)ha->nx_pcibase);
+	}
+iospace_config_failed:
+	if (IS_QLA82XX(ha)) {
+		if (!ha->nx_pcibase)
+			iounmap((device_reg_t __iomem *)ha->nx_pcibase);
 		if (!ql2xdbwr)
 			iounmap((device_reg_t __iomem *)ha->nxdb_wr_ptr);
 	} else {
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 19/19] qla2xxx: Display that driver is operating in legacy interrupt mode.
  2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
                   ` (17 preceding siblings ...)
  2012-11-21  7:40 ` [PATCH 18/19] qla2xxx: Dont clear drv active on iospace config failure Saurav Kashyap
@ 2012-11-21  7:40 ` Saurav Kashyap
  18 siblings, 0 replies; 22+ messages in thread
From: Saurav Kashyap @ 2012-11-21  7:40 UTC (permalink / raw)
  To: jbottomley
  Cc: giridhar.malavali, saurav.kashyap, chad.dupuis, andrew.vasquez,
	linux-scsi

Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_dbg.c |    2 +-
 drivers/scsi/qla2xxx/qla_isr.c |    4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_dbg.c b/drivers/scsi/qla2xxx/qla_dbg.c
index 9b9c632..53f9e49 100644
--- a/drivers/scsi/qla2xxx/qla_dbg.c
+++ b/drivers/scsi/qla2xxx/qla_dbg.c
@@ -11,7 +11,7 @@
  * ----------------------------------------------------------------------
  * |             Level            |   Last Value Used  |     Holes	|
  * ----------------------------------------------------------------------
- * | Module Init and Probe        |       0x0124       | 0x4b,0xba,0xfa |
+ * | Module Init and Probe        |       0x0125       | 0x4b,0xba,0xfa |
  * | Mailbox commands             |       0x114f       | 0x111a-0x111b  |
  * |                              |                    | 0x112c-0x112e  |
  * |                              |                    | 0x113a         |
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index 55ee3ba..873c820 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -2940,7 +2940,9 @@ skip_msi:
 		    "Failed to reserve interrupt %d already in use.\n",
 		    ha->pdev->irq);
 		goto fail;
-	}
+	} else if (!ha->flags.msi_enabled)
+		ql_dbg(ql_dbg_init, vha, 0x0125,
+		    "INTa mode: Enabled.\n");
 
 clear_risc_ints:
 
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch.
@ 2016-07-06 15:14 Himanshu Madhani
  2016-07-15 19:39 ` Martin K. Petersen
  0 siblings, 1 reply; 22+ messages in thread
From: Himanshu Madhani @ 2016-07-06 15:14 UTC (permalink / raw)
  To: James.Bottomley, martin.petersen
  Cc: giridhar.malavali, himanshu.madhani, linux-scsi

Hi James, Martin,

Please apply the following patches to the scsi tree, misc branch at your
earliest convenience.

Thanks,
-Himanshu

Giridhar Malavali (1):
  qla2xxx: Set FLOGI retry in additional firmware options for P2P (N2N)
    mode.

Himanshu Madhani (1):
  qla2xxx: Update driver version to 8.07.00.38-k

Joe Carnuccio (12):
  qla2xxx: Remove sysfs node fw_dump_template.
  qla2xxx: Add ram area DDR for fwdump template entry T262.
  qla2xxx: Shutdown board on thermal shutdown aen.
  qla2xxx: Add module parameter alternate/short names.
  qla2xxx: Make debug buffer log easier to view.
  qla2xxx: Properly initialize IO statistics.
  qla2xxx: Properly reset firmware statistics.
  qla2xxx: Add bsg interface to support D_Port Diagnostics.
  qla2xxx: Let DPORT be enabled purely by nvram.
  qla2xxx: Add support to handle Loop Init error Asynchronus event.
  qla2xxx: Correction to function qla26xx_dport_diagnostics().
  qla2xxx: Separate ISP type bits out from device type.

Sawan Chandak (5):
  qla2xxx: Check for device state before unloading the driver.
  qla2xxx: Add bsg interface to support statistics counter reset.
  qla2xxx: Disable the adapter and skip error recovery in case of
    register disconnect.
  qla2xxx: Fix duplicate message id.
  qla2xxx: Fix BBCR offset

 drivers/scsi/qla2xxx/qla_attr.c    | 170 ++++++++++++-------------------------
 drivers/scsi/qla2xxx/qla_bsg.c     |  92 +++++++++++++++-----
 drivers/scsi/qla2xxx/qla_bsg.h     |  13 +++
 drivers/scsi/qla2xxx/qla_dbg.c     |  50 +++++------
 drivers/scsi/qla2xxx/qla_def.h     |  12 ++-
 drivers/scsi/qla2xxx/qla_fw.h      |   2 +-
 drivers/scsi/qla2xxx/qla_gbl.h     |   5 +-
 drivers/scsi/qla2xxx/qla_init.c    |  39 +++++++--
 drivers/scsi/qla2xxx/qla_isr.c     |  23 ++++-
 drivers/scsi/qla2xxx/qla_mbx.c     | 123 ++++++++++++++++++++++-----
 drivers/scsi/qla2xxx/qla_os.c      | 127 ++++++++++++++++++++++-----
 drivers/scsi/qla2xxx/qla_target.c  |  16 ++--
 drivers/scsi/qla2xxx/qla_tmpl.c    |   9 +-
 drivers/scsi/qla2xxx/qla_version.h |   2 +-
 14 files changed, 443 insertions(+), 240 deletions(-)

-- 
2.7.2


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch.
  2016-07-06 15:14 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Himanshu Madhani
@ 2016-07-15 19:39 ` Martin K. Petersen
  0 siblings, 0 replies; 22+ messages in thread
From: Martin K. Petersen @ 2016-07-15 19:39 UTC (permalink / raw)
  To: Himanshu Madhani
  Cc: James.Bottomley, martin.petersen, giridhar.malavali, linux-scsi

>>>>> "Himanshu" == Himanshu Madhani <himanshu.madhani@qlogic.com> writes:

Himanshu> Please apply the following patches to the scsi tree, misc
Himanshu> branch at your earliest convenience.

Applied to 4.8/scsi-queue. I folded the compiler fix into the offending
commit.

-- 
Martin K. Petersen	Oracle Linux Engineering

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2016-07-15 19:39 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-21  7:40 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Saurav Kashyap
2012-11-21  7:40 ` [PATCH 01/19] qla2xxx: Clear unsupported 'states' during Get-FW-State queries Saurav Kashyap
2012-11-21  7:40 ` [PATCH 02/19] qla2xxx: Remove spurious taking of ha->vport_slock spinlock Saurav Kashyap
2012-11-21  7:40 ` [PATCH 03/19] qla2xxx: Honor status value of 2 for report-id acquisition Saurav Kashyap
2012-11-21  7:40 ` [PATCH 04/19] qla2xxx: Fix for warnings reported by sparse Saurav Kashyap
2012-11-21  7:40 ` [PATCH 05/19] qla2xxx: No fcport FC-4 type assignment in GA_NXT response Saurav Kashyap
2012-11-21  7:40 ` [PATCH 06/19] qla2xxx: Fix coccinelle warnings in qla2x00_relogin Saurav Kashyap
2012-11-21  7:40 ` [PATCH 07/19] qla2xxx: Move noisy Start scsi failed messages to verbose logging level Saurav Kashyap
2012-11-21  7:40 ` [PATCH 08/19] qla2xxx: Use correct Request-Q-Out register during bidirectional request processing Saurav Kashyap
2012-11-21  7:40 ` [PATCH 09/19] qla2xxx: Add Gen3 PCIe speed 8GT/s to the log message Saurav Kashyap
2012-11-21  7:40 ` [PATCH 10/19] qla2xxx: Fix typo in qla83xx_fw_dump function Saurav Kashyap
2012-11-21  7:40 ` [PATCH 11/19] qla2xxx: Ignore driver ack bit if corresponding presence bit is not set Saurav Kashyap
2012-11-21  7:40 ` [PATCH 12/19] qla2xxx: Add acquiring of risc semaphore before doing ISP reset Saurav Kashyap
2012-11-21  7:40 ` [PATCH 13/19] qla2xxx: Move marking fcport online ahead of setting iiDMA speed Saurav Kashyap
2012-11-21  7:40 ` [PATCH 14/19] qla2xxx: Add 16Gb/s case to get port speed capability Saurav Kashyap
2012-11-21  7:40 ` [PATCH 15/19] qla2xxx: Parameterize the link speed of hba rather than fcport Saurav Kashyap
2012-11-21  7:40 ` [PATCH 16/19] qla2xxx: Update ql2xextended_error_logging parameter description with new option Saurav Kashyap
2012-11-21  7:40 ` [PATCH 17/19] qla2xxx: Fix typo in qla2xxx driver Saurav Kashyap
2012-11-21  7:40 ` [PATCH 18/19] qla2xxx: Dont clear drv active on iospace config failure Saurav Kashyap
2012-11-21  7:40 ` [PATCH 19/19] qla2xxx: Display that driver is operating in legacy interrupt mode Saurav Kashyap
  -- strict thread matches above, loose matches on Subject: below --
2016-07-06 15:14 [PATCH 00/19] qla2xxx: Patches for scsi "misc" branch Himanshu Madhani
2016-07-15 19:39 ` Martin K. Petersen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).