svn commit: r189422 - head/sys/dev/usb

Andrew Thompson thompsa at FreeBSD.org
Thu Mar 5 11:20:18 PST 2009


Author: thompsa
Date: Thu Mar  5 19:20:17 2009
New Revision: 189422
URL: http://svn.freebsd.org/changeset/base/189422

Log:
  Fix usb2_poll not to return an error number as the function return value is a
  bitmask of events.
  
  Pointed out by:	HPS

Modified:
  head/sys/dev/usb/usb_dev.c

Modified: head/sys/dev/usb/usb_dev.c
==============================================================================
--- head/sys/dev/usb/usb_dev.c	Thu Mar  5 19:10:17 2009	(r189421)
+++ head/sys/dev/usb/usb_dev.c	Thu Mar  5 19:20:17 2009	(r189422)
@@ -1072,16 +1072,12 @@ usb2_poll(struct cdev* dev, int events, 
 	struct usb2_cdev_privdata* cpd;
 	struct usb2_fifo *f;
 	struct usb2_mbuf *m;
-	int fflags;
-	int err, revents;
-
-	err = devfs_get_cdevpriv((void **)&cpd);
-	if (err != 0)
-		return (err);
+	int fflags, revents;
 
-	err = usb2_ref_device(cpd, 0 /* no uref */ );
-	if (err)
-		return (POLLHUP);
+	if (devfs_get_cdevpriv((void **)&cpd) != 0 ||
+	    usb2_ref_device(cpd, 0) != 0)
+		return (events &
+		    (POLLHUP|POLLIN|POLLRDNORM|POLLOUT|POLLWRNORM));
 
 	fflags = cpd->fflags;
 


More information about the svn-src-all mailing list