All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch
@ 2012-10-10 11:24 vikas.chaudhary
  2012-10-10 11:24 ` [PATCH 1/7] qla4xxx: Allow reset in link down case vikas.chaudhary
                   ` (7 more replies)
  0 siblings, 8 replies; 14+ messages in thread
From: vikas.chaudhary @ 2012-10-10 11:24 UTC (permalink / raw)
  To: jbottomley, michaelc
  Cc: linux-scsi, vikas.chaudhary, lalit.chandivade, ravi.anand

From: Vikas Chaudhary <vikas.chaudhary@qlogic.com>

James,

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

Thanks,
Vikas.

Adheer Chandravanshi (1):
      qla4xxx: Added new BSG command QLISCSI_VND_ABOUT_FIRMWARE

Harish Zunjarrao (3):
      qla4xxx: Allow reset in link down case
      qla4xxx: Invoke Set Address Control Block using BSG
      qla4xxx: Invoke DisableACB using BSG

Manish Rangankar (2):
      qla4xxx: Add get default DDB support using BSG.
      qla4xxx: Add get DDB support using BSG.

Vikas Chaudhary (1):
      qla4xxx: Update driver version to 5.03.00-k2

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

* [PATCH 1/7] qla4xxx: Allow reset in link down case
  2012-10-10 11:24 [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch vikas.chaudhary
@ 2012-10-10 11:24 ` vikas.chaudhary
  2012-10-10 11:24 ` [PATCH 2/7] qla4xxx: Added new BSG command QLISCSI_VND_ABOUT_FIRMWARE vikas.chaudhary
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: vikas.chaudhary @ 2012-10-10 11:24 UTC (permalink / raw)
  To: jbottomley, michaelc
  Cc: linux-scsi, vikas.chaudhary, lalit.chandivade, ravi.anand,
	Harish Zunjarrao

From: Harish Zunjarrao <harish.zunjarrao@qlogic.com>

Signed-off-by: Harish Zunjarrao <harish.zunjarrao@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
---
 drivers/scsi/qla4xxx/ql4_os.c |    8 --------
 1 files changed, 0 insertions(+), 8 deletions(-)

diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
index ad2da9c..fbfa948 100644
--- a/drivers/scsi/qla4xxx/ql4_os.c
+++ b/drivers/scsi/qla4xxx/ql4_os.c
@@ -6008,14 +6008,6 @@ static int qla4xxx_host_reset(struct Scsi_Host *shost, int reset_type)
 		goto exit_host_reset;
 	}
 
-	rval = qla4xxx_wait_for_hba_online(ha);
-	if (rval != QLA_SUCCESS) {
-		DEBUG2(ql4_printk(KERN_INFO, ha, "%s: Unable to reset host "
-				  "adapter\n", __func__));
-		rval = -EIO;
-		goto exit_host_reset;
-	}
-
 	if (test_bit(DPC_RESET_HA, &ha->dpc_flags))
 		goto recover_adapter;
 
-- 
1.7.8.GIT


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

