The default case in uhci_deactivate() was missing. Because of that,
authormpi <mpi@openbsd.org>
Sun, 25 May 2014 09:59:12 +0000 (09:59 +0000)
committermpi <mpi@openbsd.org>
Sun, 25 May 2014 09:59:12 +0000 (09:59 +0000)
DVACT_QUIESCE was not passed to usb(4) and a new uhub(4) device was
reattached at every resume.

Problem reported by mlarkin@

sys/dev/usb/uhci.c

index 6f481f0..afb3037 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: uhci.c,v 1.120 2014/05/19 06:54:34 jsg Exp $  */
+/*     $OpenBSD: uhci.c,v 1.121 2014/05/25 09:59:12 mpi Exp $  */
 /*     $NetBSD: uhci.c,v 1.172 2003/02/23 04:19:26 simonb Exp $        */
 /*     $FreeBSD: src/sys/dev/usb/uhci.c,v 1.33 1999/11/17 22:33:41 n_hibma Exp $       */
 
@@ -565,6 +565,9 @@ uhci_activate(struct device *self, int act)
                rv = config_activate_children(self, act);
                sc->sc_bus.dying = 1;
                break;
+       default:
+               rv = config_activate_children(self, act);
+               break;
        }
        return (rv);
 }