From 5d086b91be05632abac36734611c13807c179173 Mon Sep 17 00:00:00 2001 From: hselasky Date: Fri, 8 Apr 2011 06:20:43 +0000 Subject: [PATCH] MFC r219395. - Bugfix: Root HUBs do not support re-enumeration. Approved by: thompsa (mentor) git-svn-id: svn://svn.freebsd.org/base/stable/8@220436 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- sys/dev/usb/usb_generic.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sys/dev/usb/usb_generic.c b/sys/dev/usb/usb_generic.c index 56a9cdb9e..d1d1376e5 100644 --- a/sys/dev/usb/usb_generic.c +++ b/sys/dev/usb/usb_generic.c @@ -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)) { -- 2.45.0