summaryrefslogtreecommitdiffstats
path: root/sys/dev/ath
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2007-03-05 21:53:49 +0000
committersam <sam@FreeBSD.org>2007-03-05 21:53:49 +0000
commit5a1d9101b6c22981a05cf2f8e5dff032c8af3bb3 (patch)
treedb5f69230146695ab770dbc2a10ebc3750549ab1 /sys/dev/ath
parente5d284af0e116746a686e9cbb85fcf3daaa3ee76 (diff)
downloadFreeBSD-src-5a1d9101b6c22981a05cf2f8e5dff032c8af3bb3.zip
FreeBSD-src-5a1d9101b6c22981a05cf2f8e5dff032c8af3bb3.tar.gz
Kick tx after processing rx'd frames; this fixes latency issues
for processing frames from the power save queue when operating in ap mode. This is especially noticeable for realtime data going to devices like voip phones. Submitted by: "J.R. Oldroyd" <jr@opal.com> MFC after: 2 weeks
Diffstat (limited to 'sys/dev/ath')
-rw-r--r--sys/dev/ath/if_ath.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index 596c13d..3a29073 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -3170,6 +3170,11 @@ rx_next:
if (ngood)
sc->sc_lastrx = tsf;
+ /* NB: may want to check mgtq too */
+ if ((ifp->if_drv_flags & IFF_DRV_OACTIVE) == 0 &&
+ !IFQ_IS_EMPTY(&ifp->if_snd))
+ ath_start(ifp);
+
NET_UNLOCK_GIANT(); /* XXX */
#undef PA2DESC
}
OpenPOWER on IntegriCloud