|
@@ -564,15 +564,14 @@ static void ieee80211_set_associated(struct net_device *dev,
|
|
|
sdata->bss_conf.ht_bss_conf = &conf->ht_bss_conf;
|
|
sdata->bss_conf.ht_bss_conf = &conf->ht_bss_conf;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- netif_carrier_on(dev);
|
|
|
|
|
ifsta->flags |= IEEE80211_STA_PREV_BSSID_SET;
|
|
ifsta->flags |= IEEE80211_STA_PREV_BSSID_SET;
|
|
|
memcpy(ifsta->prev_bssid, sdata->u.sta.bssid, ETH_ALEN);
|
|
memcpy(ifsta->prev_bssid, sdata->u.sta.bssid, ETH_ALEN);
|
|
|
memcpy(wrqu.ap_addr.sa_data, sdata->u.sta.bssid, ETH_ALEN);
|
|
memcpy(wrqu.ap_addr.sa_data, sdata->u.sta.bssid, ETH_ALEN);
|
|
|
ieee80211_sta_send_associnfo(dev, ifsta);
|
|
ieee80211_sta_send_associnfo(dev, ifsta);
|
|
|
} else {
|
|
} else {
|
|
|
|
|
+ netif_carrier_off(dev);
|
|
|
ieee80211_sta_tear_down_BA_sessions(dev, ifsta->bssid);
|
|
ieee80211_sta_tear_down_BA_sessions(dev, ifsta->bssid);
|
|
|
ifsta->flags &= ~IEEE80211_STA_ASSOCIATED;
|
|
ifsta->flags &= ~IEEE80211_STA_ASSOCIATED;
|
|
|
- netif_carrier_off(dev);
|
|
|
|
|
changed |= ieee80211_reset_erp_info(dev);
|
|
changed |= ieee80211_reset_erp_info(dev);
|
|
|
|
|
|
|
|
sdata->bss_conf.assoc_ht = 0;
|
|
sdata->bss_conf.assoc_ht = 0;
|
|
@@ -586,6 +585,10 @@ static void ieee80211_set_associated(struct net_device *dev,
|
|
|
|
|
|
|
|
sdata->bss_conf.assoc = assoc;
|
|
sdata->bss_conf.assoc = assoc;
|
|
|
ieee80211_bss_info_change_notify(sdata, changed);
|
|
ieee80211_bss_info_change_notify(sdata, changed);
|
|
|
|
|
+
|
|
|
|
|
+ if (assoc)
|
|
|
|
|
+ netif_carrier_on(dev);
|
|
|
|
|
+
|
|
|
wrqu.ap_addr.sa_family = ARPHRD_ETHER;
|
|
wrqu.ap_addr.sa_family = ARPHRD_ETHER;
|
|
|
wireless_send_event(dev, SIOCGIWAP, &wrqu, NULL);
|
|
wireless_send_event(dev, SIOCGIWAP, &wrqu, NULL);
|
|
|
}
|
|
}
|
|
@@ -3694,8 +3697,10 @@ static int ieee80211_sta_find_ibss(struct net_device *dev,
|
|
|
spin_unlock_bh(&local->sta_bss_lock);
|
|
spin_unlock_bh(&local->sta_bss_lock);
|
|
|
|
|
|
|
|
#ifdef CONFIG_MAC80211_IBSS_DEBUG
|
|
#ifdef CONFIG_MAC80211_IBSS_DEBUG
|
|
|
- printk(KERN_DEBUG " sta_find_ibss: selected %s current "
|
|
|
|
|
- "%s\n", print_mac(mac, bssid), print_mac(mac2, ifsta->bssid));
|
|
|
|
|
|
|
+ if (found)
|
|
|
|
|
+ printk(KERN_DEBUG " sta_find_ibss: selected %s current "
|
|
|
|
|
+ "%s\n", print_mac(mac, bssid),
|
|
|
|
|
+ print_mac(mac2, ifsta->bssid));
|
|
|
#endif /* CONFIG_MAC80211_IBSS_DEBUG */
|
|
#endif /* CONFIG_MAC80211_IBSS_DEBUG */
|
|
|
if (found && memcmp(ifsta->bssid, bssid, ETH_ALEN) != 0 &&
|
|
if (found && memcmp(ifsta->bssid, bssid, ETH_ALEN) != 0 &&
|
|
|
(bss = ieee80211_rx_bss_get(dev, bssid,
|
|
(bss = ieee80211_rx_bss_get(dev, bssid,
|