summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/if_uath.c
diff options
context:
space:
mode:
authorjakemsr <jakemsr@openbsd.org>2010-10-23 15:42:09 +0000
committerjakemsr <jakemsr@openbsd.org>2010-10-23 15:42:09 +0000
commitc33449aa8264106b22d14984289cf902a7661815 (patch)
tree050262ee23fea6e0c41a6c376d00c28b05dfad04 /sys/dev/usb/if_uath.c
parentremove PFR_FLAG_ATOMIC. not used, and doesn't work as advertised. (diff)
downloadwireguard-openbsd-c33449aa8264106b22d14984289cf902a7661815.tar.xz
wireguard-openbsd-c33449aa8264106b22d14984289cf902a7661815.zip
create another kthread to run xfer abort tasks. xfer abort tasks cannot
be run from the generic task kthread, because xfers that need to be aborted block newly queued tasks from running (i.e. the xfer to be aborted blocks the abort of that task). as there are now three types of usb tasks, add an argument to usb_init_task() and another member to struct usb_task to specify the task type. fixes boot hangs that are showing up because we now use usb tasks to attach/detach usb devices.
Diffstat (limited to 'sys/dev/usb/if_uath.c')
-rw-r--r--sys/dev/usb/if_uath.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/usb/if_uath.c b/sys/dev/usb/if_uath.c
index 37bfc6e8c66..4fe2392ff16 100644
--- a/sys/dev/usb/if_uath.c
+++ b/sys/dev/usb/if_uath.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_uath.c,v 1.43 2010/08/27 17:08:01 jsg Exp $ */
+/* $OpenBSD: if_uath.c,v 1.44 2010/10/23 15:42:09 jakemsr Exp $ */
/*-
* Copyright (c) 2006
@@ -298,7 +298,7 @@ uath_attach(struct device *parent, struct device *self, void *aux)
/*
* Only post-firmware devices here.
*/
- usb_init_task(&sc->sc_task, uath_task, sc);
+ usb_init_task(&sc->sc_task, uath_task, sc, USB_TASK_TYPE_GENERIC);
timeout_set(&sc->scan_to, uath_next_scan, sc);
timeout_set(&sc->stat_to, uath_stat, sc);