|
@@ -250,7 +250,8 @@ static struct cfg80211_bss *cfg80211_get_conn_bss(struct wireless_dev *wdev)
|
|
if (wdev->conn->params.privacy)
|
|
if (wdev->conn->params.privacy)
|
|
capa |= WLAN_CAPABILITY_PRIVACY;
|
|
capa |= WLAN_CAPABILITY_PRIVACY;
|
|
|
|
|
|
- bss = cfg80211_get_bss(wdev->wiphy, NULL, wdev->conn->params.bssid,
|
|
|
|
|
|
+ bss = cfg80211_get_bss(wdev->wiphy, wdev->conn->params.channel,
|
|
|
|
+ wdev->conn->params.bssid,
|
|
wdev->conn->params.ssid,
|
|
wdev->conn->params.ssid,
|
|
wdev->conn->params.ssid_len,
|
|
wdev->conn->params.ssid_len,
|
|
WLAN_CAPABILITY_ESS | WLAN_CAPABILITY_PRIVACY,
|
|
WLAN_CAPABILITY_ESS | WLAN_CAPABILITY_PRIVACY,
|
|
@@ -470,7 +471,10 @@ void __cfg80211_connect_result(struct net_device *dev, const u8 *bssid,
|
|
}
|
|
}
|
|
|
|
|
|
if (!bss)
|
|
if (!bss)
|
|
- bss = cfg80211_get_bss(wdev->wiphy, NULL, bssid,
|
|
|
|
|
|
+ bss = cfg80211_get_bss(wdev->wiphy,
|
|
|
|
+ wdev->conn ? wdev->conn->params.channel :
|
|
|
|
+ NULL,
|
|
|
|
+ bssid,
|
|
wdev->ssid, wdev->ssid_len,
|
|
wdev->ssid, wdev->ssid_len,
|
|
WLAN_CAPABILITY_ESS,
|
|
WLAN_CAPABILITY_ESS,
|
|
WLAN_CAPABILITY_ESS);
|
|
WLAN_CAPABILITY_ESS);
|
|
@@ -538,7 +542,9 @@ void cfg80211_connect_result(struct net_device *dev, const u8 *bssid,
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(cfg80211_connect_result);
|
|
EXPORT_SYMBOL(cfg80211_connect_result);
|
|
|
|
|
|
-void __cfg80211_roamed(struct wireless_dev *wdev, const u8 *bssid,
|
|
|
|
|
|
+void __cfg80211_roamed(struct wireless_dev *wdev,
|
|
|
|
+ struct ieee80211_channel *channel,
|
|
|
|
+ const u8 *bssid,
|
|
const u8 *req_ie, size_t req_ie_len,
|
|
const u8 *req_ie, size_t req_ie_len,
|
|
const u8 *resp_ie, size_t resp_ie_len)
|
|
const u8 *resp_ie, size_t resp_ie_len)
|
|
{
|
|
{
|
|
@@ -565,7 +571,7 @@ void __cfg80211_roamed(struct wireless_dev *wdev, const u8 *bssid,
|
|
cfg80211_put_bss(&wdev->current_bss->pub);
|
|
cfg80211_put_bss(&wdev->current_bss->pub);
|
|
wdev->current_bss = NULL;
|
|
wdev->current_bss = NULL;
|
|
|
|
|
|
- bss = cfg80211_get_bss(wdev->wiphy, NULL, bssid,
|
|
|
|
|
|
+ bss = cfg80211_get_bss(wdev->wiphy, channel, bssid,
|
|
wdev->ssid, wdev->ssid_len,
|
|
wdev->ssid, wdev->ssid_len,
|
|
WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS);
|
|
WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS);
|
|
|
|
|
|
@@ -603,7 +609,9 @@ void __cfg80211_roamed(struct wireless_dev *wdev, const u8 *bssid,
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
|
|
|
|
-void cfg80211_roamed(struct net_device *dev, const u8 *bssid,
|
|
|
|
|
|
+void cfg80211_roamed(struct net_device *dev,
|
|
|
|
+ struct ieee80211_channel *channel,
|
|
|
|
+ const u8 *bssid,
|
|
const u8 *req_ie, size_t req_ie_len,
|
|
const u8 *req_ie, size_t req_ie_len,
|
|
const u8 *resp_ie, size_t resp_ie_len, gfp_t gfp)
|
|
const u8 *resp_ie, size_t resp_ie_len, gfp_t gfp)
|
|
{
|
|
{
|
|
@@ -619,6 +627,7 @@ void cfg80211_roamed(struct net_device *dev, const u8 *bssid,
|
|
return;
|
|
return;
|
|
|
|
|
|
ev->type = EVENT_ROAMED;
|
|
ev->type = EVENT_ROAMED;
|
|
|
|
+ ev->rm.channel = channel;
|
|
memcpy(ev->rm.bssid, bssid, ETH_ALEN);
|
|
memcpy(ev->rm.bssid, bssid, ETH_ALEN);
|
|
ev->rm.req_ie = ((u8 *)ev) + sizeof(*ev);
|
|
ev->rm.req_ie = ((u8 *)ev) + sizeof(*ev);
|
|
ev->rm.req_ie_len = req_ie_len;
|
|
ev->rm.req_ie_len = req_ie_len;
|