|
@@ -123,6 +123,11 @@ static int disable_discovery = -1;
|
|
|
module_param(disable_discovery, int, 0);
|
|
|
MODULE_PARM_DESC(disable_discovery, " disable discovery ");
|
|
|
|
|
|
+/* permit overriding the host protection capabilities mask (EEDP/T10 PI) */
|
|
|
+static int prot_mask = 0;
|
|
|
+module_param(prot_mask, int, 0);
|
|
|
+MODULE_PARM_DESC(prot_mask, " host protection capabilities mask, def=7 ");
|
|
|
+
|
|
|
/**
|
|
|
* struct sense_info - common structure for obtaining sense keys
|
|
|
* @skey: sense key
|
|
@@ -8088,8 +8093,14 @@ _scsih_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
|
|
goto out_add_shost_fail;
|
|
|
}
|
|
|
|
|
|
- scsi_host_set_prot(shost, SHOST_DIF_TYPE1_PROTECTION
|
|
|
- | SHOST_DIF_TYPE2_PROTECTION | SHOST_DIF_TYPE3_PROTECTION);
|
|
|
+ /* register EEDP capabilities with SCSI layer */
|
|
|
+ if (prot_mask)
|
|
|
+ scsi_host_set_prot(shost, prot_mask);
|
|
|
+ else
|
|
|
+ scsi_host_set_prot(shost, SHOST_DIF_TYPE1_PROTECTION
|
|
|
+ | SHOST_DIF_TYPE2_PROTECTION
|
|
|
+ | SHOST_DIF_TYPE3_PROTECTION);
|
|
|
+
|
|
|
scsi_host_set_guard(shost, SHOST_DIX_GUARD_CRC);
|
|
|
|
|
|
/* event thread */
|