diff --git a/sys/dev/usb/uhub.c b/sys/dev/usb/uhub.c index a4816145a761..31dbe188c9a2 100644 --- a/sys/dev/usb/uhub.c +++ b/sys/dev/usb/uhub.c @@ -1,4 +1,4 @@ -/* $NetBSD: uhub.c,v 1.49 2001/01/21 19:00:06 augustss Exp $ */ +/* $NetBSD: uhub.c,v 1.50 2001/09/28 23:42:16 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/uhub.c,v 1.18 1999/11/17 22:33:43 n_hibma Exp $ */ /* @@ -565,10 +565,10 @@ uhub_intr(usbd_xfer_handle xfer, usbd_private_handle addr, usbd_status status) struct uhub_softc *sc = addr; DPRINTFN(5,("uhub_intr: sc=%p\n", sc)); - if (status != USBD_NORMAL_COMPLETION) + if (status == USBD_STALLED) usbd_clear_endpoint_stall_async(sc->sc_ipipe); - - usb_needs_explore(sc->sc_hub); + else if (status == USBD_NORMAL_COMPLETION) + usb_needs_explore(sc->sc_hub); } #if defined(__FreeBSD__) diff --git a/sys/dev/usb/ukbd.c b/sys/dev/usb/ukbd.c index 2696c7324f1b..55180d8f5138 100644 --- a/sys/dev/usb/ukbd.c +++ b/sys/dev/usb/ukbd.c @@ -1,4 +1,4 @@ -/* $NetBSD: ukbd.c,v 1.66 2001/04/06 22:54:15 augustss Exp $ */ +/* $NetBSD: ukbd.c,v 1.67 2001/09/28 23:42:17 augustss Exp $ */ /* * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -514,7 +514,8 @@ ukbd_intr(xfer, addr, status) if (status) { DPRINTF(("ukbd_intr: status=%d\n", status)); - usbd_clear_endpoint_stall_async(sc->sc_intrpipe); + if (status == USBD_STALLED) + usbd_clear_endpoint_stall_async(sc->sc_intrpipe); return; }