diff options
author | Claudio Jeker <claudio@cvs.openbsd.org> | 2007-04-02 08:41:05 +0000 |
---|---|---|
committer | Claudio Jeker <claudio@cvs.openbsd.org> | 2007-04-02 08:41:05 +0000 |
commit | c86ec29ed1ef760f6d2094236ebcf88fa1b8a289 (patch) | |
tree | 8c74f9bc79adbd04c18a0c9799fcd430bbc0fadd /sys | |
parent | d15b9ae53a44ced47f4bb732a599f17a8b87e229 (diff) |
Similar to other drivers call if_start() at the end of the rx interrupt because
ieee80211_input() may enqueue packets.
OK jsg@
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/ic/rtw.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/dev/ic/rtw.c b/sys/dev/ic/rtw.c index 6bcb85cc78d..12d55288950 100644 --- a/sys/dev/ic/rtw.c +++ b/sys/dev/ic/rtw.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rtw.c,v 1.58 2007/02/14 04:59:55 jsg Exp $ */ +/* $OpenBSD: rtw.c,v 1.59 2007/04/02 08:41:04 claudio Exp $ */ /* $NetBSD: rtw.c,v 1.29 2004/12/27 19:49:16 dyoung Exp $ */ /*- @@ -1343,6 +1343,14 @@ next: KASSERT(rdb->rdb_next < rdb->rdb_ndesc); + /* + * In HostAP mode, ieee80211_input() will enqueue packets in if_snd + * without calling if_start(). + */ + if (!IFQ_IS_EMPTY(&sc->sc_if.if_snd) && + !(sc->sc_if.if_flags & IFF_OACTIVE)) + (*sc->sc_if.if_start)(&sc->sc_if); + return; #undef IS_BEACON } |