lkml.org 
[lkml]   [2011]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
SubjectRe: iwlagn is getting very shaky
From
Hi again

Can you please try the attached patch ?
I would like to know if it helps.

Thanks !

On Sun, Nov 27, 2011 at 08:38, Emmanuel Grumbach <egrumbach@gmail.com> wrote:
>> Yeah, that was my impression too, but still, I wanted to mention it.
>>
>>> I am already on week-end here and will look at it more carefully
>>> later. First impression is that things are messy here. I guess we are
>>> getting in a bad failure path that wasn't checked...
>>
>> No problem, I can cope with it.
>>
>
> you can always disable 11n: modprobe 11n_disable=1.
>
> Well... Something is really weird here:
> mac80211 requests from us to:
> * start agg
> * stop agg
> * agg operational
>
> this is not a legal sequence
>
> BTW - I am under this impression that mac80211 hasn't been compiled
> with HT debug flag. Can you please set this compilation flag ?
>
> I also would like you to add this line in iwlagn_mac_ampdu_action:
>
>
> static int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw,
>                                   struct ieee80211_vif *vif,
>                                   enum ieee80211_ampdu_mlme_action action,
>                                   struct ieee80211_sta *sta, u16 tid, u16 *ssn,
>                                   u8 buf_size)
> {
>        struct iwl_priv *priv = hw->priv;
>        int ret = -EINVAL;
>        struct iwl_station_priv *sta_priv = (void *) sta->drv_priv;
>
>        IWL_DEBUG_HT(priv, "A-MPDU action on addr %pM tid %d\n",
>                     sta->addr, tid);
>
> dump_stack();   <<<<========================================= new line
>
>        if (!(priv->cfg->sku & EEPROM_SKU_CAP_11N_ENABLE))
>                return -EACCES;
>
>
>
> This will give an insight at why is mac80211 calling the driver and
> better point me to the bug.
>
>
> Thanks !
>
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
index d9b5340..f6436b9 100644
--- a/net/mac80211/agg-tx.c
+++ b/net/mac80211/agg-tx.c
@@ -778,6 +778,9 @@ void ieee80211_process_addba_resp(struct ieee80211_local *local,
*/
if (le16_to_cpu(mgmt->u.action.u.addba_resp.status)
== WLAN_STATUS_SUCCESS && buf_size) {
+ if (test_bit(HT_AGG_STATE_WANT_STOP, &tid_tx->state))
+ /* the addBA resp came too late */
+ goto out;
if (test_and_set_bit(HT_AGG_STATE_RESPONSE_RECEIVED,
&tid_tx->state)) {
/* ignore duplicate response */
\
 
 \ /
  Last update: 2011-11-27 10:45    [W:0.118 / U:0.152 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site