aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless/reg.c
diff options
context:
space:
mode:
authorLuis R. Rodriguez <lrodriguez@atheros.com>2010-01-07 17:24:55 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-01-14 18:16:53 -0500
commite99c7cd57b2481ee36b2338040e3ce1cd17e0763 (patch)
treec4571af4478a1b020702b361aec4bd6e34f4ec58 /net/wireless/reg.c
parent6021e08db47386507108a475e6c820a7006a4632 (diff)
cfg80211: fix 2 GHz subband calculation for country IEs
Country IEs triplets are getting an extra channel with the current count. This does not affect regulatory because we always took the intersection between what the AP gave and what CRDA believed is correct. This however does fix processing some Country IEs with multiple sequential 2 GHz triplets. Since our parser and the spec mandates all channels be monitonically increasing we would drop the IE after noticing the second triplet begins on a channel already processed. APs that send these type of country IEs seems rare though. Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/wireless/reg.c')
-rw-r--r--net/wireless/reg.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index a5c2d3a6cbb2..f0859eada758 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -740,7 +740,7 @@ static struct ieee80211_regdomain *country_ie_2_rd(
740 /* 2 GHz */ 740 /* 2 GHz */
741 if (triplet->chans.first_channel <= 14) 741 if (triplet->chans.first_channel <= 14)
742 end_channel = triplet->chans.first_channel + 742 end_channel = triplet->chans.first_channel +
743 triplet->chans.num_channels; 743 triplet->chans.num_channels - 1;
744 else 744 else
745 /* 745 /*
746 * 5 GHz -- For example in country IEs if the first 746 * 5 GHz -- For example in country IEs if the first
@@ -863,7 +863,7 @@ static struct ieee80211_regdomain *country_ie_2_rd(
863 /* 2 GHz */ 863 /* 2 GHz */
864 if (triplet->chans.first_channel <= 14) 864 if (triplet->chans.first_channel <= 14)
865 end_channel = triplet->chans.first_channel + 865 end_channel = triplet->chans.first_channel +
866 triplet->chans.num_channels; 866 triplet->chans.num_channels -1;
867 else 867 else
868 end_channel = triplet->chans.first_channel + 868 end_channel = triplet->chans.first_channel +
869 (4 * (triplet->chans.num_channels - 1)); 869 (4 * (triplet->chans.num_channels - 1));