diff options
author | Claudio Jeker <claudio@cvs.openbsd.org> | 2007-03-14 08:23:10 +0000 |
---|---|---|
committer | Claudio Jeker <claudio@cvs.openbsd.org> | 2007-03-14 08:23:10 +0000 |
commit | 370aac902df18c19faadc4ba087ea81ab2d53a7b (patch) | |
tree | 714165eb4397f6c6d841ccc39dee594889d8c2f3 | |
parent | 3c260e9b56b4d3503560e387c4c91725a28c610a (diff) |
Call ifp->if_start() at the end of the rx interrupt handling just in case
ieee80211_input() enqueued a packet beforehand. malo(4) does not support
hostap mode so this should not happen but perhaps mglocker@ gets it working
someday. OK mglocker@
-rw-r--r-- | sys/dev/ic/malo.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/dev/ic/malo.c b/sys/dev/ic/malo.c index 8e92ead659f..fcf61155b37 100644 --- a/sys/dev/ic/malo.c +++ b/sys/dev/ic/malo.c @@ -1,4 +1,4 @@ -/* $OpenBSD: malo.c,v 1.63 2007/02/14 20:52:26 mglocker Exp $ */ +/* $OpenBSD: malo.c,v 1.64 2007/03/14 08:23:09 claudio Exp $ */ /* * Copyright (c) 2006 Claudio Jeker <claudio@openbsd.org> @@ -1773,6 +1773,13 @@ skip: } malo_mem_write4(sc, sc->sc_RxPdRdPtr, rxRdPtr); + + /* + * In HostAP mode, ieee80211_input() will enqueue packets in if_snd + * without calling if_start(). + */ + if (!IFQ_IS_EMPTY(&ifp->if_snd) && !(ifp->if_flags & IFF_OACTIVE)) + (*ifp->if_start)(ifp); } int |