diff options
author | sam <sam@FreeBSD.org> | 2007-03-05 21:53:49 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2007-03-05 21:53:49 +0000 |
commit | 5a1d9101b6c22981a05cf2f8e5dff032c8af3bb3 (patch) | |
tree | db5f69230146695ab770dbc2a10ebc3750549ab1 /sys/dev/ath | |
parent | e5d284af0e116746a686e9cbb85fcf3daaa3ee76 (diff) | |
download | FreeBSD-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.c | 5 |
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 } |