aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mesh_plink.c
diff options
context:
space:
mode:
authorAshok Nagarajan <ashok@cozybit.com>2012-04-03 00:21:21 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-04-11 16:23:47 -0400
commit9ebb61a23d90703344fc609fbee8da67b1e7456c (patch)
tree021483e65ed424166b539d9a26d92d415c842d86 /net/mac80211/mesh_plink.c
parent657c3e0c4147bb3d3fdd338e32b83b968b0f9d02 (diff)
mac80211: Modify sta_get_rates to give basic rates
Signed-off-by: Ashok Nagarajan <ashok@cozybit.com> Signed-off-by: Thomas Pedersen <thomas@cozybit.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/mesh_plink.c')
-rw-r--r--net/mac80211/mesh_plink.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c
index 73fa687edc7c..91e2043bc9b2 100644
--- a/net/mac80211/mesh_plink.c
+++ b/net/mac80211/mesh_plink.c
@@ -465,6 +465,7 @@ void mesh_rx_plink_frame(struct ieee80211_sub_if_data *sdata, struct ieee80211_m
465 bool deactivated, matches_local = true; 465 bool deactivated, matches_local = true;
466 u8 ie_len; 466 u8 ie_len;
467 u8 *baseaddr; 467 u8 *baseaddr;
468 u32 rates, basic_rates = 0;
468 __le16 plid, llid, reason; 469 __le16 plid, llid, reason;
469#ifdef CONFIG_MAC80211_VERBOSE_MPL_DEBUG 470#ifdef CONFIG_MAC80211_VERBOSE_MPL_DEBUG
470 static const char *mplstates[] = { 471 static const char *mplstates[] = {
@@ -559,6 +560,9 @@ void mesh_rx_plink_frame(struct ieee80211_sub_if_data *sdata, struct ieee80211_m
559 560
560 /* Now we will figure out the appropriate event... */ 561 /* Now we will figure out the appropriate event... */
561 event = PLINK_UNDEFINED; 562 event = PLINK_UNDEFINED;
563 rates = ieee80211_sta_get_rates(local, &elems,
564 rx_status->band, &basic_rates);
565
562 if (ftype != WLAN_SP_MESH_PEERING_CLOSE && 566 if (ftype != WLAN_SP_MESH_PEERING_CLOSE &&
563 (!mesh_matches_local(&elems, sdata))) { 567 (!mesh_matches_local(&elems, sdata))) {
564 matches_local = false; 568 matches_local = false;
@@ -583,7 +587,6 @@ void mesh_rx_plink_frame(struct ieee80211_sub_if_data *sdata, struct ieee80211_m
583 return; 587 return;
584 } else if (!sta) { 588 } else if (!sta) {
585 /* ftype == WLAN_SP_MESH_PEERING_OPEN */ 589 /* ftype == WLAN_SP_MESH_PEERING_OPEN */
586 u32 rates;
587 590
588 rcu_read_unlock(); 591 rcu_read_unlock();
589 592
@@ -591,8 +594,6 @@ void mesh_rx_plink_frame(struct ieee80211_sub_if_data *sdata, struct ieee80211_m
591 mpl_dbg("Mesh plink error: no more free plinks\n"); 594 mpl_dbg("Mesh plink error: no more free plinks\n");
592 return; 595 return;
593 } 596 }
594
595 rates = ieee80211_sta_get_rates(local, &elems, rx_status->band);
596 sta = mesh_plink_alloc(sdata, mgmt->sa, rates, &elems); 597 sta = mesh_plink_alloc(sdata, mgmt->sa, rates, &elems);
597 if (!sta) { 598 if (!sta) {
598 mpl_dbg("Mesh plink error: plink table full\n"); 599 mpl_dbg("Mesh plink error: plink table full\n");