[SCSI] mptfusion : Added check for SILI bit in READ_6 CDB for DATA UNDERRUN ERRATA
Kashyap, Desai [Wed, 20 Jul 2011 15:58:03 +0000 (20:58 +0530)]
When READ_6 command is issued, the setting of SILI Bit in CDB is confirmed and
if SILI bit is off, the processing of relavent Errata is executed.

Earlier we did not have check for SILI bit in READ_6 CDB.
As described in "ssc-r22", Now Driver is checking SILI bit for READ_6.

Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>

drivers/message/fusion/mptscsih.c

index a1d4ee6..ce61a57 100644 (file)
@@ -827,7 +827,7 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr)
                                 * DID_SOFT_ERROR is set.
                                 */
                                if (ioc->bus_type == SPI) {
-                                       if (pScsiReq->CDB[0] == READ_6  ||
+                                       if ((pScsiReq->CDB[0] == READ_6  && ((pScsiReq->CDB[1] & 0x02) == 0)) ||
                                            pScsiReq->CDB[0] == READ_10 ||
                                            pScsiReq->CDB[0] == READ_12 ||
                                            pScsiReq->CDB[0] == READ_16 ||