Skip to contentSkip to conversation

mpt fusion: [2.6.30-rc6] small fix for 1078 data corruption issue

PATCH In review Kashyap, Desai 2 participants 2 messages May 22, 2009

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 4/24 mpt fusion: [2.6.30-rc6] small fix for 1078 data corruption issue

Patch applied on 21/01/2009: "Fixing 1078 data curruption" need this changes also.
message flags will use runtime sense width instead of compile time as explain in patch applied on 21/01/2009 "Fixing 1078 data curruption".
---

---

drivers/message/fusion/mptbase.h +4 -3
index 1b258b2..8cd0a16 100644
@@ -767,9 +767,10 @@ typedef struct _mpt_sge {
 } MptSge_t;
 
 
-#define mpt_msg_flags() \
-	((sizeof(dma_addr_t) == sizeof(u64)) ? MPI_SCSIIO_MSGFLGS_SENSE_WIDTH_64 : \
-		MPI_SCSIIO_MSGFLGS_SENSE_WIDTH_32)
+#define mpt_msg_flags(ioc) \
+	(ioc->sg_addr_size == sizeof(u64)) ?		\
+	MPI_SCSIIO_MSGFLGS_SENSE_WIDTH_64 : 		\
+	MPI_SCSIIO_MSGFLGS_SENSE_WIDTH_32
 
 #define MPT_SGE_FLAGS_64_BIT_ADDRESSING \
 	(MPI_SGE_FLAGS_64_BIT_ADDRESSING << MPI_SGE_FLAGS_SHIFT)
drivers/message/fusion/mptctl.c +2 -2
index 55f6102..bece386 100644
@@ -1895,7 +1895,7 @@ mptctl_do_mpt_command (struct mpt_ioctl_command karg, void __user *mfPtr)
 			}
 
 			pScsiReq->MsgFlags &= ~MPI_SCSIIO_MSGFLGS_SENSE_WIDTH;
-			pScsiReq->MsgFlags |= mpt_msg_flags();
+			pScsiReq->MsgFlags |= mpt_msg_flags(ioc);
 
 
 			/* verify that app has not requested
@@ -1981,7 +1981,7 @@ mptctl_do_mpt_command (struct mpt_ioctl_command karg, void __user *mfPtr)
 			int dataSize;
 
 			pScsiReq->MsgFlags &= ~MPI_SCSIIO_MSGFLGS_SENSE_WIDTH;
-			pScsiReq->MsgFlags |= mpt_msg_flags();
+			pScsiReq->MsgFlags |= mpt_msg_flags(ioc);
 
 
 			/* verify that app has not requested
drivers/message/fusion/mptscsih.c +2 -2
index a1ce079..8c08c73 100644
@@ -1357,7 +1357,7 @@ mptscsih_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
 	pScsiReq->CDBLength = SCpnt->cmd_len;
 	pScsiReq->SenseBufferLength = MPT_SENSE_BUFFER_SIZE;
 	pScsiReq->Reserved = 0;
-	pScsiReq->MsgFlags = mpt_msg_flags();
+	pScsiReq->MsgFlags = mpt_msg_flags(ioc);
 	int_to_scsilun(SCpnt->device->lun, (struct scsi_lun *)pScsiReq->LUN);
 	pScsiReq->Control = cpu_to_le32(scsictl);
 
@@ -3108,7 +3108,7 @@ mptscsih_do_cmd(MPT_SCSI_HOST *hd, INTERNAL_CMD *io)
 
 	pScsiReq->Reserved = 0;
 
-	pScsiReq->MsgFlags = mpt_msg_flags();
+	pScsiReq->MsgFlags = mpt_msg_flags(ioc);
 	/* MsgContext set in mpt_get_msg_fram call  */
 
 	int_to_scsilun(io->lun, (struct scsi_lun *)pScsiReq->LUN);
maintainer
#1 lore raw
Quoted 4 lines · Desai

Patch applied on 21/01/2009: "Fixing 1078 data curruption" need this changes also.
message flags will use runtime sense width instead of compile time as explain in patch applied on 21/01/2009 "Fixing 1078 data curruption".

This description doesn't make a whole lot of sense, since patch "Fixing 1078 data corruption" is 1/24 of this series ... I take it these two patches should be merged?

James