diff options
| -rw-r--r-- | drivers/net/wireless/ath/ath6kl/cfg80211.c | 8 | ||||
| -rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | 4 | ||||
| -rw-r--r-- | drivers/net/wireless/libertas/cfg.c | 3 | ||||
| -rw-r--r-- | drivers/net/wireless/mwifiex/cfg80211.c | 3 | ||||
| -rw-r--r-- | drivers/net/wireless/rndis_wlan.c | 4 | ||||
| -rw-r--r-- | include/net/cfg80211.h | 4 | ||||
| -rw-r--r-- | net/mac80211/ibss.c | 2 | ||||
| -rw-r--r-- | net/wireless/core.h | 4 | ||||
| -rw-r--r-- | net/wireless/ibss.c | 17 | ||||
| -rw-r--r-- | net/wireless/trace.h | 23 | ||||
| -rw-r--r-- | net/wireless/util.c | 3 |
11 files changed, 50 insertions, 25 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c index eba32f56850a..c2c6f4604958 100644 --- a/drivers/net/wireless/ath/ath6kl/cfg80211.c +++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c | |||
| @@ -790,7 +790,7 @@ void ath6kl_cfg80211_connect_event(struct ath6kl_vif *vif, u16 channel, | |||
| 790 | if (nw_type & ADHOC_NETWORK) { | 790 | if (nw_type & ADHOC_NETWORK) { |
| 791 | ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "ad-hoc %s selected\n", | 791 | ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "ad-hoc %s selected\n", |
| 792 | nw_type & ADHOC_CREATOR ? "creator" : "joiner"); | 792 | nw_type & ADHOC_CREATOR ? "creator" : "joiner"); |
| 793 | cfg80211_ibss_joined(vif->ndev, bssid, GFP_KERNEL); | 793 | cfg80211_ibss_joined(vif->ndev, bssid, chan, GFP_KERNEL); |
| 794 | cfg80211_put_bss(ar->wiphy, bss); | 794 | cfg80211_put_bss(ar->wiphy, bss); |
| 795 | return; | 795 | return; |
| 796 | } | 796 | } |
| @@ -861,13 +861,9 @@ void ath6kl_cfg80211_disconnect_event(struct ath6kl_vif *vif, u8 reason, | |||
| 861 | } | 861 | } |
| 862 | 862 | ||
| 863 | if (vif->nw_type & ADHOC_NETWORK) { | 863 | if (vif->nw_type & ADHOC_NETWORK) { |
| 864 | if (vif->wdev.iftype != NL80211_IFTYPE_ADHOC) { | 864 | if (vif->wdev.iftype != NL80211_IFTYPE_ADHOC) |
| 865 | ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, | 865 | ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, |
| 866 | "%s: ath6k not in ibss mode\n", __func__); | 866 | "%s: ath6k not in ibss mode\n", __func__); |
| 867 | return; | ||
| 868 | } | ||
| 869 | memset(bssid, 0, ETH_ALEN); | ||
| 870 | cfg80211_ibss_joined(vif->ndev, bssid, GFP_KERNEL); | ||
| 871 | return; | 867 | return; |
| 872 | } | 868 | } |
| 873 | 869 | ||
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c index 3d25c18340c5..1a80bf19cb89 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | |||
| @@ -4658,6 +4658,7 @@ brcmf_notify_connect_status(struct brcmf_if *ifp, | |||
| 4658 | struct brcmf_cfg80211_info *cfg = ifp->drvr->config; | 4658 | struct brcmf_cfg80211_info *cfg = ifp->drvr->config; |
| 4659 | struct net_device *ndev = ifp->ndev; | 4659 | struct net_device *ndev = ifp->ndev; |
| 4660 | struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; | 4660 | struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; |
| 4661 | struct ieee80211_channel *chan; | ||
| 4661 | s32 err = 0; | 4662 | s32 err = 0; |
| 4662 | 4663 | ||
| 4663 | if (ifp->vif->mode == WL_MODE_AP) { | 4664 | if (ifp->vif->mode == WL_MODE_AP) { |
| @@ -4665,9 +4666,10 @@ brcmf_notify_connect_status(struct brcmf_if *ifp, | |||
| 4665 | } else if (brcmf_is_linkup(e)) { | 4666 | } else if (brcmf_is_linkup(e)) { |
| 4666 | brcmf_dbg(CONN, "Linkup\n"); | 4667 | brcmf_dbg(CONN, "Linkup\n"); |
| 4667 | if (brcmf_is_ibssmode(ifp->vif)) { | 4668 | if (brcmf_is_ibssmode(ifp->vif)) { |
| 4669 | chan = ieee80211_get_channel(cfg->wiphy, cfg->channel); | ||
| 4668 | memcpy(profile->bssid, e->addr, ETH_ALEN); | 4670 | memcpy(profile->bssid, e->addr, ETH_ALEN); |
| 4669 | wl_inform_ibss(cfg, ndev, e->addr); | 4671 | wl_inform_ibss(cfg, ndev, e->addr); |
| 4670 | cfg80211_ibss_joined(ndev, e->addr, GFP_KERNEL); | 4672 | cfg80211_ibss_joined(ndev, e->addr, chan, GFP_KERNEL); |
| 4671 | clear_bit(BRCMF_VIF_STATUS_CONNECTING, | 4673 | clear_bit(BRCMF_VIF_STATUS_CONNECTING, |
| 4672 | &ifp->vif->sme_state); | 4674 | &ifp->vif->sme_state); |
| 4673 | set_bit(BRCMF_VIF_STATUS_CONNECTED, | 4675 | set_bit(BRCMF_VIF_STATUS_CONNECTED, |
diff --git a/drivers/net/wireless/libertas/cfg.c b/drivers/net/wireless/libertas/cfg.c index 32f75007a825..2d72a6b4b93e 100644 --- a/drivers/net/wireless/libertas/cfg.c +++ b/drivers/net/wireless/libertas/cfg.c | |||
| @@ -1766,7 +1766,8 @@ static void lbs_join_post(struct lbs_private *priv, | |||
| 1766 | memcpy(priv->wdev->ssid, params->ssid, params->ssid_len); | 1766 | memcpy(priv->wdev->ssid, params->ssid, params->ssid_len); |
| 1767 | priv->wdev->ssid_len = params->ssid_len; | 1767 | priv->wdev->ssid_len = params->ssid_len; |
| 1768 | 1768 | ||
| 1769 | cfg80211_ibss_joined(priv->dev, bssid, GFP_KERNEL); | 1769 | cfg80211_ibss_joined(priv->dev, bssid, params->chandef.chan, |
| 1770 | GFP_KERNEL); | ||
| 1770 | 1771 | ||
| 1771 | /* TODO: consider doing this at MACREG_INT_CODE_LINK_SENSED time */ | 1772 | /* TODO: consider doing this at MACREG_INT_CODE_LINK_SENSED time */ |
| 1772 | priv->connect_status = LBS_CONNECTED; | 1773 | priv->connect_status = LBS_CONNECTED; |
diff --git a/drivers/net/wireless/mwifiex/cfg80211.c b/drivers/net/wireless/mwifiex/cfg80211.c index f4cf9c9d40ec..0948ebe8942e 100644 --- a/drivers/net/wireless/mwifiex/cfg80211.c +++ b/drivers/net/wireless/mwifiex/cfg80211.c | |||
| @@ -1882,7 +1882,8 @@ mwifiex_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev, | |||
| 1882 | params->privacy); | 1882 | params->privacy); |
| 1883 | done: | 1883 | done: |
| 1884 | if (!ret) { | 1884 | if (!ret) { |
| 1885 | cfg80211_ibss_joined(priv->netdev, priv->cfg_bssid, GFP_KERNEL); | 1885 | cfg80211_ibss_joined(priv->netdev, priv->cfg_bssid, |
| 1886 | params->chandef.chan, GFP_KERNEL); | ||
| 1886 | dev_dbg(priv->adapter->dev, | 1887 | dev_dbg(priv->adapter->dev, |
| 1887 | "info: joined/created adhoc network with bssid" | 1888 | "info: joined/created adhoc network with bssid" |
| 1888 | " %pM successfully\n", priv->cfg_bssid); | 1889 | " %pM successfully\n", priv->cfg_bssid); |
diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c index 5028557aa18a..2e89a865a67d 100644 --- a/drivers/net/wireless/rndis_wlan.c +++ b/drivers/net/wireless/rndis_wlan.c | |||
| @@ -2835,7 +2835,9 @@ static void rndis_wlan_do_link_up_work(struct usbnet *usbdev) | |||
| 2835 | bssid, req_ie, req_ie_len, | 2835 | bssid, req_ie, req_ie_len, |
| 2836 | resp_ie, resp_ie_len, GFP_KERNEL); | 2836 | resp_ie, resp_ie_len, GFP_KERNEL); |
| 2837 | } else if (priv->infra_mode == NDIS_80211_INFRA_ADHOC) | 2837 | } else if (priv->infra_mode == NDIS_80211_INFRA_ADHOC) |
| 2838 | cfg80211_ibss_joined(usbdev->net, bssid, GFP_KERNEL); | 2838 | cfg80211_ibss_joined(usbdev->net, bssid, |
| 2839 | get_current_channel(usbdev, NULL), | ||
| 2840 | GFP_KERNEL); | ||
| 2839 | 2841 | ||
| 2840 | kfree(info); | 2842 | kfree(info); |
| 2841 | 2843 | ||
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 009290e36d15..c68201d78b90 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
| @@ -3895,6 +3895,7 @@ void cfg80211_michael_mic_failure(struct net_device *dev, const u8 *addr, | |||
| 3895 | * | 3895 | * |
| 3896 | * @dev: network device | 3896 | * @dev: network device |
| 3897 | * @bssid: the BSSID of the IBSS joined | 3897 | * @bssid: the BSSID of the IBSS joined |
| 3898 | * @channel: the channel of the IBSS joined | ||
| 3898 | * @gfp: allocation flags | 3899 | * @gfp: allocation flags |
| 3899 | * | 3900 | * |
| 3900 | * This function notifies cfg80211 that the device joined an IBSS or | 3901 | * This function notifies cfg80211 that the device joined an IBSS or |
| @@ -3904,7 +3905,8 @@ void cfg80211_michael_mic_failure(struct net_device *dev, const u8 *addr, | |||
| 3904 | * with the locally generated beacon -- this guarantees that there is | 3905 | * with the locally generated beacon -- this guarantees that there is |
| 3905 | * always a scan result for this IBSS. cfg80211 will handle the rest. | 3906 | * always a scan result for this IBSS. cfg80211 will handle the rest. |
| 3906 | */ | 3907 | */ |
| 3907 | void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid, gfp_t gfp); | 3908 | void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid, |
| 3909 | struct ieee80211_channel *channel, gfp_t gfp); | ||
| 3908 | 3910 | ||
| 3909 | /** | 3911 | /** |
| 3910 | * cfg80211_notify_new_candidate - notify cfg80211 of a new mesh peer candidate | 3912 | * cfg80211_notify_new_candidate - notify cfg80211 of a new mesh peer candidate |
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c index 8e444476307a..9c84b75f3de8 100644 --- a/net/mac80211/ibss.c +++ b/net/mac80211/ibss.c | |||
| @@ -382,7 +382,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata, | |||
| 382 | presp->head_len, 0, GFP_KERNEL); | 382 | presp->head_len, 0, GFP_KERNEL); |
| 383 | cfg80211_put_bss(local->hw.wiphy, bss); | 383 | cfg80211_put_bss(local->hw.wiphy, bss); |
| 384 | netif_carrier_on(sdata->dev); | 384 | netif_carrier_on(sdata->dev); |
| 385 | cfg80211_ibss_joined(sdata->dev, ifibss->bssid, GFP_KERNEL); | 385 | cfg80211_ibss_joined(sdata->dev, ifibss->bssid, chan, GFP_KERNEL); |
| 386 | } | 386 | } |
| 387 | 387 | ||
| 388 | static void ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata, | 388 | static void ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata, |
diff --git a/net/wireless/core.h b/net/wireless/core.h index 37ec16d7bb1a..8a820f9c4a76 100644 --- a/net/wireless/core.h +++ b/net/wireless/core.h | |||
| @@ -210,6 +210,7 @@ struct cfg80211_event { | |||
| 210 | } dc; | 210 | } dc; |
| 211 | struct { | 211 | struct { |
| 212 | u8 bssid[ETH_ALEN]; | 212 | u8 bssid[ETH_ALEN]; |
| 213 | struct ieee80211_channel *channel; | ||
| 213 | } ij; | 214 | } ij; |
| 214 | }; | 215 | }; |
| 215 | }; | 216 | }; |
| @@ -257,7 +258,8 @@ int __cfg80211_leave_ibss(struct cfg80211_registered_device *rdev, | |||
| 257 | struct net_device *dev, bool nowext); | 258 | struct net_device *dev, bool nowext); |
| 258 | int cfg80211_leave_ibss(struct cfg80211_registered_device *rdev, | 259 | int cfg80211_leave_ibss(struct cfg80211_registered_device *rdev, |
| 259 | struct net_device *dev, bool nowext); | 260 | struct net_device *dev, bool nowext); |
| 260 | void __cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid); | 261 | void __cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid, |
| 262 | struct ieee80211_channel *channel); | ||
| 261 | int cfg80211_ibss_wext_join(struct cfg80211_registered_device *rdev, | 263 | int cfg80211_ibss_wext_join(struct cfg80211_registered_device *rdev, |
| 262 | struct wireless_dev *wdev); | 264 | struct wireless_dev *wdev); |
| 263 | 265 | ||
