From 99b00edf35bc11c3cd761762a5e880ac1daea067 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Mon, 11 Apr 2022 00:26:29 +0200 Subject: mac80211: Update to version 5.10.110-1 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 --- package/kernel/mac80211/Makefile | 6 +- .../921-ath10k_init_devices_synchronously.patch | 2 +- ...-controlling-support-for-various-chipsets.patch | 14 ++-- .../patches/ath/990-ath10k-small-buffers.patch | 2 +- ...mfmac-register-wiphy-s-during-module_init.patch | 10 +-- .../subsys/110-mac80211_keep_keys_on_stop_ap.patch | 2 +- ...-support-immediate-reconnect-request-hint.patch | 14 ++-- ...pport-driver-based-disconnect-with-reconn.patch | 32 ++++----- ...ix-regression-in-SSN-handling-of-addba-tx.patch | 44 ------------ ...nd-ADDBA-requests-using-the-tid-queue-of-.patch | 28 -------- ...g-tx-don-t-schedule_and_wake_txq-under-st.patch | 79 ---------------------- ...0211-add-rx-decapsulation-offload-support.patch | 2 +- ...pport-Rx-timestamp-calculation-for-all-pr.patch | 8 +-- ...itch-to-a-virtual-time-based-airtime-sche.patch | 4 +- ...-common-API-to-configure-SAR-power-limita.patch | 4 +- .../387-nl80211-add-support-for-BSS-coloring.patch | 6 +- ...mac80211-add-support-for-BSS-color-change.patch | 2 +- ...troduce-individual-TWT-support-in-AP-mode.patch | 2 +- ...-align-some-HE-capabilities-with-the-spec.patch | 8 +-- ...fix-spelling-of-A-MSDU-in-HE-capabilities.patch | 14 ++-- ...ign-HE-capabilities-A-MPDU-Length-Exponen.patch | 14 ++-- 21 files changed, 73 insertions(+), 224 deletions(-) delete mode 100644 package/kernel/mac80211/patches/subsys/305-mac80211-fix-regression-in-SSN-handling-of-addba-tx.patch delete mode 100644 package/kernel/mac80211/patches/subsys/308-mac80211-send-ADDBA-requests-using-the-tid-queue-of-.patch delete mode 100644 package/kernel/mac80211/patches/subsys/309-mac80211-agg-tx-don-t-schedule_and_wake_txq-under-st.patch diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile index 3686126053..d92d4f5457 100644 --- a/package/kernel/mac80211/Makefile +++ b/package/kernel/mac80211/Makefile @@ -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) diff --git a/package/kernel/mac80211/patches/ath/921-ath10k_init_devices_synchronously.patch b/package/kernel/mac80211/patches/ath/921-ath10k_init_devices_synchronously.patch index e004acc340..2b8fe7816f 100644 --- a/package/kernel/mac80211/patches/ath/921-ath10k_init_devices_synchronously.patch +++ b/package/kernel/mac80211/patches/ath/921-ath10k_init_devices_synchronously.patch @@ -14,7 +14,7 @@ Signed-off-by: Sven Eckelmann --- 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); diff --git a/package/kernel/mac80211/patches/ath/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch b/package/kernel/mac80211/patches/ath/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch index dd891a62bf..d8c8a8abc0 100644 --- a/package/kernel/mac80211/patches/ath/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch +++ b/package/kernel/mac80211/patches/ath/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch @@ -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; diff --git a/package/kernel/mac80211/patches/ath/990-ath10k-small-buffers.patch b/package/kernel/mac80211/patches/ath/990-ath10k-small-buffers.patch index 2f560c70a0..d065a8b8ca 100644 --- a/package/kernel/mac80211/patches/ath/990-ath10k-small-buffers.patch +++ b/package/kernel/mac80211/patches/ath/990-ath10k-small-buffers.patch @@ -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 diff --git a/package/kernel/mac80211/patches/brcm/860-brcmfmac-register-wiphy-s-during-module_init.patch b/package/kernel/mac80211/patches/brcm/860-brcmfmac-register-wiphy-s-during-module_init.patch index c9730e29fd..4f72e62948 100644 --- a/package/kernel/mac80211/patches/brcm/860-brcmfmac-register-wiphy-s-during-module_init.patch +++ b/package/kernel/mac80211/patches/brcm/860-brcmfmac-register-wiphy-s-during-module_init.patch @@ -13,7 +13,7 @@ Signed-off-by: Rafał Miłecki --- 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 }; 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 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 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 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); diff --git a/package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch b/package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch index c6fafb77b1..45cd0e3dc0 100644 --- a/package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch +++ b/package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch @@ -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); diff --git a/package/kernel/mac80211/patches/subsys/300-cfg80211-support-immediate-reconnect-request-hint.patch b/package/kernel/mac80211/patches/subsys/300-cfg80211-support-immediate-reconnect-request-hint.patch index c551164ab8..e0052eb6a0 100644 --- a/package/kernel/mac80211/patches/subsys/300-cfg80211-support-immediate-reconnect-request-hint.patch +++ b/package/kernel/mac80211/patches/subsys/300-cfg80211-support-immediate-reconnect-request-hint.patch @@ -33,7 +33,7 @@ Signed-off-by: Johannes Berg * 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 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 }; /* 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 { 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 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 } 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 } 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, diff --git a/package/kernel/mac80211/patches/subsys/301-mac80211-support-driver-based-disconnect-with-reconn.patch b/package/kernel/mac80211/patches/subsys/301-mac80211-support-driver-based-disconnect-with-reconn.patch index cc9602df71..164ee972ac 100644 --- a/package/kernel/mac80211/patches/subsys/301-mac80211-support-driver-based-disconnect-with-reconn.patch +++ b/package/kernel/mac80211/patches/subsys/301-mac80211-support-driver-based-disconnect-with-reconn.patch @@ -47,7 +47,7 @@ Signed-off-by: Johannes Berg 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 { 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 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 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 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 } 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 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 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 } 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 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 } 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 } 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 } 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 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 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 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 index 6ffdffc562..0000000000 --- a/package/kernel/mac80211/patches/subsys/305-mac80211-fix-regression-in-SSN-handling-of-addba-tx.patch +++ /dev/null @@ -1,44 +0,0 @@ -From: Felix Fietkau -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 -Signed-off-by: Felix Fietkau ---- - ---- 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, ¶ms); -+ 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 index 1c213289c5..0000000000 --- a/package/kernel/mac80211/patches/subsys/308-mac80211-send-ADDBA-requests-using-the-tid-queue-of-.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: Felix Fietkau -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 ---- - ---- 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 index 008ee49cfb..0000000000 --- a/package/kernel/mac80211/patches/subsys/309-mac80211-agg-tx-don-t-schedule_and_wake_txq-under-st.patch +++ /dev/null @@ -1,79 +0,0 @@ -From: Johannes Berg -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 -Signed-off-by: Johannes Berg -Signed-off-by: Luca Coelho ---- - ---- a/net/mac80211/agg-tx.c -+++ b/net/mac80211/agg-tx.c -@@ -9,7 +9,7 @@ - * Copyright 2007, Michael Wu - * 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 -@@ -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); diff --git a/package/kernel/mac80211/patches/subsys/315-mac80211-add-rx-decapsulation-offload-support.patch b/package/kernel/mac80211/patches/subsys/315-mac80211-add-rx-decapsulation-offload-support.patch index 226df9830b..d2ba140e6f 100644 --- a/package/kernel/mac80211/patches/subsys/315-mac80211-add-rx-decapsulation-offload-support.patch +++ b/package/kernel/mac80211/patches/subsys/315-mac80211-add-rx-decapsulation-offload-support.patch @@ -109,7 +109,7 @@ Signed-off-by: Felix Fietkau --- 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); } diff --git a/package/kernel/mac80211/patches/subsys/373-mac80211-support-Rx-timestamp-calculation-for-all-pr.patch b/package/kernel/mac80211/patches/subsys/373-mac80211-support-Rx-timestamp-calculation-for-all-pr.patch index 117fb35fcf..426a8b7d5d 100644 --- a/package/kernel/mac80211/patches/subsys/373-mac80211-support-Rx-timestamp-calculation-for-all-pr.patch +++ b/package/kernel/mac80211/patches/subsys/373-mac80211-support-Rx-timestamp-calculation-for-all-pr.patch @@ -33,7 +33,7 @@ Signed-off-by: Johannes Berg 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 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 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 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) { diff --git a/package/kernel/mac80211/patches/subsys/382-mac80211-Switch-to-a-virtual-time-based-airtime-sche.patch b/package/kernel/mac80211/patches/subsys/382-mac80211-Switch-to-a-virtual-time-based-airtime-sche.patch index fc29074cff..022c449f79 100644 --- a/package/kernel/mac80211/patches/subsys/382-mac80211-Switch-to-a-virtual-time-based-airtime-sche.patch +++ b/package/kernel/mac80211/patches/subsys/382-mac80211-Switch-to-a-virtual-time-based-airtime-sche.patch @@ -90,7 +90,7 @@ Signed-off-by: Johannes Berg * 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 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) diff --git a/package/kernel/mac80211/patches/subsys/384-nl80211-add-common-API-to-configure-SAR-power-limita.patch b/package/kernel/mac80211/patches/subsys/384-nl80211-add-common-API-to-configure-SAR-power-limita.patch index a47e29794c..c6930ee135 100644 --- a/package/kernel/mac80211/patches/subsys/384-nl80211-add-common-API-to-configure-SAR-power-limita.patch +++ b/package/kernel/mac80211/patches/subsys/384-nl80211-add-common-API-to-configure-SAR-power-limita.patch @@ -222,7 +222,7 @@ Signed-off-by: Johannes Berg /* 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 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, }, diff --git a/package/kernel/mac80211/patches/subsys/387-nl80211-add-support-for-BSS-coloring.patch b/package/kernel/mac80211/patches/subsys/387-nl80211-add-support-for-BSS-coloring.patch index 1b70d85e7d..a63dc844e1 100644 --- a/package/kernel/mac80211/patches/subsys/387-nl80211-add-support-for-BSS-coloring.patch +++ b/package/kernel/mac80211/patches/subsys/387-nl80211-add-support-for-BSS-coloring.patch @@ -234,7 +234,7 @@ Signed-off-by: Johannes Berg }; /* 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 #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 }; 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); diff --git a/package/kernel/mac80211/patches/subsys/388-mac80211-add-support-for-BSS-color-change.patch b/package/kernel/mac80211/patches/subsys/388-mac80211-add-support-for-BSS-color-change.patch index c3e87df29c..60660764ab 100644 --- a/package/kernel/mac80211/patches/subsys/388-mac80211-add-support-for-BSS-color-change.patch +++ b/package/kernel/mac80211/patches/subsys/388-mac80211-add-support-for-BSS-color-change.patch @@ -140,7 +140,7 @@ Signed-off-by: Johannes Berg 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); diff --git a/package/kernel/mac80211/patches/subsys/390-mac80211-introduce-individual-TWT-support-in-AP-mode.patch b/package/kernel/mac80211/patches/subsys/390-mac80211-introduce-individual-TWT-support-in-AP-mode.patch index c32861a78f..995a9f1ea7 100644 --- a/package/kernel/mac80211/patches/subsys/390-mac80211-introduce-individual-TWT-support-in-AP-mode.patch +++ b/package/kernel/mac80211/patches/subsys/390-mac80211-introduce-individual-TWT-support-in-AP-mode.patch @@ -41,7 +41,7 @@ Signed-off-by: Johannes Berg /** --- 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); } diff --git a/package/kernel/mac80211/patches/subsys/391-wireless-align-some-HE-capabilities-with-the-spec.patch b/package/kernel/mac80211/patches/subsys/391-wireless-align-some-HE-capabilities-with-the-spec.patch index eb32c49890..031669b961 100644 --- a/package/kernel/mac80211/patches/subsys/391-wireless-align-some-HE-capabilities-with-the-spec.patch +++ b/package/kernel/mac80211/patches/subsys/391-wireless-align-some-HE-capabilities-with-the-spec.patch @@ -12,7 +12,7 @@ Signed-off-by: Johannes Berg --- 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 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 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 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] = diff --git a/package/kernel/mac80211/patches/subsys/392-wireless-fix-spelling-of-A-MSDU-in-HE-capabilities.patch b/package/kernel/mac80211/patches/subsys/392-wireless-fix-spelling-of-A-MSDU-in-HE-capabilities.patch index 0bd01126f7..334fda8ea9 100644 --- a/package/kernel/mac80211/patches/subsys/392-wireless-fix-spelling-of-A-MSDU-in-HE-capabilities.patch +++ b/package/kernel/mac80211/patches/subsys/392-wireless-fix-spelling-of-A-MSDU-in-HE-capabilities.patch @@ -11,7 +11,7 @@ Signed-off-by: Johannes Berg --- 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 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 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 --- 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 .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 .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 .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, diff --git a/package/kernel/mac80211/patches/subsys/393-wireless-align-HE-capabilities-A-MPDU-Length-Exponen.patch b/package/kernel/mac80211/patches/subsys/393-wireless-align-HE-capabilities-A-MPDU-Length-Exponen.patch index 42b71df9d1..3da3648e5d 100644 --- a/package/kernel/mac80211/patches/subsys/393-wireless-align-HE-capabilities-A-MPDU-Length-Exponen.patch +++ b/package/kernel/mac80211/patches/subsys/393-wireless-align-HE-capabilities-A-MPDU-Length-Exponen.patch @@ -13,7 +13,7 @@ Signed-off-by: Johannes Berg --- 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 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 .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 .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 .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 .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 .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 | -- cgit v1.2.3