summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/usb/if_ral.c11
-rw-r--r--sys/dev/usb/if_rum.c11
2 files changed, 14 insertions, 8 deletions
diff --git a/sys/dev/usb/if_ral.c b/sys/dev/usb/if_ral.c
index a0637f7555a..b1668ee2541 100644
--- a/sys/dev/usb/if_ral.c
+++ b/sys/dev/usb/if_ral.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_ral.c,v 1.84 2006/11/26 11:14:22 deraadt Exp $ */
+/* $OpenBSD: if_ral.c,v 1.85 2006/12/03 16:16:58 damien Exp $ */
/*-
* Copyright (c) 2005, 2006
@@ -638,11 +638,14 @@ ural_newstate(struct ieee80211com *ic, enum ieee80211_state nstate, int arg)
timeout_del(&sc->scan_to);
timeout_del(&sc->amrr_to);
- /* do it in a process context */
sc->sc_state = nstate;
sc->sc_arg = arg;
- usb_add_task(sc->sc_udev, &sc->sc_task);
-
+ if (curproc != NULL) {
+ ural_task(sc);
+ } else {
+ /* do it in a process context */
+ usb_add_task(sc->sc_udev, &sc->sc_task);
+ }
return 0;
}
diff --git a/sys/dev/usb/if_rum.c b/sys/dev/usb/if_rum.c
index e02c27b7229..58472d16067 100644
--- a/sys/dev/usb/if_rum.c
+++ b/sys/dev/usb/if_rum.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_rum.c,v 1.45 2006/11/26 11:14:22 deraadt Exp $ */
+/* $OpenBSD: if_rum.c,v 1.46 2006/12/03 16:16:58 damien Exp $ */
/*-
* Copyright (c) 2005, 2006 Damien Bergamini <damien.bergamini@free.fr>
@@ -686,11 +686,14 @@ rum_newstate(struct ieee80211com *ic, enum ieee80211_state nstate, int arg)
timeout_del(&sc->scan_to);
timeout_del(&sc->amrr_to);
- /* do it in a process context */
sc->sc_state = nstate;
sc->sc_arg = arg;
- usb_add_task(sc->sc_udev, &sc->sc_task);
-
+ if (curproc != NULL) {
+ rum_task(sc);
+ } else {
+ /* do it in a process context */
+ usb_add_task(sc->sc_udev, &sc->sc_task);
+ }
return 0;
}