* [PATCH 2/7] qla4xxx: Added new BSG command QLISCSI_VND_ABOUT_FIRMWARE
  2012-10-10 11:24 [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch vikas.chaudhary
  2012-10-10 11:24 ` [PATCH 1/7] qla4xxx: Allow reset in link down case vikas.chaudhary
@ 2012-10-10 11:24 ` vikas.chaudhary
  2012-10-10 11:24 ` [PATCH 3/7] qla4xxx: Invoke Set Address Control Block using BSG vikas.chaudhary
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: vikas.chaudhary @ 2012-10-10 11:24 UTC (permalink / raw)
  To: jbottomley, michaelc
  Cc: linux-scsi, vikas.chaudhary, lalit.chandivade, ravi.anand,
	Adheer Chandravanshi

From: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com>

Signed-off-by: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
---
 drivers/scsi/qla4xxx/ql4_bsg.c  |   62 +++++++++++++++++++++++++++++++++++++++
 drivers/scsi/qla4xxx/ql4_bsg.h  |    1 +
 drivers/scsi/qla4xxx/ql4_glbl.h |    2 +-
 drivers/scsi/qla4xxx/ql4_init.c |    2 +-
 drivers/scsi/qla4xxx/ql4_mbx.c  |    8 ++++-
 5 files changed, 72 insertions(+), 3 deletions(-)

diff --git a/drivers/scsi/qla4xxx/ql4_bsg.c b/drivers/scsi/qla4xxx/ql4_bsg.c
index 8acdc58..e2c58aa 100644
--- a/drivers/scsi/qla4xxx/ql4_bsg.c
+++ b/drivers/scsi/qla4xxx/ql4_bsg.c
@@ -446,6 +446,65 @@ leave:
 	return rval;
 }
 
+static int qla4xxx_bsg_about_firmware(struct bsg_job *bsg_job)
+{
+	struct Scsi_Host *host = iscsi_job_to_shost(bsg_job);
+	struct scsi_qla_host *ha = to_qla_host(host);
+	struct iscsi_bsg_reply *bsg_reply = bsg_job->reply;
+	uint8_t  *about_fw = NULL;
+	uint32_t len = 0;
+	int rval = -EINVAL;
+
+	bsg_reply->reply_payload_rcv_len = 0;
+
+	if (unlikely(pci_channel_offline(ha->pdev)))
+		goto exit_about_firmware;
+
+	if (ql4xxx_reset_active(ha)) {
+		ql4_printk(KERN_ERR, ha, "%s: reset active\n", __func__);
+		rval = -EBUSY;
+		goto exit_about_firmware;
+	}
+
+	len = bsg_job->reply_payload.payload_len;
+	if (len < sizeof(struct about_fw_info) + (sizeof(uint32_t) << 3)) {
+		ql4_printk(KERN_ERR, ha, "%s: invalid fw detail len %d\n",
+			   __func__, len);
+		rval = -EINVAL;
+		goto exit_about_firmware;
+	}
+
+	about_fw = kmalloc(len, GFP_KERNEL);
+	if (!about_fw) {
+		ql4_printk(KERN_ERR, ha, "%s: Unable to allocate memory for about_fw\n",
+			   __func__);
+		rval = -ENOMEM;
+		goto exit_about_firmware;
+	}
+
+	memset(about_fw, 0, len);
+	rval = qla4xxx_about_firmware(ha, about_fw);
+	if (rval) {
+		ql4_printk(KERN_ERR, ha, "%s: about firmware failed\n",
+			   __func__);
+		bsg_reply->result = DID_ERROR << 16;
+		rval = -EIO;
+	} else {
+		bsg_reply->reply_payload_rcv_len =
+			sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
+					    bsg_job->reply_payload.sg_cnt,
+					    about_fw, len);
+		bsg_reply->result = DID_OK << 16;
+	}
+
+	bsg_job_done(bsg_job, bsg_reply->result,
+		     bsg_reply->reply_payload_rcv_len);
+
+	kfree(about_fw);
+exit_about_firmware:
+	return rval;
+}
+
 /**
  * qla4xxx_process_vendor_specific - handle vendor specific bsg request
  * @job: iscsi_bsg_job to handle
@@ -479,6 +538,9 @@ int qla4xxx_process_vendor_specific(struct bsg_job *bsg_job)
 	case QLISCSI_VND_GET_ACB:
 		return qla4xxx_bsg_get_acb(bsg_job);
 
+	case QLISCSI_VND_ABOUT_FIRMWARE:
+		return qla4xxx_bsg_about_firmware(bsg_job);
+
 	default:
 		ql4_printk(KERN_ERR, ha, "%s: invalid BSG vendor command: "
 			   "0x%x\n", __func__, bsg_req->msgcode);
diff --git a/drivers/scsi/qla4xxx/ql4_bsg.h b/drivers/scsi/qla4xxx/ql4_bsg.h
index c6a03645..c530213 100644
--- a/drivers/scsi/qla4xxx/ql4_bsg.h
+++ b/drivers/scsi/qla4xxx/ql4_bsg.h
@@ -15,5 +15,6 @@
 #define QLISCSI_VND_UPDATE_NVRAM	5
 #define QLISCSI_VND_RESTORE_DEFAULTS	6
 #define QLISCSI_VND_GET_ACB		7
+#define QLISCSI_VND_ABOUT_FIRMWARE	8
 
 #endif
diff --git a/drivers/scsi/qla4xxx/ql4_glbl.h b/drivers/scsi/qla4xxx/ql4_glbl.h
index 57a5a3c..2049c3a 100644
--- a/drivers/scsi/qla4xxx/ql4_glbl.h
+++ b/drivers/scsi/qla4xxx/ql4_glbl.h
@@ -65,7 +65,7 @@ u16 rd_nvram_word(struct scsi_qla_host *ha, int offset);
 u8 rd_nvram_byte(struct scsi_qla_host *ha, int offset);
 void qla4xxx_get_crash_record(struct scsi_qla_host *ha);
 int qla4xxx_is_nvram_configuration_valid(struct scsi_qla_host *ha);
-int qla4xxx_about_firmware(struct scsi_qla_host *ha);
+int qla4xxx_about_firmware(struct scsi_qla_host *ha, uint8_t *fw_info);
 void qla4xxx_interrupt_service_routine(struct scsi_qla_host *ha,
 				       uint32_t intr_status);
 int qla4xxx_init_rings(struct scsi_qla_host *ha);
diff --git a/drivers/scsi/qla4xxx/ql4_init.c b/drivers/scsi/qla4xxx/ql4_init.c
index 1aca1b4..7a09145 100644
--- a/drivers/scsi/qla4xxx/ql4_init.c
+++ b/drivers/scsi/qla4xxx/ql4_init.c
@@ -935,7 +935,7 @@ int qla4xxx_initialize_adapter(struct scsi_qla_host *ha, int is_reset)
 	if (ha->isp_ops->start_firmware(ha) == QLA_ERROR)
 		goto exit_init_hba;
 
-	if (qla4xxx_about_firmware(ha) == QLA_ERROR)
+	if (qla4xxx_about_firmware(ha, NULL) == QLA_ERROR)
 		goto exit_init_hba;
 
 	if (ha->isp_ops->get_sys_info(ha) == QLA_ERROR)
diff --git a/drivers/scsi/qla4xxx/ql4_mbx.c b/drivers/scsi/qla4xxx/ql4_mbx.c
index 3d41034..0b4152d 100644
--- a/drivers/scsi/qla4xxx/ql4_mbx.c
+++ b/drivers/scsi/qla4xxx/ql4_mbx.c
@@ -1192,7 +1192,7 @@ int qla4xxx_get_flash(struct scsi_qla_host * ha, dma_addr_t dma_addr,
  * Mailboxes 2 & 3 may hold an address for data. Make sure that we write 0 to
  * those mailboxes, if unused.
  **/
-int qla4xxx_about_firmware(struct scsi_qla_host *ha)
+int qla4xxx_about_firmware(struct scsi_qla_host *ha, uint8_t *fw_info)
 {
 	struct about_fw_info *about_fw = NULL;
 	dma_addr_t about_fw_dma;
@@ -1240,6 +1240,12 @@ int qla4xxx_about_firmware(struct scsi_qla_host *ha)
 	ha->bootload_build = le16_to_cpu(about_fw->bootload_build);
 	status = QLA_SUCCESS;
 
+	if (fw_info) {
+		memcpy(fw_info, about_fw, sizeof(struct about_fw_info));
+		memcpy(fw_info + sizeof(struct about_fw_info), &mbox_sts[0],
+		       sizeof(mbox_sts));
+	}
+
 exit_about_fw:
 	dma_free_coherent(&ha->pdev->dev, sizeof(struct about_fw_info),
 			  about_fw, about_fw_dma);
-- 
1.7.8.GIT


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

* [PATCH 3/7] qla4xxx: Invoke Set Address Control Block using BSG
  2012-10-10 11:24 [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch vikas.chaudhary
  2012-10-10 11:24 ` [PATCH 1/7] qla4xxx: Allow reset in link down case vikas.chaudhary
  2012-10-10 11:24 ` [PATCH 2/7] qla4xxx: Added new BSG command QLISCSI_VND_ABOUT_FIRMWARE vikas.chaudhary
@ 2012-10-10 11:24 ` vikas.chaudhary
  2012-10-10 11:24 ` [PATCH 4/7] qla4xxx: Invoke DisableACB " vikas.chaudhary
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: vikas.chaudhary @ 2012-10-10 11:24 UTC (permalink / raw)
  To: jbottomley, michaelc
  Cc: linux-scsi, vikas.chaudhary, lalit.chandivade, ravi.anand,
	Harish Zunjarrao

From: Harish Zunjarrao <harish.zunjarrao@qlogic.com>

Signed-off-by: Harish Zunjarrao <harish.zunjarrao@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
---
 drivers/scsi/qla4xxx/ql4_bsg.c |   77 ++++++++++++++++++++++++++++++++++++++++
 drivers/scsi/qla4xxx/ql4_bsg.h |    1 +
 2 files changed, 78 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/qla4xxx/ql4_bsg.c b/drivers/scsi/qla4xxx/ql4_bsg.c
index e2c58aa..fbe077a 100644
--- a/drivers/scsi/qla4xxx/ql4_bsg.c
+++ b/drivers/scsi/qla4xxx/ql4_bsg.c
@@ -505,6 +505,80 @@ exit_about_firmware:
 	return rval;
 }
 
+static int qla4xxx_bsg_set_acb(struct bsg_job *bsg_job)
+{
+	struct Scsi_Host *host = iscsi_job_to_shost(bsg_job);
+	struct scsi_qla_host *ha = to_qla_host(host);
+	struct iscsi_bsg_request *bsg_req = bsg_job->request;
+	struct iscsi_bsg_reply *bsg_reply = bsg_job->reply;
+	uint32_t acb_type = 0;
+	uint32_t len = 0;
+	dma_addr_t acb_dma;
+	struct addr_ctrl_blk *acb = NULL;
+	int rval = -EINVAL;
+	uint32_t mbox_cmd[MBOX_REG_COUNT];
+	uint32_t mbox_sts[MBOX_REG_COUNT];
+
+	bsg_reply->reply_payload_rcv_len = 0;
+
+	if (unlikely(pci_channel_offline(ha->pdev)))
+		goto leave;
+
+	/* Only 4022 and above adapters are supported */
+	if (is_qla4010(ha))
+		goto leave;
+
+	if (ql4xxx_reset_active(ha)) {
+		ql4_printk(KERN_ERR, ha, "%s: reset active\n", __func__);
+		rval = -EBUSY;
+		goto leave;
+	}
+
+	acb_type = bsg_req->rqst_data.h_vendor.vendor_cmd[1];
+	len = bsg_job->request_payload.payload_len;
+	if (len < sizeof(struct addr_ctrl_blk)) {
+		ql4_printk(KERN_ERR, ha, "%s: invalid acb len %d\n",
+			   __func__, len);
+		rval = -EINVAL;
+		goto leave;
+	}
+
+	acb = dma_alloc_coherent(&ha->pdev->dev, len, &acb_dma, GFP_KERNEL);
+	if (!acb) {
+		ql4_printk(KERN_ERR, ha, "%s: dma alloc failed for acb data\n",
+			   __func__);
+		rval = -ENOMEM;
+		goto leave;
+	}
+
+	memset(acb, 0, len);
+	sg_copy_to_buffer(bsg_job->request_payload.sg_list,
+			  bsg_job->request_payload.sg_cnt, acb, len);
+
+	memset(&mbox_cmd, 0, sizeof(mbox_cmd));
+	memset(&mbox_sts, 0, sizeof(mbox_sts));
+
+	/* TODO: Current set ACB implementation lacks acb_type */
+	rval = qla4xxx_set_acb(ha, &mbox_cmd[0], &mbox_sts[0], acb_dma);
+	if (rval) {
+		ql4_printk(KERN_ERR, ha, "%s: set acb failed\n", __func__);
+		bsg_reply->result = DID_ERROR << 16;
+		rval = -EIO;
+	} else {
+		bsg_reply->result = DID_OK << 16;
+		/* Update local copy */
+		memset(acb, 0, len);
+		qla4xxx_update_local_ifcb(ha, &mbox_cmd[0], &mbox_sts[0], acb,
+					  acb_dma);
+	}
+
+	bsg_job_done(bsg_job, bsg_reply->result,
+		     bsg_reply->reply_payload_rcv_len);
+	dma_free_coherent(&ha->pdev->dev, len, acb, acb_dma);
+leave:
+	return rval;
+}
+
 /**
  * qla4xxx_process_vendor_specific - handle vendor specific bsg request
  * @job: iscsi_bsg_job to handle
@@ -541,6 +615,9 @@ int qla4xxx_process_vendor_specific(struct bsg_job *bsg_job)
 	case QLISCSI_VND_ABOUT_FIRMWARE:
 		return qla4xxx_bsg_about_firmware(bsg_job);
 
+	case QLISCSI_VND_SET_ACB:
+		return qla4xxx_bsg_set_acb(bsg_job);
+
 	default:
 		ql4_printk(KERN_ERR, ha, "%s: invalid BSG vendor command: "
 			   "0x%x\n", __func__, bsg_req->msgcode);
diff --git a/drivers/scsi/qla4xxx/ql4_bsg.h b/drivers/scsi/qla4xxx/ql4_bsg.h
index c530213..36d4979 100644
--- a/drivers/scsi/qla4xxx/ql4_bsg.h
+++ b/drivers/scsi/qla4xxx/ql4_bsg.h
@@ -16,5 +16,6 @@
 #define QLISCSI_VND_RESTORE_DEFAULTS	6
 #define QLISCSI_VND_GET_ACB		7
 #define QLISCSI_VND_ABOUT_FIRMWARE	8
+#define QLISCSI_VND_SET_ACB		9
 
 #endif
-- 
1.7.8.GIT


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

* [PATCH 4/7] qla4xxx: Invoke DisableACB using BSG
  2012-10-10 11:24 [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch vikas.chaudhary
                   ` (2 preceding siblings ...)
  2012-10-10 11:24 ` [PATCH 3/7] qla4xxx: Invoke Set Address Control Block using BSG vikas.chaudhary
@ 2012-10-10 11:24 ` vikas.chaudhary
  2012-10-10 11:24 ` [PATCH 5/7] qla4xxx: Add get default DDB support " vikas.chaudhary
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: vikas.chaudhary @ 2012-10-10 11:24 UTC (permalink / raw)
  To: jbottomley, michaelc
  Cc: linux-scsi, vikas.chaudhary, lalit.chandivade, ravi.anand,
	Harish Zunjarrao

From: Harish Zunjarrao <harish.zunjarrao@qlogic.com>

Signed-off-by: Harish Zunjarrao <harish.zunjarrao@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
---
 drivers/scsi/qla4xxx/ql4_bsg.c |   42 ++++++++++++++++++++++++++++++++++++++++
 drivers/scsi/qla4xxx/ql4_bsg.h |    1 +
 2 files changed, 43 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/qla4xxx/ql4_bsg.c b/drivers/scsi/qla4xxx/ql4_bsg.c
index fbe077a..f00b649 100644
--- a/drivers/scsi/qla4xxx/ql4_bsg.c
+++ b/drivers/scsi/qla4xxx/ql4_bsg.c
@@ -579,6 +579,45 @@ leave:
 	return rval;
 }
 
+static int qla4xxx_bsg_disable_acb(struct bsg_job *bsg_job)
+{
+	struct Scsi_Host *host = iscsi_job_to_shost(bsg_job);
+	struct scsi_qla_host *ha = to_qla_host(host);
+	struct iscsi_bsg_reply *bsg_reply = bsg_job->reply;
+	int rval = -EINVAL;
+
+	bsg_reply->reply_payload_rcv_len = 0;
+
+	if (unlikely(pci_channel_offline(ha->pdev)))
+		goto leave;
+
+	/* Only 4022 and above adapters are supported */
+	if (is_qla4010(ha))
+		goto leave;
+
+	if (ql4xxx_reset_active(ha)) {
+		ql4_printk(KERN_ERR, ha, "%s: reset active\n", __func__);
+		rval = -EBUSY;
+		goto leave;
+	}
+
+	rval = qla4xxx_disable_acb(ha);
+	if (rval) {
+		ql4_printk(KERN_ERR, ha, "%s: disable acb failed\n", __func__);
+		bsg_reply->result = DID_ERROR << 16;
+		rval = -EIO;
+	} else {
+		bsg_reply->result = DID_OK << 16;
+		wait_for_completion_timeout(&ha->disable_acb_comp,
+					    DISABLE_ACB_TOV * HZ);
+	}
+
+	bsg_job_done(bsg_job, bsg_reply->result,
+		     bsg_reply->reply_payload_rcv_len);
+leave:
+	return rval;
+}
+
 /**
  * qla4xxx_process_vendor_specific - handle vendor specific bsg request
  * @job: iscsi_bsg_job to handle
@@ -618,6 +657,9 @@ int qla4xxx_process_vendor_specific(struct bsg_job *bsg_job)
 	case QLISCSI_VND_SET_ACB:
 		return qla4xxx_bsg_set_acb(bsg_job);
 
+	case QLISCSI_VND_DISABLE_ACB:
+		return qla4xxx_bsg_disable_acb(bsg_job);
+
 	default:
 		ql4_printk(KERN_ERR, ha, "%s: invalid BSG vendor command: "
 			   "0x%x\n", __func__, bsg_req->msgcode);
diff --git a/drivers/scsi/qla4xxx/ql4_bsg.h b/drivers/scsi/qla4xxx/ql4_bsg.h
index 36d4979..2fd5860 100644
--- a/drivers/scsi/qla4xxx/ql4_bsg.h
+++ b/drivers/scsi/qla4xxx/ql4_bsg.h
@@ -17,5 +17,6 @@
 #define QLISCSI_VND_GET_ACB		7
 #define QLISCSI_VND_ABOUT_FIRMWARE	8
 #define QLISCSI_VND_SET_ACB		9
+#define QLISCSI_VND_DISABLE_ACB		10
 
 #endif
-- 
1.7.8.GIT


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

* [PATCH 5/7] qla4xxx: Add get default DDB support using BSG.
  2012-10-10 11:24 [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch vikas.chaudhary
                   ` (3 preceding siblings ...)
  2012-10-10 11:24 ` [PATCH 4/7] qla4xxx: Invoke DisableACB " vikas.chaudhary
@ 2012-10-10 11:24 ` vikas.chaudhary
  2012-10-10 11:24 ` [PATCH 6/7] qla4xxx: Add get " vikas.chaudhary
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: vikas.chaudhary @ 2012-10-10 11:24 UTC (permalink / raw)
  To: jbottomley, michaelc
  Cc: linux-scsi, vikas.chaudhary, lalit.chandivade, ravi.anand,
	Manish Rangankar

From: Manish Rangankar <manish.rangankar@qlogic.com>

Signed-off-by: Manish Rangankar <manish.rangankar@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
---
 drivers/scsi/qla4xxx/ql4_bsg.c  |   79 +++++++++++++++++++++++++++++++++++++++
 drivers/scsi/qla4xxx/ql4_bsg.h  |    1 +
 drivers/scsi/qla4xxx/ql4_glbl.h |    2 +
 drivers/scsi/qla4xxx/ql4_mbx.c  |   26 +++++++++++++
 4 files changed, 108 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/qla4xxx/ql4_bsg.c b/drivers/scsi/qla4xxx/ql4_bsg.c
index f00b649..6fa8033 100644
--- a/drivers/scsi/qla4xxx/ql4_bsg.c
+++ b/drivers/scsi/qla4xxx/ql4_bsg.c
@@ -618,6 +618,82 @@ leave:
 	return rval;
 }
 
+static int qla4xxx_bsg_get_default_ddb(struct bsg_job *bsg_job)
+{
+	struct Scsi_Host *host = iscsi_job_to_shost(bsg_job);
+	struct scsi_qla_host *ha = to_qla_host(host);
+	struct iscsi_bsg_request *bsg_req = bsg_job->request;
+	struct iscsi_bsg_reply *bsg_reply = bsg_job->reply;
+	dma_addr_t fw_ddb_entry_dma;
+	struct dev_db_entry *fw_ddb_entry = NULL;
+	uint32_t options = 0, mbx_sts[MBOX_REG_COUNT];
+	uint8_t *fw_sts_ptr;
+	int rval = -EINVAL, ret;
+
+	bsg_reply->reply_payload_rcv_len = 0;
+	options = bsg_req->rqst_data.h_vendor.vendor_cmd[1];
+
+	if (unlikely(pci_channel_offline(ha->pdev)))
+		goto leave;
+
+	if (ql4xxx_reset_active(ha)) {
+		ql4_printk(KERN_ERR, ha, "%s: reset active\n", __func__);
+		rval = -EBUSY;
+		goto leave;
+	}
+
+	if (bsg_job->reply_payload.payload_len < sizeof(*fw_ddb_entry)) {
+		ql4_printk(KERN_ERR, ha, "%s: invalid payload len %d\n",
+			   __func__, bsg_job->reply_payload.payload_len);
+		rval = -EINVAL;
+		goto leave;
+	}
+
+	fw_ddb_entry = dma_alloc_coherent(&ha->pdev->dev, sizeof(*fw_ddb_entry),
+					  &fw_ddb_entry_dma, GFP_KERNEL);
+	if (!fw_ddb_entry) {
+		ql4_printk(KERN_ERR, ha,
+			   "%s: Unable to allocate dma buffer\n", __func__);
+		goto leave;
+	}
+
+	ret = qla4xxx_get_default_ddb_mbx_sts(ha, options, fw_ddb_entry_dma,
+					       mbx_sts);
+	if (ret == QLA_ERROR) {
+		ql4_printk(KERN_ERR, ha, "%s: Vendor request failed.\n",
+			   __func__);
+
+		fw_sts_ptr = ((uint8_t *)bsg_job->req->sense +
+					 sizeof(struct iscsi_bsg_reply));
+		memcpy(fw_sts_ptr, mbx_sts, sizeof(uint32_t));
+		bsg_reply->reply_payload_rcv_len = 0;
+		bsg_reply->result = DID_ERROR << 16;
+		rval = -EIO;
+	} else {
+		fw_sts_ptr = ((uint8_t *)bsg_job->req->sense) +
+					 sizeof(struct iscsi_bsg_reply);
+		memcpy(fw_sts_ptr, mbx_sts, sizeof(uint32_t));
+		bsg_job->reply_len = sizeof(struct iscsi_bsg_reply) +
+				     sizeof(uint32_t);
+		bsg_reply->reply_payload_rcv_len =
+		 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
+				    bsg_job->reply_payload.sg_cnt,
+				    fw_ddb_entry, sizeof(*fw_ddb_entry));
+		bsg_reply->result = DID_OK << 16;
+		rval = 0;
+	}
+
+	bsg_job_done(bsg_job, bsg_reply->result,
+		     bsg_reply->reply_payload_rcv_len);
+	rval = 0;
+
+leave:
+	if (fw_ddb_entry)
+		dma_free_coherent(&ha->pdev->dev, sizeof(*fw_ddb_entry),
+				  fw_ddb_entry, fw_ddb_entry_dma);
+	return rval;
+}
+
 /**
  * qla4xxx_process_vendor_specific - handle vendor specific bsg request
  * @job: iscsi_bsg_job to handle
@@ -660,6 +736,9 @@ int qla4xxx_process_vendor_specific(struct bsg_job *bsg_job)
 	case QLISCSI_VND_DISABLE_ACB:
 		return qla4xxx_bsg_disable_acb(bsg_job);
 
+	case QLISCSI_VND_GET_DEFAULT_DDB:
+		return qla4xxx_bsg_get_default_ddb(bsg_job);
+
 	default:
 		ql4_printk(KERN_ERR, ha, "%s: invalid BSG vendor command: "
 			   "0x%x\n", __func__, bsg_req->msgcode);
diff --git a/drivers/scsi/qla4xxx/ql4_bsg.h b/drivers/scsi/qla4xxx/ql4_bsg.h
index 2fd5860..5c4d80c 100644
--- a/drivers/scsi/qla4xxx/ql4_bsg.h
+++ b/drivers/scsi/qla4xxx/ql4_bsg.h
@@ -18,5 +18,6 @@
 #define QLISCSI_VND_ABOUT_FIRMWARE	8
 #define QLISCSI_VND_SET_ACB		9
 #define QLISCSI_VND_DISABLE_ACB		10
+#define QLISCSI_VND_GET_DEFAULT_DDB	11
 
 #endif
diff --git a/drivers/scsi/qla4xxx/ql4_glbl.h b/drivers/scsi/qla4xxx/ql4_glbl.h
index 2049c3a..98cc1fc 100644
--- a/drivers/scsi/qla4xxx/ql4_glbl.h
+++ b/drivers/scsi/qla4xxx/ql4_glbl.h
@@ -259,6 +259,8 @@ int qla4_8xxx_set_param(struct scsi_qla_host *ha, int param);
 int qla4_8xxx_update_idc_reg(struct scsi_qla_host *ha);
 int qla4_83xx_post_idc_ack(struct scsi_qla_host *ha);
 void qla4_83xx_disable_pause(struct scsi_qla_host *ha);
+int qla4xxx_get_default_ddb_mbx_sts(struct scsi_qla_host *ha, uint32_t options,
+				    dma_addr_t dma_addr, uint32_t *mbx_sts_reg);
 
 extern int ql4xextended_error_logging;
 extern int ql4xdontresethba;
diff --git a/drivers/scsi/qla4xxx/ql4_mbx.c b/drivers/scsi/qla4xxx/ql4_mbx.c
index 0b4152d..944301c 100644
--- a/drivers/scsi/qla4xxx/ql4_mbx.c
+++ b/drivers/scsi/qla4xxx/ql4_mbx.c
@@ -1275,6 +1275,32 @@ static int qla4xxx_get_default_ddb(struct scsi_qla_host *ha, uint32_t options,
 	return QLA_SUCCESS;
 }
 
+int qla4xxx_get_default_ddb_mbx_sts(struct scsi_qla_host *ha, uint32_t options,
+				    dma_addr_t dma_addr, uint32_t *mbx_sts_reg)
+{
+	uint32_t mbox_cmd[MBOX_REG_COUNT];
+	uint32_t mbox_sts[MBOX_REG_COUNT];
+	int status;
+
+	memset(&mbox_cmd, 0, sizeof(mbox_cmd));
+	memset(&mbox_sts, 0, sizeof(mbox_sts));
+
+	mbox_cmd[0] = MBOX_CMD_GET_DATABASE_ENTRY_DEFAULTS;
+	mbox_cmd[1] = options;
+	mbox_cmd[2] = LSDW(dma_addr);
+	mbox_cmd[3] = MSDW(dma_addr);
+
+	status = qla4xxx_mailbox_command(ha, MBOX_REG_COUNT, MBOX_REG_COUNT,
+					 &mbox_cmd[0], &mbox_sts[0]);
+	if (status != QLA_SUCCESS) {
+		DEBUG2(ql4_printk(KERN_ERR, ha, "%s: failed status %04X\n",
+				  __func__, mbox_sts[0]));
+	}
+
+	memcpy(mbx_sts_reg, mbox_sts, sizeof(uint32_t) * MBOX_REG_COUNT);
+	return status;
+}
+
 int qla4xxx_req_ddb_entry(struct scsi_qla_host *ha, uint32_t ddb_index,
 			  uint32_t *mbx_sts)
 {
-- 
1.7.8.GIT


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

* [PATCH 6/7] qla4xxx: Add get DDB support using BSG.
  2012-10-10 11:24 [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch vikas.chaudhary
                   ` (4 preceding siblings ...)
  2012-10-10 11:24 ` [PATCH 5/7] qla4xxx: Add get default DDB support " vikas.chaudhary
@ 2012-10-10 11:24 ` vikas.chaudhary
  2012-10-10 11:24 ` [PATCH 7/7] qla4xxx: Update driver version to 5.03.00-k2 vikas.chaudhary
  2012-10-10 16:08 ` [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch Michael Christie
  7 siblings, 0 replies; 14+ messages in thread
From: vikas.chaudhary @ 2012-10-10 11:24 UTC (permalink / raw)
  To: jbottomley, michaelc
  Cc: linux-scsi, vikas.chaudhary, lalit.chandivade, ravi.anand,
	Manish Rangankar

From: Manish Rangankar <manish.rangankar@qlogic.com>

Signed-off-by: Manish Rangankar <manish.rangankar@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
---
 drivers/scsi/qla4xxx/ql4_bsg.c  |   84 +++++++++++++++++++++++++++++++++++++++
 drivers/scsi/qla4xxx/ql4_bsg.h  |    1 +
 drivers/scsi/qla4xxx/ql4_glbl.h |    4 ++
 drivers/scsi/qla4xxx/ql4_mbx.c  |   40 ++++++++++++++++++
 4 files changed, 129 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/qla4xxx/ql4_bsg.c b/drivers/scsi/qla4xxx/ql4_bsg.c
index 6fa8033..f72f11d 100644
--- a/drivers/scsi/qla4xxx/ql4_bsg.c
+++ b/drivers/scsi/qla4xxx/ql4_bsg.c
@@ -694,6 +694,87 @@ leave:
 	return rval;
 }
 
+static int qla4xxx_bsg_get_ddb(struct bsg_job *bsg_job)
+{
+	struct Scsi_Host *host = iscsi_job_to_shost(bsg_job);
+	struct scsi_qla_host *ha = to_qla_host(host);
+	struct iscsi_bsg_request *bsg_req = bsg_job->request;
+	struct iscsi_bsg_reply *bsg_reply = bsg_job->reply;
+	dma_addr_t fw_ddb_entry_dma;
+	struct dev_db_entry *fw_ddb_entry = NULL;
+	uint32_t ddb_index;
+	uint32_t mbox_sts[MBOX_REG_COUNT];
+	uint8_t *fw_sts_ptr;
+	int max_ddbs, rval = -EINVAL, ret;
+
+	bsg_reply->reply_payload_rcv_len = 0;
+	ddb_index = bsg_req->rqst_data.h_vendor.vendor_cmd[1];
+
+	if (unlikely(pci_channel_offline(ha->pdev)))
+		goto leave;
+
+	if (ql4xxx_reset_active(ha)) {
+		ql4_printk(KERN_ERR, ha, "%s: reset active\n", __func__);
+		rval = -EBUSY;
+		goto leave;
+	}
+
+	if (bsg_job->reply_payload.payload_len < sizeof(*fw_ddb_entry)) {
+		ql4_printk(KERN_ERR, ha, "%s: invalid payload len %d\n",
+			   __func__, bsg_job->reply_payload.payload_len);
+		rval = -EINVAL;
+		goto leave;
+	}
+
+	max_ddbs =  is_qla40XX(ha) ? MAX_DEV_DB_ENTRIES_40XX :
+				     MAX_DEV_DB_ENTRIES;
+	if (ddb_index > max_ddbs)
+		goto leave;
+
+	fw_ddb_entry = dma_alloc_coherent(&ha->pdev->dev, sizeof(*fw_ddb_entry),
+					  &fw_ddb_entry_dma, GFP_KERNEL);
+	if (!fw_ddb_entry) {
+		ql4_printk(KERN_ERR, ha,
+			   "%s: Unable to allocate dma buffer\n", __func__);
+		goto leave;
+	}
+
+	ret = qla4xxx_get_fwddb_mbx_sts(ha, ddb_index, fw_ddb_entry,
+					fw_ddb_entry_dma, mbox_sts);
+	if (ret == QLA_ERROR) {
+		ql4_printk(KERN_ERR, ha, "%s: Vendor request failed.\n",
+			   __func__);
+
+		fw_sts_ptr = ((uint8_t *)bsg_job->req->sense +
+					       sizeof(struct iscsi_bsg_reply));
+		memcpy(fw_sts_ptr, mbox_sts, sizeof(uint32_t) * MBOX_REG_COUNT);
+		bsg_reply->reply_payload_rcv_len = 0;
+		bsg_reply->result = DID_ERROR << 16;
+		rval = -EIO;
+	} else {
+		fw_sts_ptr = ((uint8_t *)bsg_job->req->sense) +
+					       sizeof(struct iscsi_bsg_reply);
+		memcpy(fw_sts_ptr, mbox_sts, sizeof(mbox_sts));
+		bsg_job->reply_len = sizeof(struct iscsi_bsg_reply) +
+					   sizeof(mbox_sts);
+		bsg_reply->reply_payload_rcv_len =
+		       sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
+					  bsg_job->reply_payload.sg_cnt,
+					  fw_ddb_entry, sizeof(*fw_ddb_entry));
+		bsg_reply->result = DID_OK << 16;
+		rval = 0;
+	}
+
+	bsg_job_done(bsg_job, bsg_reply->result,
+		     bsg_reply->reply_payload_rcv_len);
+
+leave:
+	if (fw_ddb_entry)
+		dma_free_coherent(&ha->pdev->dev, sizeof(*fw_ddb_entry),
+				  fw_ddb_entry, fw_ddb_entry_dma);
+	return rval;
+}
+
 /**
  * qla4xxx_process_vendor_specific - handle vendor specific bsg request
  * @job: iscsi_bsg_job to handle
@@ -739,6 +820,9 @@ int qla4xxx_process_vendor_specific(struct bsg_job *bsg_job)
 	case QLISCSI_VND_GET_DEFAULT_DDB:
 		return qla4xxx_bsg_get_default_ddb(bsg_job);
 
+	case QLISCSI_VND_GET_DDB:
+		return qla4xxx_bsg_get_ddb(bsg_job);
+
 	default:
 		ql4_printk(KERN_ERR, ha, "%s: invalid BSG vendor command: "
 			   "0x%x\n", __func__, bsg_req->msgcode);
diff --git a/drivers/scsi/qla4xxx/ql4_bsg.h b/drivers/scsi/qla4xxx/ql4_bsg.h
index 5c4d80c..ec92550 100644
--- a/drivers/scsi/qla4xxx/ql4_bsg.h
+++ b/drivers/scsi/qla4xxx/ql4_bsg.h
@@ -19,5 +19,6 @@
 #define QLISCSI_VND_SET_ACB		9
 #define QLISCSI_VND_DISABLE_ACB		10
 #define QLISCSI_VND_GET_DEFAULT_DDB	11
+#define QLISCSI_VND_GET_DDB		12
 
 #endif
diff --git a/drivers/scsi/qla4xxx/ql4_glbl.h b/drivers/scsi/qla4xxx/ql4_glbl.h
index 98cc1fc..3825708 100644
--- a/drivers/scsi/qla4xxx/ql4_glbl.h
+++ b/drivers/scsi/qla4xxx/ql4_glbl.h
@@ -261,6 +261,10 @@ int qla4_83xx_post_idc_ack(struct scsi_qla_host *ha);
 void qla4_83xx_disable_pause(struct scsi_qla_host *ha);
 int qla4xxx_get_default_ddb_mbx_sts(struct scsi_qla_host *ha, uint32_t options,
 				    dma_addr_t dma_addr, uint32_t *mbx_sts_reg);
+int qla4xxx_get_fwddb_mbx_sts(struct scsi_qla_host *ha, uint16_t fw_ddb_index,
+			      struct dev_db_entry *fw_ddb_entry,
+			      dma_addr_t fw_ddb_entry_dma,
+			      uint32_t *mbox_sts_reg);
 
 extern int ql4xextended_error_logging;
 extern int ql4xdontresethba;
diff --git a/drivers/scsi/qla4xxx/ql4_mbx.c b/drivers/scsi/qla4xxx/ql4_mbx.c
index 944301c..548e41d 100644
--- a/drivers/scsi/qla4xxx/ql4_mbx.c
+++ b/drivers/scsi/qla4xxx/ql4_mbx.c
@@ -2037,3 +2037,43 @@ int qla4_83xx_post_idc_ack(struct scsi_qla_host *ha)
 
 	return status;
 }
+
+int qla4xxx_get_fwddb_mbx_sts(struct scsi_qla_host *ha,
+			      uint16_t fw_ddb_index,
+			      struct dev_db_entry *fw_ddb_entry,
+			      dma_addr_t fw_ddb_entry_dma,
+			      uint32_t *mbox_sts_reg)
+{
+	uint32_t mbox_cmd[MBOX_REG_COUNT];
+	uint32_t mbox_sts[MBOX_REG_COUNT];
+	int status = QLA_ERROR;
+
+	/* Make sure the device index is valid */
+	if (fw_ddb_index >= MAX_DDB_ENTRIES) {
+		ql4_printk(KERN_ERR, ha, "%s: ddb [%d] out of range.\n",
+			   __func__, fw_ddb_index);
+		goto exit_get_fwddb;
+	}
+
+	memset(&mbox_cmd, 0, sizeof(mbox_cmd));
+	memset(&mbox_sts, 0, sizeof(mbox_sts));
+
+	mbox_cmd[0] = MBOX_CMD_GET_DATABASE_ENTRY;
+	mbox_cmd[1] = (uint32_t) fw_ddb_index;
+	mbox_cmd[2] = LSDW(fw_ddb_entry_dma);
+	mbox_cmd[3] = MSDW(fw_ddb_entry_dma);
+	mbox_cmd[4] = sizeof(struct dev_db_entry);
+
+	if (qla4xxx_mailbox_command(ha, MBOX_REG_COUNT, MBOX_REG_COUNT,
+				    &mbox_cmd[0], &mbox_sts[0]) == QLA_ERROR) {
+		ql4_printk(KERN_ERR, ha, "MBOX_CMD_GET_DATABASE_ENTRY failed with status 0x%04X\n",
+			   mbox_sts[0]);
+		goto exit_get_fwddb;
+	}
+
+	memcpy(mbox_sts_reg, mbox_sts, sizeof(uint32_t) * MBOX_REG_COUNT);
+	status = QLA_SUCCESS;
+
+exit_get_fwddb:
+	return status;
+}
-- 
1.7.8.GIT


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

