Module Name:    src
Committed By:   khorben
Date:           Thu Sep 20 09:45:16 UTC 2018

Modified Files:
        src/sys/dev/usb: if_umb.c

Log Message:
Use usb_rem_task_wait() now that it is available

This should avoid panics while detaching devices.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/dev/usb/if_umb.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/if_umb.c
diff -u src/sys/dev/usb/if_umb.c:1.4 src/sys/dev/usb/if_umb.c:1.5
--- src/sys/dev/usb/if_umb.c:1.4	Wed Aug  1 18:27:58 2018
+++ src/sys/dev/usb/if_umb.c	Thu Sep 20 09:45:16 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_umb.c,v 1.4 2018/08/01 18:27:58 khorben Exp $ */
+/*	$NetBSD: if_umb.c,v 1.5 2018/09/20 09:45:16 khorben Exp $ */
 /*	$OpenBSD: if_umb.c,v 1.18 2018/02/19 08:59:52 mpi Exp $ */
 
 /*
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_umb.c,v 1.4 2018/08/01 18:27:58 khorben Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_umb.c,v 1.5 2018/09/20 09:45:16 khorben Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -91,10 +91,6 @@ Static void	 umb_dump(void *, int);
 
 #define DEVNAM(sc)		device_xname((sc)->sc_dev)
 
-#ifndef notyet
-#define usb_wait_task(dev, task)
-#endif
-
 /*
  * State change timeout
  */
@@ -584,13 +580,13 @@ umb_detach(device_t self, int flags)
 		umb_down(sc, 1);
 	umb_close(sc);
 
-	usb_rem_task(sc->sc_udev, &sc->sc_get_response_task);
-	usb_wait_task(sc->sc_udev, &sc->sc_get_response_task);
+	usb_rem_task_wait(sc->sc_udev, &sc->sc_get_response_task,
+			USB_TASKQ_DRIVER, NULL);
 	sc->sc_nresp = 0;
 	if (sc->sc_rx_ep != -1 && sc->sc_tx_ep != -1) {
 		callout_destroy(&sc->sc_statechg_timer);
-		usb_rem_task(sc->sc_udev, &sc->sc_umb_task);
-		usb_wait_task(sc->sc_udev, &sc->sc_umb_task);
+		usb_rem_task_wait(sc->sc_udev, &sc->sc_umb_task,
+			USB_TASKQ_DRIVER, NULL);
 	}
 	if (sc->sc_ctrl_pipe) {
 		usbd_close_pipe(sc->sc_ctrl_pipe);

Reply via email to