DragonFly BSD
DragonFly submit List (threaded) for 2005-03
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

[PATCH] Several FreeBSD CAM changes merge


From: Xin LI <delphij@xxxxxxxxxxxxx>
Date: Wed, 16 Mar 2005 01:02:59 +0800

FYI.  It seems that same issue exists in DFly as well, please review
the patch and consider a commit.

Cheers,
-- 
Xin LI <delphij frontfree net>	http://www.delphij.net/
See complete headers for GPG key and other information.

Index: cam_periph.c
===================================================================
RCS file: /home/dcvs/src/sys/bus/cam/cam_periph.c,v
retrieving revision 1.8
diff -u -r1.8 cam_periph.c
--- cam_periph.c	12 Mar 2004 03:23:13 -0000	1.8
+++ cam_periph.c	15 Mar 2005 16:54:06 -0000
@@ -399,7 +399,12 @@
 		if (strcmp((*p_drv)->driver_name, periph->periph_name) == 0)
 			break;
 	}
-	
+
+	if (*p_drv == NULL) {
+		printf("camperiphfree: attempt to free non-existant periph\n");
+		return;
+	}
+
 	if (periph->periph_dtor != NULL)
 		periph->periph_dtor(periph);
 	
Index: cam_xpt.c
===================================================================
RCS file: /home/dcvs/src/sys/bus/cam/cam_xpt.c,v
retrieving revision 1.22
diff -u -r1.22 cam_xpt.c
--- cam_xpt.c	5 Mar 2005 18:29:24 -0000	1.22
+++ cam_xpt.c	15 Mar 2005 16:51:19 -0000
@@ -2333,7 +2333,7 @@
 					break;
 			}
 
-			if (pdrv == NULL) {
+			if (*pdrv == NULL) {
 				cdm->status = CAM_DEV_MATCH_ERROR;
 				return(0);
 			}
Index: scsi/scsi_all.c
===================================================================
RCS file: /home/dcvs/src/sys/bus/cam/scsi/scsi_all.c,v
retrieving revision 1.4
diff -u -r1.4 scsi_all.c
--- scsi/scsi_all.c	29 Dec 2003 06:42:10 -0000	1.4
+++ scsi/scsi_all.c	15 Mar 2005 16:59:42 -0000
@@ -1689,7 +1689,7 @@
 			 * XXX KDM this is stupid, but casting the
 			 * structure doesn't work...
 			 */
-			bcopy(&csio->sense_data, sense, 
+			bcopy(&csio->sense_data, &sense, 
 			      sizeof(struct scsi_sense_data *));
 		}
 	} else {
@@ -1874,7 +1874,7 @@
 			 * XXX KDM this is stupid, but casting the
 			 * structure doesn't work...
 			 */
-			bcopy(&csio->sense_data, sense, 
+			bcopy(&csio->sense_data, &sense, 
 			      sizeof(struct scsi_sense_data *));
 		}
 	} else {
Index: scsi/scsi_target.c
===================================================================
RCS file: /home/dcvs/src/sys/bus/cam/scsi/scsi_target.c,v
retrieving revision 1.9
diff -u -r1.9 scsi_target.c
--- scsi/scsi_target.c	19 May 2004 22:52:38 -0000	1.9
+++ scsi/scsi_target.c	15 Mar 2005 16:55:03 -0000
@@ -532,7 +532,6 @@
 		  ("write - uio_resid %d\n", uio->uio_resid));
 	while (uio->uio_resid >= sizeof(user_ccb) && error == 0) {
 		union ccb *ccb;
-		int error;
 
 		error = uiomove((caddr_t)&user_ccb, sizeof(user_ccb), uio);
 		if (error != 0) {

Attachment: pgp00009.pgp
Description: PGP signature



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