summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Bergamini <damien@cvs.openbsd.org>2004-10-27 21:23:46 +0000
committerDamien Bergamini <damien@cvs.openbsd.org>2004-10-27 21:23:46 +0000
commitdb76883511da648df3854e7c4eb4b3435da3cf0d (patch)
tree9364da08f2a626da9df58c9c50238af2cec10e30
parent489bbdb168f13bfa3c0c9e42a537632034e4022e (diff)
Check that we are associated before sending anything. Call ipw_stop()
from ipw_watchdog().
-rw-r--r--sys/dev/pci/if_ipw.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/dev/pci/if_ipw.c b/sys/dev/pci/if_ipw.c
index f38bf7b7bfd..3aec82a378c 100644
--- a/sys/dev/pci/if_ipw.c
+++ b/sys/dev/pci/if_ipw.c
@@ -1,4 +1,4 @@
-/* $Id: if_ipw.c,v 1.14 2004/10/27 21:23:01 damien Exp $ */
+/* $Id: if_ipw.c,v 1.15 2004/10/27 21:23:45 damien Exp $ */
/*-
* Copyright (c) 2004
@@ -951,6 +951,9 @@ ipw_start(struct ifnet *ifp)
struct mbuf *m;
struct ieee80211_node *ni;
+ if (ic->ic_state != IEEE80211_S_RUN)
+ return;
+
for (;;) {
IF_DEQUEUE(&ifp->if_snd, m);
if (m == NULL)
@@ -992,9 +995,7 @@ ipw_watchdog(struct ifnet *ifp)
if (sc->sc_tx_timer > 0) {
if (--sc->sc_tx_timer == 0) {
printf("%s: device timeout\n", sc->sc_dev.dv_xname);
-#ifdef notyet
- ipw_init(ifp);
-#endif
+ ipw_stop(ifp, 1);
return;
}
ifp->if_timer = 1;