• Luis R. Rodriguez's avatar
    cfg80211: fix disabling channels based on hints · ca4ffe8f
    Luis R. Rodriguez authored
    After a module loads you will have loaded the world roaming regulatory
    domain or a custom regulatory domain. Further regulatory hints are
    welcomed and should be respected unless the regulatory hint is coming
    from a country IE as the IEEE spec allows for a country IE to be a subset
    of what is allowed by the local regulatory agencies.
    
    So disable all channels that do not fit a regulatory domain sent
    from a unless the hint is from a country IE and the country IE had
    no information about the band we are currently processing.
    
    This fixes a few regulatory issues, for example for drivers that depend
    on CRDA and had no 5 GHz freqencies allowed were not properly disabling
    5 GHz at all, furthermore it also allows users to restrict devices
    further as was intended.
    
    If you recieve a country IE upon association we will also disable the
    channels that are not allowed if the country IE had at least one
    channel on the respective band we are procesing.
    
    This was the original intention behind this design but it was
    completely overlooked...
    
    Cc: David Quan <david.quan@atheros.com>
    Cc: Jouni Malinen <jouni.malinen@atheros.com>
    cc: Easwar Krishnan <easwar.krishnan@atheros.com>
    Cc: stable@kernel.org
    Signed-off-by: default avatarLuis R. Rodriguez <lrodriguez@atheros.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    ca4ffe8f
reg.c 53.9 KB