Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 May 2009 06:39:53 GMT
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 161961 for review
Message-ID:  <200905120639.n4C6drRs026284@repoman.freebsd.org>

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

Change 161961 by hselasky@hselasky_laptop001 on 2009/05/12 06:38:57

	
	USB CORE:
	 - Cancelled error code must be returned in special
	 case, else device drivers might end up in infinite loop.
	 - The special case code was introduced by a recent commit.
	
	Bug report by: Andrey <andrey.kosachenko@gmail.com>

Affected files ...

.. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#144 edit

Differences ...

==== //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#144 (text+ko) ====

@@ -1439,7 +1439,11 @@
 	/* Check if the device is still alive */
 	if (info->udev->state < USB_STATE_POWERED) {
 		USB_BUS_LOCK(bus);
-		usb2_transfer_done(xfer, USB_ERR_NOT_CONFIGURED);
+		/*
+		 * Must return cancelled error code else
+		 * device drivers can hang.
+		 */
+		usb2_transfer_done(xfer, USB_ERR_CANCELLED);
 		USB_BUS_UNLOCK(bus);
 		return;
 	}



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