* [PATCH 7/7] qla4xxx: Update driver version to 5.03.00-k2
  2012-10-10 11:24 [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch vikas.chaudhary
                   ` (5 preceding siblings ...)
  2012-10-10 11:24 ` [PATCH 6/7] qla4xxx: Add get " vikas.chaudhary
@ 2012-10-10 11:24 ` vikas.chaudhary
  2012-10-10 16:08 ` [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch Michael Christie
  7 siblings, 0 replies; 14+ messages in thread
From: vikas.chaudhary @ 2012-10-10 11:24 UTC (permalink / raw)
  To: jbottomley, michaelc
  Cc: linux-scsi, vikas.chaudhary, lalit.chandivade, ravi.anand

From: Vikas Chaudhary <vikas.chaudhary@qlogic.com>

Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
---
 drivers/scsi/qla4xxx/ql4_version.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/scsi/qla4xxx/ql4_version.h b/drivers/scsi/qla4xxx/ql4_version.h
index f6df2ea..4a20b88 100644
--- a/drivers/scsi/qla4xxx/ql4_version.h
+++ b/drivers/scsi/qla4xxx/ql4_version.h
@@ -5,4 +5,4 @@
  * See LICENSE.qla4xxx for copyright and licensing details.
  */
 
-#define QLA4XXX_DRIVER_VERSION	"5.03.00-k1"
+#define QLA4XXX_DRIVER_VERSION	"5.03.00-k2"
-- 
1.7.8.GIT


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

* Re: [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch
  2012-10-10 11:24 [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch vikas.chaudhary
                   ` (6 preceding siblings ...)
  2012-10-10 11:24 ` [PATCH 7/7] qla4xxx: Update driver version to 5.03.00-k2 vikas.chaudhary
@ 2012-10-10 16:08 ` Michael Christie
  2012-11-13 13:34   ` James Bottomley
  7 siblings, 1 reply; 14+ messages in thread
From: Michael Christie @ 2012-10-10 16:08 UTC (permalink / raw)
  To: vikas.chaudhary; +Cc: jbottomley, linux-scsi, lalit.chandivade, ravi.anand


On Oct 10, 2012, at 6:24 AM, vikas.chaudhary@qlogic.com wrote:

> From: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
> 
> James,
> 
> Please apply the following patches to the scsi tree at your earliest
> convenience.
> 
> Thanks,
> Vikas.
> 

I think some of these should be common operations instead of vendor ones.


> Adheer Chandravanshi (1):
>      qla4xxx: Added new BSG command QLISCSI_VND_ABOUT_FIRMWARE
> 

What info does this provide?


> Harish Zunjarrao (3):
>      qla4xxx: Allow reset in link down case
>      qla4xxx: Invoke Set Address Control Block using BSG

Does this set the networking info?


>      qla4xxx: Invoke DisableACB using BSG

What does this do? Disable the networking?



> Manish Rangankar (2):
>      qla4xxx: Add get default DDB support using BSG.

What does this do? Get the default DDB settings?

>      qla4xxx: Add get DDB support using BSG.




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

* Re: [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch
  2012-10-10 16:08 ` [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch Michael Christie
@ 2012-11-13 13:34   ` James Bottomley
  2012-11-16  5:50     ` Lalit Chandivade
  0 siblings, 1 reply; 14+ messages in thread
From: James Bottomley @ 2012-11-13 13:34 UTC (permalink / raw)
  To: Michael Christie
  Cc: vikas.chaudhary, linux-scsi, lalit.chandivade, ravi.anand

On Wed, 2012-10-10 at 11:08 -0500, Michael Christie wrote:
> On Oct 10, 2012, at 6:24 AM, vikas.chaudhary@qlogic.com wrote:
> 
> > From: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
> > 
> > James,
> > 
> > Please apply the following patches to the scsi tree at your earliest
> > convenience.
> > 
> > Thanks,
> > Vikas.
> > 
> 
> I think some of these should be common operations instead of vendor ones.
> 
> 
> > Adheer Chandravanshi (1):
> >      qla4xxx: Added new BSG command QLISCSI_VND_ABOUT_FIRMWARE
> > 
> 
> What info does this provide?
> 
> 
> > Harish Zunjarrao (3):
> >      qla4xxx: Allow reset in link down case
> >      qla4xxx: Invoke Set Address Control Block using BSG
> 
> Does this set the networking info?
> 
> 
> >      qla4xxx: Invoke DisableACB using BSG
> 
> What does this do? Disable the networking?

Ping on this, please.   Mike's points seem eminently sensible, what is
the response?

James



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

* RE: [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch
  2012-11-13 13:34   ` James Bottomley
@ 2012-11-16  5:50     ` Lalit Chandivade
  0 siblings, 0 replies; 14+ messages in thread
From: Lalit Chandivade @ 2012-11-16  5:50 UTC (permalink / raw)
  To: James Bottomley, Michael Christie; +Cc: Vikas Chaudhary, linux-scsi, Ravi Anand

Hi James,

Some of the interfaces like about firmware we can make generic.
And we are still discussing internally, if we can really make the Address Control Block (ACB) interface generic or not.

May be we will re-submit the patches without the ACB (which is still under discussion) in next week.

Thanks,
Lalit.

> -----Original Message-----
> From: James Bottomley [mailto:James.Bottomley@HansenPartnership.com]
> Sent: Tuesday, November 13, 2012 7:05 PM
> To: Michael Christie
> Cc: Vikas Chaudhary; linux-scsi@vger.kernel.org; Lalit Chandivade; Ravi
> Anand
> Subject: Re: [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch
>
> On Wed, 2012-10-10 at 11:08 -0500, Michael Christie wrote:
> > On Oct 10, 2012, at 6:24 AM, vikas.chaudhary@qlogic.com wrote:
> >
> > > From: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
> > >
> > > James,
> > >
> > > Please apply the following patches to the scsi tree at your earliest
> > > convenience.
> > >
> > > Thanks,
> > > Vikas.
> > >
> >
> > I think some of these should be common operations instead of vendor
> ones.
> >
> >
> > > Adheer Chandravanshi (1):
> > >      qla4xxx: Added new BSG command QLISCSI_VND_ABOUT_FIRMWARE
> > >
> >
> > What info does this provide?
> >
> >
> > > Harish Zunjarrao (3):
> > >      qla4xxx: Allow reset in link down case
> > >      qla4xxx: Invoke Set Address Control Block using BSG
> >
> > Does this set the networking info?
> >
> >
> > >      qla4xxx: Invoke DisableACB using BSG
> >
> > What does this do? Disable the networking?
>
> Ping on this, please.   Mike's points seem eminently sensible, what is
> the response?
>
> James
>
>


________________________________

This message and any attached documents contain information from QLogic Corporation or its wholly-owned subsidiaries that may be confidential. If you are not the intended recipient, you may not read, copy, distribute, or use this information. If you have received this transmission in error, please notify the sender immediately by reply e-mail and then delete this message.

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

* [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch
@ 2013-09-17 11:54 adheer.chandravanshi
  0 siblings, 0 replies; 14+ messages in thread
From: adheer.chandravanshi @ 2013-09-17 11:54 UTC (permalink / raw)
  To: jbottomley, michaelc
  Cc: linux-scsi, vikas.chaudhary, lalit.chandivade, Adheer Chandravanshi

From: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com>

James,

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

These patches are on top of other qla4xxx patch posted on list here:
http://marc.info/?l=linux-scsi&m=137941920702034&w=2

Adheer Chandravanshi (7):
  qla4xxx: Correct the check for local CHAP entry type
  qla4xxx: Support setting of local CHAP index for flash target entry
  qla4xxx: Populate local CHAP credentials for flash target sessions
  qla4xxx: Use offset based on adapter type to set CHAP entry in flash
  scsi_transport_iscsi: Add support to set CHAP entries
  qla4xxx: Add support to set CHAP entries
  qla4xxx: Add support to get CHAP details for flash target session

Thanks,
Adheer


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

* Re: [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch
  2013-07-08 12:33 adheer.chandravanshi
@ 2013-07-19 15:56 ` Mike Christie
  0 siblings, 0 replies; 14+ messages in thread
From: Mike Christie @ 2013-07-19 15:56 UTC (permalink / raw)
  To: adheer.chandravanshi
  Cc: jbottomley, linux-scsi, vikas.chaudhary, lalit.chandivade

On 07/08/2013 06:33 AM, adheer.chandravanshi@qlogic.com wrote:
> From: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com>
> 
> James,
> 
> Please apply the following patches to the scsi tree at your earliest
> convenience.
> 
> Adheer Chandravanshi (7):
> 	qla4xxx: Allow removal of failed session using logout.
> 	qla4xxx: Use discovery_parent_idx instead of discovery_parent_type
> 	qla4xxx: Set IPv6 traffic class if device type is IPv6.
> 	qla4xxx: discovery_parent_idx can be shown without any check.
> 	qla4xxx: Only BIOS boot target entries should be at index 0 and 1.
> 	qla4xxx: Export more firmware info in sysfs
> 	qla4xxx: Update driver version to 5.03.00-k11
> 


Ignore my comment on that one patch. Patches look ok.

Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>


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

* [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch
@ 2013-07-08 12:33 adheer.chandravanshi
  2013-07-19 15:56 ` Mike Christie
  0 siblings, 1 reply; 14+ messages in thread
From: adheer.chandravanshi @ 2013-07-08 12:33 UTC (permalink / raw)
  To: jbottomley, michaelc
  Cc: linux-scsi, vikas.chaudhary, lalit.chandivade, Adheer Chandravanshi

From: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com>

James,

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

Adheer Chandravanshi (7):
	qla4xxx: Allow removal of failed session using logout.
	qla4xxx: Use discovery_parent_idx instead of discovery_parent_type
	qla4xxx: Set IPv6 traffic class if device type is IPv6.
	qla4xxx: discovery_parent_idx can be shown without any check.
	qla4xxx: Only BIOS boot target entries should be at index 0 and 1.
	qla4xxx: Export more firmware info in sysfs
	qla4xxx: Update driver version to 5.03.00-k11

Thanks,
Adheer


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

end of thread, other threads:[~2013-09-17 12:26 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-10 11:24 [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch vikas.chaudhary
2012-10-10 11:24 ` [PATCH 1/7] qla4xxx: Allow reset in link down case vikas.chaudhary
2012-10-10 11:24 ` [PATCH 2/7] qla4xxx: Added new BSG command QLISCSI_VND_ABOUT_FIRMWARE vikas.chaudhary
2012-10-10 11:24 ` [PATCH 3/7] qla4xxx: Invoke Set Address Control Block using BSG vikas.chaudhary
2012-10-10 11:24 ` [PATCH 4/7] qla4xxx: Invoke DisableACB " vikas.chaudhary
2012-10-10 11:24 ` [PATCH 5/7] qla4xxx: Add get default DDB support " vikas.chaudhary
2012-10-10 11:24 ` [PATCH 6/7] qla4xxx: Add get " vikas.chaudhary
2012-10-10 11:24 ` [PATCH 7/7] qla4xxx: Update driver version to 5.03.00-k2 vikas.chaudhary
2012-10-10 16:08 ` [PATCH 0/7] qla4xxx: Updates for scsi "misc" branch Michael Christie
2012-11-13 13:34   ` James Bottomley
2012-11-16  5:50     ` Lalit Chandivade
2013-07-08 12:33 adheer.chandravanshi
2013-07-19 15:56 ` Mike Christie
2013-09-17 11:54 adheer.chandravanshi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.