Ignore:
Timestamp:
2011-09-07T08:06:34+02:00 (5 years ago)
Author:
nbd
Message:

mac80211: fix an endian issue in BlockAckReq handling

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/mac80211/patches/560-mac80211_defer_bar_tx.patch

    r28093 r28190  
    7474  * Use a static threshold for now, best value to be determined 
    7575  * by testing ... 
    76 @@ -254,10 +286,13 @@ void ieee80211_tx_status(struct ieee8021 
     76@@ -246,6 +278,8 @@ void ieee80211_tx_status(struct ieee8021 
     77                } 
     78  
     79                if (!acked && ieee80211_is_back_req(fc)) { 
     80+                       u16 control; 
     81+ 
     82                        /* 
     83                         * BAR failed, let's tear down the BA session as a 
     84                         * last resort as some STAs (Intel 5100 on Windows) 
     85@@ -253,11 +287,15 @@ void ieee80211_tx_status(struct ieee8021 
     86                         * correctly. 
    7787                         */ 
    7888                        bar = (struct ieee80211_bar *) skb->data; 
    79                         if (!(bar->control & IEEE80211_BAR_CTRL_MULTI_TID)) { 
     89-                       if (!(bar->control & IEEE80211_BAR_CTRL_MULTI_TID)) { 
     90-                               tid = (bar->control & 
     91+                       control = le16_to_cpu(bar->control); 
     92+                       if (!(control & IEEE80211_BAR_CTRL_MULTI_TID)) { 
    8093+                               u16 ssn = le16_to_cpu(bar->start_seq_num); 
    8194+ 
    82                                 tid = (bar->control & 
     95+                               tid = (control & 
    8396                                       IEEE80211_BAR_CTRL_TID_INFO_MASK) >> 
    8497                                      IEEE80211_BAR_CTRL_TID_INFO_SHIFT; 
Note: See TracChangeset for help on using the changeset viewer.