]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - net/ieee80211/ieee80211_wx.c
[PATCH] Unlinline a bunch of other functions
[mirror_ubuntu-bionic-kernel.git] / net / ieee80211 / ieee80211_wx.c
index 1ce7af9bec35a167b8e17512ec7ab716a2013549..23e1630f50b7cf872e01286c01a108cbc66c478f 100644 (file)
@@ -42,7 +42,7 @@ static const char *ieee80211_modes[] = {
 };
 
 #define MAX_CUSTOM_LEN 64
-static inline char *ipw2100_translate_scan(struct ieee80211_device *ieee,
+static char *ipw2100_translate_scan(struct ieee80211_device *ieee,
                                           char *start, char *stop,
                                           struct ieee80211_network *network)
 {
@@ -161,9 +161,11 @@ static inline char *ipw2100_translate_scan(struct ieee80211_device *ieee,
                             (ieee->perfect_rssi - ieee->worst_rssi) -
                             (ieee->perfect_rssi - network->stats.rssi) *
                             (15 * (ieee->perfect_rssi - ieee->worst_rssi) +
-                             62 * (ieee->perfect_rssi - network->stats.rssi))) /
-                           ((ieee->perfect_rssi - ieee->worst_rssi) *
-                            (ieee->perfect_rssi - ieee->worst_rssi));
+                             62 * (ieee->perfect_rssi -
+                                   network->stats.rssi))) /
+                           ((ieee->perfect_rssi -
+                             ieee->worst_rssi) * (ieee->perfect_rssi -
+                                                  ieee->worst_rssi));
                if (iwe.u.qual.qual > 100)
                        iwe.u.qual.qual = 100;
                else if (iwe.u.qual.qual < 1)
@@ -282,7 +284,7 @@ int ieee80211_wx_set_encode(struct ieee80211_device *ieee,
        };
        int i, key, key_provided, len;
        struct ieee80211_crypt_data **crypt;
-       int host_crypto = ieee->host_encrypt || ieee->host_decrypt;
+       int host_crypto = ieee->host_encrypt || ieee->host_decrypt || ieee->host_build_iv;
 
        IEEE80211_DEBUG_WX("SET_ENCODE\n");
 
@@ -520,7 +522,8 @@ int ieee80211_wx_set_encodeext(struct ieee80211_device *ieee,
                crypt = &ieee->crypt[idx];
                group_key = 1;
        } else {
-               if (idx != 0)
+               /* some Cisco APs use idx>0 for unicast in dynamic WEP */
+               if (idx != 0 && ext->alg != IW_ENCODE_ALG_WEP)
                        return -EINVAL;
                if (ieee->iw_mode == IW_MODE_INFRA)
                        crypt = &ieee->crypt[idx];
@@ -688,7 +691,8 @@ int ieee80211_wx_get_encodeext(struct ieee80211_device *ieee,
        } else
                idx = ieee->tx_keyidx;
 
-       if (!ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY)
+       if (!ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY &&
+           ext->alg != IW_ENCODE_ALG_WEP)
                if (idx != 0 || ieee->iw_mode != IW_MODE_INFRA)
                        return -EINVAL;