29 Oct, 2018

1 commit

  • [Patch] Pulling the following commits and some general changes
    from custom v3.10 kernel for supporting qcacld2.0 on kernel v4.9.11.
    1. cfg80211: Using new wiphy flag WIPHY_FLAG_DFS_OFFLOAD
    When flag WIPHY_FLAG_DFS_OFFLOAD is defined, the driver would handle
    all the DFS related operations. Therefore the kernel needs to ignore
    the DFS state that it uses to block the userspace calls to the driver
    through cfg80211 APIs. Also it should treat the userspace calls to
    start radar detection as a no-op.

    Please note that changes in util.c is not picked up explicitly.
    Kernel v4.9.11 uses wrapper cfg80211_get_chans_dfs_required which takes
    care of this change.

    Change-Id: I9dd2076945581ca67e54dfc96dd3dbc526c6f0a2
    IRs-Fixed: 202686

    2. New db.txt from git/sforshee/wireless-regdb.git
    CONFIG_CFG80211_INTERNAL_REGDB is enabled in build. This causes
    kernel warn messages as db.txt is empty. A new db.txt is added
    from:
    git://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git

    IRs-Fixed: 202686

    3. Picked up the declaration and definition of the function
    cfg80211_is_gratuitous_arp_unsolicited_na

    Change-Id: I1e4083a2327c121073226aa6b75bb6b5b97cec00
    CRs-fixed: 1079453

    Signed-off-by: Nakul Kachhwaha
    Signed-off-by: Fugang Duan

    Nakul Kachhwaha
     

06 Sep, 2017

1 commit

  • Honor the NL80211_RRF_NO_HT40{MINUS,PLUS} flags in
    reg_process_ht_flags_channel. Not doing so leads can lead
    to a firmware assert in iwlwifi for example.

    Fixes: b0d7aa59592b ("cfg80211: allow wiphy specific regdomain management")
    Signed-off-by: Emmanuel Grumbach
    Signed-off-by: Johannes Berg

    Emmanuel Grumbach
     

26 Apr, 2017

1 commit

  • When part of a bigger bandwidth (160 MHz) channel falls in DFS
    channel range it is possible that the center frequency may not
    necessarily be a radar channel. Remove the sanity check on channel
    flag for IEEE80211_CHAN_RADAR in regulatory_propagate_dfs_state(),
    this should fix the dfs state propagation for non-DFS center freq
    which has DFS channels in it's bandwidth, should also fix unnecessary
    WARN_ON() spam in regulatory_propagate_dfs_state().

    Fixes: 8976672736d6 ("cfg80211: Share Channel DFS state across wiphys of same DFS domain")
    Reported-by: Johannes Berg
    Signed-off-by: Vasanthakumar Thiagarajan
    Signed-off-by: Johannes Berg

    Vasanthakumar Thiagarajan
     

06 Mar, 2017

2 commits

  • Sharing DFS channel state across multiple wiphys (radios) could
    be useful with multiple radios on the system. When one radio
    completes CAC and markes the channel available another radio
    can use this information and start beaconing without really doing
    CAC.

    Whenever there is a state change in dfs channel associated to
    a particular wiphy the the same state change is propagated to
    other wiphys having the same DFS reg domain configuration.
    Also when a new wiphy is created the dfs channel state of
    other existing wiphys of same DFS domain is copied.

    Signed-off-by: Vasanthakumar Thiagarajan
    Signed-off-by: Johannes Berg

    Vasanthakumar Thiagarajan
     
  • DFS requirement for ETSI domain (section 4.7.1.4 in
    ETSI EN 301 893 V1.8.1) is the only one which explicitly
    states that once DFS channel is marked as available afer
    the CAC, this channel will remain in available state even
    moving to a different operating channel. But the same is
    not explicitly stated in FCC DFS requirement. Also, Pre-CAC
    requriements are not explicitly mentioned in FCC requirement.
    Current implementation in keeping DFS channel in available
    state is same as described in ETSI domain.

    For non-ETSI DFS domain, this patch gives a grace period of 2 seconds
    since the completion of successful CAC before moving the channel's
    DFS state to 'usable' from 'available' state. The same grace period
    is checked against the channel's dfs_state_entered timestamp while
    deciding if a DFS channel is available for operation. There is a new
    radar event, NL80211_RADAR_PRE_CAC_EXPIRED, reported when DFS channel
    is moved from available to usable state after the grace period. Also
    make sure the DFS channel state is reset to usable once the beaconing
    operation on that channel is brought down (like stop_ap, leave_ibss
    and leave_mesh) in non-ETSI domain.

    Signed-off-by: Vasanthakumar Thiagarajan
    Signed-off-by: Johannes Berg

    Vasanthakumar Thiagarajan
     

