mac80211: Update to version 5.10.110-1
authorHauke Mehrtens <hauke@hauke-m.de>
Sun, 10 Apr 2022 22:26:29 +0000 (00:26 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Mon, 11 Apr 2022 20:51:57 +0000 (22:51 +0200)
This updates mac80211 to version 5.10.110-1 which is based on kernel
5.10.110.
The removed patches were applied upstream.

This new release contains many fixes which were merged into the upstream
Linux kernel.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
21 files changed:
package/kernel/mac80211/Makefile
package/kernel/mac80211/patches/ath/921-ath10k_init_devices_synchronously.patch
package/kernel/mac80211/patches/ath/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch
package/kernel/mac80211/patches/ath/990-ath10k-small-buffers.patch
package/kernel/mac80211/patches/brcm/860-brcmfmac-register-wiphy-s-during-module_init.patch
package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch
package/kernel/mac80211/patches/subsys/300-cfg80211-support-immediate-reconnect-request-hint.patch
package/kernel/mac80211/patches/subsys/301-mac80211-support-driver-based-disconnect-with-reconn.patch
package/kernel/mac80211/patches/subsys/305-mac80211-fix-regression-in-SSN-handling-of-addba-tx.patch [deleted file]
package/kernel/mac80211/patches/subsys/308-mac80211-send-ADDBA-requests-using-the-tid-queue-of-.patch [deleted file]
package/kernel/mac80211/patches/subsys/309-mac80211-agg-tx-don-t-schedule_and_wake_txq-under-st.patch [deleted file]
package/kernel/mac80211/patches/subsys/315-mac80211-add-rx-decapsulation-offload-support.patch
package/kernel/mac80211/patches/subsys/373-mac80211-support-Rx-timestamp-calculation-for-all-pr.patch
package/kernel/mac80211/patches/subsys/382-mac80211-Switch-to-a-virtual-time-based-airtime-sche.patch
package/kernel/mac80211/patches/subsys/384-nl80211-add-common-API-to-configure-SAR-power-limita.patch
package/kernel/mac80211/patches/subsys/387-nl80211-add-support-for-BSS-coloring.patch
package/kernel/mac80211/patches/subsys/388-mac80211-add-support-for-BSS-color-change.patch
package/kernel/mac80211/patches/subsys/390-mac80211-introduce-individual-TWT-support-in-AP-mode.patch
package/kernel/mac80211/patches/subsys/391-wireless-align-some-HE-capabilities-with-the-spec.patch
package/kernel/mac80211/patches/subsys/392-wireless-fix-spelling-of-A-MSDU-in-HE-capabilities.patch
package/kernel/mac80211/patches/subsys/393-wireless-align-HE-capabilities-A-MPDU-Length-Exponen.patch

index 36861260533ef934b694f6beac615498d8f65252..d92d4f545783938cfe16897d66d01083f97a924f 100644 (file)
@@ -10,10 +10,10 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=mac80211
 
-PKG_VERSION:=5.10.85-1
+PKG_VERSION:=5.10.110-1
 PKG_RELEASE:=1
-PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.10.85/
-PKG_HASH:=0b5f2d5acf572c448f102a186aaccd8b77bda182ac5166c7b2e3217870162784
+PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.10.110/
+PKG_HASH:=3d958154080c059adaf26512430fd1a8888d65a2228e5e70e48d028201e148b1
 
 PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
index e004acc340f7ea914a959c2406999911d4c93423..2b8fe7816f3968b82e210da7a4c751c7a8190bdc 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Sven Eckelmann <sven@open-mesh.com>
 
 --- a/drivers/net/wireless/ath/ath10k/core.c
 +++ b/drivers/net/wireless/ath/ath10k/core.c
-@@ -3189,6 +3189,16 @@ int ath10k_core_register(struct ath10k *
+@@ -3206,6 +3206,16 @@ int ath10k_core_register(struct ath10k *
  
        queue_work(ar->workqueue, &ar->register_work);
  
index dd891a62bf36224c32fc5ea967879459a689356d..d8c8a8abc03d9b3d39d4ce1f65d0ee02d9fb13a2 100644 (file)
@@ -140,7 +140,7 @@ v13:
                .patch_load_addr = QCA988X_HW_2_0_PATCH_LOAD_ADDR,
                .uart_pin = 7,
                .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL,
-@@ -130,6 +132,7 @@ static const struct ath10k_hw_params ath
+@@ -132,6 +134,7 @@ static const struct ath10k_hw_params ath
                .dev_id = QCA9887_1_0_DEVICE_ID,
                .bus = ATH10K_BUS_PCI,
                .name = "qca9887 hw1.0",
@@ -148,7 +148,7 @@ v13:
                .patch_load_addr = QCA9887_HW_1_0_PATCH_LOAD_ADDR,
                .uart_pin = 7,
                .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL,
-@@ -335,6 +338,7 @@ static const struct ath10k_hw_params ath
+@@ -343,6 +346,7 @@ static const struct ath10k_hw_params ath
                .dev_id = QCA99X0_2_0_DEVICE_ID,
                .bus = ATH10K_BUS_PCI,
                .name = "qca99x0 hw2.0",
@@ -156,7 +156,7 @@ v13:
                .patch_load_addr = QCA99X0_HW_2_0_PATCH_LOAD_ADDR,
                .uart_pin = 7,
                .otp_exe_param = 0x00000700,
-@@ -375,6 +379,7 @@ static const struct ath10k_hw_params ath
+@@ -384,6 +388,7 @@ static const struct ath10k_hw_params ath
                .dev_id = QCA9984_1_0_DEVICE_ID,
                .bus = ATH10K_BUS_PCI,
                .name = "qca9984/qca9994 hw1.0",
@@ -164,7 +164,7 @@ v13:
                .patch_load_addr = QCA9984_HW_1_0_PATCH_LOAD_ADDR,
                .uart_pin = 7,
                .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH,
-@@ -422,6 +427,7 @@ static const struct ath10k_hw_params ath
+@@ -432,6 +437,7 @@ static const struct ath10k_hw_params ath
                .dev_id = QCA9888_2_0_DEVICE_ID,
                .bus = ATH10K_BUS_PCI,
                .name = "qca9888 hw2.0",
@@ -172,7 +172,7 @@ v13:
                .patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR,
                .uart_pin = 7,
                .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH,
-@@ -2904,6 +2910,10 @@ int ath10k_core_start(struct ath10k *ar,
+@@ -2921,6 +2927,10 @@ int ath10k_core_start(struct ath10k *ar,
                goto err_hif_stop;
        }
  
@@ -183,7 +183,7 @@ v13:
        return 0;
  
  err_hif_stop:
-@@ -3162,9 +3172,18 @@ static void ath10k_core_register_work(st
+@@ -3179,9 +3189,18 @@ static void ath10k_core_register_work(st
                goto err_spectral_destroy;
        }
  
@@ -202,7 +202,7 @@ v13:
  err_spectral_destroy:
        ath10k_spectral_destroy(ar);
  err_debug_destroy:
-@@ -3210,6 +3229,8 @@ void ath10k_core_unregister(struct ath10
+@@ -3227,6 +3246,8 @@ void ath10k_core_unregister(struct ath10
        if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags))
                return;
  
index 2f560c70a03836df3a76031c310271d38a86d98c..d065a8b8cae06cb743ba121ff78af410b3e1e0b9 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath10k/htt.h
 +++ b/drivers/net/wireless/ath/ath10k/htt.h
-@@ -235,7 +235,11 @@ enum htt_rx_ring_flags {
+@@ -236,7 +236,11 @@ enum htt_rx_ring_flags {
  };
  
  #define HTT_RX_RING_SIZE_MIN 128
index c9730e29fdd60d53ab35623eebbaf289b296c502..4f72e62948f6d639da99d1866e0a18312bc09806 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
-@@ -431,6 +431,7 @@ struct brcmf_fw {
+@@ -433,6 +433,7 @@ struct brcmf_fw {
        struct brcmf_fw_request *req;
        u32 curpos;
        void (*done)(struct device *dev, int err, struct brcmf_fw_request *req);
@@ -21,7 +21,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
  };
  
  static void brcmf_fw_request_done(const struct firmware *fw, void *ctx);
-@@ -638,6 +639,8 @@ static void brcmf_fw_request_done(const
+@@ -640,6 +641,8 @@ static void brcmf_fw_request_done(const
                fwctx->req = NULL;
        }
        fwctx->done(fwctx->dev, ret, fwctx->req);
@@ -30,7 +30,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
        kfree(fwctx);
  }
  
-@@ -662,6 +665,8 @@ int brcmf_fw_get_firmwares(struct device
+@@ -664,6 +667,8 @@ int brcmf_fw_get_firmwares(struct device
  {
        struct brcmf_fw_item *first = &req->items[0];
        struct brcmf_fw *fwctx;
@@ -39,7 +39,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
        int ret;
  
        brcmf_dbg(TRACE, "enter: dev=%s\n", dev_name(dev));
-@@ -678,6 +683,9 @@ int brcmf_fw_get_firmwares(struct device
+@@ -680,6 +685,9 @@ int brcmf_fw_get_firmwares(struct device
        fwctx->dev = dev;
        fwctx->req = req;
        fwctx->done = fw_cb;
@@ -49,7 +49,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
  
        ret = request_firmware_nowait(THIS_MODULE, true, first->path,
                                      fwctx->dev, GFP_KERNEL, fwctx,
-@@ -685,6 +693,12 @@ int brcmf_fw_get_firmwares(struct device
+@@ -687,6 +695,12 @@ int brcmf_fw_get_firmwares(struct device
        if (ret < 0)
                brcmf_fw_request_done(NULL, fwctx);
  
index c6fafb77b14e021b3ad84e1a222480a615dfc21f..45cd0e3dc00b620822bf5cb6d44d527a49867a6e 100644 (file)
@@ -2,7 +2,7 @@ Used for AP+STA support in OpenWrt - preserve AP mode keys across STA reconnects
 
 --- a/net/mac80211/cfg.c
 +++ b/net/mac80211/cfg.c
-@@ -1307,7 +1307,6 @@ static int ieee80211_stop_ap(struct wiph
+@@ -1310,7 +1310,6 @@ static int ieee80211_stop_ap(struct wiph
        sdata->vif.bss_conf.ftmr_params = NULL;
  
        __sta_info_flush(sdata, true);
index c551164ab870d30586de92ff467371a9d7e86a0c..e0052eb6a0c247765f5d50132c32c63de7df8e1f 100644 (file)
@@ -33,7 +33,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
   * cfg80211_rx_unprot_mlme_mgmt - notification of unprotected mlme mgmt frame
 --- a/net/mac80211/mlme.c
 +++ b/net/mac80211/mlme.c
-@@ -2725,7 +2725,7 @@ static void ieee80211_report_disconnect(
+@@ -2733,7 +2733,7 @@ static void ieee80211_report_disconnect(
        };
  
        if (tx)
@@ -42,7 +42,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        else
                cfg80211_rx_mlme_mgmt(sdata->dev, buf, len);
  
-@@ -4719,7 +4719,8 @@ void ieee80211_mgd_quiesce(struct ieee80
+@@ -4734,7 +4734,8 @@ void ieee80211_mgd_quiesce(struct ieee80
                if (ifmgd->auth_data)
                        ieee80211_destroy_auth_data(sdata, false);
                cfg80211_tx_mlme_mgmt(sdata->dev, frame_buf,
@@ -152,7 +152,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  };
  
  /* policy for the key attributes */
-@@ -15902,7 +15903,7 @@ static void nl80211_send_mlme_event(stru
+@@ -15914,7 +15915,7 @@ static void nl80211_send_mlme_event(stru
                                    const u8 *buf, size_t len,
                                    enum nl80211_commands cmd, gfp_t gfp,
                                    int uapsd_queues, const u8 *req_ies,
@@ -161,7 +161,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  {
        struct sk_buff *msg;
        void *hdr;
-@@ -15924,6 +15925,9 @@ static void nl80211_send_mlme_event(stru
+@@ -15936,6 +15937,9 @@ static void nl80211_send_mlme_event(stru
             nla_put(msg, NL80211_ATTR_REQ_IE, req_ies_len, req_ies)))
                goto nla_put_failure;
  
@@ -171,7 +171,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        if (uapsd_queues >= 0) {
                struct nlattr *nla_wmm =
                        nla_nest_start_noflag(msg, NL80211_ATTR_STA_WME);
-@@ -15952,7 +15956,8 @@ void nl80211_send_rx_auth(struct cfg8021
+@@ -15964,7 +15968,8 @@ void nl80211_send_rx_auth(struct cfg8021
                          size_t len, gfp_t gfp)
  {
        nl80211_send_mlme_event(rdev, netdev, buf, len,
@@ -181,7 +181,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  }
  
  void nl80211_send_rx_assoc(struct cfg80211_registered_device *rdev,
-@@ -15962,23 +15967,25 @@ void nl80211_send_rx_assoc(struct cfg802
+@@ -15974,23 +15979,25 @@ void nl80211_send_rx_assoc(struct cfg802
  {
        nl80211_send_mlme_event(rdev, netdev, buf, len,
                                NL80211_CMD_ASSOCIATE, gfp, uapsd_queues,
@@ -212,7 +212,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  }
  
  void cfg80211_rx_unprot_mlme_mgmt(struct net_device *dev, const u8 *buf,
-@@ -16009,7 +16016,7 @@ void cfg80211_rx_unprot_mlme_mgmt(struct
+@@ -16021,7 +16028,7 @@ void cfg80211_rx_unprot_mlme_mgmt(struct
  
        trace_cfg80211_rx_unprot_mlme_mgmt(dev, buf, len);
        nl80211_send_mlme_event(rdev, dev, buf, len, cmd, GFP_ATOMIC, -1,
index cc9602df7182f90bdce992b21d41653673e91461..164ee972aca0009a48d545434952f6edbe70d5d4 100644 (file)
@@ -47,7 +47,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        struct ieee80211_mgd_auth_data *auth_data;
 --- a/net/mac80211/mlme.c
 +++ b/net/mac80211/mlme.c
-@@ -2716,7 +2716,7 @@ EXPORT_SYMBOL(ieee80211_ap_probereq_get)
+@@ -2724,7 +2724,7 @@ EXPORT_SYMBOL(ieee80211_ap_probereq_get)
  
  static void ieee80211_report_disconnect(struct ieee80211_sub_if_data *sdata,
                                        const u8 *buf, size_t len, bool tx,
@@ -56,7 +56,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  {
        struct ieee80211_event event = {
                .type = MLME_EVENT,
-@@ -2725,7 +2725,7 @@ static void ieee80211_report_disconnect(
+@@ -2733,7 +2733,7 @@ static void ieee80211_report_disconnect(
        };
  
        if (tx)
@@ -65,7 +65,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        else
                cfg80211_rx_mlme_mgmt(sdata->dev, buf, len);
  
-@@ -2747,13 +2747,18 @@ static void __ieee80211_disconnect(struc
+@@ -2755,13 +2755,18 @@ static void __ieee80211_disconnect(struc
  
        tx = !sdata->csa_block_tx;
  
@@ -89,7 +89,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                               tx, frame_buf);
        mutex_lock(&local->mtx);
        sdata->vif.csa_active = false;
-@@ -2766,7 +2771,9 @@ static void __ieee80211_disconnect(struc
+@@ -2774,7 +2779,9 @@ static void __ieee80211_disconnect(struc
        mutex_unlock(&local->mtx);
  
        ieee80211_report_disconnect(sdata, frame_buf, sizeof(frame_buf), tx,
@@ -100,7 +100,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  
        sdata_unlock(sdata);
  }
-@@ -2785,6 +2792,13 @@ static void ieee80211_beacon_connection_
+@@ -2793,6 +2800,13 @@ static void ieee80211_beacon_connection_
                sdata_info(sdata, "Connection to AP %pM lost\n",
                           ifmgd->bssid);
                __ieee80211_disconnect(sdata);
@@ -114,7 +114,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        } else {
                ieee80211_mgd_probe_ap(sdata, true);
        }
-@@ -2823,6 +2837,21 @@ void ieee80211_connection_loss(struct ie
+@@ -2831,6 +2845,21 @@ void ieee80211_connection_loss(struct ie
  }
  EXPORT_SYMBOL(ieee80211_connection_loss);
  
@@ -136,7 +136,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  
  static void ieee80211_destroy_auth_data(struct ieee80211_sub_if_data *sdata,
                                        bool assoc)
-@@ -3126,7 +3155,7 @@ static void ieee80211_rx_mgmt_deauth(str
+@@ -3141,7 +3170,7 @@ static void ieee80211_rx_mgmt_deauth(str
                ieee80211_set_disassoc(sdata, 0, 0, false, NULL);
  
                ieee80211_report_disconnect(sdata, (u8 *)mgmt, len, false,
@@ -145,7 +145,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                return;
        }
  
-@@ -3175,7 +3204,8 @@ static void ieee80211_rx_mgmt_disassoc(s
+@@ -3190,7 +3219,8 @@ static void ieee80211_rx_mgmt_disassoc(s
  
        ieee80211_set_disassoc(sdata, 0, 0, false, NULL);
  
@@ -155,7 +155,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  }
  
  static void ieee80211_get_rates(struct ieee80211_supported_band *sband,
-@@ -4199,7 +4229,8 @@ static void ieee80211_rx_mgmt_beacon(str
+@@ -4214,7 +4244,8 @@ static void ieee80211_rx_mgmt_beacon(str
                                       true, deauth_buf);
                ieee80211_report_disconnect(sdata, deauth_buf,
                                            sizeof(deauth_buf), true,
@@ -165,7 +165,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                return;
        }
  
-@@ -4344,7 +4375,7 @@ static void ieee80211_sta_connection_los
+@@ -4359,7 +4390,7 @@ static void ieee80211_sta_connection_los
                               tx, frame_buf);
  
        ieee80211_report_disconnect(sdata, frame_buf, sizeof(frame_buf), true,
@@ -174,7 +174,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  }
  
  static int ieee80211_auth(struct ieee80211_sub_if_data *sdata)
-@@ -5434,7 +5465,8 @@ int ieee80211_mgd_auth(struct ieee80211_
+@@ -5449,7 +5480,8 @@ int ieee80211_mgd_auth(struct ieee80211_
  
                ieee80211_report_disconnect(sdata, frame_buf,
                                            sizeof(frame_buf), true,
@@ -184,7 +184,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        }
  
        sdata_info(sdata, "authenticate with %pM\n", req->bss->bssid);
-@@ -5506,7 +5538,8 @@ int ieee80211_mgd_assoc(struct ieee80211
+@@ -5521,7 +5553,8 @@ int ieee80211_mgd_assoc(struct ieee80211
  
                ieee80211_report_disconnect(sdata, frame_buf,
                                            sizeof(frame_buf), true,
@@ -194,7 +194,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        }
  
        if (ifmgd->auth_data && !ifmgd->auth_data->done) {
-@@ -5809,7 +5842,7 @@ int ieee80211_mgd_deauth(struct ieee8021
+@@ -5824,7 +5857,7 @@ int ieee80211_mgd_deauth(struct ieee8021
                ieee80211_destroy_auth_data(sdata, false);
                ieee80211_report_disconnect(sdata, frame_buf,
                                            sizeof(frame_buf), true,
@@ -203,7 +203,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  
                return 0;
        }
-@@ -5829,7 +5862,7 @@ int ieee80211_mgd_deauth(struct ieee8021
+@@ -5844,7 +5877,7 @@ int ieee80211_mgd_deauth(struct ieee8021
                ieee80211_destroy_assoc_data(sdata, false, true);
                ieee80211_report_disconnect(sdata, frame_buf,
                                            sizeof(frame_buf), true,
@@ -212,7 +212,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                return 0;
        }
  
-@@ -5844,7 +5877,7 @@ int ieee80211_mgd_deauth(struct ieee8021
+@@ -5859,7 +5892,7 @@ int ieee80211_mgd_deauth(struct ieee8021
                                       req->reason_code, tx, frame_buf);
                ieee80211_report_disconnect(sdata, frame_buf,
                                            sizeof(frame_buf), true,
@@ -221,7 +221,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                return 0;
        }
  
-@@ -5877,7 +5910,7 @@ int ieee80211_mgd_disassoc(struct ieee80
+@@ -5892,7 +5925,7 @@ int ieee80211_mgd_disassoc(struct ieee80
                               frame_buf);
  
        ieee80211_report_disconnect(sdata, frame_buf, sizeof(frame_buf), true,
diff --git a/package/kernel/mac80211/patches/subsys/305-mac80211-fix-regression-in-SSN-handling-of-addba-tx.patch b/package/kernel/mac80211/patches/subsys/305-mac80211-fix-regression-in-SSN-handling-of-addba-tx.patch
deleted file mode 100644 (file)
index 6ffdffc..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-Date: Wed, 24 Nov 2021 10:30:41 +0100
-Subject: [PATCH] mac80211: fix regression in SSN handling of addba tx
-
-Some drivers that do their own sequence number allocation (e.g. ath9k) rely
-on being able to modify params->ssn on starting tx ampdu sessions.
-This was broken by a change that modified it to use sta->tid_seq[tid] instead.
-
-Cc: stable@vger.kernel.org
-Fixes: 31d8bb4e07f8 ("mac80211: agg-tx: refactor sending addba")
-Reported-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/net/mac80211/agg-tx.c
-+++ b/net/mac80211/agg-tx.c
-@@ -480,8 +480,7 @@ static void ieee80211_send_addba_with_ti
-       /* send AddBA request */
-       ieee80211_send_addba_request(sdata, sta->sta.addr, tid,
--                                   tid_tx->dialog_token,
--                                   sta->tid_seq[tid] >> 4,
-+                                   tid_tx->dialog_token, tid_tx->ssn,
-                                    buf_size, tid_tx->timeout);
-       WARN_ON(test_and_set_bit(HT_AGG_STATE_SENT_ADDBA, &tid_tx->state));
-@@ -523,6 +522,7 @@ void ieee80211_tx_ba_session_handle_star
-       params.ssn = sta->tid_seq[tid] >> 4;
-       ret = drv_ampdu_action(local, sdata, &params);
-+      tid_tx->ssn = params.ssn;
-       if (ret == IEEE80211_AMPDU_TX_START_DELAY_ADDBA) {
-               return;
-       } else if (ret == IEEE80211_AMPDU_TX_START_IMMEDIATE) {
---- a/net/mac80211/sta_info.h
-+++ b/net/mac80211/sta_info.h
-@@ -190,6 +190,7 @@ struct tid_ampdu_tx {
-       u8 stop_initiator;
-       bool tx_stop;
-       u16 buf_size;
-+      u16 ssn;
-       u16 failed_bar_ssn;
-       bool bar_pending;
diff --git a/package/kernel/mac80211/patches/subsys/308-mac80211-send-ADDBA-requests-using-the-tid-queue-of-.patch b/package/kernel/mac80211/patches/subsys/308-mac80211-send-ADDBA-requests-using-the-tid-queue-of-.patch
deleted file mode 100644 (file)
index 1c21328..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-Date: Thu, 2 Dec 2021 13:30:05 +0100
-Subject: [PATCH] mac80211: send ADDBA requests using the tid/queue of the
- aggregation session
-
-Sending them out on a different queue can cause a race condition where a
-number of packets in the queue may be discarded by the receiver, because
-the ADDBA request is sent too early.
-This affects any driver with software A-MPDU setup which does not allocate
-packet seqno in hardware on tx, regardless of whether iTXQ is used or not.
-The only driver I've seen that explicitly deals with this issue internally
-is mwl8k.
-
-Cc: stable@vger.kernel.org
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/net/mac80211/agg-tx.c
-+++ b/net/mac80211/agg-tx.c
-@@ -106,7 +106,7 @@ static void ieee80211_send_addba_request
-       mgmt->u.action.u.addba_req.start_seq_num =
-                                       cpu_to_le16(start_seq_num << 4);
--      ieee80211_tx_skb(sdata, skb);
-+      ieee80211_tx_skb_tid(sdata, skb, tid);
- }
- void ieee80211_send_bar(struct ieee80211_vif *vif, u8 *ra, u16 tid, u16 ssn)
diff --git a/package/kernel/mac80211/patches/subsys/309-mac80211-agg-tx-don-t-schedule_and_wake_txq-under-st.patch b/package/kernel/mac80211/patches/subsys/309-mac80211-agg-tx-don-t-schedule_and_wake_txq-under-st.patch
deleted file mode 100644 (file)
index 008ee49..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-From: Johannes Berg <johannes.berg@intel.com>
-Date: Mon, 29 Nov 2021 15:32:47 +0200
-Subject: [PATCH] mac80211: agg-tx: don't schedule_and_wake_txq() under
- sta->lock
-
-When we call ieee80211_agg_start_txq(), that will in turn call
-schedule_and_wake_txq(). Called from ieee80211_stop_tx_ba_cb()
-this is done under sta->lock, which leads to certain circular
-lock dependencies, as reported by Chris Murphy:
-https://lore.kernel.org/r/CAJCQCtSXJ5qA4bqSPY=oLRMbv-irihVvP7A2uGutEbXQVkoNaw@mail.gmail.com
-
-In general, ieee80211_agg_start_txq() is usually not called
-with sta->lock held, only in this one place. But it's always
-called with sta->ampdu_mlme.mtx held, and that's therefore
-clearly sufficient.
-
-Change ieee80211_stop_tx_ba_cb() to also call it without the
-sta->lock held, by factoring it out of ieee80211_remove_tid_tx()
-(which is only called in this one place).
-
-This breaks the locking chain and makes it less likely that
-we'll have similar locking chain problems in the future.
-
-Reported-by: Chris Murphy <lists@colorremedies.com>
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
----
-
---- a/net/mac80211/agg-tx.c
-+++ b/net/mac80211/agg-tx.c
-@@ -9,7 +9,7 @@
-  * Copyright 2007, Michael Wu <flamingice@sourmilk.net>
-  * Copyright 2007-2010, Intel Corporation
-  * Copyright(c) 2015-2017 Intel Deutschland GmbH
-- * Copyright (C) 2018 - 2020 Intel Corporation
-+ * Copyright (C) 2018 - 2021 Intel Corporation
-  */
- #include <linux/ieee80211.h>
-@@ -213,6 +213,8 @@ ieee80211_agg_start_txq(struct sta_info
-       struct ieee80211_txq *txq = sta->sta.txq[tid];
-       struct txq_info *txqi;
-+      lockdep_assert_held(&sta->ampdu_mlme.mtx);
-+
-       if (!txq)
-               return;
-@@ -290,7 +292,6 @@ static void ieee80211_remove_tid_tx(stru
-       ieee80211_assign_tid_tx(sta, tid, NULL);
-       ieee80211_agg_splice_finish(sta->sdata, tid);
--      ieee80211_agg_start_txq(sta, tid, false);
-       kfree_rcu(tid_tx, rcu_head);
- }
-@@ -889,6 +890,7 @@ void ieee80211_stop_tx_ba_cb(struct sta_
- {
-       struct ieee80211_sub_if_data *sdata = sta->sdata;
-       bool send_delba = false;
-+      bool start_txq = false;
-       ht_dbg(sdata, "Stopping Tx BA session for %pM tid %d\n",
-              sta->sta.addr, tid);
-@@ -906,10 +908,14 @@ void ieee80211_stop_tx_ba_cb(struct sta_
-               send_delba = true;
-       ieee80211_remove_tid_tx(sta, tid);
-+      start_txq = true;
-  unlock_sta:
-       spin_unlock_bh(&sta->lock);
-+      if (start_txq)
-+              ieee80211_agg_start_txq(sta, tid, false);
-+
-       if (send_delba)
-               ieee80211_send_delba(sdata, sta->sta.addr, tid,
-                       WLAN_BACK_INITIATOR, WLAN_REASON_QSTA_NOT_USE);
index 226df9830bcced2e363f4541460d7250101a7abb..d2ba140e6fffa846de1d6f5e0ebce20c804e1d14 100644 (file)
@@ -109,7 +109,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/mac80211/driver-ops.h
 +++ b/net/mac80211/driver-ops.h
-@@ -1413,4 +1413,20 @@ static inline void drv_sta_set_4addr(str
+@@ -1416,4 +1416,20 @@ static inline void drv_sta_set_4addr(str
        trace_drv_return_void(local);
  }
  
index 117fb35fcf19192622a99715477edf8f34f84816..426a8b7d5deaef797b4bdc3874d077bfe4b26b82 100644 (file)
@@ -33,7 +33,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  void ieee80211_vif_inc_num_mcast(struct ieee80211_sub_if_data *sdata);
 --- a/net/mac80211/util.c
 +++ b/net/mac80211/util.c
-@@ -3665,6 +3665,7 @@ u64 ieee80211_calculate_rx_timestamp(str
+@@ -3670,6 +3670,7 @@ u64 ieee80211_calculate_rx_timestamp(str
        u64 ts = status->mactime;
        struct rate_info ri;
        u16 rate;
@@ -41,7 +41,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  
        if (WARN_ON(!ieee80211_have_rx_timestamp(status)))
                return 0;
-@@ -3675,11 +3676,58 @@ u64 ieee80211_calculate_rx_timestamp(str
+@@ -3680,11 +3681,58 @@ u64 ieee80211_calculate_rx_timestamp(str
  
        /* Fill cfg80211 rate info */
        switch (status->encoding) {
@@ -100,7 +100,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                break;
        case RX_ENC_VHT:
                ri.flags |= RATE_INFO_FLAGS_VHT_MCS;
-@@ -3687,6 +3735,23 @@ u64 ieee80211_calculate_rx_timestamp(str
+@@ -3692,6 +3740,23 @@ u64 ieee80211_calculate_rx_timestamp(str
                ri.nss = status->nss;
                if (status->enc_flags & RX_ENC_FLAG_SHORT_GI)
                        ri.flags |= RATE_INFO_FLAGS_SHORT_GI;
@@ -124,7 +124,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                break;
        default:
                WARN_ON(1);
-@@ -3710,7 +3775,6 @@ u64 ieee80211_calculate_rx_timestamp(str
+@@ -3715,7 +3780,6 @@ u64 ieee80211_calculate_rx_timestamp(str
                ri.legacy = DIV_ROUND_UP(bitrate, (1 << shift));
  
                if (status->flag & RX_FLAG_MACTIME_PLCP_START) {
index fc29074cff64fcf980a90f2d8167d33a77a286ec..022c449f79ce0cba23b4a46868870ea73057b783 100644 (file)
@@ -90,7 +90,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
   * ieee80211_txq_may_transmit - check whether TXQ is allowed to transmit
 --- a/net/mac80211/cfg.c
 +++ b/net/mac80211/cfg.c
-@@ -1461,6 +1461,38 @@ static void sta_apply_mesh_params(struct
+@@ -1464,6 +1464,38 @@ static void sta_apply_mesh_params(struct
  #endif
  }
  
@@ -129,7 +129,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  static int sta_apply_parameters(struct ieee80211_local *local,
                                struct sta_info *sta,
                                struct station_parameters *params)
-@@ -1648,7 +1680,8 @@ static int sta_apply_parameters(struct i
+@@ -1651,7 +1683,8 @@ static int sta_apply_parameters(struct i
                sta_apply_mesh_params(local, sta, params);
  
        if (params->airtime_weight)
index a47e29794cc890eb495b964d7f169dd6d580ecbd..c6930ee135a5fb14094d61ca89d3a3995992ec18 100644 (file)
@@ -222,7 +222,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  
                /* done */
                state->split_start = 0;
-@@ -14712,6 +14782,111 @@ static void nl80211_post_doit(__genl_con
+@@ -14724,6 +14794,111 @@ static void nl80211_post_doit(__genl_con
        }
  }
  
@@ -334,7 +334,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  static __genl_const struct genl_ops nl80211_ops[] = {
        {
                .cmd = NL80211_CMD_GET_WIPHY,
-@@ -15575,6 +15750,14 @@ static const struct genl_small_ops nl802
+@@ -15587,6 +15762,14 @@ static const struct genl_small_ops nl802
                .internal_flags = NL80211_FLAG_NEED_NETDEV |
                                  NL80211_FLAG_NEED_RTNL,
        },
index 1b70d85e7de91ae938ceb38932aa1cd7c5e09595..a63dc844e150c221fa25f88ea0f4a9da40bad1b3 100644 (file)
@@ -234,7 +234,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  };
  
  /* policy for the key attributes */
-@@ -14677,6 +14681,106 @@ bad_tid_conf:
+@@ -14689,6 +14693,106 @@ bad_tid_conf:
        return ret;
  }
  
@@ -341,7 +341,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  #define NL80211_FLAG_NEED_WIPHY               0x01
  #define NL80211_FLAG_NEED_NETDEV      0x02
  #define NL80211_FLAG_NEED_RTNL                0x04
-@@ -15758,6 +15862,14 @@ static const struct genl_small_ops nl802
+@@ -15770,6 +15874,14 @@ static const struct genl_small_ops nl802
                .internal_flags = NL80211_FLAG_NEED_WIPHY |
                                  NL80211_FLAG_NEED_RTNL,
        },
@@ -356,7 +356,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  };
  
  static struct genl_family nl80211_fam __genl_ro_after_init = {
-@@ -17384,6 +17496,51 @@ void cfg80211_ch_switch_started_notify(s
+@@ -17397,6 +17509,51 @@ void cfg80211_ch_switch_started_notify(s
  }
  EXPORT_SYMBOL(cfg80211_ch_switch_started_notify);
  
index c3e87df29c7007b2181928c66b984848e9a1c838..60660764ab4b7f957aa4ba3f3f5223073c7ebdb3 100644 (file)
@@ -140,7 +140,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        if (err < 0)
                goto error;
        changed |= err;
-@@ -1231,17 +1239,17 @@ static int ieee80211_change_beacon(struc
+@@ -1234,17 +1242,17 @@ static int ieee80211_change_beacon(struc
        sdata = IEEE80211_DEV_TO_SUB_IF(dev);
        sdata_assert_lock(sdata);
  
index c32861a78fd6b9c424e8ad70747e326eb2b78fff..995a9f1ea71d1efaa39490daef27ba9dfe1b8f8e 100644 (file)
@@ -41,7 +41,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  /**
 --- a/net/mac80211/driver-ops.h
 +++ b/net/mac80211/driver-ops.h
-@@ -1429,4 +1429,40 @@ static inline void drv_sta_set_decap_off
+@@ -1432,4 +1432,40 @@ static inline void drv_sta_set_decap_off
        trace_drv_return_void(local);
  }
  
index eb32c49890f560795863468a44888df21d5c8ab7..031669b9618b5c4034169cde89c6061239e968b9 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
 
 --- a/drivers/net/wireless/ath/ath11k/mac.c
 +++ b/drivers/net/wireless/ath/ath11k/mac.c
-@@ -3627,7 +3627,7 @@ ath11k_mac_filter_he_cap_mesh(struct iee
+@@ -3633,7 +3633,7 @@ ath11k_mac_filter_he_cap_mesh(struct iee
            IEEE80211_HE_MAC_CAP4_BQR;
        he_cap_elem->mac_cap_info[4] &= ~m;
  
@@ -21,7 +21,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
            IEEE80211_HE_MAC_CAP5_UL_2x996_TONE_RU |
            IEEE80211_HE_MAC_CAP5_PUNCTURED_SOUNDING |
            IEEE80211_HE_MAC_CAP5_HT_VHT_TRIG_FRAME_RX;
-@@ -3637,7 +3637,7 @@ ath11k_mac_filter_he_cap_mesh(struct iee
+@@ -3643,7 +3643,7 @@ ath11k_mac_filter_he_cap_mesh(struct iee
            IEEE80211_HE_PHY_CAP2_UL_MU_PARTIAL_MU_MIMO;
        he_cap_elem->phy_cap_info[2] &= ~m;
  
@@ -30,7 +30,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
            IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_MASK |
            IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_MASK;
        he_cap_elem->phy_cap_info[3] &= ~m;
-@@ -3649,13 +3649,13 @@ ath11k_mac_filter_he_cap_mesh(struct iee
+@@ -3655,13 +3655,13 @@ ath11k_mac_filter_he_cap_mesh(struct iee
        he_cap_elem->phy_cap_info[5] &= ~m;
  
        m = IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_75_MU |
@@ -185,7 +185,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        PFLAG_RANGE(PHY, 7, MAX_NC, 0, 1, 1, "MAX-NC-%d");
 --- a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
 +++ b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
-@@ -631,7 +631,7 @@ static struct ieee80211_sband_iftype_dat
+@@ -630,7 +630,7 @@ static struct ieee80211_sband_iftype_dat
                                .phy_cap_info[6] =
                                        IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT,
                                .phy_cap_info[7] =
index 0bd01126f7b9396bb3579875c2964ea3d7e3ff64..334fda8ea9faf0d0570e09b0b1d0ba80b3d08873 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
 
 --- a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
 +++ b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
-@@ -598,7 +598,7 @@ static struct ieee80211_sband_iftype_dat
+@@ -597,7 +597,7 @@ static struct ieee80211_sband_iftype_dat
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
                                        IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
                                .mac_cap_info[4] =
@@ -20,7 +20,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                                        IEEE80211_HE_MAC_CAP4_MULTI_TID_AGG_TX_QOS_B39,
                                .mac_cap_info[5] =
                                        IEEE80211_HE_MAC_CAP5_MULTI_TID_AGG_TX_QOS_B40 |
-@@ -682,7 +682,7 @@ static struct ieee80211_sband_iftype_dat
+@@ -681,7 +681,7 @@ static struct ieee80211_sband_iftype_dat
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
                                        IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
                                .mac_cap_info[4] =
@@ -42,7 +42,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                        he_cap_elem->phy_cap_info[0] =
 --- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
 +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
-@@ -1353,7 +1353,7 @@ mt7915_mcu_sta_he_tlv(struct sk_buff *sk
+@@ -1358,7 +1358,7 @@ mt7915_mcu_sta_he_tlv(struct sk_buff *sk
        if (elem->mac_cap_info[3] & IEEE80211_HE_MAC_CAP3_OMI_CONTROL)
                cap |= STA_REC_HE_CAP_OM;
  
@@ -75,7 +75,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  
 --- a/drivers/net/wireless/mac80211_hwsim.c
 +++ b/drivers/net/wireless/mac80211_hwsim.c
-@@ -2748,7 +2748,7 @@ static const struct ieee80211_sband_ifty
+@@ -2757,7 +2757,7 @@ static const struct ieee80211_sband_ifty
                                .mac_cap_info[3] =
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
                                        IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
@@ -84,7 +84,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                                .phy_cap_info[1] =
                                        IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_MASK |
                                        IEEE80211_HE_PHY_CAP1_DEVICE_CLASS_A |
-@@ -2792,7 +2792,7 @@ static const struct ieee80211_sband_ifty
+@@ -2801,7 +2801,7 @@ static const struct ieee80211_sband_ifty
                                .mac_cap_info[3] =
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
                                        IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
@@ -93,7 +93,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                                .phy_cap_info[1] =
                                        IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_MASK |
                                        IEEE80211_HE_PHY_CAP1_DEVICE_CLASS_A |
-@@ -2838,7 +2838,7 @@ static const struct ieee80211_sband_ifty
+@@ -2847,7 +2847,7 @@ static const struct ieee80211_sband_ifty
                                .mac_cap_info[3] =
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
                                        IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
@@ -102,7 +102,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                                .phy_cap_info[0] =
                                        IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G |
                                        IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G |
-@@ -2886,7 +2886,7 @@ static const struct ieee80211_sband_ifty
+@@ -2895,7 +2895,7 @@ static const struct ieee80211_sband_ifty
                                .mac_cap_info[3] =
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
                                        IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
index 42b71df9d1fe61812e885daa9c117132aff31806..3da3648e5d7471df690cf55f162d0da96fa054d6 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
 
 --- a/drivers/net/wireless/ath/ath11k/mac.c
 +++ b/drivers/net/wireless/ath/ath11k/mac.c
-@@ -1290,9 +1290,8 @@ static void ath11k_peer_assoc_h_he(struc
+@@ -1295,9 +1295,8 @@ static void ath11k_peer_assoc_h_he(struc
         * request, then use MAX_AMPDU_LEN_FACTOR as 16 to calculate max_ampdu
         * length.
         */
@@ -27,7 +27,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                if (sta->vht_cap.vht_supported)
 --- a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
 +++ b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
-@@ -596,7 +596,7 @@ static struct ieee80211_sband_iftype_dat
+@@ -595,7 +595,7 @@ static struct ieee80211_sband_iftype_dat
                                        IEEE80211_HE_MAC_CAP2_32BIT_BA_BITMAP,
                                .mac_cap_info[3] =
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
@@ -36,7 +36,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                                .mac_cap_info[4] =
                                        IEEE80211_HE_MAC_CAP4_AMSDU_IN_AMPDU |
                                        IEEE80211_HE_MAC_CAP4_MULTI_TID_AGG_TX_QOS_B39,
-@@ -680,7 +680,7 @@ static struct ieee80211_sband_iftype_dat
+@@ -679,7 +679,7 @@ static struct ieee80211_sband_iftype_dat
                                        IEEE80211_HE_MAC_CAP2_BSR,
                                .mac_cap_info[3] =
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
@@ -47,7 +47,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                                .mac_cap_info[5] =
 --- a/drivers/net/wireless/mac80211_hwsim.c
 +++ b/drivers/net/wireless/mac80211_hwsim.c
-@@ -2747,7 +2747,7 @@ static const struct ieee80211_sband_ifty
+@@ -2756,7 +2756,7 @@ static const struct ieee80211_sband_ifty
                                        IEEE80211_HE_MAC_CAP2_ACK_EN,
                                .mac_cap_info[3] =
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
@@ -56,7 +56,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                                .mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMSDU_IN_AMPDU,
                                .phy_cap_info[1] =
                                        IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_MASK |
-@@ -2791,7 +2791,7 @@ static const struct ieee80211_sband_ifty
+@@ -2800,7 +2800,7 @@ static const struct ieee80211_sband_ifty
                                        IEEE80211_HE_MAC_CAP2_ACK_EN,
                                .mac_cap_info[3] =
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
@@ -65,7 +65,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                                .mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMSDU_IN_AMPDU,
                                .phy_cap_info[1] =
                                        IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_MASK |
-@@ -2837,7 +2837,7 @@ static const struct ieee80211_sband_ifty
+@@ -2846,7 +2846,7 @@ static const struct ieee80211_sband_ifty
                                        IEEE80211_HE_MAC_CAP2_ACK_EN,
                                .mac_cap_info[3] =
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
@@ -74,7 +74,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                                .mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMSDU_IN_AMPDU,
                                .phy_cap_info[0] =
                                        IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G |
-@@ -2885,7 +2885,7 @@ static const struct ieee80211_sband_ifty
+@@ -2894,7 +2894,7 @@ static const struct ieee80211_sband_ifty
                                        IEEE80211_HE_MAC_CAP2_ACK_EN,
                                .mac_cap_info[3] =
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |