Skip to contentSkip to conversation

mpt3sas: Added new driver module Parameter disable_eedp to Disable EEDP Support

PATCH New Reddy, Sreekanth 1 participant 1 message Mar 14, 2014

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/9 mpt3sas: Added new driver module Parameter disable_eedp to Disable EEDP Support

A new mpt3sas driver module parameter 'disable_eedp' is added to Disable EEDP support. By default DIF support is enabled in the driver and this module parameter would allow users to turn it off.

---
 drivers/scsi/mpt3sas/mpt3sas_base.c  |   38 ++++++++++++++++-------------
 drivers/scsi/mpt3sas/mpt3sas_base.h  |    1 +
 drivers/scsi/mpt3sas/mpt3sas_scsih.c |   45 ++++++++++++++++++++++-----------
 3 files changed, 52 insertions(+), 32 deletions(-)
drivers/scsi/mpt3sas/mpt3sas_base.c +21 -17
index 0cf4f70..d46956e 100644
@@ -429,13 +429,16 @@ _base_sas_ioc_info(struct MPT3SAS_ADAPTER *ioc, MPI2DefaultReply_t *mpi_reply,
 ****************************************************************************/
 
 	case MPI2_IOCSTATUS_EEDP_GUARD_ERROR:
-		desc = "eedp guard error";
+		if (!ioc->disable_eedp_support)
+			desc = "eedp guard error";
 		break;
 	case MPI2_IOCSTATUS_EEDP_REF_TAG_ERROR:
-		desc = "eedp ref tag error";
+		if (!ioc->disable_eedp_support)
+			desc = "eedp ref tag error";
 		break;
 	case MPI2_IOCSTATUS_EEDP_APP_TAG_ERROR:
-		desc = "eedp app tag error";
+		if (!ioc->disable_eedp_support)
+			desc = "eedp app tag error";
 		break;
 
 /****************************************************************************
@@ -2429,21 +2432,22 @@ _base_static_config_pages(struct MPT3SAS_ADAPTER *ioc)
 	if (ioc->ir_firmware)
 		mpt3sas_config_get_manufacturing_pg10(ioc, &mpi_reply,
 		    &ioc->manu_pg10);
-
-	/*
-	 * Ensure correct T10 PI operation if vendor left EEDPTagMode
-	 * flag unset in NVDATA.
-	 */
-	mpt3sas_config_get_manufacturing_pg11(ioc, &mpi_reply, &ioc->manu_pg11);
-	if (ioc->manu_pg11.EEDPTagMode == 0) {
-		pr_err("%s: overriding NVDATA EEDPTagMode setting\n",
-		    ioc->name);
-		ioc->manu_pg11.EEDPTagMode &= ~0x3;
-		ioc->manu_pg11.EEDPTagMode |= 0x1;
-		mpt3sas_config_set_manufacturing_pg11(ioc, &mpi_reply,
-		    &ioc->manu_pg11);
+	if (!ioc->disable_eedp_support) {
+		/*
+		 * Ensure correct T10 PI operation if vendor left EEDPTagMode
+		 * flag unset in NVDATA.
+		 */
+		mpt3sas_config_get_manufacturing_pg11(ioc, &mpi_reply,
+							&ioc->manu_pg11);
+		if (ioc->manu_pg11.EEDPTagMode == 0) {
+			pr_err("%s: overriding NVDATA EEDPTagMode setting\n",
+			ioc->name);
+			ioc->manu_pg11.EEDPTagMode &= ~0x3;
+			ioc->manu_pg11.EEDPTagMode |= 0x1;
+			mpt3sas_config_set_manufacturing_pg11(ioc, &mpi_reply,
+			    &ioc->manu_pg11);
+		}
 	}
-
 	mpt3sas_config_get_bios_pg2(ioc, &mpi_reply, &ioc->bios_pg2);
 	mpt3sas_config_get_bios_pg3(ioc, &mpi_reply, &ioc->bios_pg3);
 	mpt3sas_config_get_ioc_pg8(ioc, &mpi_reply, &ioc->ioc_pg8);
drivers/scsi/mpt3sas/mpt3sas_base.h +1 -0
index 0ebf5d9..b1494ce 100644
@@ -791,6 +791,7 @@ struct MPT3SAS_ADAPTER {
 	u32		event_context;
 	void		*event_log;
 	u32		event_masks[MPI2_EVENT_NOTIFY_EVENTMASK_WORDS];
+	u8              disable_eedp_support;
 
 	/* static config pages */
 	struct mpt3sas_facts facts;
drivers/scsi/mpt3sas/mpt3sas_scsih.c +30 -15

82 lines not on this page · raw message

Signature · 1 line
1.7.1