svn commit: r226118 - in head/sys/dev: isp mps mpt

Marius Strobl marius at FreeBSD.org
Fri Oct 7 21:23:43 UTC 2011


Author: marius
Date: Fri Oct  7 21:23:42 2011
New Revision: 226118
URL: http://svn.freebsd.org/changeset/base/226118

Log:
  Sync with ahc(4)/ahd(4)/sym(4) etc:
  Zero any sense not transferred by the device as the SCSI specification
  mandates that any untransferred data should be assumed to be zero.
  
  Reviewed by:	ken

Modified:
  head/sys/dev/isp/isp_freebsd.h
  head/sys/dev/mps/mps_sas.c
  head/sys/dev/mpt/mpt_cam.c

Modified: head/sys/dev/isp/isp_freebsd.h
==============================================================================
--- head/sys/dev/isp/isp_freebsd.h	Fri Oct  7 21:00:26 2011	(r226117)
+++ head/sys/dev/isp/isp_freebsd.h	Fri Oct  7 21:23:42 2011	(r226118)
@@ -486,6 +486,7 @@ default:							\
 
 #define	XS_SAVE_SENSE(xs, sense_ptr, slen)	do {			\
 		(xs)->ccb_h.status |= CAM_AUTOSNS_VALID;		\
+		memset(&(xs)->sense_data, 0, sizeof(&(xs)->sense_data));\
 		memcpy(&(xs)->sense_data, sense_ptr, imin(XS_SNSLEN(xs),\
 		       slen)); 						\
 		if (slen < (xs)->sense_len) 				\

Modified: head/sys/dev/mps/mps_sas.c
==============================================================================
--- head/sys/dev/mps/mps_sas.c	Fri Oct  7 21:00:26 2011	(r226117)
+++ head/sys/dev/mps/mps_sas.c	Fri Oct  7 21:23:42 2011	(r226118)
@@ -1675,6 +1675,7 @@ mpssas_scsiio_complete(struct mps_softc 
 
 		sense_len = min(rep->SenseCount, ccb->csio.sense_len -
 		    ccb->csio.sense_resid);
+		bzero(&ccb->csio.sense_data, sizeof(&ccb->csio.sense_data));
 		bcopy(cm->cm_sense, &ccb->csio.sense_data, sense_len);
 		ccb->ccb_h.status |= CAM_AUTOSNS_VALID;
 	}

Modified: head/sys/dev/mpt/mpt_cam.c
==============================================================================
--- head/sys/dev/mpt/mpt_cam.c	Fri Oct  7 21:00:26 2011	(r226117)
+++ head/sys/dev/mpt/mpt_cam.c	Fri Oct  7 21:23:42 2011	(r226118)
@@ -3178,6 +3178,7 @@ mpt_scsi_reply_frame_handler(struct mpt_
 		else
 			ccb->csio.sense_resid = 0;
 
+		bzero(&ccb->csio.sense_data, sizeof(&ccb->csio.sense_data));
 		bcopy(req->sense_vbuf, &ccb->csio.sense_data,
 		    min(ccb->csio.sense_len, sense_returned));
 	}


More information about the svn-src-head mailing list