Index: uhub.c =================================================================== RCS file: /cvs/src/sys/dev/usb/uhub.c,v retrieving revision 1.34 diff -u -p -u -r1.34 uhub.c --- uhub.c 26 Jun 2006 19:12:38 -0000 1.34 +++ uhub.c 11 Mar 2007 04:52:22 -0000 @@ -317,7 +317,7 @@ USB_ATTACH(uhub) else up->power = USB_MIN_POWER; up->restartcnt = 0; - up->reattach = 0; + up->reattach = 2; if (UHUB_IS_HIGH_SPEED(sc)) { up->tt = &tts[UHUB_IS_SINGLE_TT(sc) ? 0 : p]; up->tt->hub = hub; @@ -377,6 +377,8 @@ uhub_explore(usbd_device_handle dev) for(port = 1; port <= hd->bNbrPorts; port++) { up = &dev->hub->ports[port-1]; + if (up->reattach == 2) + usbd_reset_port(dev, port, &up->status); err = usbd_get_port_status(dev, port, &up->status); if (err) { DPRINTF(("uhub_explore: get port status failed, "