Module Name:    src
Committed By:   riastradh
Date:           Thu Mar  3 06:08:50 UTC 2022

Modified Files:
        src/sys/dev/usb: ehci.c motg.c ohci.c uhci.c usbdi.c xhci.c
        src/sys/external/bsd/dwc2: dwc2.c

Log Message:
usb: Factor usb_transfer_complete out of ubm_abortx method.


To generate a diff of this commit:
cvs rdiff -u -r1.303 -r1.304 src/sys/dev/usb/ehci.c
cvs rdiff -u -r1.38 -r1.39 src/sys/dev/usb/motg.c
cvs rdiff -u -r1.319 -r1.320 src/sys/dev/usb/ohci.c
cvs rdiff -u -r1.309 -r1.310 src/sys/dev/usb/uhci.c
cvs rdiff -u -r1.226 -r1.227 src/sys/dev/usb/usbdi.c
cvs rdiff -u -r1.156 -r1.157 src/sys/dev/usb/xhci.c
cvs rdiff -u -r1.78 -r1.79 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/ehci.c
diff -u src/sys/dev/usb/ehci.c:1.303 src/sys/dev/usb/ehci.c:1.304
--- src/sys/dev/usb/ehci.c:1.303	Thu Mar  3 06:04:31 2022
+++ src/sys/dev/usb/ehci.c	Thu Mar  3 06:08:50 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: ehci.c,v 1.303 2022/03/03 06:04:31 riastradh Exp $ */
+/*	$NetBSD: ehci.c,v 1.304 2022/03/03 06:08:50 riastradh Exp $ */
 
 /*
  * Copyright (c) 2004-2012,2016,2020 The NetBSD Foundation, Inc.
@@ -54,7 +54,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ehci.c,v 1.303 2022/03/03 06:04:31 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ehci.c,v 1.304 2022/03/03 06:08:50 riastradh Exp $");
 
 #include "ohci.h"
 #include "uhci.h"
@@ -3388,14 +3388,10 @@ ehci_abortx(struct usbd_xfer *xfer)
 		    BUS_DMASYNC_PREREAD);
 	}
 
-	/*
-	 * Final step: Notify completion to waiting xfers.
-	 */
 dying:
 #ifdef DIAGNOSTIC
 	exfer->ex_isdone = true;
 #endif
-	usb_transfer_complete(xfer);
 	DPRINTFN(14, "end", 0, 0, 0, 0);
 
 	KASSERT(mutex_owned(&sc->sc_lock));

Index: src/sys/dev/usb/motg.c
diff -u src/sys/dev/usb/motg.c:1.38 src/sys/dev/usb/motg.c:1.39
--- src/sys/dev/usb/motg.c:1.38	Thu Mar  3 06:04:31 2022
+++ src/sys/dev/usb/motg.c	Thu Mar  3 06:08:50 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: motg.c,v 1.38 2022/03/03 06:04:31 riastradh Exp $	*/
+/*	$NetBSD: motg.c,v 1.39 2022/03/03 06:08:50 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1998, 2004, 2011, 2012, 2014 The NetBSD Foundation, Inc.
@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: motg.c,v 1.38 2022/03/03 06:04:31 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: motg.c,v 1.39 2022/03/03 06:08:50 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -2222,6 +2222,5 @@ motg_abortx(struct usbd_xfer *xfer)
 		}
 	}
 dying:
-	usb_transfer_complete(xfer);
 	KASSERT(mutex_owned(&sc->sc_lock));
 }

Index: src/sys/dev/usb/ohci.c
diff -u src/sys/dev/usb/ohci.c:1.319 src/sys/dev/usb/ohci.c:1.320
--- src/sys/dev/usb/ohci.c:1.319	Thu Mar  3 06:04:31 2022
+++ src/sys/dev/usb/ohci.c	Thu Mar  3 06:08:50 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: ohci.c,v 1.319 2022/03/03 06:04:31 riastradh Exp $	*/
+/*	$NetBSD: ohci.c,v 1.320 2022/03/03 06:08:50 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1998, 2004, 2005, 2012, 2016, 2020 The NetBSD Foundation, Inc.
@@ -42,7 +42,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ohci.c,v 1.319 2022/03/03 06:04:31 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ohci.c,v 1.320 2022/03/03 06:08:50 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -2409,12 +2409,7 @@ ohci_abortx(struct usbd_xfer *xfer)
 	usb_syncmem(&sed->dma, sed->offs + offsetof(ohci_ed_t, ed_flags),
 	    sizeof(sed->ed.ed_flags),
 	    BUS_DMASYNC_PREWRITE | BUS_DMASYNC_PREREAD);
-
-	/*
-	 * Final step: Notify completion to waiting xfers.
-	 */
 dying:
-	usb_transfer_complete(xfer);
 	DPRINTFN(14, "end", 0, 0, 0, 0);
 
 	KASSERT(mutex_owned(&sc->sc_lock));

Index: src/sys/dev/usb/uhci.c
diff -u src/sys/dev/usb/uhci.c:1.309 src/sys/dev/usb/uhci.c:1.310
--- src/sys/dev/usb/uhci.c:1.309	Thu Mar  3 06:04:31 2022
+++ src/sys/dev/usb/uhci.c	Thu Mar  3 06:08:50 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: uhci.c,v 1.309 2022/03/03 06:04:31 riastradh Exp $	*/
+/*	$NetBSD: uhci.c,v 1.310 2022/03/03 06:08:50 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1998, 2004, 2011, 2012, 2016, 2020 The NetBSD Foundation, Inc.
@@ -42,7 +42,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uhci.c,v 1.309 2022/03/03 06:04:31 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uhci.c,v 1.310 2022/03/03 06:08:50 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -2402,15 +2402,10 @@ uhci_abortx(struct usbd_xfer *xfer)
 	 */
 	/* Hardware finishes in 1ms */
 	usb_delay_ms_locked(upipe->pipe.up_dev->ud_bus, 2, &sc->sc_lock);
