scsi: mpt3sas: Disable DIF when prot_mask set to zero
authorSreekanth Reddy <sreekanth.reddy@broadcom.com>
Tue, 28 Apr 2020 09:25:02 +0000 (05:25 -0400)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 8 May 2020 02:29:31 +0000 (22:29 -0400)
By default DIF Type 1, DIF Type 2 & DIF Type 3 will be enabled.  Also,
users can enable either DIF Type 1 or DIF Type 2 or DIF Type 3 or in any
combination using the prot_mask module parameter.

However, when the user provides a prot_mask module parameter value of zero,
then the driverĀ is not disabling the DIF. Instead it enables all three
types.

Modify the driver to disable the DIF support if the user provides a
prot_mask module parameter value of zero.

Link: https://lore.kernel.org/r/1588065902-2726-1-git-send-email-sreekanth.reddy@broadcom.com
Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/mpt3sas/mpt3sas_scsih.c

index 6b84a83..08fc4b3 100644 (file)
@@ -10764,8 +10764,8 @@ _scsih_probe(struct pci_dev *pdev, const struct pci_device_id *id)
                }
        }
        /* register EEDP capabilities with SCSI layer */
-       if (prot_mask > 0)
-               scsi_host_set_prot(shost, prot_mask);
+       if (prot_mask >= 0)
+               scsi_host_set_prot(shost, (prot_mask & 0x07));
        else
                scsi_host_set_prot(shost, SHOST_DIF_TYPE1_PROTECTION
                                   | SHOST_DIF_TYPE2_PROTECTION