aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless/sme.c
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
commitc71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch)
treeecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /net/wireless/sme.c
parentea53c912f8a86a8567697115b6a0d8152beee5c8 (diff)
parent6a00f206debf8a5c8899055726ad127dbeeed098 (diff)
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts: litmus/sched_cedf.c
Diffstat (limited to 'net/wireless/sme.c')
-rw-r--r--net/wireless/sme.c30
1 files changed, 21 insertions, 9 deletions
diff --git a/net/wireless/sme.c b/net/wireless/sme.c
index a8c2d6b877ae..b7b6ff8be553 100644
--- a/net/wireless/sme.c
+++ b/net/wireless/sme.c
@@ -250,7 +250,8 @@ static struct cfg80211_bss *cfg80211_get_conn_bss(struct wireless_dev *wdev)
250 if (wdev->conn->params.privacy) 250 if (wdev->conn->params.privacy)
251 capa |= WLAN_CAPABILITY_PRIVACY; 251 capa |= WLAN_CAPABILITY_PRIVACY;
252 252
253 bss = cfg80211_get_bss(wdev->wiphy, NULL, wdev->conn->params.bssid, 253 bss = cfg80211_get_bss(wdev->wiphy, wdev->conn->params.channel,
254 wdev->conn->params.bssid,
254 wdev->conn->params.ssid, 255 wdev->conn->params.ssid,
255 wdev->conn->params.ssid_len, 256 wdev->conn->params.ssid_len,
256 WLAN_CAPABILITY_ESS | WLAN_CAPABILITY_PRIVACY, 257 WLAN_CAPABILITY_ESS | WLAN_CAPABILITY_PRIVACY,
@@ -411,7 +412,8 @@ void __cfg80211_connect_result(struct net_device *dev, const u8 *bssid,
411 412
412 ASSERT_WDEV_LOCK(wdev); 413 ASSERT_WDEV_LOCK(wdev);
413 414
414 if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION)) 415 if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION &&
416 wdev->iftype != NL80211_IFTYPE_P2P_CLIENT))
415 return; 417 return;
416 418
417 if (wdev->sme_state != CFG80211_SME_CONNECTING) 419 if (wdev->sme_state != CFG80211_SME_CONNECTING)
@@ -469,7 +471,10 @@ void __cfg80211_connect_result(struct net_device *dev, const u8 *bssid,
469 } 471 }
470 472
471 if (!bss) 473 if (!bss)
472 bss = cfg80211_get_bss(wdev->wiphy, NULL, bssid, 474 bss = cfg80211_get_bss(wdev->wiphy,
475 wdev->conn ? wdev->conn->params.channel :
476 NULL,
477 bssid,
473 wdev->ssid, wdev->ssid_len, 478 wdev->ssid, wdev->ssid_len,
474 WLAN_CAPABILITY_ESS, 479 WLAN_CAPABILITY_ESS,
475 WLAN_CAPABILITY_ESS); 480 WLAN_CAPABILITY_ESS);
@@ -537,7 +542,9 @@ void cfg80211_connect_result(struct net_device *dev, const u8 *bssid,
537} 542}
538EXPORT_SYMBOL(cfg80211_connect_result); 543EXPORT_SYMBOL(cfg80211_connect_result);
539 544
540void __cfg80211_roamed(struct wireless_dev *wdev, const u8 *bssid, 545void __cfg80211_roamed(struct wireless_dev *wdev,
546 struct ieee80211_channel *channel,
547 const u8 *bssid,
541 const u8 *req_ie, size_t req_ie_len, 548 const u8 *req_ie, size_t req_ie_len,
542 const u8 *resp_ie, size_t resp_ie_len) 549 const u8 *resp_ie, size_t resp_ie_len)
543{ 550{
@@ -548,7 +555,8 @@ void __cfg80211_roamed(struct wireless_dev *wdev, const u8 *bssid,
548 555
549 ASSERT_WDEV_LOCK(wdev); 556 ASSERT_WDEV_LOCK(wdev);
550 557
551 if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION)) 558 if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION &&
559 wdev->iftype != NL80211_IFTYPE_P2P_CLIENT))
552 return; 560 return;
553 561
554 if (wdev->sme_state != CFG80211_SME_CONNECTED) 562 if (wdev->sme_state != CFG80211_SME_CONNECTED)
@@ -563,7 +571,7 @@ void __cfg80211_roamed(struct wireless_dev *wdev, const u8 *bssid,
563 cfg80211_put_bss(&wdev->current_bss->pub); 571 cfg80211_put_bss(&wdev->current_bss->pub);
564 wdev->current_bss = NULL; 572 wdev->current_bss = NULL;
565 573
566 bss = cfg80211_get_bss(wdev->wiphy, NULL, bssid, 574 bss = cfg80211_get_bss(wdev->wiphy, channel, bssid,
567 wdev->ssid, wdev->ssid_len, 575 wdev->ssid, wdev->ssid_len,
568 WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS); 576 WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS);
569 577
@@ -601,7 +609,9 @@ void __cfg80211_roamed(struct wireless_dev *wdev, const u8 *bssid,
601#endif 609#endif
602} 610}
603 611
604void cfg80211_roamed(struct net_device *dev, const u8 *bssid, 612void cfg80211_roamed(struct net_device *dev,
613 struct ieee80211_channel *channel,
614 const u8 *bssid,
605 const u8 *req_ie, size_t req_ie_len, 615 const u8 *req_ie, size_t req_ie_len,
606 const u8 *resp_ie, size_t resp_ie_len, gfp_t gfp) 616 const u8 *resp_ie, size_t resp_ie_len, gfp_t gfp)
607{ 617{
@@ -617,6 +627,7 @@ void cfg80211_roamed(struct net_device *dev, const u8 *bssid,
617 return; 627 return;
618 628
619 ev->type = EVENT_ROAMED; 629 ev->type = EVENT_ROAMED;
630 ev->rm.channel = channel;
620 memcpy(ev->rm.bssid, bssid, ETH_ALEN); 631 memcpy(ev->rm.bssid, bssid, ETH_ALEN);
621 ev->rm.req_ie = ((u8 *)ev) + sizeof(*ev); 632 ev->rm.req_ie = ((u8 *)ev) + sizeof(*ev);
622 ev->rm.req_ie_len = req_ie_len; 633 ev->rm.req_ie_len = req_ie_len;
@@ -644,7 +655,8 @@ void __cfg80211_disconnected(struct net_device *dev, const u8 *ie,
644 655
645 ASSERT_WDEV_LOCK(wdev); 656 ASSERT_WDEV_LOCK(wdev);
646 657
647 if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION)) 658 if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION &&
659 wdev->iftype != NL80211_IFTYPE_P2P_CLIENT))
648 return; 660 return;
649 661
650 if (wdev->sme_state != CFG80211_SME_CONNECTED) 662 if (wdev->sme_state != CFG80211_SME_CONNECTED)
@@ -695,7 +707,7 @@ void __cfg80211_disconnected(struct net_device *dev, const u8 *ie,
695 */ 707 */
696 if (rdev->ops->del_key) 708 if (rdev->ops->del_key)
697 for (i = 0; i < 6; i++) 709 for (i = 0; i < 6; i++)
698 rdev->ops->del_key(wdev->wiphy, dev, i, NULL); 710 rdev->ops->del_key(wdev->wiphy, dev, i, false, NULL);
699 711
700#ifdef CONFIG_CFG80211_WEXT 712#ifdef CONFIG_CFG80211_WEXT
701 memset(&wrqu, 0, sizeof(wrqu)); 713 memset(&wrqu, 0, sizeof(wrqu));