svn commit: r194627 - head/sys/cam

Scott Long scottl at FreeBSD.org
Mon Jun 22 14:43:48 UTC 2009


Author: scottl
Date: Mon Jun 22 14:43:48 2009
New Revision: 194627
URL: http://svn.freebsd.org/changeset/base/194627

Log:
  Change cam_periph_ioctl() to take 'cmd' and a u_long instead of an
  int.  All of its callers pass in cmd as a u_long, so this has
  always been a dangerous type demotion.  It was spooted by clang/llvm
  trying to do a type promotion and sign extension within
  cam_periph_ioctl.
  
  Submitted by:	rdivacky

Modified:
  head/sys/cam/cam_periph.c
  head/sys/cam/cam_periph.h

Modified: head/sys/cam/cam_periph.c
==============================================================================
--- head/sys/cam/cam_periph.c	Mon Jun 22 14:42:14 2009	(r194626)
+++ head/sys/cam/cam_periph.c	Mon Jun 22 14:43:48 2009	(r194627)
@@ -797,7 +797,7 @@ cam_periph_ccbwait(union ccb *ccb)
 }
 
 int
-cam_periph_ioctl(struct cam_periph *periph, int cmd, caddr_t addr,
+cam_periph_ioctl(struct cam_periph *periph, u_long cmd, caddr_t addr,
 		 int (*error_routine)(union ccb *ccb, 
 				      cam_flags camflags,
 				      u_int32_t sense_flags))

Modified: head/sys/cam/cam_periph.h
==============================================================================
--- head/sys/cam/cam_periph.h	Mon Jun 22 14:42:14 2009	(r194626)
+++ head/sys/cam/cam_periph.h	Mon Jun 22 14:43:48 2009	(r194627)
@@ -158,7 +158,7 @@ int		cam_periph_runccb(union ccb *ccb,
 						       u_int32_t sense_flags),
 				  cam_flags camflags, u_int32_t sense_flags,
 				  struct devstat *ds);
-int		cam_periph_ioctl(struct cam_periph *periph, int cmd, 
+int		cam_periph_ioctl(struct cam_periph *periph, u_long cmd, 
 				 caddr_t addr,
 				 int (*error_routine)(union ccb *ccb,
 						      cam_flags camflags,


More information about the svn-src-head mailing list