#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

Reply via email to