diff options
33 files changed, 85 insertions, 439 deletions
diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile index 715e851a13..e51208aaba 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.15.8-1 -PKG_RELEASE:=2 -PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.8/ -PKG_HASH:=9f71b659c034f19d156532ec780fcb606cee3c4ccc42e2f8ef18dd3e9f1b6820 +PKG_VERSION:=5.15.33-1 +PKG_RELEASE:=1 +PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.33/ +PKG_HASH:=1b6b3bded4c81814ebebe2d194c2f8966d2399005b85ebb0557285b6e73f5422 PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION) diff --git a/package/kernel/mac80211/patches/ath/402-ath_regd_optional.patch b/package/kernel/mac80211/patches/ath/402-ath_regd_optional.patch index 506beb79c3..514cfd9e5e 100644 --- a/package/kernel/mac80211/patches/ath/402-ath_regd_optional.patch +++ b/package/kernel/mac80211/patches/ath/402-ath_regd_optional.patch @@ -82,7 +82,7 @@ help --- a/local-symbols +++ b/local-symbols -@@ -76,6 +76,7 @@ ADM8211= +@@ -83,6 +83,7 @@ ADM8211= ATH_COMMON= WLAN_VENDOR_ATH= ATH_DEBUG= diff --git a/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch b/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch index 833e2411c4..c8eef504c6 100644 --- a/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch +++ b/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch @@ -1,6 +1,6 @@ --- a/net/wireless/reg.c +++ b/net/wireless/reg.c -@@ -3299,6 +3299,8 @@ void regulatory_hint_country_ie(struct w +@@ -3304,6 +3304,8 @@ void regulatory_hint_country_ie(struct w enum environment_cap env = ENVIRON_ANY; struct regulatory_request *request = NULL, *lr; @@ -9,7 +9,7 @@ /* IE len must be evenly divisible by 2 */ if (country_ie_len & 0x01) return; -@@ -3550,6 +3552,7 @@ static bool is_wiphy_all_set_reg_flag(en +@@ -3555,6 +3557,7 @@ static bool is_wiphy_all_set_reg_flag(en void regulatory_hint_disconnect(void) { diff --git a/package/kernel/mac80211/patches/ath10k/080-ath10k_thermal_config.patch b/package/kernel/mac80211/patches/ath10k/080-ath10k_thermal_config.patch index 0886fd688a..de6f9d9bb0 100644 --- a/package/kernel/mac80211/patches/ath10k/080-ath10k_thermal_config.patch +++ b/package/kernel/mac80211/patches/ath10k/080-ath10k_thermal_config.patch @@ -37,7 +37,7 @@ void ath10k_thermal_event_temperature(struct ath10k *ar, int temperature); --- a/local-symbols +++ b/local-symbols -@@ -135,6 +135,7 @@ ATH10K_SNOC= +@@ -142,6 +142,7 @@ ATH10K_SNOC= ATH10K_DEBUG= ATH10K_DEBUGFS= ATH10K_SPECTRAL= diff --git a/package/kernel/mac80211/patches/ath10k/120-ath10k-fetch-calibration-data-via-nvmem-subsystem.patch b/package/kernel/mac80211/patches/ath10k/120-ath10k-fetch-calibration-data-via-nvmem-subsystem.patch index 6728a69efe..bebd5fe6c2 100644 --- a/package/kernel/mac80211/patches/ath10k/120-ath10k-fetch-calibration-data-via-nvmem-subsystem.patch +++ b/package/kernel/mac80211/patches/ath10k/120-ath10k-fetch-calibration-data-via-nvmem-subsystem.patch @@ -34,7 +34,7 @@ Signed-off-by: Christian Lamparter <chunkeey@gmail.com> #include <asm/byteorder.h> #include "core.h" -@@ -935,7 +936,8 @@ static int ath10k_core_get_board_id_from +@@ -952,7 +953,8 @@ static int ath10k_core_get_board_id_from } if (ar->cal_mode == ATH10K_PRE_CAL_MODE_DT || @@ -44,7 +44,7 @@ Signed-off-by: Christian Lamparter <chunkeey@gmail.com> bmi_board_id_param = BMI_PARAM_GET_FLASH_BOARD_ID; else bmi_board_id_param = BMI_PARAM_GET_EEPROM_BOARD_ID; -@@ -1726,7 +1728,8 @@ static int ath10k_download_and_run_otp(s +@@ -1743,7 +1745,8 @@ static int ath10k_download_and_run_otp(s /* As of now pre-cal is valid for 10_4 variants */ if (ar->cal_mode == ATH10K_PRE_CAL_MODE_DT || @@ -54,7 +54,7 @@ Signed-off-by: Christian Lamparter <chunkeey@gmail.com> bmi_otp_exe_param = BMI_PARAM_FLASH_SECTION_ALL; ret = ath10k_bmi_execute(ar, address, bmi_otp_exe_param, &result); -@@ -1853,6 +1856,39 @@ out_free: +@@ -1870,6 +1873,39 @@ out_free: return ret; } @@ -94,7 +94,7 @@ Signed-off-by: Christian Lamparter <chunkeey@gmail.com> int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name, struct ath10k_fw_file *fw_file) { -@@ -2087,6 +2123,18 @@ static int ath10k_core_pre_cal_download( +@@ -2104,6 +2140,18 @@ static int ath10k_core_pre_cal_download( { int ret; @@ -113,7 +113,7 @@ Signed-off-by: Christian Lamparter <chunkeey@gmail.com> ret = ath10k_download_cal_file(ar, ar->pre_cal_file); if (ret == 0) { ar->cal_mode = ATH10K_PRE_CAL_MODE_FILE; -@@ -2153,6 +2201,18 @@ static int ath10k_download_cal_data(stru +@@ -2170,6 +2218,18 @@ static int ath10k_download_cal_data(stru "pre cal download procedure failed, try cal file: %d\n", ret); diff --git a/package/kernel/mac80211/patches/ath10k/921-ath10k_init_devices_synchronously.patch b/package/kernel/mac80211/patches/ath10k/921-ath10k_init_devices_synchronously.patch index 710cd45269..b6ae2c7c83 100644 --- a/package/kernel/mac80211/patches/ath10k/921-ath10k_init_devices_synchronously.patch +++ b/package/kernel/mac80211/patches/ath10k/921-ath10k_init_devices_synchronously.patch @@ -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 -@@ -3412,6 +3412,16 @@ int ath10k_core_register(struct ath10k * +@@ -3429,6 +3429,16 @@ int ath10k_core_register(struct ath10k * queue_work(ar->workqueue, &ar->register_work); diff --git a/package/kernel/mac80211/patches/ath10k/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch b/package/kernel/mac80211/patches/ath10k/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch index 65d67b2e03..6db2430749 100644 --- a/package/kernel/mac80211/patches/ath10k/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch +++ b/package/kernel/mac80211/patches/ath10k/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch @@ -114,7 +114,7 @@ v13: ath10k_core-$(CONFIG_DEV_COREDUMP) += coredump.o --- a/local-symbols +++ b/local-symbols -@@ -136,6 +136,7 @@ ATH10K_DEBUG= +@@ -143,6 +143,7 @@ ATH10K_DEBUG= ATH10K_DEBUGFS= ATH10K_SPECTRAL= ATH10K_THERMAL= @@ -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, -@@ -133,6 +135,7 @@ static const struct ath10k_hw_params ath +@@ -135,6 +137,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, -@@ -344,6 +347,7 @@ static const struct ath10k_hw_params ath +@@ -352,6 +355,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, -@@ -385,6 +389,7 @@ static const struct ath10k_hw_params ath +@@ -394,6 +398,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, -@@ -433,6 +438,7 @@ static const struct ath10k_hw_params ath +@@ -443,6 +448,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, -@@ -3127,6 +3133,10 @@ int ath10k_core_start(struct ath10k *ar, +@@ -3144,6 +3150,10 @@ int ath10k_core_start(struct ath10k *ar, goto err_hif_stop; } @@ -183,7 +183,7 @@ v13: return 0; err_hif_stop: -@@ -3385,9 +3395,18 @@ static void ath10k_core_register_work(st +@@ -3402,9 +3412,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: -@@ -3433,6 +3452,8 @@ void ath10k_core_unregister(struct ath10 +@@ -3450,6 +3469,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/ath10k/984-ath10k-Try-to-get-mac-address-from-dts.patch b/package/kernel/mac80211/patches/ath10k/984-ath10k-Try-to-get-mac-address-from-dts.patch index e14329cce8..4077b2f393 100644 --- a/package/kernel/mac80211/patches/ath10k/984-ath10k-Try-to-get-mac-address-from-dts.patch +++ b/package/kernel/mac80211/patches/ath10k/984-ath10k-Try-to-get-mac-address-from-dts.patch @@ -26,7 +26,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> #include <linux/property.h> #include <linux/dmi.h> #include <linux/ctype.h> -@@ -3303,6 +3304,8 @@ static int ath10k_core_probe_fw(struct a +@@ -3320,6 +3321,8 @@ static int ath10k_core_probe_fw(struct a device_get_mac_address(ar->dev, ar->mac_addr, sizeof(ar->mac_addr)); diff --git a/package/kernel/mac80211/patches/ath9k/551-ath9k_ubnt_uap_plus_hsr.patch b/package/kernel/mac80211/patches/ath9k/551-ath9k_ubnt_uap_plus_hsr.patch index cb6374feb0..291bc6d1e1 100644 --- a/package/kernel/mac80211/patches/ath9k/551-ath9k_ubnt_uap_plus_hsr.patch +++ b/package/kernel/mac80211/patches/ath9k/551-ath9k_ubnt_uap_plus_hsr.patch @@ -371,7 +371,7 @@ --- a/local-symbols +++ b/local-symbols -@@ -103,6 +103,7 @@ ATH9K_WOW= +@@ -110,6 +110,7 @@ ATH9K_WOW= ATH9K_RFKILL= ATH9K_CHANNEL_CONTEXT= ATH9K_PCOEM= 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 aa890ce0f3..7b9512f741 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 <zajec5@gmail.com> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c -@@ -429,6 +429,7 @@ struct brcmf_fw { +@@ -431,6 +431,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> }; #ifdef CONFIG_EFI -@@ -653,6 +654,8 @@ static void brcmf_fw_request_done(const +@@ -655,6 +656,8 @@ static void brcmf_fw_request_done(const fwctx->req = NULL; } fwctx->done(fwctx->dev, ret, fwctx->req); @@ -30,16 +30,16 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> kfree(fwctx); } -@@ -693,6 +696,8 @@ int brcmf_fw_get_firmwares(struct device +@@ -695,6 +698,8 @@ int brcmf_fw_get_firmwares(struct device { struct brcmf_fw_item *first = &req->items[0]; struct brcmf_fw *fwctx; + struct completion completion; + unsigned long time_left; - char *alt_path; + char *alt_path = NULL; int ret; -@@ -710,6 +715,9 @@ int brcmf_fw_get_firmwares(struct device +@@ -712,6 +717,9 @@ int brcmf_fw_get_firmwares(struct device fwctx->dev = dev; fwctx->req = req; fwctx->done = fw_cb; @@ -48,8 +48,8 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> + fwctx->completion = &completion; /* First try alternative board-specific path if any */ - alt_path = brcm_alt_fw_path(first->path, fwctx->req->board_type); -@@ -726,6 +734,12 @@ int brcmf_fw_get_firmwares(struct device + if (fwctx->req->board_type) +@@ -730,6 +738,12 @@ int brcmf_fw_get_firmwares(struct device if (ret < 0) brcmf_fw_request_done(NULL, fwctx); diff --git a/package/kernel/mac80211/patches/build/060-no_local_ssb_bcma.patch b/package/kernel/mac80211/patches/build/060-no_local_ssb_bcma.patch index 3967d73fad..19a60d7956 100644 --- a/package/kernel/mac80211/patches/build/060-no_local_ssb_bcma.patch +++ b/package/kernel/mac80211/patches/build/060-no_local_ssb_bcma.patch @@ -1,6 +1,6 @@ --- a/local-symbols +++ b/local-symbols -@@ -421,43 +421,6 @@ USB_VL600= +@@ -428,43 +428,6 @@ USB_VL600= USB_NET_CH9200= USB_NET_AQC111= USB_RTL8153_ECM= @@ -192,7 +192,7 @@ select BRCMUTIL --- a/Kconfig.local +++ b/Kconfig.local -@@ -1267,117 +1267,6 @@ config BACKPORTED_USB_NET_AQC111 +@@ -1288,117 +1288,6 @@ config BACKPORTED_USB_NET_AQC111 config BACKPORTED_USB_RTL8153_ECM tristate default USB_RTL8153_ECM @@ -312,7 +312,7 @@ default USB_ACM --- a/Kconfig.sources +++ b/Kconfig.sources -@@ -7,9 +7,6 @@ source "$BACKPORT_DIR/net/mac80211/Kconf +@@ -9,9 +9,6 @@ source "$BACKPORT_DIR/drivers/bus/mhi/Kc source "$BACKPORT_DIR/drivers/net/wireless/Kconfig" source "$BACKPORT_DIR/drivers/net/usb/Kconfig" @@ -324,9 +324,9 @@ source "$BACKPORT_DIR/drivers/staging/Kconfig" --- a/Makefile.kernel +++ b/Makefile.kernel -@@ -40,8 +40,6 @@ obj-y += compat/ - obj-$(CPTCFG_CFG80211) += net/wireless/ - obj-$(CPTCFG_MAC80211) += net/mac80211/ +@@ -42,8 +42,6 @@ obj-$(CPTCFG_MAC80211) += net/mac80211/ + obj-$(CPTCFG_QRTR) += net/qrtr/ + obj-$(CPTCFG_MHI_BUS) += drivers/bus/mhi/ obj-$(CPTCFG_WLAN) += drivers/net/wireless/ -obj-$(CPTCFG_SSB) += drivers/ssb/ -obj-$(CPTCFG_BCMA) += drivers/bcma/ diff --git a/package/kernel/mac80211/patches/build/070-headers-fix-lockdep_assert_not_held.patch b/package/kernel/mac80211/patches/build/070-headers-fix-lockdep_assert_not_held.patch deleted file mode 100644 index d946efa174..0000000000 --- a/package/kernel/mac80211/patches/build/070-headers-fix-lockdep_assert_not_held.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20=C5=A0tetiar?= <ynezz@true.cz> -Date: Fri, 11 Mar 2022 18:21:04 +0100 -Subject: [PATCH] headers: fix lockdep_assert_not_held() -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -LOCK_STATE_HELD define was omitted during backport of -lockdep_assert_not_held() which leads to build failures of kernels with -CONFIG_LOCKDEP=y: - - backports-5.15.8-1/backport-include/linux/lockdep.h:16:47: error: 'LOCK_STATE_HELD' undeclared (first use in this function) - -Fix it by adding missing LOCK_STATE_HELD define. - -References: https://github.com/openwrt/openwrt/pull/9373 -References: https://lore.kernel.org/backports/20220311194800.452-1-ynezz@true.cz/T/#u -Fixes: af58b27b1b1a ("headers: Add lockdep_assert_not_held()") -Reported-by: Oskari Rauta <oskari.rauta@gmail.com> -Signed-off-by: Petr Štetiar <ynezz@true.cz> ---- - backport-include/linux/lockdep.h | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/backport-include/linux/lockdep.h b/backport-include/linux/lockdep.h -index ed5ea67894e4..842e24b7ff8f 100644 ---- a/backport-include/linux/lockdep.h -+++ b/backport-include/linux/lockdep.h -@@ -11,6 +11,9 @@ struct lockdep_map { }; - - #ifndef lockdep_assert_not_held - #ifdef CONFIG_LOCKDEP -+#ifndef LOCK_STATE_HELD -+#define LOCK_STATE_HELD 1 -+#endif /* LOCK_STATE_HELD */ - #define lockdep_assert_not_held(l) do { \ - WARN_ON(debug_locks && \ - lockdep_is_held(l) == LOCK_STATE_HELD); \ diff --git a/package/kernel/mac80211/patches/rt2x00/602-rt2x00-introduce-rt2x00eeprom.patch b/package/kernel/mac80211/patches/rt2x00/602-rt2x00-introduce-rt2x00eeprom.patch index 5bc55cc90b..afe8cea205 100644 --- a/package/kernel/mac80211/patches/rt2x00/602-rt2x00-introduce-rt2x00eeprom.patch +++ b/package/kernel/mac80211/patches/rt2x00/602-rt2x00-introduce-rt2x00eeprom.patch @@ -1,6 +1,6 @@ --- a/local-symbols +++ b/local-symbols -@@ -315,6 +315,7 @@ RT2X00_LIB_FIRMWARE= +@@ -322,6 +322,7 @@ RT2X00_LIB_FIRMWARE= RT2X00_LIB_CRYPTO= RT2X00_LIB_LEDS= RT2X00_LIB_DEBUGFS= 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 638da14346..5307fd355c 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 -@@ -1316,7 +1316,6 @@ static int ieee80211_stop_ap(struct wiph +@@ -1319,7 +1319,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/150-disable_addr_notifier.patch b/package/kernel/mac80211/patches/subsys/150-disable_addr_notifier.patch index e93efa4429..2dc6ab3601 100644 --- a/package/kernel/mac80211/patches/subsys/150-disable_addr_notifier.patch +++ b/package/kernel/mac80211/patches/subsys/150-disable_addr_notifier.patch @@ -18,7 +18,7 @@ static int ieee80211_ifa6_changed(struct notifier_block *nb, unsigned long data, void *arg) { -@@ -1324,14 +1324,14 @@ int ieee80211_register_hw(struct ieee802 +@@ -1321,14 +1321,14 @@ int ieee80211_register_hw(struct ieee802 wiphy_unlock(hw->wiphy); rtnl_unlock(); @@ -35,7 +35,7 @@ local->ifa6_notifier.notifier_call = ieee80211_ifa6_changed; result = register_inet6addr_notifier(&local->ifa6_notifier); if (result) -@@ -1340,13 +1340,13 @@ int ieee80211_register_hw(struct ieee802 +@@ -1337,13 +1337,13 @@ int ieee80211_register_hw(struct ieee802 return 0; @@ -52,7 +52,7 @@ fail_ifa: #endif wiphy_unregister(local->hw.wiphy); -@@ -1374,10 +1374,10 @@ void ieee80211_unregister_hw(struct ieee +@@ -1371,10 +1371,10 @@ void ieee80211_unregister_hw(struct ieee tasklet_kill(&local->tx_pending_tasklet); tasklet_kill(&local->tasklet); diff --git a/package/kernel/mac80211/patches/subsys/300-mac80211-fix-rate-control-for-retransmitted-frames.patch b/package/kernel/mac80211/patches/subsys/300-mac80211-fix-rate-control-for-retransmitted-frames.patch deleted file mode 100644 index 98dfe88cbd..0000000000 --- a/package/kernel/mac80211/patches/subsys/300-mac80211-fix-rate-control-for-retransmitted-frames.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: Felix Fietkau <nbd@nbd.name> -Date: Mon, 22 Nov 2021 21:39:38 +0100 -Subject: [PATCH] mac80211: fix rate control for retransmitted frames - -Since retransmission clears info->control, rate control needs to be called -again, otherwise the driver might crash due to invalid rates. - -Cc: stable@vger.kernel.org # 5.14+ -Reported-by: Aaro Koskinen <aaro.koskinen@iki.fi> -Reported-by: Robert W <rwbugreport@lost-in-the-void.net> -Fixes: 03c3911d2d67 ("mac80211: call ieee80211_tx_h_rate_ctrl() when dequeue") -Signed-off-by: Felix Fietkau <nbd@nbd.name> ---- - ---- a/net/mac80211/tx.c -+++ b/net/mac80211/tx.c -@@ -1821,15 +1821,15 @@ static int invoke_tx_handlers_late(struc - struct ieee80211_tx_info *info = IEEE80211_SKB_CB(tx->skb); - ieee80211_tx_result res = TX_CONTINUE; - -+ if (!ieee80211_hw_check(&tx->local->hw, HAS_RATE_CONTROL)) -+ CALL_TXH(ieee80211_tx_h_rate_ctrl); -+ - if (unlikely(info->flags & IEEE80211_TX_INTFL_RETRANSMISSION)) { - __skb_queue_tail(&tx->skbs, tx->skb); - tx->skb = NULL; - goto txh_done; - } - -- if (!ieee80211_hw_check(&tx->local->hw, HAS_RATE_CONTROL)) -- CALL_TXH(ieee80211_tx_h_rate_ctrl); -- - CALL_TXH(ieee80211_tx_h_michael_mic_add); - CALL_TXH(ieee80211_tx_h_sequence); - CALL_TXH(ieee80211_tx_h_fragment); diff --git a/package/kernel/mac80211/patches/subsys/302-mac80211-fix-regression-in-SSN-handling-of-addba-tx.patch b/package/kernel/mac80211/patches/subsys/302-mac80211-fix-regression-in-SSN-handling-of-addba-tx.patch deleted file mode 100644 index dc8afb9186..0000000000 --- a/package/kernel/mac80211/patches/subsys/302-mac80211-fix-regression-in-SSN-handling-of-addba-tx.patch +++ /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, ¶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 -@@ -199,6 +199,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/303-mac80211-set-up-the-fwd_skb-dev-for-mesh-forwarding.patch b/package/kernel/mac80211/patches/subsys/303-mac80211-set-up-the-fwd_skb-dev-for-mesh-forwarding.patch index 1ceb2be25c..777c93cb90 100644 --- a/package/kernel/mac80211/patches/subsys/303-mac80211-set-up-the-fwd_skb-dev-for-mesh-forwarding.patch +++ b/package/kernel/mac80211/patches/subsys/303-mac80211-set-up-the-fwd_skb-dev-for-mesh-forwarding.patch @@ -52,7 +52,7 @@ Signed-off-by: Xing Song <xing.song@mediatek.com> --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c -@@ -2948,6 +2948,7 @@ ieee80211_rx_h_mesh_fwding(struct ieee80 +@@ -2949,6 +2949,7 @@ ieee80211_rx_h_mesh_fwding(struct ieee80 if (!fwd_skb) goto out; diff --git a/package/kernel/mac80211/patches/subsys/304-mac80211-send-ADDBA-requests-using-the-tid-queue-of-.patch b/package/kernel/mac80211/patches/subsys/304-mac80211-send-ADDBA-requests-using-the-tid-queue-of-.patch deleted file mode 100644 index 1c213289c5..0000000000 --- a/package/kernel/mac80211/patches/subsys/304-mac80211-send-ADDBA-requests-using-the-tid-queue-of-.patch +++ /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/305-mac80211-agg-tx-don-t-schedule_and_wake_txq-under-st.patch b/package/kernel/mac80211/patches/subsys/305-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/305-mac80211-agg-tx-don-t-schedule_and_wake_txq-under-st.patch +++ /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); diff --git a/package/kernel/mac80211/patches/subsys/307-mac80211_hwsim-make-6-GHz-channels-usable.patch b/package/kernel/mac80211/patches/subsys/307-mac80211_hwsim-make-6-GHz-channels-usable.patch index 9c7417e5fc..c534d1570a 100644 --- a/package/kernel/mac80211/patches/subsys/307-mac80211_hwsim-make-6-GHz-channels-usable.patch +++ b/package/kernel/mac80211/patches/subsys/307-mac80211_hwsim-make-6-GHz-channels-usable.patch @@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c -@@ -2992,15 +2992,19 @@ static void mac80211_hwsim_he_capab(stru +@@ -3001,15 +3001,19 @@ static void mac80211_hwsim_he_capab(stru { u16 n_iftype_data; @@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> return; } -@@ -3290,6 +3294,12 @@ static int mac80211_hwsim_new_radio(stru +@@ -3299,6 +3303,12 @@ static int mac80211_hwsim_new_radio(stru sband->vht_cap.vht_mcs.tx_mcs_map = sband->vht_cap.vht_mcs.rx_mcs_map; break; @@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> case NL80211_BAND_S1GHZ: memcpy(&sband->s1g_cap, &hwsim_s1g_cap, sizeof(sband->s1g_cap)); -@@ -3300,6 +3310,13 @@ static int mac80211_hwsim_new_radio(stru +@@ -3309,6 +3319,13 @@ static int mac80211_hwsim_new_radio(stru continue; } @@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> sband->ht_cap.ht_supported = true; sband->ht_cap.cap = IEEE80211_HT_CAP_SUP_WIDTH_20_40 | IEEE80211_HT_CAP_GRN_FLD | -@@ -3313,10 +3330,6 @@ static int mac80211_hwsim_new_radio(stru +@@ -3322,10 +3339,6 @@ static int mac80211_hwsim_new_radio(stru sband->ht_cap.mcs.rx_mask[0] = 0xff; sband->ht_cap.mcs.rx_mask[1] = 0xff; sband->ht_cap.mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED; diff --git a/package/kernel/mac80211/patches/subsys/308-mac80211-add-support-for-.ndo_fill_forward_path.patch b/package/kernel/mac80211/patches/subsys/308-mac80211-add-support-for-.ndo_fill_forward_path.patch index 2f3c1a2669..272d84f35e 100644 --- a/package/kernel/mac80211/patches/subsys/308-mac80211-add-support-for-.ndo_fill_forward_path.patch +++ b/package/kernel/mac80211/patches/subsys/308-mac80211-add-support-for-.ndo_fill_forward_path.patch @@ -38,10 +38,10 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> /** --- a/net/mac80211/driver-ops.h +++ b/net/mac80211/driver-ops.h -@@ -1483,4 +1483,28 @@ static inline void drv_twt_teardown_requ +@@ -1486,4 +1486,28 @@ static inline void drv_twt_teardown_requ trace_drv_return_void(local); } - + +#if LINUX_VERSION_IS_GEQ(5,10,0) +static inline int drv_net_fill_forward_path(struct ieee80211_local *local, + struct ieee80211_sub_if_data *sdata, @@ -69,7 +69,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> #endif /* __MAC80211_DRIVER_OPS */ --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h -@@ -1465,7 +1465,7 @@ struct ieee80211_local { +@@ -1485,7 +1485,7 @@ struct ieee80211_local { }; static inline struct ieee80211_sub_if_data * @@ -147,7 +147,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> static const struct net_device_ops ieee80211_dataif_8023_ops = { #if LINUX_VERSION_IS_LESS(4,10,0) .ndo_change_mtu = __change_mtu, -@@ -839,7 +901,9 @@ static const struct net_device_ops ieee8 +@@ -839,7 +899,9 @@ static const struct net_device_ops ieee8 #else .ndo_get_stats64 = bp_ieee80211_get_stats64, #endif @@ -163,7 +163,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> @@ -2892,6 +2892,15 @@ TRACE_EVENT(drv_twt_teardown_request, ) ); - + +#if LINUX_VERSION_IS_GEQ(5,10,0) +DEFINE_EVENT(sta_event, drv_net_fill_forward_path, + TP_PROTO(struct ieee80211_local *local, diff --git a/package/kernel/mac80211/patches/subsys/313-nl80211-MBSSID-and-EMA-support-in-AP-mode.patch b/package/kernel/mac80211/patches/subsys/313-nl80211-MBSSID-and-EMA-support-in-AP-mode.patch index 8e6b301888..4fc8b592c2 100644 --- a/package/kernel/mac80211/patches/subsys/313-nl80211-MBSSID-and-EMA-support-in-AP-mode.patch +++ b/package/kernel/mac80211/patches/subsys/313-nl80211-MBSSID-and-EMA-support-in-AP-mode.patch @@ -221,7 +221,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> #endif /* __LINUX_NL80211_H */ --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c -@@ -439,6 +439,16 @@ sar_policy[NL80211_SAR_ATTR_MAX + 1] = { +@@ -442,6 +442,16 @@ sar_policy[NL80211_SAR_ATTR_MAX + 1] = { [NL80211_SAR_ATTR_SPECS] = NLA_POLICY_NESTED_ARRAY(sar_specs_policy), }; @@ -238,7 +238,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = { [0] = { .strict_start_type = NL80211_ATTR_HE_OBSS_PD }, [NL80211_ATTR_WIPHY] = { .type = NLA_U32 }, -@@ -780,6 +790,9 @@ static const struct nla_policy nl80211_p +@@ -783,6 +793,9 @@ static const struct nla_policy nl80211_p [NL80211_ATTR_COLOR_CHANGE_COUNT] = { .type = NLA_U8 }, [NL80211_ATTR_COLOR_CHANGE_COLOR] = { .type = NLA_U8 }, [NL80211_ATTR_COLOR_CHANGE_ELEMS] = NLA_POLICY_NESTED(nl80211_policy), @@ -248,7 +248,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> }; /* policy for the key attributes */ -@@ -2228,6 +2241,35 @@ fail: +@@ -2231,6 +2244,35 @@ fail: return -ENOBUFS; } @@ -284,7 +284,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> struct nl80211_dump_wiphy_state { s64 filter_wiphy; long start; -@@ -2813,6 +2855,9 @@ static int nl80211_send_wiphy(struct cfg +@@ -2816,6 +2858,9 @@ static int nl80211_send_wiphy(struct cfg if (nl80211_put_sar_specs(rdev, msg)) goto nla_put_failure; @@ -294,7 +294,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> /* done */ state->split_start = 0; break; -@@ -5002,6 +5047,96 @@ static int validate_beacon_tx_rate(struc +@@ -5005,6 +5050,96 @@ static int validate_beacon_tx_rate(struc return 0; } @@ -391,7 +391,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> static int nl80211_parse_beacon(struct cfg80211_registered_device *rdev, struct nlattr *attrs[], struct cfg80211_beacon_data *bcn) -@@ -5082,6 +5217,17 @@ static int nl80211_parse_beacon(struct c +@@ -5085,6 +5220,17 @@ static int nl80211_parse_beacon(struct c bcn->ftm_responder = -1; } @@ -409,7 +409,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> return 0; } -@@ -5538,6 +5684,17 @@ static int nl80211_start_ap(struct sk_bu +@@ -5541,6 +5687,17 @@ static int nl80211_start_ap(struct sk_bu goto out; } @@ -427,7 +427,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> nl80211_calculate_ap_params(¶ms); if (info->attrs[NL80211_ATTR_EXTERNAL_AUTH_SUPPORT]) -@@ -5559,6 +5716,11 @@ static int nl80211_start_ap(struct sk_bu +@@ -5562,6 +5719,11 @@ static int nl80211_start_ap(struct sk_bu out: kfree(params.acl); @@ -439,7 +439,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> return err; } -@@ -5583,12 +5745,14 @@ static int nl80211_set_beacon(struct sk_ +@@ -5586,12 +5748,14 @@ static int nl80211_set_beacon(struct sk_ err = nl80211_parse_beacon(rdev, info->attrs, ¶ms); if (err) @@ -455,7 +455,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> return err; } -@@ -9265,12 +9429,14 @@ static int nl80211_channel_switch(struct +@@ -9268,12 +9432,14 @@ static int nl80211_channel_switch(struct err = nl80211_parse_beacon(rdev, info->attrs, ¶ms.beacon_after); if (err) @@ -473,7 +473,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> err = nla_parse_nested_deprecated(csa_attrs, NL80211_ATTR_MAX, info->attrs[NL80211_ATTR_CSA_IES], -@@ -9389,6 +9555,8 @@ skip_beacons: +@@ -9392,6 +9558,8 @@ skip_beacons: wdev_unlock(wdev); free: @@ -482,7 +482,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> kfree(csa_attrs); return err; } -@@ -14924,6 +15092,8 @@ static int nl80211_color_change(struct s +@@ -14939,6 +15107,8 @@ static int nl80211_color_change(struct s wdev_unlock(wdev); out: diff --git a/package/kernel/mac80211/patches/subsys/314-cfg80211-implement-APIs-for-dedicated-radar-detectio.patch b/package/kernel/mac80211/patches/subsys/314-cfg80211-implement-APIs-for-dedicated-radar-detectio.patch index 032bcf7a0c..90c56b4e43 100644 --- a/package/kernel/mac80211/patches/subsys/314-cfg80211-implement-APIs-for-dedicated-radar-detectio.patch +++ b/package/kernel/mac80211/patches/subsys/314-cfg80211-implement-APIs-for-dedicated-radar-detectio.patch @@ -119,7 +119,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> NUM_NL80211_EXT_FEATURES, --- a/net/wireless/core.c +++ b/net/wireless/core.c -@@ -552,6 +552,7 @@ use_default_name: +@@ -543,6 +543,7 @@ use_default_name: INIT_WORK(&rdev->rfkill_block, cfg80211_rfkill_block_work); INIT_WORK(&rdev->conn_work, cfg80211_conn_work); INIT_WORK(&rdev->event_work, cfg80211_event_work); @@ -127,7 +127,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> init_waitqueue_head(&rdev->dev_wait); -@@ -1214,6 +1215,8 @@ void __cfg80211_leave(struct cfg80211_re +@@ -1205,6 +1206,8 @@ void __cfg80211_leave(struct cfg80211_re cfg80211_pmsr_wdev_down(wdev); @@ -286,7 +286,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> +} --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c -@@ -793,6 +793,7 @@ static const struct nla_policy nl80211_p +@@ -796,6 +796,7 @@ static const struct nla_policy nl80211_p [NL80211_ATTR_MBSSID_CONFIG] = NLA_POLICY_NESTED(nl80211_mbssid_config_policy), [NL80211_ATTR_MBSSID_ELEMS] = { .type = NLA_NESTED }, @@ -294,7 +294,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> }; /* policy for the key attributes */ -@@ -9269,12 +9270,6 @@ static int nl80211_start_radar_detection +@@ -9272,12 +9273,6 @@ static int nl80211_start_radar_detection if (err) return err; @@ -307,7 +307,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> err = cfg80211_chandef_dfs_required(wiphy, &chandef, wdev->iftype); if (err < 0) return err; -@@ -9285,6 +9280,16 @@ static int nl80211_start_radar_detection +@@ -9288,6 +9283,16 @@ static int nl80211_start_radar_detection if (!cfg80211_chandef_dfs_usable(wiphy, &chandef)) return -EINVAL; diff --git a/package/kernel/mac80211/patches/subsys/315-cfg80211-move-offchan_cac_event-to-a-dedicated-work.patch b/package/kernel/mac80211/patches/subsys/315-cfg80211-move-offchan_cac_event-to-a-dedicated-work.patch index e58c3b99be..b1a1d2c894 100644 --- a/package/kernel/mac80211/patches/subsys/315-cfg80211-move-offchan_cac_event-to-a-dedicated-work.patch +++ b/package/kernel/mac80211/patches/subsys/315-cfg80211-move-offchan_cac_event-to-a-dedicated-work.patch @@ -43,7 +43,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> * cfg80211_gtk_rekey_notify - notify userspace about driver rekeying --- a/net/wireless/core.c +++ b/net/wireless/core.c -@@ -552,7 +552,9 @@ use_default_name: +@@ -543,7 +543,9 @@ use_default_name: INIT_WORK(&rdev->rfkill_block, cfg80211_rfkill_block_work); INIT_WORK(&rdev->conn_work, cfg80211_conn_work); INIT_WORK(&rdev->event_work, cfg80211_event_work); @@ -54,7 +54,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> init_waitqueue_head(&rdev->dev_wait); -@@ -1062,11 +1064,13 @@ void wiphy_unregister(struct wiphy *wiph +@@ -1053,11 +1055,13 @@ void wiphy_unregister(struct wiphy *wiph cancel_work_sync(&rdev->conn_work); flush_work(&rdev->event_work); cancel_delayed_work_sync(&rdev->dfs_update_channels_wk); diff --git a/package/kernel/mac80211/patches/subsys/318-cfg80211-allow-continuous-radar-monitoring-on-offcha.patch b/package/kernel/mac80211/patches/subsys/318-cfg80211-allow-continuous-radar-monitoring-on-offcha.patch index ae97947fab..567743d84d 100644 --- a/package/kernel/mac80211/patches/subsys/318-cfg80211-allow-continuous-radar-monitoring-on-offcha.patch +++ b/package/kernel/mac80211/patches/subsys/318-cfg80211-allow-continuous-radar-monitoring-on-offcha.patch @@ -118,7 +118,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> NL80211_RADAR_CAC_ABORTED); --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c -@@ -9260,42 +9260,60 @@ static int nl80211_start_radar_detection +@@ -9263,42 +9263,60 @@ static int nl80211_start_radar_detection struct cfg80211_chan_def chandef; enum nl80211_dfs_regions dfs_region; unsigned int cac_time_ms; @@ -198,7 +198,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> cac_time_ms = cfg80211_chandef_dfs_cac_time(&rdev->wiphy, &chandef); if (WARN_ON(!cac_time_ms)) -@@ -9308,6 +9326,9 @@ static int nl80211_start_radar_detection +@@ -9311,6 +9329,9 @@ static int nl80211_start_radar_detection wdev->cac_start_time = jiffies; wdev->cac_time_ms = cac_time_ms; } @@ -208,7 +208,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> return err; } -@@ -15926,7 +15947,8 @@ static const struct genl_small_ops nl802 +@@ -15941,7 +15962,8 @@ static const struct genl_small_ops nl802 .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .doit = nl80211_start_radar_detection, .flags = GENL_UNS_ADMIN_PERM, diff --git a/package/kernel/mac80211/patches/subsys/320-cfg80211-rename-offchannel_chain-structs-to-backgrou.patch b/package/kernel/mac80211/patches/subsys/320-cfg80211-rename-offchannel_chain-structs-to-backgrou.patch index a73e81bec6..c3a4c0db25 100644 --- a/package/kernel/mac80211/patches/subsys/320-cfg80211-rename-offchannel_chain-structs-to-backgrou.patch +++ b/package/kernel/mac80211/patches/subsys/320-cfg80211-rename-offchannel_chain-structs-to-backgrou.patch @@ -204,7 +204,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> bool cfg80211_any_wiphy_oper_chan(struct wiphy *wiphy, --- a/net/wireless/core.c +++ b/net/wireless/core.c -@@ -552,9 +552,10 @@ use_default_name: +@@ -543,9 +543,10 @@ use_default_name: INIT_WORK(&rdev->rfkill_block, cfg80211_rfkill_block_work); INIT_WORK(&rdev->conn_work, cfg80211_conn_work); INIT_WORK(&rdev->event_work, cfg80211_event_work); @@ -218,7 +218,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> init_waitqueue_head(&rdev->dev_wait); -@@ -1064,13 +1065,13 @@ void wiphy_unregister(struct wiphy *wiph +@@ -1055,13 +1056,13 @@ void wiphy_unregister(struct wiphy *wiph cancel_work_sync(&rdev->conn_work); flush_work(&rdev->event_work); cancel_delayed_work_sync(&rdev->dfs_update_channels_wk); @@ -234,7 +234,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> #ifdef CONFIG_PM if (rdev->wiphy.wowlan_config && rdev->ops->set_wakeup) -@@ -1219,7 +1220,7 @@ void __cfg80211_leave(struct cfg80211_re +@@ -1210,7 +1211,7 @@ void __cfg80211_leave(struct cfg80211_re cfg80211_pmsr_wdev_down(wdev); @@ -472,7 +472,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> } --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c -@@ -793,7 +793,7 @@ static const struct nla_policy nl80211_p +@@ -796,7 +796,7 @@ static const struct nla_policy nl80211_p [NL80211_ATTR_MBSSID_CONFIG] = NLA_POLICY_NESTED(nl80211_mbssid_config_policy), [NL80211_ATTR_MBSSID_ELEMS] = { .type = NLA_NESTED }, @@ -481,7 +481,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> }; /* policy for the key attributes */ -@@ -9288,9 +9288,9 @@ static int nl80211_start_radar_detection +@@ -9291,9 +9291,9 @@ static int nl80211_start_radar_detection goto unlock; } diff --git a/package/kernel/mac80211/patches/subsys/321-mac80211-fix-EAPoL-rekey-fail-in-802.3-rx-path.patch b/package/kernel/mac80211/patches/subsys/321-mac80211-fix-EAPoL-rekey-fail-in-802.3-rx-path.patch deleted file mode 100644 index 932403d653..0000000000 --- a/package/kernel/mac80211/patches/subsys/321-mac80211-fix-EAPoL-rekey-fail-in-802.3-rx-path.patch +++ /dev/null @@ -1,43 +0,0 @@ -From: Deren Wu <deren.wu@mediatek.com> -Date: Sun, 13 Feb 2022 00:20:15 +0800 -Subject: [PATCH] mac80211: fix EAPoL rekey fail in 802.3 rx path - -mac80211 set capability NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211 -to upper layer by default. That means we should pass EAPoL packets through -nl80211 path only, and should not send the EAPoL skb to netdevice diretly. -At the meanwhile, wpa_supplicant would not regist sock to listen EAPoL skb -on the netdevice. - -However, there is no contorl_port_protocol handler in mac80211 for 802.3 RX -packets, mac80211 driver would pass up the EAPoL rekey frame to netdevice -and wpa_supplicant would be never interactive with this kind of packets, -if SUPPORTS_RX_DECAP_OFFLOAD is enabled. This causes STA always rekey fail -if EAPoL frame go through 802.3 path. - -To avoid this problem, align the same process as 802.11 type to handle -this frame before put it into network stack. - -Fixes: 80a915ec4427 ("mac80211: add rx decapsulation offload support") -Signed-off-by: Deren Wu <deren.wu@mediatek.com> ---- - ---- a/net/mac80211/rx.c -+++ b/net/mac80211/rx.c -@@ -4523,16 +4523,7 @@ static void ieee80211_rx_8023(struct iee - - /* deliver to local stack */ - skb->protocol = eth_type_trans(skb, fast_rx->dev); -- memset(skb->cb, 0, sizeof(skb->cb)); -- if (rx->list) --#if LINUX_VERSION_IS_GEQ(4,19,0) -- list_add_tail(&skb->list, rx->list); --#else -- __skb_queue_tail(rx->list, skb); --#endif -- else -- netif_receive_skb(skb); -- -+ ieee80211_deliver_skb_to_local_stack(skb, rx); - } - - static bool ieee80211_invoke_fast_rx(struct ieee80211_rx_data *rx, diff --git a/package/kernel/mac80211/patches/subsys/322-mac80211-fix-forwarded-mesh-frames-AC-queue-selectio.patch b/package/kernel/mac80211/patches/subsys/322-mac80211-fix-forwarded-mesh-frames-AC-queue-selectio.patch deleted file mode 100644 index 50693f7232..0000000000 --- a/package/kernel/mac80211/patches/subsys/322-mac80211-fix-forwarded-mesh-frames-AC-queue-selectio.patch +++ /dev/null @@ -1,50 +0,0 @@ -From: Nicolas Escande <nico.escande@gmail.com> -Date: Mon, 14 Feb 2022 18:32:14 +0100 -Subject: [PATCH] mac80211: fix forwarded mesh frames AC & queue selection - -There are two problems with the current code that have been highlighted -with the AQL feature that is now enbaled by default. - -First problem is in ieee80211_rx_h_mesh_fwding(), -ieee80211_select_queue_80211() is used on received packets to choose -the sending AC queue of the forwarding packet although this function -should only be called on TX packet (it uses ieee80211_tx_info). -This ends with forwarded mesh packets been sent on unrelated random AC -queue. To fix that, AC queue can directly be infered from skb->priority -which has been extracted from QOS info (see ieee80211_parse_qos()). - -Second problem is the value of queue_mapping set on forwarded mesh -frames via skb_set_queue_mapping() is not the AC of the packet but a -hardware queue index. This may or may not work depending on AC to HW -queue mapping which is driver specific. - -Both of these issues lead to improper AC selection while forwarding -mesh packets but more importantly due to improper airtime accounting -(which is done on a per STA, per AC basis) caused traffic stall with -the introduction of AQL. - -Fixes: cf44012810cc ("mac80211: fix unnecessary frame drops in mesh fwding") -Fixes: d3c1597b8d1b ("mac80211: fix forwarded mesh frame queue mapping") -Co-developed-by: Remi Pommarel <repk@triplefau.lt> -Signed-off-by: Remi Pommarel <repk@triplefau.lt> -Signed-off-by: Nicolas Escande <nico.escande@gmail.com> ---- - ---- a/net/mac80211/rx.c -+++ b/net/mac80211/rx.c -@@ -2921,13 +2921,13 @@ ieee80211_rx_h_mesh_fwding(struct ieee80 - ether_addr_equal(sdata->vif.addr, hdr->addr3)) - return RX_CONTINUE; - -- ac = ieee80211_select_queue_80211(sdata, skb, hdr); -+ ac = ieee802_1d_to_ac[skb->priority]; - q = sdata->vif.hw_queue[ac]; - if (ieee80211_queue_stopped(&local->hw, q)) { - IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, dropped_frames_congestion); - return RX_DROP_MONITOR; - } -- skb_set_queue_mapping(skb, q); -+ skb_set_queue_mapping(skb, ac); - - if (!--mesh_hdr->ttl) { - if (!is_multicast_ether_addr(hdr->addr1)) diff --git a/package/kernel/mac80211/patches/subsys/324-mac80211-MBSSID-beacon-handling-in-AP-mode.patch b/package/kernel/mac80211/patches/subsys/324-mac80211-MBSSID-beacon-handling-in-AP-mode.patch index c76f4ae468..fdbcce9450 100644 --- a/package/kernel/mac80211/patches/subsys/324-mac80211-MBSSID-beacon-handling-in-AP-mode.patch +++ b/package/kernel/mac80211/patches/subsys/324-mac80211-MBSSID-beacon-handling-in-AP-mode.patch @@ -106,7 +106,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> if (csa) { new->cntdwn_current_counter = csa->count; -@@ -1329,8 +1366,11 @@ static int ieee80211_stop_ap(struct wiph +@@ -1332,8 +1369,11 @@ static int ieee80211_stop_ap(struct wiph mutex_unlock(&local->mtx); @@ -246,7 +246,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> struct rcu_head rcu_head; }; -@@ -1063,6 +1064,20 @@ ieee80211_vif_get_shift(struct ieee80211 +@@ -1083,6 +1084,20 @@ ieee80211_vif_get_shift(struct ieee80211 return shift; } diff --git a/package/kernel/mac80211/patches/subsys/327-mac80211-allow-non-standard-VHT-MCS-10-11.patch b/package/kernel/mac80211/patches/subsys/327-mac80211-allow-non-standard-VHT-MCS-10-11.patch deleted file mode 100644 index 7c68e75574..0000000000 --- a/package/kernel/mac80211/patches/subsys/327-mac80211-allow-non-standard-VHT-MCS-10-11.patch +++ /dev/null @@ -1,36 +0,0 @@ -From: Ping-Ke Shih <pkshih@realtek.com> -Date: Mon, 3 Jan 2022 09:36:21 +0800 -Subject: [PATCH] mac80211: allow non-standard VHT MCS-10/11 - -Some AP can possibly try non-standard VHT rate and mac80211 warns and drops -packets, and leads low TCP throughput. - - Rate marked as a VHT rate but data is invalid: MCS: 10, NSS: 2 - WARNING: CPU: 1 PID: 7817 at net/mac80211/rx.c:4856 ieee80211_rx_list+0x223/0x2f0 [mac8021 - -Since commit c27aa56a72b8 ("cfg80211: add VHT rate entries for MCS-10 and MCS-11") -has added, mac80211 adds this support as well. - -After this patch, throughput is good and iw can get the bitrate: - rx bitrate: 975.1 MBit/s VHT-MCS 10 80MHz short GI VHT-NSS 2 -or - rx bitrate: 1083.3 MBit/s VHT-MCS 11 80MHz short GI VHT-NSS 2 - -Buglink: https://bugzilla.suse.com/show_bug.cgi?id=1192891 -Reported-by: Goldwyn Rodrigues <rgoldwyn@suse.com> -Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> -Link: https://lore.kernel.org/r/20220103013623.17052-1-pkshih@realtek.com -Signed-off-by: Johannes Berg <johannes.berg@intel.com> ---- - ---- a/net/mac80211/rx.c -+++ b/net/mac80211/rx.c -@@ -4945,7 +4945,7 @@ void ieee80211_rx_list(struct ieee80211_ - goto drop; - break; - case RX_ENC_VHT: -- if (WARN_ONCE(status->rate_idx > 9 || -+ if (WARN_ONCE(status->rate_idx > 11 || - !status->nss || - status->nss > 8, - "Rate marked as a VHT rate but data is invalid: MCS: %d, NSS: %d\n", diff --git a/package/kernel/mac80211/patches/subsys/400-allow-ibss-mixed.patch b/package/kernel/mac80211/patches/subsys/400-allow-ibss-mixed.patch index d12c8ada31..f2ed528d23 100644 --- a/package/kernel/mac80211/patches/subsys/400-allow-ibss-mixed.patch +++ b/package/kernel/mac80211/patches/subsys/400-allow-ibss-mixed.patch @@ -5,7 +5,7 @@ and we should ignore this. --- a/net/wireless/core.c +++ b/net/wireless/core.c -@@ -634,21 +634,6 @@ static int wiphy_verify_combinations(str +@@ -625,21 +625,6 @@ static int wiphy_verify_combinations(str c->limits[j].max > 1)) return -EINVAL; diff --git a/package/kernel/mac80211/patches/subsys/500-mac80211_configure_antenna_gain.patch b/package/kernel/mac80211/patches/subsys/500-mac80211_configure_antenna_gain.patch index c4acfd1437..612b9d66ee 100644 --- a/package/kernel/mac80211/patches/subsys/500-mac80211_configure_antenna_gain.patch +++ b/package/kernel/mac80211/patches/subsys/500-mac80211_configure_antenna_gain.patch @@ -87,7 +87,7 @@ CFG80211_TESTMODE_DUMP(ieee80211_testmode_dump) --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h -@@ -1444,6 +1444,7 @@ struct ieee80211_local { +@@ -1464,6 +1464,7 @@ struct ieee80211_local { int dynamic_ps_forced_timeout; int user_power_level; /* in dBm, for all interfaces */ @@ -129,7 +129,7 @@ local->hw.max_mtu = IEEE80211_MAX_DATA_LEN; --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c -@@ -794,6 +794,7 @@ static const struct nla_policy nl80211_p +@@ -797,6 +797,7 @@ static const struct nla_policy nl80211_p NLA_POLICY_NESTED(nl80211_mbssid_config_policy), [NL80211_ATTR_MBSSID_ELEMS] = { .type = NLA_NESTED }, [NL80211_ATTR_RADAR_BACKGROUND] = { .type = NLA_FLAG }, @@ -137,7 +137,7 @@ }; /* policy for the key attributes */ -@@ -3374,6 +3375,22 @@ static int nl80211_set_wiphy(struct sk_b +@@ -3377,6 +3378,22 @@ static int nl80211_set_wiphy(struct sk_b if (result) goto out; } |