diff options
| -rw-r--r-- | include/net/ieee80211.h | 2 | ||||
| -rw-r--r-- | net/ieee80211/ieee80211_wx.c | 14 |
2 files changed, 10 insertions, 6 deletions
diff --git a/include/net/ieee80211.h b/include/net/ieee80211.h index 5e38dca1d082..b93fd8c1d884 100644 --- a/include/net/ieee80211.h +++ b/include/net/ieee80211.h | |||
| @@ -29,7 +29,7 @@ | |||
| 29 | #include <linux/kernel.h> /* ARRAY_SIZE */ | 29 | #include <linux/kernel.h> /* ARRAY_SIZE */ |
| 30 | #include <linux/wireless.h> | 30 | #include <linux/wireless.h> |
| 31 | 31 | ||
| 32 | #define IEEE80211_VERSION "git-1.1.6" | 32 | #define IEEE80211_VERSION "git-1.1.7" |
| 33 | 33 | ||
| 34 | #define IEEE80211_DATA_LEN 2304 | 34 | #define IEEE80211_DATA_LEN 2304 |
| 35 | /* Maximum size for the MA-UNITDATA primitive, 802.11 standard section | 35 | /* Maximum size for the MA-UNITDATA primitive, 802.11 standard section |
diff --git a/net/ieee80211/ieee80211_wx.c b/net/ieee80211/ieee80211_wx.c index 1ce7af9bec35..181755f2aa8b 100644 --- a/net/ieee80211/ieee80211_wx.c +++ b/net/ieee80211/ieee80211_wx.c | |||
| @@ -161,9 +161,11 @@ static inline char *ipw2100_translate_scan(struct ieee80211_device *ieee, | |||
| 161 | (ieee->perfect_rssi - ieee->worst_rssi) - | 161 | (ieee->perfect_rssi - ieee->worst_rssi) - |
| 162 | (ieee->perfect_rssi - network->stats.rssi) * | 162 | (ieee->perfect_rssi - network->stats.rssi) * |
| 163 | (15 * (ieee->perfect_rssi - ieee->worst_rssi) + | 163 | (15 * (ieee->perfect_rssi - ieee->worst_rssi) + |
| 164 | 62 * (ieee->perfect_rssi - network->stats.rssi))) / | 164 | 62 * (ieee->perfect_rssi - |
| 165 | ((ieee->perfect_rssi - ieee->worst_rssi) * | 165 | network->stats.rssi))) / |
| 166 | (ieee->perfect_rssi - ieee->worst_rssi)); | 166 | ((ieee->perfect_rssi - |
| 167 | ieee->worst_rssi) * (ieee->perfect_rssi - | ||
| 168 | ieee->worst_rssi)); | ||
| 167 | if (iwe.u.qual.qual > 100) | 169 | if (iwe.u.qual.qual > 100) |
| 168 | iwe.u.qual.qual = 100; | 170 | iwe.u.qual.qual = 100; |
| 169 | else if (iwe.u.qual.qual < 1) | 171 | else if (iwe.u.qual.qual < 1) |
| @@ -520,7 +522,8 @@ int ieee80211_wx_set_encodeext(struct ieee80211_device *ieee, | |||
| 520 | crypt = &ieee->crypt[idx]; | 522 | crypt = &ieee->crypt[idx]; |
| 521 | group_key = 1; | 523 | group_key = 1; |
| 522 | } else { | 524 | } else { |
| 523 | if (idx != 0) | 525 | /* some Cisco APs use idx>0 for unicast in dynamic WEP */ |
| 526 | if (idx != 0 && ext->alg != IW_ENCODE_ALG_WEP) | ||
| 524 | return -EINVAL; | 527 | return -EINVAL; |
| 525 | if (ieee->iw_mode == IW_MODE_INFRA) | 528 | if (ieee->iw_mode == IW_MODE_INFRA) |
| 526 | crypt = &ieee->crypt[idx]; | 529 | crypt = &ieee->crypt[idx]; |
| @@ -688,7 +691,8 @@ int ieee80211_wx_get_encodeext(struct ieee80211_device *ieee, | |||
| 688 | } else | 691 | } else |
| 689 | idx = ieee->tx_keyidx; | 692 | idx = ieee->tx_keyidx; |
| 690 | 693 | ||
| 691 | if (!ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) | 694 | if (!ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY && |
| 695 | ext->alg != IW_ENCODE_ALG_WEP) | ||
| 692 | if (idx != 0 || ieee->iw_mode != IW_MODE_INFRA) | 696 | if (idx != 0 || ieee->iw_mode != IW_MODE_INFRA) |
| 693 | return -EINVAL; | 697 | return -EINVAL; |
| 694 | 698 | ||
