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-head
mailing list