Changeset 27608 for branches/backfire


Ignore:
Timestamp:
2011-07-13T17:39:26+02:00 (5 years ago)
Author:
nbd
Message:

ath9k: add some more fixes to the mic failure handling rework patch, backport of r27607

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/backfire/package/mac80211/patches/550-ath9k_mmic_verify.patch

    r27597 r27608  
    2525                return false; 
    2626         /* 
    27 @@ -850,25 +853,9 @@ static bool ath9k_rx_accept(struct ath_c 
     27@@ -838,6 +841,11 @@ static bool ath9k_rx_accept(struct ath_c 
     28        if (rx_stats->rs_more) 
     29                return true; 
     30  
     31+       mic_error = is_valid_tkip && !ieee80211_is_ctl(fc) && 
     32+               !ieee80211_has_morefrags(fc) && 
     33+               !(le16_to_cpu(hdr->seq_ctrl) & IEEE80211_SCTL_FRAG) && 
     34+               (rx_stats->rs_status & ATH9K_RXERR_MIC); 
     35+ 
     36        /* 
     37         * The rx_stats->rs_status will not be set until the end of the 
     38         * chained descriptors so it can be ignored if rs_more is set. The 
     39@@ -845,30 +853,18 @@ static bool ath9k_rx_accept(struct ath_c 
     40         * descriptors. 
     41         */ 
     42        if (rx_stats->rs_status != 0) { 
     43-               if (rx_stats->rs_status & ATH9K_RXERR_CRC) 
     44+               if (rx_stats->rs_status & ATH9K_RXERR_CRC) { 
     45                        rxs->flag |= RX_FLAG_FAILED_FCS_CRC; 
     46+                       mic_error = false; 
     47+               } 
    2848                if (rx_stats->rs_status & ATH9K_RXERR_PHY) 
    2949                        return false; 
    3050  
    31 -               if (rx_stats->rs_status & ATH9K_RXERR_DECRYPT) { 
    32 +               if (rx_stats->rs_status & ATH9K_RXERR_DECRYPT) 
     51                if (rx_stats->rs_status & ATH9K_RXERR_DECRYPT) { 
    3352                        *decrypt_error = true; 
    3453-               } else if (rx_stats->rs_status & ATH9K_RXERR_MIC) { 
     
    4059-                        */ 
    4160-                       is_mc = !!is_multicast_ether_addr(hdr->addr1); 
    42   
     61- 
    4362-                       if (!ieee80211_is_ctl(fc) && 
    4463-                           !ieee80211_has_morefrags(fc) && 
     
    4867-                       else 
    4968-                               rx_stats->rs_status &= ~ATH9K_RXERR_MIC; 
    50 -               } 
     69+                       mic_error = false; 
     70                } 
     71+ 
    5172                /* 
    5273                 * Reject error frames with the exception of 
    5374                 * decryption and MIC failures. For monitor mode, 
    54 @@ -886,6 +873,18 @@ static bool ath9k_rx_accept(struct ath_c 
     75@@ -886,6 +882,18 @@ static bool ath9k_rx_accept(struct ath_c 
    5576                        } 
    5677                } 
     
    7192 } 
    7293  
    73 @@ -1940,6 +1939,9 @@ int ath_rx_tasklet(struct ath_softc *sc, 
     94@@ -1940,6 +1948,9 @@ int ath_rx_tasklet(struct ath_softc *sc, 
    7495                        sc->rx.rxotherant = 0; 
    7596                } 
Note: See TracChangeset for help on using the changeset viewer.