}
 
 static const char ieee80211_gstrings_sta_stats[][ETH_GSTRING_LEN] = {
-       "rx_packets", "rx_bytes", "wep_weak_iv_count",
+       "rx_packets", "rx_bytes",
        "rx_duplicates", "rx_fragments", "rx_dropped",
        "tx_packets", "tx_bytes", "tx_fragments",
        "tx_filtered", "tx_retry_failed", "tx_retries",
        do {                                            \
                data[i++] += sta->rx_packets;           \
                data[i++] += sta->rx_bytes;             \
-               data[i++] += sta->wep_weak_iv_count;    \
                data[i++] += sta->num_duplicates;       \
                data[i++] += sta->rx_fragments;         \
                data[i++] += sta->rx_dropped;           \
 
        DEBUGFS_ADD_COUNTER(tx_filtered, tx_filtered_count);
        DEBUGFS_ADD_COUNTER(tx_retry_failed, tx_retry_failed);
        DEBUGFS_ADD_COUNTER(tx_retry_count, tx_retry_count);
-       DEBUGFS_ADD_COUNTER(wep_weak_iv_count, wep_weak_iv_count);
 
        if (sizeof(sta->driver_buffered_tids) == sizeof(u32))
                debugfs_create_x32("driver_buffered_tids", 0400,
 
  * @driver_buffered_tids: bitmap of TIDs the driver has data buffered on
  * @rx_packets: Number of MSDUs received from this STA
  * @rx_bytes: Number of bytes received from this STA
- * @wep_weak_iv_count: number of weak WEP IVs received from this station
  * @last_rx: time (in jiffies) when last frame was received from this STA
  * @last_connected: time (in seconds) when a station got connected
  * @num_duplicates: number of duplicate frames received from this STA
        /* Updated from RX path only, no locking requirements */
        unsigned long rx_packets;
        u64 rx_bytes;
-       unsigned long wep_weak_iv_count;
        unsigned long last_rx;
        long last_connected;
        unsigned long num_duplicates;
 
        return ret;
 }
 
-
-static bool ieee80211_wep_is_weak_iv(struct sk_buff *skb,
-                                    struct ieee80211_key *key)
-{
-       struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
-       unsigned int hdrlen;
-       u8 *ivpos;
-       u32 iv;
-
-       hdrlen = ieee80211_hdrlen(hdr->frame_control);
-       ivpos = skb->data + hdrlen;
-       iv = (ivpos[0] << 16) | (ivpos[1] << 8) | ivpos[2];
-
-       return ieee80211_wep_weak_iv(iv, key->conf.keylen);
-}
-
 ieee80211_rx_result
 ieee80211_crypto_wep_decrypt(struct ieee80211_rx_data *rx)
 {
        if (!(status->flag & RX_FLAG_DECRYPTED)) {
                if (skb_linearize(rx->skb))
                        return RX_DROP_UNUSABLE;
-               if (rx->sta && ieee80211_wep_is_weak_iv(rx->skb, rx->key))
-                       rx->sta->wep_weak_iv_count++;
                if (ieee80211_wep_decrypt(rx->local, rx->skb, rx->key))
                        return RX_DROP_UNUSABLE;
        } else if (!(status->flag & RX_FLAG_IV_STRIPPED)) {
                if (!pskb_may_pull(rx->skb, ieee80211_hdrlen(fc) +
                                            IEEE80211_WEP_IV_LEN))
                        return RX_DROP_UNUSABLE;
-               if (rx->sta && ieee80211_wep_is_weak_iv(rx->skb, rx->key))
-                       rx->sta->wep_weak_iv_count++;
                ieee80211_wep_remove_iv(rx->local, rx->skb, rx->key);
                /* remove ICV */
                if (pskb_trim(rx->skb, rx->skb->len - IEEE80211_WEP_ICV_LEN))