diff options
Diffstat (limited to 'net/wireless/ibss.c')
-rw-r--r-- | net/wireless/ibss.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/wireless/ibss.c b/net/wireless/ibss.c index eafdfa5798ae..364f900a3dc4 100644 --- a/net/wireless/ibss.c +++ b/net/wireless/ibss.c | |||
@@ -43,7 +43,8 @@ void __cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid, | |||
43 | cfg80211_hold_bss(bss_from_pub(bss)); | 43 | cfg80211_hold_bss(bss_from_pub(bss)); |
44 | wdev->current_bss = bss_from_pub(bss); | 44 | wdev->current_bss = bss_from_pub(bss); |
45 | 45 | ||
46 | cfg80211_upload_connect_keys(wdev); | 46 | if (!(wdev->wiphy->flags & WIPHY_FLAG_HAS_STATIC_WEP)) |
47 | cfg80211_upload_connect_keys(wdev); | ||
47 | 48 | ||
48 | nl80211_send_ibss_bssid(wiphy_to_rdev(wdev->wiphy), dev, bssid, | 49 | nl80211_send_ibss_bssid(wiphy_to_rdev(wdev->wiphy), dev, bssid, |
49 | GFP_KERNEL); | 50 | GFP_KERNEL); |
@@ -296,7 +297,7 @@ int cfg80211_ibss_wext_join(struct cfg80211_registered_device *rdev, | |||
296 | ck = kmemdup(wdev->wext.keys, sizeof(*ck), GFP_KERNEL); | 297 | ck = kmemdup(wdev->wext.keys, sizeof(*ck), GFP_KERNEL); |
297 | if (!ck) | 298 | if (!ck) |
298 | return -ENOMEM; | 299 | return -ENOMEM; |
299 | for (i = 0; i < 4; i++) | 300 | for (i = 0; i < CFG80211_MAX_WEP_KEYS; i++) |
300 | ck->params[i].key = ck->data[i]; | 301 | ck->params[i].key = ck->data[i]; |
301 | } | 302 | } |
302 | err = __cfg80211_join_ibss(rdev, wdev->netdev, | 303 | err = __cfg80211_join_ibss(rdev, wdev->netdev, |