iwlwifi: split the regulatory rules when the bandwidth flags require it
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Mon, 3 Jul 2017 13:25:33 +0000 (16:25 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Tue, 1 Aug 2017 08:19:13 +0000 (11:19 +0300)
commit92b0f7b26b313b23cc9bef0bd406607f4566c0c0
tree51281c64c8673d491bffdff03edcd2e61379ce2f
parent58877d7428b0747134cb65096d51dfabdc62000d
iwlwifi: split the regulatory rules when the bandwidth flags require it

When we create a regulatory domain out of an MCC
notification, we need to make sure that all the channels
in the rule have the exact same properties.
The current code mixes channel 36 and 40 although 36 can be
a control channel with HT40+ (36, 40) whereas 40 can't be
a control channel with HT40+ since  (40, 44) is invalid.

Because of that, cfg80211 would allow to connect in 40MHz
to APs that are configured to channel 40 HT40+ and that made
our firmware assert.

Fix this by checking the bandwidth flags before taking the
decision if the rule should be split.

This fixes https://bugzilla.kernel.org/show_bug.cgi?id=195299 partly.

Fixes: af45a9003f1f ("iwlwifi: create regdomain from mcc_update_cmd response")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c