cfg80211: Fix country IE parsing for single channel triplets
authorLuis R. Rodriguez <lrodriguez@atheros.com>
Thu, 7 Jan 2010 22:24:57 +0000 (17:24 -0500)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 12 Jan 2010 18:57:58 +0000 (13:57 -0500)
commitcc5d8a3772ee4e2ed29558ba548b4747959ba971
treee90b703642d94e4f342e3ff1deba9966e59c4916
parent08030db6e5275dda19ea1b3ab8a41c992799db4a
cfg80211: Fix country IE parsing for single channel triplets

This enhances the way we parse country IEs to minimize
the number of regulatory rules that we create. It also fixes
our current implementation which treated country IE triplets
with only one channel as one independed regulatory rule even
though adjecent rules were also being provided.

Without this patch APs which send country IE information with
a channel triplet for each individual channel will force cfg80211
to deny HT40 operation as a regulatory rule would have been created
independently for each channel and as such configured only for
20 MHz operation.

Although 802.11n APs which send country IEs triplets in this fassion
are likely rare Benoit reports this against the Ubiquity NanoStation M5,
with Country "FR" and HT40 enabled.

Since we now have a helper which parses the triplets in intermediate
steps we now take care extra care to process padding.

Reported-by: Benoit PAPILLAULT <benoit.papillault@free.fr>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/wireless/reg.c