06 Jan, 2017

1 commit


12 May, 2016

1 commit


12 Apr, 2016

1 commit

  • This enum is already perfectly aliased to enum nl80211_band, and
    the only reason for it is that we get IEEE80211_NUM_BANDS out of
    it. There's no really good reason to not declare the number of
    bands in nl80211 though, so do that and remove the cfg80211 one.

    Signed-off-by: Johannes Berg

    Johannes Berg
     

02 Mar, 2016

1 commit

  • …inux/kernel/git/jberg/mac80211-next

    Johannes Berg says:

    ====================
    Here's another round of updates for -next:
    * big A-MSDU RX performance improvement (avoid linearize of paged RX)
    * rfkill changes: cleanups, documentation, platform properties
    * basic PBSS support in cfg80211
    * MU-MIMO action frame processing support
    * BlockAck reordering & duplicate detection offload support
    * various cleanups & little fixes
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller
     

14 Jan, 2016

3 commits

  • Instead of having this Kconfig option, which just *floods* the
    kernel log,
    * remove the per-channel prints that are fairly useless anyway
    * convert the conditional printing to pr_debug()

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • The rule definitions here aren't really valid, they would
    be rejected if it came from userspace due to the bandwidth
    specified being bigger than the rule's width.

    This is fairly much inconsequential since the other rules
    around them do enable the bandwidth, but express that better
    using the NL80211_RRF_AUTO_BW flag.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • cfg80211 module prints a lot of messages like below. Actually printing
    once is acceptable but sometimes it will print again and again, it looks
    very annoying. It is better to change these detail messages to debugging
    only.

    cfg80211: World regulatory domain updated:
    cfg80211: DFS Master region: unset
    cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
    cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
    cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
    cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
    cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)
    cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
    cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
    cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
    cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)

    The changes in this patch is to replace pr_info with pr_debug in function
    print_rd_rules and print_regdomain_info

    Signed-off-by: Dave Young
    [change some pr_err() statements to at least keep the alpha2]
    Signed-off-by: Johannes Berg

    Dave Young
     

18 Dec, 2015

1 commit


15 Dec, 2015

1 commit

  • The first leak occurs when entering the default case
    in the switch for the initiator in set_regdom.
    The second leaks a platform_device struct if the
    platform registration in regulatory_init succeeds but
    the sub sequent regulatory hint fails due to no memory.

    Signed-off-by: Ola Olsson
    Signed-off-by: Johannes Berg

    Ola Olsson
     

04 Dec, 2015

2 commits


16 Oct, 2015

7 commits


15 Oct, 2015

6 commits


07 Oct, 2015

1 commit

  • …inux/kernel/git/jberg/mac80211-next

    Johannes Berg says:

    ====================
    For the current cycle, we have the following right now:
    * many internal fixes, API improvements, cleanups, etc.
    * full AP client state tracking in cfg80211/mac80211 from Ayala
    * VHT support (in mac80211) for mesh
    * some A-MSDU in A-MPDU support from Emmanuel
    * show current TX power to userspace (from Rafał)
    * support for netlink dump in vendor commands (myself)
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller
     

22 Sep, 2015

1 commit


04 Sep, 2015

