Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Apr 2011 06:20:43 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   svn commit: r220436 - stable/8/sys/dev/usb
Message-ID:  <201104080620.p386KhmB066029@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: hselasky
Date: Fri Apr  8 06:20:43 2011
New Revision: 220436
URL: http://svn.freebsd.org/changeset/base/220436

Log:
  MFC r219395.
  - Bugfix: Root HUBs do not support re-enumeration.
  
  Approved by:	thompsa (mentor)

Modified:
  stable/8/sys/dev/usb/usb_generic.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)

Modified: stable/8/sys/dev/usb/usb_generic.c
==============================================================================
--- stable/8/sys/dev/usb/usb_generic.c	Fri Apr  8 06:13:19 2011	(r220435)
+++ stable/8/sys/dev/usb/usb_generic.c	Fri Apr  8 06:20:43 2011	(r220436)
@@ -953,8 +953,14 @@ ugen_re_enumerate(struct usb_fifo *f)
 	}
 	if (udev->flags.usb_mode != USB_MODE_HOST) {
 		/* not possible in device side mode */
+		DPRINTFN(6, "device mode\n");
 		return (ENOTTY);
 	}
+	if (udev->parent_hub == NULL) {
+		/* the root HUB cannot be re-enumerated */
+		DPRINTFN(6, "cannot reset root HUB\n");
+		return (EINVAL);
+	}
 	/* make sure all FIFO's are gone */
 	/* else there can be a deadlock */
 	if (ugen_fs_uninit(f)) {



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