Module Name: src Committed By: skrll Date: Tue Aug 5 08:33:50 UTC 2014
Modified Files: src/sys/dev/usb: ohci.c xhci.c src/sys/external/bsd/dwc2: dwc2.c Log Message: Prevent the root hub sending updates once the root interrupt abort is called. To generate a diff of this commit: cvs rdiff -u -r1.251 -r1.252 src/sys/dev/usb/ohci.c cvs rdiff -u -r1.21 -r1.22 src/sys/dev/usb/xhci.c cvs rdiff -u -r1.29 -r1.30 src/sys/external/bsd/dwc2/dwc2.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/usb/ohci.c diff -u src/sys/dev/usb/ohci.c:1.251 src/sys/dev/usb/ohci.c:1.252 --- src/sys/dev/usb/ohci.c:1.251 Tue Aug 5 06:35:24 2014 +++ src/sys/dev/usb/ohci.c Tue Aug 5 08:33:50 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ohci.c,v 1.251 2014/08/05 06:35:24 skrll Exp $ */ +/* $NetBSD: ohci.c,v 1.252 2014/08/05 08:33:50 skrll Exp $ */ /* * Copyright (c) 1998, 2004, 2005, 2012 The NetBSD Foundation, Inc. @@ -41,7 +41,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ohci.c,v 1.251 2014/08/05 06:35:24 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ohci.c,v 1.252 2014/08/05 08:33:50 skrll Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -2872,6 +2872,8 @@ ohci_root_intr_abort(usbd_xfer_handle xf KASSERT(mutex_owned(&sc->sc_lock)); KASSERT(xfer->pipe->intrxfer == xfer); + sc->sc_intrxfer = NULL; + xfer->status = USBD_CANCELLED; usb_transfer_complete(xfer); } Index: src/sys/dev/usb/xhci.c diff -u src/sys/dev/usb/xhci.c:1.21 src/sys/dev/usb/xhci.c:1.22 --- src/sys/dev/usb/xhci.c:1.21 Tue Aug 5 06:35:24 2014 +++ src/sys/dev/usb/xhci.c Tue Aug 5 08:33:50 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: xhci.c,v 1.21 2014/08/05 06:35:24 skrll Exp $ */ +/* $NetBSD: xhci.c,v 1.22 2014/08/05 08:33:50 skrll Exp $ */ /* * Copyright (c) 2013 Jonathan A. Kollasch @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.21 2014/08/05 06:35:24 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.22 2014/08/05 08:33:50 skrll Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -2461,6 +2461,8 @@ xhci_root_intr_abort(usbd_xfer_handle xf DPRINTF(("%s: remove\n", __func__)); + sc->sc_intrxfer = NULL; + xfer->status = USBD_CANCELLED; usb_transfer_complete(xfer); } Index: src/sys/external/bsd/dwc2/dwc2.c diff -u src/sys/external/bsd/dwc2/dwc2.c:1.29 src/sys/external/bsd/dwc2/dwc2.c:1.30 --- src/sys/external/bsd/dwc2/dwc2.c:1.29 Tue Aug 5 06:35:24 2014 +++ src/sys/external/bsd/dwc2/dwc2.c Tue Aug 5 08:33:50 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: dwc2.c,v 1.29 2014/08/05 06:35:24 skrll Exp $ */ +/* $NetBSD: dwc2.c,v 1.30 2014/08/05 08:33:50 skrll Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: dwc2.c,v 1.29 2014/08/05 06:35:24 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dwc2.c,v 1.30 2014/08/05 08:33:50 skrll Exp $"); #include "opt_usb.h" @@ -912,6 +912,8 @@ dwc2_root_intr_abort(usbd_xfer_handle xf KASSERT(mutex_owned(&sc->sc_lock)); KASSERT(xfer->pipe->intrxfer == xfer); + sc->sc_intrxfer = NULL; + xfer->status = USBD_CANCELLED; usb_transfer_complete(xfer); }