1 commit

  • restore_regulatory_settings() should restore alpha2
    as computed in restore_alpha2(), not raw user_alpha2 to
    behave as described in the comment just above that code.

    This fixes endless loop of calling CRDA for "00" and "97"
    countries after resume from suspend on my laptop.

    Looks like others had the same problem, too:
    http://ath9k-devel.ath9k.narkive.com/knY5W6St/ath9k-and-crda-messages-in-logs
    https://bugs.launchpad.net/ubuntu/+source/linux/+bug/899335
    https://forum.porteus.org/viewtopic.php?t=4975&p=36436
    https://forums.opensuse.org/showthread.php/483356-Authentication-Regulatory-Domain-issues-ath5k-12-2

    Signed-off-by: Maciej Szmigiero
    Signed-off-by: Johannes Berg

    Maciej S. Szmigiero
     

14 Aug, 2015

1 commit

  • The original assumption of 20MHz wide channels hasn't been true since
    the addition of support for 5 and 10 MHz channels.
    Change the code to no longer disable all channels that don't fit into
    the 20MHz grid, but instead set the appropriate flags to disable
    operation on specific bandwidths.

    Signed-off-by: Matthias May
    [reword commit message]
    Signed-off-by: Johannes Berg

    Matthias May
     

17 Jul, 2015

4 commits

  • This is necessary to merge the new TDLS and mesh patches,
    as they depend on some fixes.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Commit eeca9fce1d71 ('cfg80211: Schedule timeout for all CRDA calls')
    left behind a superfluous check after it removed some earlier code.

    In reg_process_hint, the test of "treatment == REG_REQ_IGNORE ||
    treatment == REG_REQ_ALREADY_SET" is superfluous because the code in the
    if-then branch is identical to the code after the if statement.

    Coverity CID #1295939

    I also removed the unnecessary assignment of treatment in this case,
    and added a comment reminding any future patch authors to ensure that
    treatment is properly assigned before it is used after the switch.

    Signed-off-by: John W. Linville
    Signed-off-by: Johannes Berg

    John Linville
     
  • The RTNL is required to check for IR-relaxation conditions that allow
    more channels to beacon. Export an RTNL locked version of reg_can_beacon
    and use it where possible in AP/STA interface type flows, where
    IR-relaxation may be applicable.

    Fixes: 06f207fc5418 ("cfg80211: change GO_CONCURRENT to IR_CONCURRENT for STA")
    Signed-off-by: Arik Nemtsov
    Signed-off-by: Emmanuel Grumbach
    Signed-off-by: Johannes Berg

    Arik Nemtsov
     
  • With a basic Linux userspace, the messages "Calling CRDA to update
    world regulatory domain" appears 10 times after boot every second or
    so, followed by a final "Exceeded CRDA call max attempts. Not calling
    CRDA". For those of us not having the corresponding userspace parts,
    having those messages repeatedly displayed at boot time is a bit
    annoying, so this commit reduces their log level to pr_debug().

    Signed-off-by: Thomas Petazzoni
    Signed-off-by: Johannes Berg

    Thomas Petazzoni
     

06 May, 2015

1 commit

  • The GO_CONCURRENT regulatory definition can be extended to station
    interfaces requesting to IR as part of TDLS off-channel operations.
    Rename the GO_CONCURRENT flag to IR_CONCURRENT and allow the added
    use-case.

    Change internal users of GO_CONCURRENT to use the new definition.

    Signed-off-by: Arik Nemtsov
    Reviewed-by: Johannes Berg
    Signed-off-by: Johannes Berg

    Arik Nemtsov
     

01 Apr, 2015

2 commits

  • Patch eeca9fce1d71a4955855ceb0c3b13c1eb9db27c1 (cfg80211: Schedule
    timeout for all CRDA call) introduced a regression, where in case
    that crda is not installed (or not configured properly etc.), the
    regulatory core will needlessly continue to call it, polluting the
    log with the following log:

    "cfg80211: Calling CRDA to update world regulatory domain"

    Fix this by limiting the number of continuous CRDA request failures.

    Signed-off-by: Ilan Peer
    Signed-off-by: Johannes Berg

    Ilan peer
     
  • …inux/kernel/git/jberg/mac80211-next

    Johannes Berg says:

    ====================
    Lots of updates for net-next; along with the usual flurry
    of small fixes, cleanups and internal features we have:
    * VHT support for TDLS and IBSS (conditional on drivers though)
    * first TX performance improvements (the biggest will come later)
    * many suspend/resume (race) fixes
    * name_assign_type support from Tom Gundersen
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller