Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 7 Nov 2009 01:25:02 GMT
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 170307 for review
Message-ID:  <200911070125.nA71P2oO011564@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/chv.cgi?CH=170307

Change 170307 by hselasky@hselasky_laptop001 on 2009/11/07 01:24:09

	
	LibUSB v1.0 only:
	  - fix refcounting error during data transfer
	  - reported by Robert Jenssen

Affected files ...

.. //depot/projects/usb/src/lib/libusb/libusb10_io.c#9 edit

Differences ...

==== //depot/projects/usb/src/lib/libusb/libusb10_io.c#9 (text+ko) ====

@@ -148,19 +148,19 @@
 		goto do_done;
 	}
 	for (i = 0; i != nfds; i++) {
-		if (fds[i].revents == 0)
-			continue;
 		if (ppdev[i] != NULL) {
 			dev = libusb_get_device(ppdev[i]);
 
-			err = libusb20_dev_process(ppdev[i]);
+			if (fds[i].revents == 0)
+				err = 0;	/* nothing to do */
+			else
+				err = libusb20_dev_process(ppdev[i]);
+
 			if (err) {
 				/* cancel all transfers - device is gone */
 				libusb10_cancel_all_transfer(dev);
-				/*
-				 * make sure we don't go into an infinite
-				 * loop
-				 */
+
+				/* remove USB device from polling loop */
 				libusb10_remove_pollfd(dev->ctx, &dev->dev_poll);
 			}
 			CTX_UNLOCK(ctx);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200911070125.nA71P2oO011564>