[RESEND PATCH] mptsas: Fixed code to check whether the LU type is SSC or not for SILI bit in READ_6 and READ_16 CDB

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This SILI bit (suppress incorrect length indicator) is defined only for SSC
READ(6) and READ(16) commands. For other device types bit is part of LBA
field. In the current implementation, it is not checked whether the logical
unit is a SSC device.


Added code for checking the LU type is SSC for SILI bit in READ_6 and READ_16 CDB 

Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@xxxxxxx>
CC: <stable@xxxxxxxxxx>
---

diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c
index 0c3ced7..266bb14 100644
--- a/drivers/message/fusion/mptscsih.c
+++ b/drivers/message/fusion/mptscsih.c
@@ -827,13 +827,16 @@ 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  && ((pScsiReq->CDB[1] & 0x02) == 0)) ||
-					    pScsiReq->CDB[0] == READ_10 ||
-					    pScsiReq->CDB[0] == READ_12 ||
-						(pScsiReq->CDB[0] == READ_16 &&
-						((pScsiReq->CDB[1] & 0x02) == 0)) ||
-					    pScsiReq->CDB[0] == VERIFY  ||
-					    pScsiReq->CDB[0] == VERIFY_16) {
+					if ((pScsiReq->CDB[0] == READ_6  &&
+					((pScsiReq->CDB[1] & 0x02) == 0) &&
+					(sc->device->type == TYPE_TAPE)) ||
+					pScsiReq->CDB[0] == READ_10 ||
+					pScsiReq->CDB[0] == READ_12 ||
+					(pScsiReq->CDB[0] == READ_16 &&
+					((pScsiReq->CDB[1] & 0x02) == 0) &&
+					(sc->device->type == TYPE_TAPE)) ||
+					 pScsiReq->CDB[0] == VERIFY  ||
+					 pScsiReq->CDB[0] == VERIFY_16) {
 						if (scsi_bufflen(sc) !=
 							xfer_cnt) {
 							sc->result =
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux