[OpenWrt-Devel] Submitting PATCH for rtl8192cu HTmode deadlock
Derek Werthmuller
thewerthfam at gmail.com
Wed Apr 8 12:29:20 EDT 2015
In reference to bug # 18539
https://dev.openwrt.org/ticket/18539#comment:4
The deadlock appears that when the adapter is in AP mode and client
negotiates into the HT modes. I don't know if this effects the adapter
used in client modes. But without the patch the adapter is not usable in
ap mode. This adapter is integrated in the sunxi based bpi-r1 board.
I'd be interested in conversations to get this adapter up to some level of
802.11n HT mode.
The below patch I'd like to submit for evaluation for inclusion.
Cheers
Derek
DEBUGing and patch done by sbrown
Comment (by sbrown):
I found that the problem only occurs at HT rates.
After looking at some more wireshark output, the problem seems to be
that the aggregation sessions deadlock when a second one starts before
the first one completes. That would explain why it only occurs in HT
mode.
The sequence on the air before the deadlock is:
STA->AP block ack req
STA->AP ping req
AP->STA block ack resp
AP->STA ping resp
AP->STA block ack req
STA->AP block ack resp
The sequence on the air after the deadlock is:
AP->STA block ack req
STA->AP block ack req
AP->STA block ack resp
STA->AP block ack resp
STA->AP ping req
...
STA->AP ping req (repeats)
If I disable aggregation in the driver with the attached patch, the
problem goes away with a performance loss.
{{{
diff -rupN a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
--- a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c 2015-04-03
07:10:19.343543253 -0400
+++ b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c 2015-04-03
07:11:51.323999358 -0400
@@ -59,7 +59,9 @@ static int rtl92cu_init_sw_vars(struct i
{
struct rtl_priv *rtlpriv = rtl_priv(hw);
int err;
-
+ /* disable aggregation until the deadlock is fixed */
+ hw->flags &= ~IEEE80211_HW_AMPDU_AGGREGATION;
+
rtlpriv->dm.dm_initialgain_enable = true;
rtlpriv->dm.dm_flag = 0;
rtlpriv->dm.disable_framebursting = false;
}}}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/openwrt-devel/attachments/20150408/73cf3d16/attachment.htm>
-------------- next part --------------
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list