Merge tag 'mac80211-next-for-net-next-2021-12-21' of git://git.kernel.org/pub/scm...
authorJakub Kicinski <kuba@kernel.org>
Tue, 21 Dec 2021 15:41:47 +0000 (07:41 -0800)
committerJakub Kicinski <kuba@kernel.org>
Tue, 21 Dec 2021 15:41:52 +0000 (07:41 -0800)
Johannes Berg says:

====================
This time we have:
 * ndo_fill_forward_path support in mac80211, to let drivers use it
 * association comeback notification for userspace, to be able
   to react more sensibly to long delays
 * support for background radar detection hardware in some chipsets
 * SA Query Procedures offload on the AP side
 * more logging if we find problems with HT/VHT/HE
 * various cleanups and minor fixes

Conflicts:

net/wireless/reg.c:
  e08ebd6d7b90 ("cfg80211: Acquire wiphy mutex on regulatory work")
  701fdfe348f7 ("cfg80211: Enable regulatory enforcement checks for drivers supporting mesh iface")
  https://lore.kernel.org/r/20211221111950.57ecc6a7@canb.auug.org.au

drivers/net/wireless/ath/ath10k/wmi.c:
  7f599aeccbd2 ("cfg80211: Use the HE operation IE to determine a 6GHz BSS channel")
  3bf2537ec2e3 ("ath10k: drop beacon and probe response which leak from other channel")
  https://lore.kernel.org/r/20211221115004.1cd6b262@canb.auug.org.au

* tag 'mac80211-next-for-net-next-2021-12-21' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next: (32 commits)
  cfg80211: Enable regulatory enforcement checks for drivers supporting mesh iface
  rfkill: allow to get the software rfkill state
  cfg80211: refactor cfg80211_get_ies_channel_number()
  nl82011: clarify interface combinations wrt. channels
  nl80211: Add support to offload SA Query procedures for AP SME device
  nl80211: Add support to set AP settings flags with single attribute
  mac80211: add more HT/VHT/HE state logging
  cfg80211: Use the HE operation IE to determine a 6GHz BSS channel
  cfg80211: rename offchannel_chain structs to background_chain to avoid confusion with ETSI standard
  mac80211: Notify cfg80211 about association comeback
  cfg80211: Add support for notifying association comeback
  mac80211: introduce channel switch disconnect function
  cfg80211: Fix order of enum nl80211_band_iftype_attr documentation
  cfg80211: simplify cfg80211_chandef_valid()
  mac80211: Remove a couple of obsolete TODO
  mac80211: fix FEC flag in radio tap header
  mac80211: use coarse boottime for airtime fairness code
  ieee80211: change HE nominal packet padding value defines
  cfg80211: use ieee80211_bss_get_elem() instead of _get_ie()
  mac80211: Use memset_after() to clear tx status
  ...
====================

Link: https://lore.kernel.org/r/20211221112532.28708-1-johannes@sipsolutions.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1  2 
drivers/net/wireless/ath/ath10k/wmi.c
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
drivers/net/wireless/realtek/rtw89/core.c
drivers/net/wireless/realtek/rtw89/fw.c
net/mac80211/driver-ops.h
net/mac80211/mlme.c
net/mac80211/rx.c
net/mac80211/tx.c
net/wireless/reg.c

@@@ -2611,30 -2611,9 +2611,36 @@@ int ath10k_wmi_event_mgmt_rx(struct ath
                ath10k_mac_handle_beacon(ar, skb);
  
        if (ieee80211_is_beacon(hdr->frame_control) ||
 -          ieee80211_is_probe_resp(hdr->frame_control))
 +          ieee80211_is_probe_resp(hdr->frame_control)) {
 +              struct ieee80211_mgmt *mgmt = (void *)skb->data;
++              enum cfg80211_bss_frame_type ftype;
 +              u8 *ies;
 +              int ies_ch;
 +
                status->boottime_ns = ktime_get_boottime_ns();
  
-                                                        sband->band);
 +              if (!ar->scan_channel)
 +                      goto drop;
 +
 +              ies = mgmt->u.beacon.variable;
 +
++              if (ieee80211_is_beacon(mgmt->frame_control))
++                      ftype = CFG80211_BSS_FTYPE_BEACON;
++              else
++                      ftype = CFG80211_BSS_FTYPE_PRESP;
++
 +              ies_ch = cfg80211_get_ies_channel_number(mgmt->u.beacon.variable,
 +                                                       skb_tail_pointer(skb) - ies,
++                                                       sband->band, ftype);
 +
 +              if (ies_ch > 0 && ies_ch != channel) {
 +                      ath10k_dbg(ar, ATH10K_DBG_MGMT,
 +                                 "channel mismatched ds channel %d scan channel %d\n",
 +                                 ies_ch, channel);
 +                      goto drop;
 +              }
 +      }
 +
        ath10k_dbg(ar, ATH10K_DBG_MGMT,
                   "event mgmt rx skb %pK len %d ftype %02x stype %02x\n",
                   skb, skb->len,
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -2409,11 -2388,8 +2410,12 @@@ static bool reg_wdev_chan_valid(struct 
        case NL80211_IFTYPE_AP:
        case NL80211_IFTYPE_P2P_GO:
        case NL80211_IFTYPE_ADHOC:
 -              return cfg80211_reg_can_beacon_relax(wiphy, &chandef, iftype);
+       case NL80211_IFTYPE_MESH_POINT:
 +              wiphy_lock(wiphy);
 +              ret = cfg80211_reg_can_beacon_relax(wiphy, &chandef, iftype);
 +              wiphy_unlock(wiphy);
 +
 +              return ret;
        case NL80211_IFTYPE_STATION:
        case NL80211_IFTYPE_P2P_CLIENT:
                return cfg80211_chandef_usable(wiphy, &chandef,