-
-	/*
-	 * HC Step 3: Notify completion to waiting xfers.
-	 */
 dying:
 #ifdef DIAGNOSTIC
 	ux->ux_isdone = true;
 #endif
-	usb_transfer_complete(xfer);
 	DPRINTFN(14, "end", 0, 0, 0, 0);
 
 	KASSERT(mutex_owned(&sc->sc_lock));

Index: src/sys/dev/usb/usbdi.c
diff -u src/sys/dev/usb/usbdi.c:1.226 src/sys/dev/usb/usbdi.c:1.227
--- src/sys/dev/usb/usbdi.c:1.226	Thu Mar  3 06:07:11 2022
+++ src/sys/dev/usb/usbdi.c	Thu Mar  3 06:08:50 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: usbdi.c,v 1.226 2022/03/03 06:07:11 riastradh Exp $	*/
+/*	$NetBSD: usbdi.c,v 1.227 2022/03/03 06:08:50 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1998, 2012, 2015 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: usbdi.c,v 1.226 2022/03/03 06:07:11 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: usbdi.c,v 1.227 2022/03/03 06:08:50 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -1533,11 +1533,13 @@ usbd_xfer_abort(struct usbd_xfer *xfer)
 	usbd_xfer_cancel_timeout_async(xfer);
 
 	/*
-	 * We beat everyone else.  Claim the status as cancelled and do
-	 * the bus-specific dance to abort the hardware.
+	 * We beat everyone else.  Claim the status as cancelled, do
+	 * the bus-specific dance to abort the hardware, and complete
+	 * the xfer.
 	 */
 	xfer->ux_status = USBD_CANCELLED;
 	bus->ub_methods->ubm_abortx(xfer);
+	usb_transfer_complete(xfer);
 }
 
 /*
@@ -1617,11 +1619,13 @@ usbd_xfer_timeout_task(void *cookie)
 		goto out;
 
 	/*
-	 * We beat everyone else.  Claim the status as timed out and do
-	 * the bus-specific dance to abort the hardware.
+	 * We beat everyone else.  Claim the status as timed out, do
+	 * the bus-specific dance to abort the hardware, and complete
+	 * the xfer.
 	 */
 	xfer->ux_status = USBD_TIMEOUT;
 	bus->ub_methods->ubm_abortx(xfer);
+	usb_transfer_complete(xfer);
 
 out:	/* All done -- release the lock.  */
 	mutex_exit(bus->ub_lock);

Index: src/sys/dev/usb/xhci.c
diff -u src/sys/dev/usb/xhci.c:1.156 src/sys/dev/usb/xhci.c:1.157
--- src/sys/dev/usb/xhci.c:1.156	Thu Mar  3 06:04:31 2022
+++ src/sys/dev/usb/xhci.c	Thu Mar  3 06:08:50 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: xhci.c,v 1.156 2022/03/03 06:04:31 riastradh Exp $	*/
+/*	$NetBSD: xhci.c,v 1.157 2022/03/03 06:08:50 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2013 Jonathan A. Kollasch
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.156 2022/03/03 06:04:31 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.157 2022/03/03 06:08:50 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -2154,8 +2154,6 @@ xhci_abortx(struct usbd_xfer *xfer)
 
 	xhci_pipe_restart(xfer->ux_pipe);
 
-	usb_transfer_complete(xfer);
-
 	DPRINTFN(14, "end", 0, 0, 0, 0);
 }
 

Index: src/sys/external/bsd/dwc2/dwc2.c
diff -u src/sys/external/bsd/dwc2/dwc2.c:1.78 src/sys/external/bsd/dwc2/dwc2.c:1.79
--- src/sys/external/bsd/dwc2/dwc2.c:1.78	Thu Mar  3 06:04:31 2022
+++ src/sys/external/bsd/dwc2/dwc2.c	Thu Mar  3 06:08:50 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: dwc2.c,v 1.78 2022/03/03 06:04:31 riastradh Exp $	*/
+/*	$NetBSD: dwc2.c,v 1.79 2022/03/03 06:08:50 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dwc2.c,v 1.78 2022/03/03 06:04:31 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dwc2.c,v 1.79 2022/03/03 06:08:50 riastradh Exp $");
 
 #include "opt_usb.h"
 
@@ -515,7 +515,7 @@ dwc2_abortx(struct usbd_xfer *xfer)
 	}
 
 	/*
-	 * HC Step 1: Handle the hardware.
+	 * Handle the hardware.
 	 */
 	err = dwc2_hcd_urb_dequeue(hsotg, dxfer->urb);
 	if (err) {
@@ -524,11 +524,6 @@ dwc2_abortx(struct usbd_xfer *xfer)
 
 dying:
 	mutex_spin_exit(&hsotg->lock);
-
-	/*
-	 * Final Step: Notify completion to waiting xfers.
-	 */
-	usb_transfer_complete(xfer);
 	KASSERT(mutex_owned(&sc->sc_lock));
 }
 

Reply via email to