• Emmanuel Grumbach's avatar
    iwlwifi: mvm: fix regulatory domain update when the firmware starts · 26350f89
    Emmanuel Grumbach authored
    commit 82715ac71e6b94a2c2136e31f3a8e6748e33aa8c upstream.
    
    When the firmware starts, it doesn't have any regulatory
    information, hence it uses the world wide limitations. The
    driver can feed the firmware with previous knowledge that
    was kept in the driver, but the firmware may still not
    update its internal tables.
    
    This happens when we start a BSS interface, and then the
    firmware can change the regulatory tables based on our
    location and it'll use more lenient, location specific
    rules. Then, if the firmware is shut down (when the
    interface is brought down), and then an AP interface is
    created, the firmware will forget the country specific
    rules.
    
    The host will think that we are in a certain country that
    may allow channels and will try to teach the firmware about
    our location, but the firmware may still not allow to drop
    the world wide limitations and apply country specific rules
    because it was just re-started.
    
    In this case, the firmware will reply with MCC_RESP_ILLEGAL
    to the MCC_UPDATE_CMD. In that case, iwlwifi needs to let
    the upper layers (cfg80211 / hostapd) know that the channel
    list they know about has been updated.
    
    This fixes https://bugzilla.kernel.org/show_bug.cgi?id=201105
    
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    
    26350f89
Name
Last commit
Last update
Documentation Loading commit data...
arch Loading commit data...
block Loading commit data...
certs Loading commit data...
crypto Loading commit data...
drivers Loading commit data...
firmware Loading commit data...
fs Loading commit data...
include Loading commit data...
init Loading commit data...
ipc Loading commit data...
kernel Loading commit data...
lib Loading commit data...
mm Loading commit data...
net Loading commit data...
samples Loading commit data...
scripts Loading commit data...
security Loading commit data...
sound Loading commit data...
tools Loading commit data...
usr Loading commit data...
virt Loading commit data...
.get_maintainer.ignore Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
COPYING Loading commit data...
CREDITS Loading commit data...
Kbuild Loading commit data...
Kconfig Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README Loading commit data...
REPORTING-BUGS Loading commit data...