]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
scsi: mpt3sas: set EEDP-escape-flags for SAS35 devices.
authorSuganath Prabu Subramani <suganath-prabu.subramani@broadcom.com>
Wed, 26 Oct 2016 08:04:39 +0000 (13:34 +0530)
committerChuck Anderson <chuck.anderson@oracle.com>
Mon, 6 Mar 2017 21:24:18 +0000 (13:24 -0800)
Orabug: 25639713

An UNMAP command on a PI formatted device will leave the Logical Block
Application Tag and Logical Block Reference Tag as all F's (for those LBAs
that are unmapped). To avoid IO errors if those LBAs are subsequently read
before they are written with valid tag fields, the MPI SCSI IO requests
need to set the EEDPFlags element EEDP Escape Mode field, Bits [7:6]
appropriately. A value of 2 should be set to disable all PI checks if the
Logical Block Application Tag is 0xFFFF for PI types 1 and 2.  A value
of 3 should be set to disable all PI checks if the Logical Block
Application Tag is 0xFFFF and the Logical Block Reference Tag is
0xFFFFFFFF for PI type 3.

Signed-off-by: Chaitra P B <chaitra.basappa@broadcom.com>
Signed-off-by: Sathya Prakash <sathya.prakash@broadcom.com>
Signed-off-by: Suganath Prabu S <suganath-prabu.subramani@broadcom.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
(cherry picked from commit 186a18e51db08d51011fc4bd2aa773e173f632c9)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/scsi/mpt3sas/mpt3sas_scsih.c

index 8c92df6233e691de4bead556ae64130531f574d1..1b0210c9c32ccd29ca996de07dda62e970d1c6a7 100644 (file)
@@ -4005,6 +4005,9 @@ _scsih_setup_eedp(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd,
 
        mpi_request_3v->EEDPBlockSize =
            cpu_to_le16(scmd->device->sector_size);
+
+       if (ioc->is_gen35_ioc)
+               eedp_flags |= MPI25_SCSIIO_EEDPFLAGS_APPTAG_DISABLE_MODE;
        mpi_request->EEDPFlags = cpu_to_le16(eedp_flags);
 }