#18539: RTL8192cu driver stability issues
----------------------------+-----------------------------------
Reporter: thewerthfam@… | Owner: developers
Type: defect | Status: new
Priority: high | Milestone: Chaos Calmer (trunk)
Component: kernel | Version: Trunk
Resolution: | Keywords: kernel driver rtl8192
----------------------------+-----------------------------------
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 --git a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
index 361435f..c1c9bb5 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
@@ -59,6 +59,9 @@ static int rtl92cu_init_sw_vars(struct ieee80211_hw *hw)
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;
}}}
--
Ticket URL: <https://dev.openwrt.org/ticket/18539#comment:4>
OpenWrt <http://openwrt.org>
Opensource Wireless Router Technology
_______________________________________________
openwrt-tickets mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-tickets