diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2008-09-03 16:42:20 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-09-08 14:22:46 -0400 |
commit | 8e1535d51bc93fbe9b3ded6555680044bc571d19 (patch) | |
tree | 74fa1729b2fe5e9928930edd65d92859b57eecd7 /net/mac80211/rx.c | |
parent | 9818babc8fd9a542978a235f1c1786f948cbac68 (diff) |
mac80211: Fix rate scale initialization in IBSS
This patch address some IBSS rate issues introduced or not covered
by "mac80211: eliminate IBSS warning in rate_lowest_index()" and
"cfg80211 API for channels/bitrates, mac80211 and driver conversion".
This patch:
1. Moves addition of IBSS station from
prepare_for_handlers to ieee80211_rx_bss_info when triggered from beacon
eliminating bogus supported rates.
2. Initialize properly supported rates also in IBSS merging
3. Ensure that mandatory rates are always added into supported
rates. This is needed in case when station addition is triggered from
non beacon/probe packet. Some management frames need to be sent
4. Remove initialization of supported rates from self rates. This path
was dead code after 6bc37c06bc4 and in general incorrect.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Cc: Vladimir Koutny <vlado@work.ksp.sk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r-- | net/mac80211/rx.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index fd83ef760a37..7e09b30dd393 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -1743,10 +1743,6 @@ static int prepare_for_handlers(struct ieee80211_sub_if_data *sdata, | |||
1743 | if (!bssid) | 1743 | if (!bssid) |
1744 | return 0; | 1744 | return 0; |
1745 | if (ieee80211_is_beacon(hdr->frame_control)) { | 1745 | if (ieee80211_is_beacon(hdr->frame_control)) { |
1746 | if (!rx->sta) | ||
1747 | rx->sta = ieee80211_ibss_add_sta(sdata, | ||
1748 | rx->skb, bssid, hdr->addr2, | ||
1749 | BIT(rx->status->rate_idx)); | ||
1750 | return 1; | 1746 | return 1; |
1751 | } | 1747 | } |
1752 | else if (!ieee80211_bssid_match(bssid, sdata->u.sta.bssid)) { | 1748 | else if (!ieee80211_bssid_match(bssid, sdata->u.sta.bssid)) { |