From 50243ef2d81cf6e362415c62d413ebe38bfb8184 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sat, 16 Nov 2024 00:08:28 +0100 Subject: [PATCH] mac80211: Update to version 6.1.145-1 This updates mac80211 to version 6.1.145-1. This code is based on Linux 6.1.145 and contains all fixes included in the upstream wireless subsystem from that kernel version. This includes many bugfixes and also some security fixes. The removed patches were applied upstream. Link: https://github.com/openwrt/openwrt/pull/16948 Signed-off-by: Hauke Mehrtens --- package/kernel/mac80211/Makefile | 6 +- .../patches/ath/404-regd_no_assoc_hints.patch | 4 +- ...add_platform_eeprom_support_to_ath5k.patch | 6 +- ...rolling-support-for-various-chipsets.patch | 14 +- ...-tx-queues-immediately-upon-firmware.patch | 8 +- ...support-to-configure-channel-dwell-t.patch | 2 +- ...monitor-vdev-creation-with-firmware-.patch | 2 +- ...update-ce-configurations-for-IPQ5018.patch | 2 +- ...-remap-ce-register-space-for-IPQ5018.patch | 2 +- ...support-to-configure-FTM-responder-r.patch | 2 +- ...tx-ack-signal-support-for-management.patch | 2 +- ...BUFFER_DONE-read-on-monitor-ring-rx-.patch | 2 +- ...igure-the-FTM-responder-role-using-f.patch | 2 +- ...rssi-station-dump-not-updated-in-QCN.patch | 4 +- ...t-a-warning-when-crypto_alloc_shash-.patch | 2 +- ...-undefined-behavior-with-__fls-in-dp.patch | 2 +- ...-incorrect-update-of-radiotap-fields.patch | 4 +- ...k-driver-settings-for-MBSSID-and-EMA.patch | 4 +- ...ve-unused-function-ath11k_tm_event_w.patch | 128 ------------- ...ifi-ath11k-factory-test-mode-support.patch | 18 +- ...w-ath11k-to-boot-without-caldata-in-.patch | 2 +- ...-Split-coldboot-calibration-hw_param.patch | 8 +- ...coldboot-calibration-support-for-QCN.patch | 2 +- ...k-Remove-cal_done-check-during-probe.patch | 2 +- ...chip-id-board-name-while-searching-b.patch | 16 +- ...upport-setting-FW-memory-mode-via-DT.patch | 4 +- .../patches/ath5k/432-ath5k_add_pciids.patch | 11 -- .../ath9k/410-ath9k_allow_adhoc_and_ap.patch | 2 +- ...abled-MFP-capability-unconditionally.patch | 4 +- .../ath9k/500-ath9k_eeprom_debugfs.patch | 2 +- .../patches/ath9k/501-ath9k_ahb_init.patch | 2 +- .../ath9k/512-ath9k_channelbw_debugfs.patch | 2 +- .../patches/ath9k/530-ath9k_extra_leds.patch | 4 +- .../ath9k/542-ath9k_debugfs_diag.patch | 2 +- .../ath9k/543-ath9k_entropy_from_adc.patch | 6 +- .../ath9k/553-ath9k_of_gpio_mask.patch | 4 +- ...-in-driver-tables-with-country-codes.patch | 4 +- ...d-alternative-firmware-names-from-DT.patch | 2 +- .../build/070-remove-broken-wext-select.patch | 2 +- ...t_allns-build-error-on-kernel-6.6.59.patch | 169 ------------------ ...-genlmsg_multicast_allns-upstream-ba.patch | 4 +- .../mac80211/patches/subsys/210-ap_scan.patch | 2 +- ...d-internal-handler-for-wake_tx_queue.patch | 14 +- ...dd-wake_tx_queue-callback-to-drivers.patch | 8 +- ...c80211-Drop-support-for-TX-push-path.patch | 28 +-- ...ltek-remove-duplicated-wake_tx_queue.patch | 2 +- ...port-for-restricting-netdev-features.patch | 6 +- ...wifi-mac80211-mesh-fast-xmit-support.patch | 16 +- ...e-mesh-header-cache-to-speed-up-mesh.patch | 2 +- ...troduce-ieee80211_refresh_tx_agg_ses.patch | 2 +- ...fi-mac80211-add-mesh-fast-rx-support.patch | 8 +- ...d-support-for-letting-drivers-regist.patch | 10 +- ...i-mvm-support-flush-on-AP-interfaces.patch | 4 +- ...3-wifi-mac80211-add-flush_sta-method.patch | 4 +- ...ifi-mvm-support-new-flush_sta-method.patch | 4 +- ...0211-generate-EMA-beacons-in-AP-mode.patch | 12 +- ...race-period-for-DFS-available-after-.patch | 2 +- ...Transition-Disable-policy-during-por.patch | 14 +- ...ort-minimal-EHT-rate-reporting-on-RX.patch | 12 +- ...1-mlme-handle-EHT-channel-puncturing.patch | 16 +- ...ve-puncturing-bitmap-validation-from.patch | 4 +- ...idate-and-configure-puncturing-bitma.patch | 4 +- ...clude-puncturing-bitmap-in-channel-s.patch | 16 +- ...mac80211-configure-puncturing-bitmap.patch | 8 +- ...-mac80211-warn-only-once-on-AP-probe.patch | 2 +- ...6.5-wifi-mac80211-HW-restart-for-MLO.patch | 8 +- ...1-implement-proper-AP-MLD-HW-restart.patch | 4 +- ...d-getter-functions-for-vif-MLD-state.patch | 52 +++--- .../500-mac80211_configure_antenna_gain.patch | 12 +- 69 files changed, 219 insertions(+), 527 deletions(-) delete mode 100644 package/kernel/mac80211/patches/ath11k/0081-wifi-ath11k-remove-unused-function-ath11k_tm_event_w.patch delete mode 100644 package/kernel/mac80211/patches/ath5k/432-ath5k_add_pciids.patch delete mode 100644 package/kernel/mac80211/patches/build/236-fix-genlmsg_multicast_allns-build-error-on-kernel-6.6.59.patch diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile index d5877787d54..ec0f5805cf5 100644 --- a/package/kernel/mac80211/Makefile +++ b/package/kernel/mac80211/Makefile @@ -10,13 +10,13 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=mac80211 -PKG_VERSION:=6.1.110-1 +PKG_VERSION:=6.1.145-1 PKG_RELEASE:=1 PKG_LICENSE:=GPL-2.0-only PKG_LICENSE_FILES:=COPYING -PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v6.1.110/ -PKG_HASH:=2415bc529ca25be0aa597f9638d8b6fc4138080bbaea96881a38101896df6703 +PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v6.1.145/ +PKG_HASH:=05f2c39f1be0aab49014a6e27a9492ce7ed0491f552db8a07f3ba0de33b9317d PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION) 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 bc750d5e11a..ebc3f255523 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 -@@ -3373,6 +3373,8 @@ void regulatory_hint_country_ie(struct w +@@ -3374,6 +3374,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; -@@ -3624,6 +3626,7 @@ static bool is_wiphy_all_set_reg_flag(en +@@ -3625,6 +3627,7 @@ static bool is_wiphy_all_set_reg_flag(en void regulatory_hint_disconnect(void) { diff --git a/package/kernel/mac80211/patches/ath/431-add_platform_eeprom_support_to_ath5k.patch b/package/kernel/mac80211/patches/ath/431-add_platform_eeprom_support_to_ath5k.patch index 136be198945..ddfd7a9895e 100644 --- a/package/kernel/mac80211/patches/ath/431-add_platform_eeprom_support_to_ath5k.patch +++ b/package/kernel/mac80211/patches/ath/431-add_platform_eeprom_support_to_ath5k.patch @@ -8,7 +8,7 @@ #include "../ath.h" #include "ath5k.h" #include "debug.h" -@@ -71,7 +72,7 @@ static void ath5k_pci_read_cachesize(str +@@ -73,7 +74,7 @@ static void ath5k_pci_read_cachesize(str } /* @@ -17,7 +17,7 @@ */ static bool ath5k_pci_eeprom_read(struct ath_common *common, u32 offset, u16 *data) -@@ -79,6 +80,19 @@ ath5k_pci_eeprom_read(struct ath_common +@@ -81,6 +82,19 @@ ath5k_pci_eeprom_read(struct ath_common struct ath5k_hw *ah = (struct ath5k_hw *) common->ah; u32 status, timeout; @@ -37,7 +37,7 @@ /* * Initialize EEPROM access */ -@@ -122,6 +136,16 @@ static int ath5k_pci_eeprom_read_mac(str +@@ -124,6 +138,16 @@ static int ath5k_pci_eeprom_read_mac(str u16 data; int octet; 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 e6e048577b8..44a78951e09 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 @@ -456,7 +456,7 @@ v13: { --- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c +++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c -@@ -4598,6 +4598,8 @@ static const struct wmi_ops wmi_tlv_ops +@@ -4603,6 +4603,8 @@ static const struct wmi_ops wmi_tlv_ops .gen_echo = ath10k_wmi_tlv_op_gen_echo, .gen_vdev_spectral_conf = ath10k_wmi_tlv_op_gen_vdev_spectral_conf, .gen_vdev_spectral_enable = ath10k_wmi_tlv_op_gen_vdev_spectral_enable, @@ -467,7 +467,7 @@ v13: static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = { --- a/drivers/net/wireless/ath/ath10k/wmi.c +++ b/drivers/net/wireless/ath/ath10k/wmi.c -@@ -7492,6 +7492,49 @@ ath10k_wmi_op_gen_peer_set_param(struct +@@ -7493,6 +7493,49 @@ ath10k_wmi_op_gen_peer_set_param(struct return skb; } @@ -517,7 +517,7 @@ v13: static struct sk_buff * ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id, enum wmi_sta_ps_mode psmode) -@@ -9180,6 +9223,9 @@ static const struct wmi_ops wmi_ops = { +@@ -9181,6 +9224,9 @@ static const struct wmi_ops wmi_ops = { .fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill, .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, .gen_echo = ath10k_wmi_op_gen_echo, @@ -527,7 +527,7 @@ v13: /* .gen_bcn_tmpl not implemented */ /* .gen_prb_tmpl not implemented */ /* .gen_p2p_go_bcn_ie not implemented */ -@@ -9250,6 +9296,8 @@ static const struct wmi_ops wmi_10_1_ops +@@ -9251,6 +9297,8 @@ static const struct wmi_ops wmi_10_1_ops .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, .gen_echo = ath10k_wmi_op_gen_echo, @@ -536,7 +536,7 @@ v13: /* .gen_bcn_tmpl not implemented */ /* .gen_prb_tmpl not implemented */ /* .gen_p2p_go_bcn_ie not implemented */ -@@ -9322,6 +9370,8 @@ static const struct wmi_ops wmi_10_2_ops +@@ -9323,6 +9371,8 @@ static const struct wmi_ops wmi_10_2_ops .gen_delba_send = ath10k_wmi_op_gen_delba_send, .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, @@ -545,7 +545,7 @@ v13: /* .gen_pdev_enable_adaptive_cca not implemented */ }; -@@ -9393,6 +9443,8 @@ static const struct wmi_ops wmi_10_2_4_o +@@ -9394,6 +9444,8 @@ static const struct wmi_ops wmi_10_2_4_o ath10k_wmi_op_gen_pdev_enable_adaptive_cca, .get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype, .gen_bb_timing = ath10k_wmi_10_2_4_op_gen_bb_timing, @@ -554,7 +554,7 @@ v13: /* .gen_bcn_tmpl not implemented */ /* .gen_prb_tmpl not implemented */ /* .gen_p2p_go_bcn_ie not implemented */ -@@ -9474,6 +9526,8 @@ static const struct wmi_ops wmi_10_4_ops +@@ -9475,6 +9527,8 @@ static const struct wmi_ops wmi_10_4_ops .gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info, .gen_echo = ath10k_wmi_op_gen_echo, .gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config, diff --git a/package/kernel/mac80211/patches/ath11k/0001-wifi-ath11k-stop-tx-queues-immediately-upon-firmware.patch b/package/kernel/mac80211/patches/ath11k/0001-wifi-ath11k-stop-tx-queues-immediately-upon-firmware.patch index fd393926047..4c993312333 100644 --- a/package/kernel/mac80211/patches/ath11k/0001-wifi-ath11k-stop-tx-queues-immediately-upon-firmware.patch +++ b/package/kernel/mac80211/patches/ath11k/0001-wifi-ath11k-stop-tx-queues-immediately-upon-firmware.patch @@ -35,7 +35,7 @@ Link: https://lore.kernel.org/r/20220923170235.18873-1-quic_adisi@quicinc.com --- a/drivers/net/wireless/ath/ath11k/core.c +++ b/drivers/net/wireless/ath/ath11k/core.c -@@ -1668,7 +1668,7 @@ static void ath11k_update_11d(struct wor +@@ -1675,7 +1675,7 @@ static void ath11k_update_11d(struct wor } } @@ -44,7 +44,7 @@ Link: https://lore.kernel.org/r/20220923170235.18873-1-quic_adisi@quicinc.com { struct ath11k *ar; struct ath11k_pdev *pdev; -@@ -1757,9 +1757,6 @@ static void ath11k_core_restart(struct w +@@ -1764,9 +1764,6 @@ static void ath11k_core_restart(struct w struct ath11k_base *ab = container_of(work, struct ath11k_base, restart_work); int ret; @@ -56,7 +56,7 @@ Link: https://lore.kernel.org/r/20220923170235.18873-1-quic_adisi@quicinc.com ath11k_err(ab, "failed to reconfigure driver on crash recovery\n"); --- a/drivers/net/wireless/ath/ath11k/core.h +++ b/drivers/net/wireless/ath/ath11k/core.h -@@ -1158,6 +1158,7 @@ int ath11k_core_check_smbios(struct ath1 +@@ -1160,6 +1160,7 @@ int ath11k_core_check_smbios(struct ath1 void ath11k_core_halt(struct ath11k *ar); int ath11k_core_resume(struct ath11k_base *ab); int ath11k_core_suspend(struct ath11k_base *ab); @@ -66,7 +66,7 @@ Link: https://lore.kernel.org/r/20220923170235.18873-1-quic_adisi@quicinc.com const char *filename); --- a/drivers/net/wireless/ath/ath11k/qmi.c +++ b/drivers/net/wireless/ath/ath11k/qmi.c -@@ -3169,6 +3169,9 @@ static void ath11k_qmi_driver_event_work +@@ -3178,6 +3178,9 @@ static void ath11k_qmi_driver_event_work case ATH11K_QMI_EVENT_SERVER_EXIT: set_bit(ATH11K_FLAG_CRASH_FLUSH, &ab->dev_flags); set_bit(ATH11K_FLAG_RECOVERY, &ab->dev_flags); diff --git a/package/kernel/mac80211/patches/ath11k/0008-wifi-ath11k-add-support-to-configure-channel-dwell-t.patch b/package/kernel/mac80211/patches/ath11k/0008-wifi-ath11k-add-support-to-configure-channel-dwell-t.patch index b769db636f4..89be47600c9 100644 --- a/package/kernel/mac80211/patches/ath11k/0008-wifi-ath11k-add-support-to-configure-channel-dwell-t.patch +++ b/package/kernel/mac80211/patches/ath11k/0008-wifi-ath11k-add-support-to-configure-channel-dwell-t.patch @@ -90,7 +90,7 @@ Link: https://lore.kernel.org/r/20221007051130.6067-1-quic_mpubbise@quicinc.com exit: kfree(arg.chan_list); -@@ -9072,6 +9094,9 @@ static int __ath11k_mac_register(struct +@@ -9074,6 +9096,9 @@ static int __ath11k_mac_register(struct NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP); } diff --git a/package/kernel/mac80211/patches/ath11k/0011-wifi-ath11k-fix-monitor-vdev-creation-with-firmware-.patch b/package/kernel/mac80211/patches/ath11k/0011-wifi-ath11k-fix-monitor-vdev-creation-with-firmware-.patch index dc51960be18..c65707c2abd 100644 --- a/package/kernel/mac80211/patches/ath11k/0011-wifi-ath11k-fix-monitor-vdev-creation-with-firmware-.patch +++ b/package/kernel/mac80211/patches/ath11k/0011-wifi-ath11k-fix-monitor-vdev-creation-with-firmware-.patch @@ -27,7 +27,7 @@ Link: https://lore.kernel.org/r/20221014155054.11471-1-quic_nmaran@quicinc.com --- a/drivers/net/wireless/ath/ath11k/core.c +++ b/drivers/net/wireless/ath/ath11k/core.c -@@ -1704,6 +1704,10 @@ void ath11k_core_pre_reconfigure_recover +@@ -1711,6 +1711,10 @@ void ath11k_core_pre_reconfigure_recover ath11k_mac_tx_mgmt_pending_free, ar); idr_destroy(&ar->txmgmt_idr); wake_up(&ar->txmgmt_empty_waitq); diff --git a/package/kernel/mac80211/patches/ath11k/0020-wifi-ath11k-update-ce-configurations-for-IPQ5018.patch b/package/kernel/mac80211/patches/ath11k/0020-wifi-ath11k-update-ce-configurations-for-IPQ5018.patch index 95643a95fec..12afc8a284c 100644 --- a/package/kernel/mac80211/patches/ath11k/0020-wifi-ath11k-update-ce-configurations-for-IPQ5018.patch +++ b/package/kernel/mac80211/patches/ath11k/0020-wifi-ath11k-update-ce-configurations-for-IPQ5018.patch @@ -34,7 +34,7 @@ Link: https://lore.kernel.org/r/20221122132152.17771-4-quic_kathirve@quicinc.com .rx_mac_buf_ring = false, --- a/drivers/net/wireless/ath/ath11k/core.h +++ b/drivers/net/wireless/ath/ath11k/core.h -@@ -1145,6 +1145,9 @@ extern const struct service_to_pipe ath1 +@@ -1147,6 +1147,9 @@ extern const struct service_to_pipe ath1 extern const struct ce_pipe_config ath11k_target_ce_config_wlan_qca6390[]; extern const struct service_to_pipe ath11k_target_service_to_ce_map_wlan_qca6390[]; diff --git a/package/kernel/mac80211/patches/ath11k/0021-wifi-ath11k-remap-ce-register-space-for-IPQ5018.patch b/package/kernel/mac80211/patches/ath11k/0021-wifi-ath11k-remap-ce-register-space-for-IPQ5018.patch index 1c74c4f01f8..1df17d62d9f 100644 --- a/package/kernel/mac80211/patches/ath11k/0021-wifi-ath11k-remap-ce-register-space-for-IPQ5018.patch +++ b/package/kernel/mac80211/patches/ath11k/0021-wifi-ath11k-remap-ce-register-space-for-IPQ5018.patch @@ -212,7 +212,7 @@ Link: https://lore.kernel.org/r/20221122132152.17771-5-quic_kathirve@quicinc.com .rx_mac_buf_ring = false, --- a/drivers/net/wireless/ath/ath11k/core.h +++ b/drivers/net/wireless/ath/ath11k/core.h -@@ -851,6 +851,7 @@ struct ath11k_base { +@@ -853,6 +853,7 @@ struct ath11k_base { struct ath11k_dp dp; void __iomem *mem; diff --git a/package/kernel/mac80211/patches/ath11k/0029-wifi-ath11k-Add-support-to-configure-FTM-responder-r.patch b/package/kernel/mac80211/patches/ath11k/0029-wifi-ath11k-Add-support-to-configure-FTM-responder-r.patch index 85494744acb..946e2875aaf 100644 --- a/package/kernel/mac80211/patches/ath11k/0029-wifi-ath11k-Add-support-to-configure-FTM-responder-r.patch +++ b/package/kernel/mac80211/patches/ath11k/0029-wifi-ath11k-Add-support-to-configure-FTM-responder-r.patch @@ -146,7 +146,7 @@ Link: https://lore.kernel.org/r/20221220044435.10506-1-quic_rajkbhag@quicinc.com if (changed & BSS_CHANGED_FILS_DISCOVERY || changed & BSS_CHANGED_UNSOL_BCAST_PROBE_RESP) ath11k_mac_fils_discovery(arvif, info); -@@ -9125,6 +9139,10 @@ static int __ath11k_mac_register(struct +@@ -9127,6 +9141,10 @@ static int __ath11k_mac_register(struct wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_SET_SCAN_DWELL); diff --git a/package/kernel/mac80211/patches/ath11k/0042-wifi-ath11k-Add-tx-ack-signal-support-for-management.patch b/package/kernel/mac80211/patches/ath11k/0042-wifi-ath11k-Add-tx-ack-signal-support-for-management.patch index 68f14e2ac7a..b582c7ebf3a 100644 --- a/package/kernel/mac80211/patches/ath11k/0042-wifi-ath11k-Add-tx-ack-signal-support-for-management.patch +++ b/package/kernel/mac80211/patches/ath11k/0042-wifi-ath11k-Add-tx-ack-signal-support-for-management.patch @@ -36,7 +36,7 @@ Link: https://lore.kernel.org/r/20221219053844.4084486-1-quic_mkenna@quicinc.com static int ath11k_hw_mac_id_to_pdev_id_ipq8074(struct ath11k_hw_params *hw, --- a/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c -@@ -9186,6 +9186,11 @@ static int __ath11k_mac_register(struct +@@ -9188,6 +9188,11 @@ static int __ath11k_mac_register(struct goto err_free_if_combs; } diff --git a/package/kernel/mac80211/patches/ath11k/0048-wifi-ath11k-fix-BUFFER_DONE-read-on-monitor-ring-rx-.patch b/package/kernel/mac80211/patches/ath11k/0048-wifi-ath11k-fix-BUFFER_DONE-read-on-monitor-ring-rx-.patch index 0c7fc42d57c..fb842499c88 100644 --- a/package/kernel/mac80211/patches/ath11k/0048-wifi-ath11k-fix-BUFFER_DONE-read-on-monitor-ring-rx-.patch +++ b/package/kernel/mac80211/patches/ath11k/0048-wifi-ath11k-fix-BUFFER_DONE-read-on-monitor-ring-rx-.patch @@ -65,7 +65,7 @@ Link: https://lore.kernel.org/r/20230309164434.32660-1-quic_hprem@quicinc.com return 0; } -@@ -3037,39 +3014,51 @@ static int ath11k_dp_rx_reap_mon_status_ +@@ -3044,39 +3021,51 @@ static int ath11k_dp_rx_reap_mon_status_ spin_lock_bh(&rx_ring->idr_lock); skb = idr_find(&rx_ring->bufs_idr, buf_id); diff --git a/package/kernel/mac80211/patches/ath11k/0050-wifi-ath11k-Configure-the-FTM-responder-role-using-f.patch b/package/kernel/mac80211/patches/ath11k/0050-wifi-ath11k-Configure-the-FTM-responder-role-using-f.patch index 3bd00ff7318..9dc3328c8de 100644 --- a/package/kernel/mac80211/patches/ath11k/0050-wifi-ath11k-Configure-the-FTM-responder-role-using-f.patch +++ b/package/kernel/mac80211/patches/ath11k/0050-wifi-ath11k-Configure-the-FTM-responder-role-using-f.patch @@ -106,7 +106,7 @@ Link: https://lore.kernel.org/r/20230317072034.8217-1-quic_gjothira@quicinc.com (vif->type == NL80211_IFTYPE_AP || vif->type == NL80211_IFTYPE_MESH_POINT)) { arvif->ftm_responder = info->ftm_responder; -@@ -9246,7 +9246,7 @@ static int __ath11k_mac_register(struct +@@ -9248,7 +9248,7 @@ static int __ath11k_mac_register(struct wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_SET_SCAN_DWELL); diff --git a/package/kernel/mac80211/patches/ath11k/0051-wifi-ath11k-fix-rssi-station-dump-not-updated-in-QCN.patch b/package/kernel/mac80211/patches/ath11k/0051-wifi-ath11k-fix-rssi-station-dump-not-updated-in-QCN.patch index 835dece1fe7..2970994c637 100644 --- a/package/kernel/mac80211/patches/ath11k/0051-wifi-ath11k-fix-rssi-station-dump-not-updated-in-QCN.patch +++ b/package/kernel/mac80211/patches/ath11k/0051-wifi-ath11k-fix-rssi-station-dump-not-updated-in-QCN.patch @@ -24,7 +24,7 @@ Link: https://lore.kernel.org/r/20230320110312.20639-1-quic_ppranees@quicinc.com --- a/drivers/net/wireless/ath/ath11k/hal_rx.c +++ b/drivers/net/wireless/ath/ath11k/hal_rx.c -@@ -865,6 +865,12 @@ ath11k_hal_rx_populate_mu_user_info(void +@@ -866,6 +866,12 @@ ath11k_hal_rx_populate_mu_user_info(void ath11k_hal_rx_populate_byte_count(rx_tlv, ppdu_info, rx_user_status); } @@ -37,7 +37,7 @@ Link: https://lore.kernel.org/r/20230320110312.20639-1-quic_ppranees@quicinc.com static enum hal_rx_mon_status ath11k_hal_rx_parse_mon_status_tlv(struct ath11k_base *ab, struct hal_rx_mon_ppdu_info *ppdu_info, -@@ -1459,9 +1465,11 @@ ath11k_hal_rx_parse_mon_status_tlv(struc +@@ -1460,9 +1466,11 @@ ath11k_hal_rx_parse_mon_status_tlv(struc break; } case HAL_RX_MPDU_START: { diff --git a/package/kernel/mac80211/patches/ath11k/0059-wifi-ath11k-print-a-warning-when-crypto_alloc_shash-.patch b/package/kernel/mac80211/patches/ath11k/0059-wifi-ath11k-print-a-warning-when-crypto_alloc_shash-.patch index 6a4290c84af..460f1fc939c 100644 --- a/package/kernel/mac80211/patches/ath11k/0059-wifi-ath11k-print-a-warning-when-crypto_alloc_shash-.patch +++ b/package/kernel/mac80211/patches/ath11k/0059-wifi-ath11k-print-a-warning-when-crypto_alloc_shash-.patch @@ -19,7 +19,7 @@ Link: https://lore.kernel.org/r/20230405090425.1351-1-kvalo@kernel.org --- a/drivers/net/wireless/ath/ath11k/dp_rx.c +++ b/drivers/net/wireless/ath/ath11k/dp_rx.c -@@ -3114,8 +3114,11 @@ int ath11k_peer_rx_frag_setup(struct ath +@@ -3121,8 +3121,11 @@ int ath11k_peer_rx_frag_setup(struct ath int i; tfm = crypto_alloc_shash("michael_mic", 0, 0); diff --git a/package/kernel/mac80211/patches/ath11k/0061-wifi-ath11k-fix-undefined-behavior-with-__fls-in-dp.patch b/package/kernel/mac80211/patches/ath11k/0061-wifi-ath11k-fix-undefined-behavior-with-__fls-in-dp.patch index 893081de316..f2bdd73419b 100644 --- a/package/kernel/mac80211/patches/ath11k/0061-wifi-ath11k-fix-undefined-behavior-with-__fls-in-dp.patch +++ b/package/kernel/mac80211/patches/ath11k/0061-wifi-ath11k-fix-undefined-behavior-with-__fls-in-dp.patch @@ -18,7 +18,7 @@ Link: https://lore.kernel.org/r/20230403184155.8670-3-quic_nmaran@quicinc.com --- a/drivers/net/wireless/ath/ath11k/dp_rx.c +++ b/drivers/net/wireless/ath/ath11k/dp_rx.c -@@ -3606,7 +3606,7 @@ static int ath11k_dp_rx_frag_h_mpdu(stru +@@ -3613,7 +3613,7 @@ static int ath11k_dp_rx_frag_h_mpdu(stru goto out_unlock; } diff --git a/package/kernel/mac80211/patches/ath11k/0066-wifi-ath11k-Fix-incorrect-update-of-radiotap-fields.patch b/package/kernel/mac80211/patches/ath11k/0066-wifi-ath11k-Fix-incorrect-update-of-radiotap-fields.patch index 4f94580100f..38e212a8733 100644 --- a/package/kernel/mac80211/patches/ath11k/0066-wifi-ath11k-Fix-incorrect-update-of-radiotap-fields.patch +++ b/package/kernel/mac80211/patches/ath11k/0066-wifi-ath11k-Fix-incorrect-update-of-radiotap-fields.patch @@ -18,7 +18,7 @@ Link: https://lore.kernel.org/r/20230403195738.25367-3-quic_pradeepc@quicinc.com --- a/drivers/net/wireless/ath/ath11k/hal_rx.c +++ b/drivers/net/wireless/ath/ath11k/hal_rx.c -@@ -1029,7 +1029,7 @@ ath11k_hal_rx_parse_mon_status_tlv(struc +@@ -1030,7 +1030,7 @@ ath11k_hal_rx_parse_mon_status_tlv(struc info1 = __le32_to_cpu(vht_sig->info1); ppdu_info->ldpc = FIELD_GET(HAL_RX_VHT_SIG_A_INFO_INFO1_SU_MU_CODING, @@ -27,7 +27,7 @@ Link: https://lore.kernel.org/r/20230403195738.25367-3-quic_pradeepc@quicinc.com ppdu_info->mcs = FIELD_GET(HAL_RX_VHT_SIG_A_INFO_INFO1_MCS, info1); gi_setting = FIELD_GET(HAL_RX_VHT_SIG_A_INFO_INFO1_GI_SETTING, -@@ -1452,7 +1452,7 @@ ath11k_hal_rx_parse_mon_status_tlv(struc +@@ -1453,7 +1453,7 @@ ath11k_hal_rx_parse_mon_status_tlv(struc * PHYRX_OTHER_RECEIVE_INFO TLV. */ ppdu_info->rssi_comb = diff --git a/package/kernel/mac80211/patches/ath11k/0071-wifi-ath11k-driver-settings-for-MBSSID-and-EMA.patch b/package/kernel/mac80211/patches/ath11k/0071-wifi-ath11k-driver-settings-for-MBSSID-and-EMA.patch index 3c442770bb2..6281219307d 100644 --- a/package/kernel/mac80211/patches/ath11k/0071-wifi-ath11k-driver-settings-for-MBSSID-and-EMA.patch +++ b/package/kernel/mac80211/patches/ath11k/0071-wifi-ath11k-driver-settings-for-MBSSID-and-EMA.patch @@ -56,7 +56,7 @@ Link: https://lore.kernel.org/r/20230405221648.17950-2-quic_alokad@quicinc.com #define ATH11K_QUEUE_LEN 4096 --- a/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c -@@ -9013,19 +9013,23 @@ static int ath11k_mac_setup_iface_combin +@@ -9015,19 +9015,23 @@ static int ath11k_mac_setup_iface_combin static const u8 ath11k_if_types_ext_capa[] = { [0] = WLAN_EXT_CAPA1_EXT_CHANNEL_SWITCHING, @@ -80,7 +80,7 @@ Link: https://lore.kernel.org/r/20230405221648.17950-2-quic_alokad@quicinc.com }; static const struct wiphy_iftype_ext_capab ath11k_iftypes_ext_capa[] = { -@@ -9263,6 +9267,9 @@ static int __ath11k_mac_register(struct +@@ -9265,6 +9269,9 @@ static int __ath11k_mac_register(struct wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER); diff --git a/package/kernel/mac80211/patches/ath11k/0081-wifi-ath11k-remove-unused-function-ath11k_tm_event_w.patch b/package/kernel/mac80211/patches/ath11k/0081-wifi-ath11k-remove-unused-function-ath11k_tm_event_w.patch deleted file mode 100644 index b5dc83f007e..00000000000 --- a/package/kernel/mac80211/patches/ath11k/0081-wifi-ath11k-remove-unused-function-ath11k_tm_event_w.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 86f85575a3f6a20cef1c8bb98e78585fe3a53ccc Mon Sep 17 00:00:00 2001 -From: Govindaraj Saminathan -Date: Fri, 26 May 2023 12:41:06 +0300 -Subject: [PATCH 82/84] wifi: ath11k: remove unused function - ath11k_tm_event_wmi() - -The function ath11k_tm_event_wmi() is only defined and it is not used -anywhere. Hence remove the unused. - -Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1 - -Signed-off-by: Govindaraj Saminathan -Signed-off-by: Raj Kumar Bhagat -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20230517135934.16408-2-quic_rajkbhag@quicinc.com ---- - drivers/net/wireless/ath/ath11k/testmode.c | 64 +--------------------- - drivers/net/wireless/ath/ath11k/testmode.h | 8 +-- - 2 files changed, 2 insertions(+), 70 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/testmode.c -+++ b/drivers/net/wireless/ath/ath11k/testmode.c -@@ -1,6 +1,7 @@ - // SPDX-License-Identifier: BSD-3-Clause-Clear - /* - * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. -+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. - */ - - #include "testmode.h" -@@ -20,69 +21,6 @@ static const struct nla_policy ath11k_tm - [ATH11K_TM_ATTR_VERSION_MINOR] = { .type = NLA_U32 }, - }; - --/* Returns true if callee consumes the skb and the skb should be discarded. -- * Returns false if skb is not used. Does not sleep. -- */ --bool ath11k_tm_event_wmi(struct ath11k *ar, u32 cmd_id, struct sk_buff *skb) --{ -- struct sk_buff *nl_skb; -- bool consumed; -- int ret; -- -- ath11k_dbg(ar->ab, ATH11K_DBG_TESTMODE, -- "testmode event wmi cmd_id %d skb %pK skb->len %d\n", -- cmd_id, skb, skb->len); -- -- ath11k_dbg_dump(ar->ab, ATH11K_DBG_TESTMODE, NULL, "", skb->data, skb->len); -- -- spin_lock_bh(&ar->data_lock); -- -- consumed = true; -- -- nl_skb = cfg80211_testmode_alloc_event_skb(ar->hw->wiphy, -- 2 * sizeof(u32) + skb->len, -- GFP_ATOMIC); -- if (!nl_skb) { -- ath11k_warn(ar->ab, -- "failed to allocate skb for testmode wmi event\n"); -- goto out; -- } -- -- ret = nla_put_u32(nl_skb, ATH11K_TM_ATTR_CMD, ATH11K_TM_CMD_WMI); -- if (ret) { -- ath11k_warn(ar->ab, -- "failed to put testmode wmi event cmd attribute: %d\n", -- ret); -- kfree_skb(nl_skb); -- goto out; -- } -- -- ret = nla_put_u32(nl_skb, ATH11K_TM_ATTR_WMI_CMDID, cmd_id); -- if (ret) { -- ath11k_warn(ar->ab, -- "failed to put testmode wmi even cmd_id: %d\n", -- ret); -- kfree_skb(nl_skb); -- goto out; -- } -- -- ret = nla_put(nl_skb, ATH11K_TM_ATTR_DATA, skb->len, skb->data); -- if (ret) { -- ath11k_warn(ar->ab, -- "failed to copy skb to testmode wmi event: %d\n", -- ret); -- kfree_skb(nl_skb); -- goto out; -- } -- -- cfg80211_testmode_event(nl_skb, GFP_ATOMIC); -- --out: -- spin_unlock_bh(&ar->data_lock); -- -- return consumed; --} -- - static int ath11k_tm_cmd_get_version(struct ath11k *ar, struct nlattr *tb[]) - { - struct sk_buff *skb; ---- a/drivers/net/wireless/ath/ath11k/testmode.h -+++ b/drivers/net/wireless/ath/ath11k/testmode.h -@@ -1,24 +1,18 @@ - /* SPDX-License-Identifier: BSD-3-Clause-Clear */ - /* - * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. -+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. - */ - - #include "core.h" - - #ifdef CPTCFG_NL80211_TESTMODE - --bool ath11k_tm_event_wmi(struct ath11k *ar, u32 cmd_id, struct sk_buff *skb); - int ath11k_tm_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif, - void *data, int len); - - #else - --static inline bool ath11k_tm_event_wmi(struct ath11k *ar, u32 cmd_id, -- struct sk_buff *skb) --{ -- return false; --} -- - static inline int ath11k_tm_cmd(struct ieee80211_hw *hw, - struct ieee80211_vif *vif, - void *data, int len) diff --git a/package/kernel/mac80211/patches/ath11k/0082-wifi-ath11k-factory-test-mode-support.patch b/package/kernel/mac80211/patches/ath11k/0082-wifi-ath11k-factory-test-mode-support.patch index fc7bb30d9e9..a1d9a549d0c 100644 --- a/package/kernel/mac80211/patches/ath11k/0082-wifi-ath11k-factory-test-mode-support.patch +++ b/package/kernel/mac80211/patches/ath11k/0082-wifi-ath11k-factory-test-mode-support.patch @@ -91,7 +91,7 @@ Link: https://lore.kernel.org/r/20230517135934.16408-4-quic_rajkbhag@quicinc.com static const struct ath11k_hw_params ath11k_hw_params[] = { { .hw_rev = ATH11K_HW_IPQ8074, -@@ -1381,6 +1385,11 @@ static int ath11k_core_soc_create(struct +@@ -1382,6 +1386,11 @@ static int ath11k_core_soc_create(struct { int ret; @@ -103,16 +103,16 @@ Link: https://lore.kernel.org/r/20230517135934.16408-4-quic_rajkbhag@quicinc.com ret = ath11k_qmi_init_service(ab); if (ret) { ath11k_err(ab, "failed to initialize qmi :%d\n", ret); -@@ -1607,7 +1616,7 @@ int ath11k_core_qmi_firmware_ready(struc - { - int ret; +@@ -1622,7 +1631,7 @@ int ath11k_core_qmi_firmware_ready(struc + return -EINVAL; + } - ret = ath11k_core_start_firmware(ab, ATH11K_FIRMWARE_MODE_NORMAL); + ret = ath11k_core_start_firmware(ab, ab->fw_mode); if (ret) { ath11k_err(ab, "failed to start firmware: %d\n", ret); return ret; -@@ -1772,7 +1781,8 @@ void ath11k_core_pre_reconfigure_recover +@@ -1779,7 +1788,8 @@ void ath11k_core_pre_reconfigure_recover for (i = 0; i < ab->num_radios; i++) { pdev = &ab->pdevs[i]; ar = pdev->ar; @@ -122,7 +122,7 @@ Link: https://lore.kernel.org/r/20230517135934.16408-4-quic_rajkbhag@quicinc.com continue; ieee80211_stop_queues(ar->hw); -@@ -1841,7 +1851,12 @@ static void ath11k_core_post_reconfigure +@@ -1848,7 +1858,12 @@ static void ath11k_core_post_reconfigure ath11k_warn(ab, "device is wedged, will not restart radio %d\n", i); break; @@ -170,7 +170,7 @@ Link: https://lore.kernel.org/r/20230517135934.16408-4-quic_rajkbhag@quicinc.com /* Add other states as required */ }; -@@ -709,6 +712,8 @@ struct ath11k { +@@ -711,6 +714,8 @@ struct ath11k { u32 last_ppdu_id; u32 cached_ppdu_id; int monitor_vdev_id; @@ -179,7 +179,7 @@ Link: https://lore.kernel.org/r/20230517135934.16408-4-quic_rajkbhag@quicinc.com #ifdef CPTCFG_ATH11K_DEBUGFS struct ath11k_debug debug; #endif -@@ -838,6 +843,7 @@ struct ath11k_msi_config { +@@ -840,6 +845,7 @@ struct ath11k_msi_config { /* Master structure to hold the hw data which may be used in core module */ struct ath11k_base { enum ath11k_hw_rev hw_rev; @@ -187,7 +187,7 @@ Link: https://lore.kernel.org/r/20230517135934.16408-4-quic_rajkbhag@quicinc.com struct platform_device *pdev; struct device *dev; struct ath11k_qmi qmi; -@@ -978,6 +984,14 @@ struct ath11k_base { +@@ -980,6 +986,14 @@ struct ath11k_base { const struct ath11k_pci_ops *ops; } pci; diff --git a/package/kernel/mac80211/patches/ath11k/0083-wifi-ath11k-Allow-ath11k-to-boot-without-caldata-in-.patch b/package/kernel/mac80211/patches/ath11k/0083-wifi-ath11k-Allow-ath11k-to-boot-without-caldata-in-.patch index f237199ff8d..aa1b5a2afe1 100644 --- a/package/kernel/mac80211/patches/ath11k/0083-wifi-ath11k-Allow-ath11k-to-boot-without-caldata-in-.patch +++ b/package/kernel/mac80211/patches/ath11k/0083-wifi-ath11k-Allow-ath11k-to-boot-without-caldata-in-.patch @@ -30,7 +30,7 @@ Link: https://lore.kernel.org/r/20230517135934.16408-5-quic_rajkbhag@quicinc.com */ #include -@@ -2465,6 +2465,14 @@ static int ath11k_qmi_load_bdf_qmi(struc +@@ -2474,6 +2474,14 @@ static int ath11k_qmi_load_bdf_qmi(struc fw_entry = ath11k_core_firmware_request(ab, ATH11K_DEFAULT_CAL_FILE); if (IS_ERR(fw_entry)) { diff --git a/package/kernel/mac80211/patches/ath11k/0091-wifi-ath11k-Split-coldboot-calibration-hw_param.patch b/package/kernel/mac80211/patches/ath11k/0091-wifi-ath11k-Split-coldboot-calibration-hw_param.patch index 47053546860..f79597163d3 100644 --- a/package/kernel/mac80211/patches/ath11k/0091-wifi-ath11k-Split-coldboot-calibration-hw_param.patch +++ b/package/kernel/mac80211/patches/ath11k/0091-wifi-ath11k-Split-coldboot-calibration-hw_param.patch @@ -115,7 +115,7 @@ Link: https://lore.kernel.org/r/20230726141032.3061-2-quic_rajkbhag@quicinc.com .cbcal_restart_fw = true, .fix_l1ss = true, .supports_dynamic_smps_6ghz = false, -@@ -749,6 +757,18 @@ void ath11k_fw_stats_free(struct ath11k_ +@@ -750,6 +758,18 @@ void ath11k_fw_stats_free(struct ath11k_ ath11k_fw_stats_bcn_free(&stats->bcn); } @@ -136,7 +136,7 @@ Link: https://lore.kernel.org/r/20230726141032.3061-2-quic_rajkbhag@quicinc.com int ret; --- a/drivers/net/wireless/ath/ath11k/core.h +++ b/drivers/net/wireless/ath/ath11k/core.h -@@ -1186,6 +1186,7 @@ void ath11k_core_halt(struct ath11k *ar) +@@ -1188,6 +1188,7 @@ void ath11k_core_halt(struct ath11k *ar) int ath11k_core_resume(struct ath11k_base *ab); int ath11k_core_suspend(struct ath11k_base *ab); void ath11k_core_pre_reconfigure_recovery(struct ath11k_base *ab); @@ -158,7 +158,7 @@ Link: https://lore.kernel.org/r/20230726141032.3061-2-quic_rajkbhag@quicinc.com u32 num_vdevs; --- a/drivers/net/wireless/ath/ath11k/qmi.c +++ b/drivers/net/wireless/ath/ath11k/qmi.c -@@ -2082,7 +2082,7 @@ static int ath11k_qmi_assign_target_mem_ +@@ -2091,7 +2091,7 @@ static int ath11k_qmi_assign_target_mem_ return -EINVAL; } @@ -167,7 +167,7 @@ Link: https://lore.kernel.org/r/20230726141032.3061-2-quic_rajkbhag@quicinc.com if (hremote_node) { ab->qmi.target_mem[idx].paddr = res.start + host_ddr_sz; -@@ -3212,8 +3212,8 @@ static void ath11k_qmi_driver_event_work +@@ -3221,8 +3221,8 @@ static void ath11k_qmi_driver_event_work break; } diff --git a/package/kernel/mac80211/patches/ath11k/0092-wifi-ath11k-Add-coldboot-calibration-support-for-QCN.patch b/package/kernel/mac80211/patches/ath11k/0092-wifi-ath11k-Add-coldboot-calibration-support-for-QCN.patch index 1b0dbc4ad16..1bf449e8095 100644 --- a/package/kernel/mac80211/patches/ath11k/0092-wifi-ath11k-Add-coldboot-calibration-support-for-QCN.patch +++ b/package/kernel/mac80211/patches/ath11k/0092-wifi-ath11k-Add-coldboot-calibration-support-for-QCN.patch @@ -122,7 +122,7 @@ Link: https://lore.kernel.org/r/20230726141032.3061-3-quic_rajkbhag@quicinc.com #include #include #include -@@ -2842,6 +2843,33 @@ int ath11k_qmi_firmware_start(struct ath +@@ -2851,6 +2852,33 @@ int ath11k_qmi_firmware_start(struct ath return 0; } diff --git a/package/kernel/mac80211/patches/ath11k/0093-wifi-ath11k-Remove-cal_done-check-during-probe.patch b/package/kernel/mac80211/patches/ath11k/0093-wifi-ath11k-Remove-cal_done-check-during-probe.patch index 513ea3f0b9a..d798c899c75 100644 --- a/package/kernel/mac80211/patches/ath11k/0093-wifi-ath11k-Remove-cal_done-check-during-probe.patch +++ b/package/kernel/mac80211/patches/ath11k/0093-wifi-ath11k-Remove-cal_done-check-during-probe.patch @@ -22,7 +22,7 @@ Link: https://lore.kernel.org/r/20230726141032.3061-4-quic_rajkbhag@quicinc.com --- a/drivers/net/wireless/ath/ath11k/qmi.c +++ b/drivers/net/wireless/ath/ath11k/qmi.c -@@ -2847,7 +2847,7 @@ int ath11k_qmi_fwreset_from_cold_boot(st +@@ -2856,7 +2856,7 @@ int ath11k_qmi_fwreset_from_cold_boot(st { int timeout; diff --git a/package/kernel/mac80211/patches/ath11k/0095-wifi-ath11k-add-chip-id-board-name-while-searching-b.patch b/package/kernel/mac80211/patches/ath11k/0095-wifi-ath11k-add-chip-id-board-name-while-searching-b.patch index 662e28f4ef8..a570072ae66 100644 --- a/package/kernel/mac80211/patches/ath11k/0095-wifi-ath11k-add-chip-id-board-name-while-searching-b.patch +++ b/package/kernel/mac80211/patches/ath11k/0095-wifi-ath11k-add-chip-id-board-name-while-searching-b.patch @@ -22,7 +22,7 @@ Link: https://lore.kernel.org/r/20230830060226.18664-1-quic_wgong@quicinc.com --- a/drivers/net/wireless/ath/ath11k/core.c +++ b/drivers/net/wireless/ath/ath11k/core.c -@@ -985,9 +985,15 @@ int ath11k_core_check_dt(struct ath11k_b +@@ -986,9 +986,15 @@ int ath11k_core_check_dt(struct ath11k_b return 0; } @@ -39,7 +39,7 @@ Link: https://lore.kernel.org/r/20230830060226.18664-1-quic_wgong@quicinc.com { /* strlen(',variant=') + strlen(ab->qmi.target.bdf_ext) */ char variant[9 + ATH11K_QMI_BDF_EXT_STR_LENGTH] = { 0 }; -@@ -998,11 +1004,8 @@ static int __ath11k_core_create_board_na +@@ -999,11 +1005,8 @@ static int __ath11k_core_create_board_na switch (ab->id.bdf_search) { case ATH11K_BDF_SEARCH_BUS_AND_BOARD: @@ -53,7 +53,7 @@ Link: https://lore.kernel.org/r/20230830060226.18664-1-quic_wgong@quicinc.com scnprintf(name, name_len, "bus=%s,vendor=%04x,device=%04x,subsystem-vendor=%04x,subsystem-device=%04x,qmi-chip-id=%d,qmi-board-id=%d%s", ath11k_bus_str(ab->hif.bus), -@@ -1012,6 +1015,19 @@ static int __ath11k_core_create_board_na +@@ -1013,6 +1016,19 @@ static int __ath11k_core_create_board_na ab->qmi.target.chip_id, ab->qmi.target.board_id, variant); @@ -73,7 +73,7 @@ Link: https://lore.kernel.org/r/20230830060226.18664-1-quic_wgong@quicinc.com break; default: scnprintf(name, name_len, -@@ -1030,19 +1046,29 @@ static int __ath11k_core_create_board_na +@@ -1031,19 +1047,29 @@ static int __ath11k_core_create_board_na static int ath11k_core_create_board_name(struct ath11k_base *ab, char *name, size_t name_len) { @@ -106,7 +106,7 @@ Link: https://lore.kernel.org/r/20230830060226.18664-1-quic_wgong@quicinc.com } const struct firmware *ath11k_core_firmware_request(struct ath11k_base *ab, -@@ -1289,16 +1315,21 @@ int ath11k_core_fetch_board_data_api_1(s +@@ -1290,16 +1316,21 @@ int ath11k_core_fetch_board_data_api_1(s #define BOARD_NAME_SIZE 200 int ath11k_core_fetch_bdf(struct ath11k_base *ab, struct ath11k_board_data *bd) { @@ -132,7 +132,7 @@ Link: https://lore.kernel.org/r/20230830060226.18664-1-quic_wgong@quicinc.com } ab->bd_api = 2; -@@ -1307,13 +1338,19 @@ int ath11k_core_fetch_bdf(struct ath11k_ +@@ -1308,13 +1339,19 @@ int ath11k_core_fetch_bdf(struct ath11k_ ATH11K_BD_IE_BOARD_NAME, ATH11K_BD_IE_BOARD_DATA); if (!ret) @@ -155,7 +155,7 @@ Link: https://lore.kernel.org/r/20230830060226.18664-1-quic_wgong@quicinc.com } ret = ath11k_core_fetch_board_data_api_n(ab, bd, fallback_boardname, -@@ -1321,7 +1358,28 @@ int ath11k_core_fetch_bdf(struct ath11k_ +@@ -1322,7 +1359,28 @@ int ath11k_core_fetch_bdf(struct ath11k_ ATH11K_BD_IE_BOARD_NAME, ATH11K_BD_IE_BOARD_DATA); if (!ret) @@ -185,7 +185,7 @@ Link: https://lore.kernel.org/r/20230830060226.18664-1-quic_wgong@quicinc.com ab->bd_api = 1; ret = ath11k_core_fetch_board_data_api_1(ab, bd, ATH11K_DEFAULT_BOARD_FILE); -@@ -1334,14 +1392,22 @@ int ath11k_core_fetch_bdf(struct ath11k_ +@@ -1335,14 +1393,22 @@ int ath11k_core_fetch_bdf(struct ath11k_ ath11k_err(ab, "failed to fetch board data for %s from %s\n", fallback_boardname, filepath); diff --git a/package/kernel/mac80211/patches/ath11k/903-ath11k-support-setting-FW-memory-mode-via-DT.patch b/package/kernel/mac80211/patches/ath11k/903-ath11k-support-setting-FW-memory-mode-via-DT.patch index 71373b2136f..7fdb9645a64 100644 --- a/package/kernel/mac80211/patches/ath11k/903-ath11k-support-setting-FW-memory-mode-via-DT.patch +++ b/package/kernel/mac80211/patches/ath11k/903-ath11k-support-setting-FW-memory-mode-via-DT.patch @@ -31,7 +31,7 @@ Signed-off-by: Robert Marko { .hw_rev = ATH11K_HW_IPQ8074, .name = "ipq8074 hw2.0", -@@ -2040,7 +2040,8 @@ static void ath11k_core_reset(struct wor +@@ -2047,7 +2047,8 @@ static void ath11k_core_reset(struct wor static int ath11k_init_hw_params(struct ath11k_base *ab) { const struct ath11k_hw_params *hw_params = NULL; @@ -41,7 +41,7 @@ Signed-off-by: Robert Marko for (i = 0; i < ARRAY_SIZE(ath11k_hw_params); i++) { hw_params = &ath11k_hw_params[i]; -@@ -2056,7 +2057,31 @@ static int ath11k_init_hw_params(struct +@@ -2063,7 +2064,31 @@ static int ath11k_init_hw_params(struct ab->hw_params = *hw_params; diff --git a/package/kernel/mac80211/patches/ath5k/432-ath5k_add_pciids.patch b/package/kernel/mac80211/patches/ath5k/432-ath5k_add_pciids.patch deleted file mode 100644 index bd0e6707a55..00000000000 --- a/package/kernel/mac80211/patches/ath5k/432-ath5k_add_pciids.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/drivers/net/wireless/ath/ath5k/pci.c -+++ b/drivers/net/wireless/ath/ath5k/pci.c -@@ -47,6 +47,8 @@ static const struct pci_device_id ath5k_ - { PCI_VDEVICE(ATHEROS, 0x001b) }, /* 5413 Eagle */ - { PCI_VDEVICE(ATHEROS, 0x001c) }, /* PCI-E cards */ - { PCI_VDEVICE(ATHEROS, 0x001d) }, /* 2417 Nala */ -+ { PCI_VDEVICE(ATHEROS, 0xff16) }, /* 2413,2414 sx76x on lantiq_danube */ -+ { PCI_VDEVICE(ATHEROS, 0xff1a) }, /* 2417 arv45xx on lantiq_danube */ - { PCI_VDEVICE(ATHEROS, 0xff1b) }, /* AR5BXB63 */ - { 0 } - }; diff --git a/package/kernel/mac80211/patches/ath9k/410-ath9k_allow_adhoc_and_ap.patch b/package/kernel/mac80211/patches/ath9k/410-ath9k_allow_adhoc_and_ap.patch index b2f2763e8e1..3144f8291af 100644 --- a/package/kernel/mac80211/patches/ath9k/410-ath9k_allow_adhoc_and_ap.patch +++ b/package/kernel/mac80211/patches/ath9k/410-ath9k_allow_adhoc_and_ap.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -882,6 +882,7 @@ static const struct ieee80211_iface_limi +@@ -884,6 +884,7 @@ static const struct ieee80211_iface_limi BIT(NL80211_IFTYPE_AP) }, { .max = 1, .types = BIT(NL80211_IFTYPE_P2P_CLIENT) | BIT(NL80211_IFTYPE_P2P_GO) }, diff --git a/package/kernel/mac80211/patches/ath9k/450-ath9k-enabled-MFP-capability-unconditionally.patch b/package/kernel/mac80211/patches/ath9k/450-ath9k-enabled-MFP-capability-unconditionally.patch index f424ca530be..50ba45c2a82 100644 --- a/package/kernel/mac80211/patches/ath9k/450-ath9k-enabled-MFP-capability-unconditionally.patch +++ b/package/kernel/mac80211/patches/ath9k/450-ath9k-enabled-MFP-capability-unconditionally.patch @@ -14,7 +14,7 @@ Signed-off-by: David Bauer --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -963,6 +963,7 @@ static void ath9k_set_hw_capab(struct at +@@ -965,6 +965,7 @@ static void ath9k_set_hw_capab(struct at ieee80211_hw_set(hw, HOST_BROADCAST_PS_BUFFERING); ieee80211_hw_set(hw, SUPPORT_FAST_XMIT); ieee80211_hw_set(hw, SUPPORTS_CLONED_SKBS); @@ -22,7 +22,7 @@ Signed-off-by: David Bauer if (ath9k_ps_enable) ieee80211_hw_set(hw, SUPPORTS_PS); -@@ -975,9 +976,6 @@ static void ath9k_set_hw_capab(struct at +@@ -977,9 +978,6 @@ static void ath9k_set_hw_capab(struct at IEEE80211_RADIOTAP_MCS_HAVE_STBC; } diff --git a/package/kernel/mac80211/patches/ath9k/500-ath9k_eeprom_debugfs.patch b/package/kernel/mac80211/patches/ath9k/500-ath9k_eeprom_debugfs.patch index 2f5e75be8a3..bf6ae09a786 100644 --- a/package/kernel/mac80211/patches/ath9k/500-ath9k_eeprom_debugfs.patch +++ b/package/kernel/mac80211/patches/ath9k/500-ath9k_eeprom_debugfs.patch @@ -55,7 +55,7 @@ int ath9k_init_debug(struct ath_hw *ah) { struct ath_common *common = ath9k_hw_common(ah); -@@ -1432,6 +1480,8 @@ int ath9k_init_debug(struct ath_hw *ah) +@@ -1430,6 +1478,8 @@ int ath9k_init_debug(struct ath_hw *ah) ath9k_tx99_init_debug(sc); ath9k_cmn_spectral_init_debug(&sc->spec_priv, sc->debug.debugfs_phy); diff --git a/package/kernel/mac80211/patches/ath9k/501-ath9k_ahb_init.patch b/package/kernel/mac80211/patches/ath9k/501-ath9k_ahb_init.patch index 740ddc39dc3..f4d17f5f57e 100644 --- a/package/kernel/mac80211/patches/ath9k/501-ath9k_ahb_init.patch +++ b/package/kernel/mac80211/patches/ath9k/501-ath9k_ahb_init.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -1178,25 +1178,25 @@ static int __init ath9k_init(void) +@@ -1180,25 +1180,25 @@ static int __init ath9k_init(void) { int error; diff --git a/package/kernel/mac80211/patches/ath9k/512-ath9k_channelbw_debugfs.patch b/package/kernel/mac80211/patches/ath9k/512-ath9k_channelbw_debugfs.patch index 94a191e0d80..70826d81792 100644 --- a/package/kernel/mac80211/patches/ath9k/512-ath9k_channelbw_debugfs.patch +++ b/package/kernel/mac80211/patches/ath9k/512-ath9k_channelbw_debugfs.patch @@ -53,7 +53,7 @@ int ath9k_init_debug(struct ath_hw *ah) { struct ath_common *common = ath9k_hw_common(ah); -@@ -1482,6 +1528,8 @@ int ath9k_init_debug(struct ath_hw *ah) +@@ -1480,6 +1526,8 @@ int ath9k_init_debug(struct ath_hw *ah) debugfs_create_file("eeprom", S_IRUSR, sc->debug.debugfs_phy, sc, &fops_eeprom); diff --git a/package/kernel/mac80211/patches/ath9k/530-ath9k_extra_leds.patch b/package/kernel/mac80211/patches/ath9k/530-ath9k_extra_leds.patch index 74506657e0f..f4b93fb9d81 100644 --- a/package/kernel/mac80211/patches/ath9k/530-ath9k_extra_leds.patch +++ b/package/kernel/mac80211/patches/ath9k/530-ath9k_extra_leds.patch @@ -181,7 +181,7 @@ --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -1088,7 +1088,7 @@ int ath9k_init_device(u16 devid, struct +@@ -1090,7 +1090,7 @@ int ath9k_init_device(u16 devid, struct #ifdef CPTCFG_MAC80211_LEDS /* must be initialized before ieee80211_register_hw */ @@ -254,7 +254,7 @@ int ath9k_init_debug(struct ath_hw *ah) { -@@ -1530,6 +1585,10 @@ int ath9k_init_debug(struct ath_hw *ah) +@@ -1528,6 +1583,10 @@ int ath9k_init_debug(struct ath_hw *ah) &fops_eeprom); debugfs_create_file("chanbw", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy, sc, &fops_chanbw); diff --git a/package/kernel/mac80211/patches/ath9k/542-ath9k_debugfs_diag.patch b/package/kernel/mac80211/patches/ath9k/542-ath9k_debugfs_diag.patch index aaf1acb32d9..387d7eda4b2 100644 --- a/package/kernel/mac80211/patches/ath9k/542-ath9k_debugfs_diag.patch +++ b/package/kernel/mac80211/patches/ath9k/542-ath9k_debugfs_diag.patch @@ -51,7 +51,7 @@ int ath9k_init_debug(struct ath_hw *ah) { struct ath_common *common = ath9k_hw_common(ah); -@@ -1589,6 +1633,8 @@ int ath9k_init_debug(struct ath_hw *ah) +@@ -1587,6 +1631,8 @@ int ath9k_init_debug(struct ath_hw *ah) debugfs_create_file("gpio_led", S_IWUSR, sc->debug.debugfs_phy, sc, &fops_gpio_led); #endif diff --git a/package/kernel/mac80211/patches/ath9k/543-ath9k_entropy_from_adc.patch b/package/kernel/mac80211/patches/ath9k/543-ath9k_entropy_from_adc.patch index 6acc864d1e1..93a624e10dc 100644 --- a/package/kernel/mac80211/patches/ath9k/543-ath9k_entropy_from_adc.patch +++ b/package/kernel/mac80211/patches/ath9k/543-ath9k_entropy_from_adc.patch @@ -55,7 +55,7 @@ ops->spectral_scan_config = ar9003_hw_spectral_scan_config; --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -870,7 +870,8 @@ static void ath9k_init_txpower_limits(st +@@ -872,7 +872,8 @@ static void ath9k_init_txpower_limits(st if (ah->caps.hw_caps & ATH9K_HW_CAP_5GHZ) ath9k_init_band_txpower(sc, NL80211_BAND_5GHZ); @@ -65,7 +65,7 @@ } static const struct ieee80211_iface_limit if_limits[] = { -@@ -1048,6 +1049,18 @@ static void ath9k_set_hw_capab(struct at +@@ -1050,6 +1051,18 @@ static void ath9k_set_hw_capab(struct at wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_CAN_REPLACE_PTK0); } @@ -84,7 +84,7 @@ int ath9k_init_device(u16 devid, struct ath_softc *sc, const struct ath_bus_ops *bus_ops) { -@@ -1095,6 +1108,8 @@ int ath9k_init_device(u16 devid, struct +@@ -1097,6 +1110,8 @@ int ath9k_init_device(u16 devid, struct wiphy_read_of_freq_limits(hw->wiphy); diff --git a/package/kernel/mac80211/patches/ath9k/553-ath9k_of_gpio_mask.patch b/package/kernel/mac80211/patches/ath9k/553-ath9k_of_gpio_mask.patch index 6d1820ecb72..46dc2167656 100644 --- a/package/kernel/mac80211/patches/ath9k/553-ath9k_of_gpio_mask.patch +++ b/package/kernel/mac80211/patches/ath9k/553-ath9k_of_gpio_mask.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -696,6 +696,12 @@ static int ath9k_of_init(struct ath_soft +@@ -698,6 +698,12 @@ static int ath9k_of_init(struct ath_soft return 0; } @@ -13,7 +13,7 @@ static int ath9k_init_softc(u16 devid, struct ath_softc *sc, const struct ath_bus_ops *bus_ops) { -@@ -803,6 +809,9 @@ static int ath9k_init_softc(u16 devid, s +@@ -805,6 +811,9 @@ static int ath9k_init_softc(u16 devid, s if (ret) goto err_hw; diff --git a/package/kernel/mac80211/patches/brcm/863-brcmfmac-add-in-driver-tables-with-country-codes.patch b/package/kernel/mac80211/patches/brcm/863-brcmfmac-add-in-driver-tables-with-country-codes.patch index 25191b6439e..e2aa84639dd 100644 --- a/package/kernel/mac80211/patches/brcm/863-brcmfmac-add-in-driver-tables-with-country-codes.patch +++ b/package/kernel/mac80211/patches/brcm/863-brcmfmac-add-in-driver-tables-with-country-codes.patch @@ -49,9 +49,9 @@ Signed-off-by: Rafał Miłecki void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type, struct brcmf_mp_device *settings) { -@@ -106,6 +136,8 @@ void brcmf_of_probe(struct device *dev, - of_node_put(root); +@@ -105,6 +135,8 @@ void brcmf_of_probe(struct device *dev, } + of_node_put(root); + brcmf_of_probe_cc(dev, settings); + diff --git a/package/kernel/mac80211/patches/brcm/865-brcmfmac-Read-alternative-firmware-names-from-DT.patch b/package/kernel/mac80211/patches/brcm/865-brcmfmac-Read-alternative-firmware-names-from-DT.patch index 8df285f8b13..c5b14134e9e 100644 --- a/package/kernel/mac80211/patches/brcm/865-brcmfmac-Read-alternative-firmware-names-from-DT.patch +++ b/package/kernel/mac80211/patches/brcm/865-brcmfmac-Read-alternative-firmware-names-from-DT.patch @@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell #include "of.h" static int brcmf_of_get_country_codes(struct device *dev, -@@ -168,3 +169,38 @@ void brcmf_of_probe(struct device *dev, +@@ -167,3 +168,38 @@ void brcmf_of_probe(struct device *dev, sdio->oob_irq_nr = irq; sdio->oob_irq_flags = irqf; } diff --git a/package/kernel/mac80211/patches/build/070-remove-broken-wext-select.patch b/package/kernel/mac80211/patches/build/070-remove-broken-wext-select.patch index 121b7faad93..99be3c0636c 100644 --- a/package/kernel/mac80211/patches/build/070-remove-broken-wext-select.patch +++ b/package/kernel/mac80211/patches/build/070-remove-broken-wext-select.patch @@ -6,5 +6,5 @@ depends on m - select CFG80211_WEXT depends on CRYPTO + depends on CRYPTO_LIB_AES select BPAUTO_CRYPTO_LIB_ARC4 - help diff --git a/package/kernel/mac80211/patches/build/236-fix-genlmsg_multicast_allns-build-error-on-kernel-6.6.59.patch b/package/kernel/mac80211/patches/build/236-fix-genlmsg_multicast_allns-build-error-on-kernel-6.6.59.patch deleted file mode 100644 index 406b0a20858..00000000000 --- a/package/kernel/mac80211/patches/build/236-fix-genlmsg_multicast_allns-build-error-on-kernel-6.6.59.patch +++ /dev/null @@ -1,169 +0,0 @@ -From e0f83d268974dab0361d11904dfc9acec53f96a6 Mon Sep 17 00:00:00 2001 -From: Eric Dumazet -Date: Fri, 11 Oct 2024 17:12:17 +0000 -Subject: [PATCH] genetlink: hold RCU in genlmsg_mcast() - -[ Upstream commit 56440d7ec28d60f8da3bfa09062b3368ff9b16db ] - -While running net selftests with CONFIG_PROVE_RCU_LIST=y I saw -one lockdep splat [1]. - -genlmsg_mcast() uses for_each_net_rcu(), and must therefore hold RCU. - -Instead of letting all callers guard genlmsg_multicast_allns() -with a rcu_read_lock()/rcu_read_unlock() pair, do it in genlmsg_mcast(). - -This also means the @flags parameter is useless, we need to always use -GFP_ATOMIC. - -[1] -[10882.424136] ============================= -[10882.424166] WARNING: suspicious RCU usage -[10882.424309] 6.12.0-rc2-virtme #1156 Not tainted -[10882.424400] ----------------------------- -[10882.424423] net/netlink/genetlink.c:1940 RCU-list traversed in non-reader section!! -[10882.424469] -other info that might help us debug this: - -[10882.424500] -rcu_scheduler_active = 2, debug_locks = 1 -[10882.424744] 2 locks held by ip/15677: -[10882.424791] #0: ffffffffb6b491b0 (cb_lock){++++}-{3:3}, at: genl_rcv (net/netlink/genetlink.c:1219) -[10882.426334] #1: ffffffffb6b49248 (genl_mutex){+.+.}-{3:3}, at: genl_rcv_msg (net/netlink/genetlink.c:61 net/netlink/genetlink.c:57 net/netlink/genetlink.c:1209) -[10882.426465] -stack backtrace: -[10882.426805] CPU: 14 UID: 0 PID: 15677 Comm: ip Not tainted 6.12.0-rc2-virtme #1156 -[10882.426919] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 -[10882.427046] Call Trace: -[10882.427131] -[10882.427244] dump_stack_lvl (lib/dump_stack.c:123) -[10882.427335] lockdep_rcu_suspicious (kernel/locking/lockdep.c:6822) -[10882.427387] genlmsg_multicast_allns (net/netlink/genetlink.c:1940 (discriminator 7) net/netlink/genetlink.c:1977 (discriminator 7)) -[10882.427436] l2tp_tunnel_notify.constprop.0 (net/l2tp/l2tp_netlink.c:119) l2tp_netlink -[10882.427683] l2tp_nl_cmd_tunnel_create (net/l2tp/l2tp_netlink.c:253) l2tp_netlink -[10882.427748] genl_family_rcv_msg_doit (net/netlink/genetlink.c:1115) -[10882.427834] genl_rcv_msg (net/netlink/genetlink.c:1195 net/netlink/genetlink.c:1210) -[10882.427877] ? __pfx_l2tp_nl_cmd_tunnel_create (net/l2tp/l2tp_netlink.c:186) l2tp_netlink -[10882.427927] ? __pfx_genl_rcv_msg (net/netlink/genetlink.c:1201) -[10882.427959] netlink_rcv_skb (net/netlink/af_netlink.c:2551) -[10882.428069] genl_rcv (net/netlink/genetlink.c:1220) -[10882.428095] netlink_unicast (net/netlink/af_netlink.c:1332 net/netlink/af_netlink.c:1357) -[10882.428140] netlink_sendmsg (net/netlink/af_netlink.c:1901) -[10882.428210] ____sys_sendmsg (net/socket.c:729 (discriminator 1) net/socket.c:744 (discriminator 1) net/socket.c:2607 (discriminator 1)) - -Fixes: 33f72e6f0c67 ("l2tp : multicast notification to the registered listeners") -Signed-off-by: Eric Dumazet -Cc: James Chapman -Cc: Tom Parkin -Cc: Johannes Berg -Link: https://patch.msgid.link/20241011171217.3166614-1-edumazet@google.com -Signed-off-by: Jakub Kicinski -Signed-off-by: Sasha Levin ---- - drivers/target/target_core_user.c | 2 +- - include/net/genetlink.h | 3 +-- - net/l2tp/l2tp_netlink.c | 4 ++-- - net/netlink/genetlink.c | 28 ++++++++++++++-------------- - net/wireless/nl80211.c | 8 ++------ - 5 files changed, 20 insertions(+), 25 deletions(-) - ---- a/backport-include/net/genetlink.h -+++ b/backport-include/net/genetlink.h -@@ -150,7 +150,7 @@ int genlmsg_multicast(const struct genl_ - #define genlmsg_multicast_allns LINUX_BACKPORT(genlmsg_multicast_allns) - int backport_genlmsg_multicast_allns(const struct genl_family *family, - struct sk_buff *skb, u32 portid, -- unsigned int group, gfp_t flags); -+ unsigned int group); - - #define genl_family_attrbuf LINUX_BACKPORT(genl_family_attrbuf) - static inline struct nlattr **genl_family_attrbuf(struct genl_family *family) ---- a/compat/backport-genetlink.c -+++ b/compat/backport-genetlink.c -@@ -198,23 +198,23 @@ int genlmsg_multicast(const struct genl_ - } - EXPORT_SYMBOL_GPL(genlmsg_multicast); - --static int genlmsg_mcast(struct sk_buff *skb, u32 portid, unsigned long group, -- gfp_t flags) -+static int genlmsg_mcast(struct sk_buff *skb, u32 portid, unsigned long group) - { - struct sk_buff *tmp; - struct net *net, *prev = NULL; - bool delivered = false; - int err; - -+ rcu_read_lock(); - for_each_net_rcu(net) { - if (prev) { -- tmp = skb_clone(skb, flags); -+ tmp = skb_clone(skb, GFP_ATOMIC); - if (!tmp) { - err = -ENOMEM; - goto error; - } - err = nlmsg_multicast(prev->genl_sock, tmp, -- portid, group, flags); -+ portid, group, GFP_ATOMIC); - if (!err) - delivered = true; - else if (err != -ESRCH) -@@ -223,25 +223,29 @@ static int genlmsg_mcast(struct sk_buff - - prev = net; - } -+ err = nlmsg_multicast(prev->genl_sock, skb, portid, group, GFP_ATOMIC); -+ -+ rcu_read_unlock(); - -- err = nlmsg_multicast(prev->genl_sock, skb, portid, group, flags); - if (!err) - delivered = true; - else if (err != -ESRCH) - return err; - return delivered ? 0 : -ESRCH; - error: -+ rcu_read_unlock(); -+ - kfree_skb(skb); - return err; - } - - int backport_genlmsg_multicast_allns(const struct genl_family *family, - struct sk_buff *skb, u32 portid, -- unsigned int group, gfp_t flags) -+ unsigned int group) - { - group = __backport_genl_group(family, group); - if (group == INVALID_GROUP) - return -EINVAL; -- return genlmsg_mcast(skb, portid, group, flags); -+ return genlmsg_mcast(skb, portid, group); - } - EXPORT_SYMBOL_GPL(backport_genlmsg_multicast_allns); ---- a/net/wireless/nl80211.c -+++ b/net/wireless/nl80211.c -@@ -17627,10 +17627,8 @@ void nl80211_common_reg_change_event(enu - - genlmsg_end(msg, hdr); - -- rcu_read_lock(); - genlmsg_multicast_allns(&nl80211_fam, msg, 0, -- NL80211_MCGRP_REGULATORY, GFP_ATOMIC); -- rcu_read_unlock(); -+ NL80211_MCGRP_REGULATORY); - - return; - -@@ -18248,10 +18246,8 @@ void nl80211_send_beacon_hint_event(stru - - genlmsg_end(msg, hdr); - -- rcu_read_lock(); - genlmsg_multicast_allns(&nl80211_fam, msg, 0, -- NL80211_MCGRP_REGULATORY, GFP_ATOMIC); -- rcu_read_unlock(); -+ NL80211_MCGRP_REGULATORY); - - return; - diff --git a/package/kernel/mac80211/patches/build/300-backports-handle-genlmsg_multicast_allns-upstream-ba.patch b/package/kernel/mac80211/patches/build/300-backports-handle-genlmsg_multicast_allns-upstream-ba.patch index 5ab6bb736da..7ad5eb96f94 100644 --- a/package/kernel/mac80211/patches/build/300-backports-handle-genlmsg_multicast_allns-upstream-ba.patch +++ b/package/kernel/mac80211/patches/build/300-backports-handle-genlmsg_multicast_allns-upstream-ba.patch @@ -17,8 +17,8 @@ Signed-off-by: Christian Marangi --- a/backport-include/net/genetlink.h +++ b/backport-include/net/genetlink.h -@@ -172,4 +172,15 @@ static inline int genlmsg_parse(const st - } +@@ -192,4 +192,15 @@ int backport_genlmsg_multicast_allns(con + #define genlmsg_multicast_allns LINUX_BACKPORT(genlmsg_multicast_allns) #endif /* LINUX_VERSION_IS_LESS(5,2,0) */ +#if LINUX_VERSION_IN_RANGE(5,15,0,5,15,169) || \ diff --git a/package/kernel/mac80211/patches/subsys/210-ap_scan.patch b/package/kernel/mac80211/patches/subsys/210-ap_scan.patch index 03732681e0f..e6ddb867a06 100644 --- a/package/kernel/mac80211/patches/subsys/210-ap_scan.patch +++ b/package/kernel/mac80211/patches/subsys/210-ap_scan.patch @@ -8,7 +8,7 @@ Subject: [PATCH] mac80211: allow scans in access point mode (for site survey) --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -2734,6 +2734,8 @@ static int ieee80211_scan(struct wiphy * +@@ -2735,6 +2735,8 @@ static int ieee80211_scan(struct wiphy * */ fallthrough; case NL80211_IFTYPE_AP: diff --git a/package/kernel/mac80211/patches/subsys/306-01-v6.2-wifi-mac80211-add-internal-handler-for-wake_tx_queue.patch b/package/kernel/mac80211/patches/subsys/306-01-v6.2-wifi-mac80211-add-internal-handler-for-wake_tx_queue.patch index 606ca335b94..5d610ac3bad 100644 --- a/package/kernel/mac80211/patches/subsys/306-01-v6.2-wifi-mac80211-add-internal-handler-for-wake_tx_queue.patch +++ b/package/kernel/mac80211/patches/subsys/306-01-v6.2-wifi-mac80211-add-internal-handler-for-wake_tx_queue.patch @@ -51,7 +51,7 @@ Signed-off-by: Johannes Berg * * Drivers can optionally delegate responsibility for scheduling queues to * mac80211, to take advantage of airtime fairness accounting. In this case, to -@@ -2257,8 +2258,8 @@ struct ieee80211_link_sta { +@@ -2258,8 +2259,8 @@ struct ieee80211_link_sta { * For non MLO STA it will point to the deflink data. For MLO STA * ieee80211_sta_recalc_aggregates() must be called to update it. * @support_p2p_ps: indicates whether the STA supports P2P PS mechanism or not. @@ -62,7 +62,7 @@ Signed-off-by: Johannes Berg * @deflink: This holds the default link STA information, for non MLO STA all link * specific STA information is accessed through @deflink or through * link[0] which points to address of @deflink. For MLO Link STA -@@ -5700,7 +5701,7 @@ void ieee80211_key_replay(struct ieee802 +@@ -5714,7 +5715,7 @@ void ieee80211_key_replay(struct ieee802 * @hw: pointer as obtained from ieee80211_alloc_hw(). * @queue: queue number (counted from zero). * @@ -71,7 +71,7 @@ Signed-off-by: Johannes Berg */ void ieee80211_wake_queue(struct ieee80211_hw *hw, int queue); -@@ -5709,7 +5710,7 @@ void ieee80211_wake_queue(struct ieee802 +@@ -5723,7 +5724,7 @@ void ieee80211_wake_queue(struct ieee802 * @hw: pointer as obtained from ieee80211_alloc_hw(). * @queue: queue number (counted from zero). * @@ -80,7 +80,7 @@ Signed-off-by: Johannes Berg */ void ieee80211_stop_queue(struct ieee80211_hw *hw, int queue); -@@ -5718,7 +5719,7 @@ void ieee80211_stop_queue(struct ieee802 +@@ -5732,7 +5733,7 @@ void ieee80211_stop_queue(struct ieee802 * @hw: pointer as obtained from ieee80211_alloc_hw(). * @queue: queue number (counted from zero). * @@ -89,7 +89,7 @@ Signed-off-by: Johannes Berg * * Return: %true if the queue is stopped. %false otherwise. */ -@@ -5729,7 +5730,7 @@ int ieee80211_queue_stopped(struct ieee8 +@@ -5743,7 +5744,7 @@ int ieee80211_queue_stopped(struct ieee8 * ieee80211_stop_queues - stop all queues * @hw: pointer as obtained from ieee80211_alloc_hw(). * @@ -98,7 +98,7 @@ Signed-off-by: Johannes Berg */ void ieee80211_stop_queues(struct ieee80211_hw *hw); -@@ -5737,7 +5738,7 @@ void ieee80211_stop_queues(struct ieee80 +@@ -5751,7 +5752,7 @@ void ieee80211_stop_queues(struct ieee80 * ieee80211_wake_queues - wake all queues * @hw: pointer as obtained from ieee80211_alloc_hw(). * @@ -107,7 +107,7 @@ Signed-off-by: Johannes Berg */ void ieee80211_wake_queues(struct ieee80211_hw *hw); -@@ -6960,6 +6961,18 @@ static inline struct sk_buff *ieee80211_ +@@ -6974,6 +6975,18 @@ static inline struct sk_buff *ieee80211_ } /** diff --git a/package/kernel/mac80211/patches/subsys/306-02-v6.2-wifi-mac80211-add-wake_tx_queue-callback-to-drivers.patch b/package/kernel/mac80211/patches/subsys/306-02-v6.2-wifi-mac80211-add-wake_tx_queue-callback-to-drivers.patch index b8554fb6553..4c69b03bb33 100644 --- a/package/kernel/mac80211/patches/subsys/306-02-v6.2-wifi-mac80211-add-wake_tx_queue-callback-to-drivers.patch +++ b/package/kernel/mac80211/patches/subsys/306-02-v6.2-wifi-mac80211-add-wake_tx_queue-callback-to-drivers.patch @@ -36,7 +36,7 @@ Signed-off-by: Johannes Berg .remove_interface = ar5523_remove_interface, --- a/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c -@@ -8599,6 +8599,7 @@ err_fallback: +@@ -8601,6 +8601,7 @@ err_fallback: static const struct ieee80211_ops ath11k_ops = { .tx = ath11k_mac_op_tx, @@ -166,7 +166,7 @@ Signed-off-by: Johannes Berg .add_interface = p54_add_interface, --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c -@@ -3109,6 +3109,7 @@ static int mac80211_hwsim_change_sta_lin +@@ -3114,6 +3114,7 @@ static int mac80211_hwsim_change_sta_lin #define HWSIM_COMMON_OPS \ .tx = mac80211_hwsim_tx, \ @@ -306,7 +306,7 @@ Signed-off-by: Johannes Berg .add_interface = rtl8187_add_interface, --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -6546,6 +6546,7 @@ static void rtl8xxxu_stop(struct ieee802 +@@ -6553,6 +6553,7 @@ static void rtl8xxxu_stop(struct ieee802 static const struct ieee80211_ops rtl8xxxu_ops = { .tx = rtl8xxxu_tx, @@ -336,7 +336,7 @@ Signed-off-by: Johannes Berg .stop = rtw_ops_stop, --- a/drivers/net/wireless/realtek/rtw89/mac80211.c +++ b/drivers/net/wireless/realtek/rtw89/mac80211.c -@@ -916,6 +916,7 @@ static int rtw89_ops_set_tid_config(stru +@@ -918,6 +918,7 @@ static int rtw89_ops_set_tid_config(stru const struct ieee80211_ops rtw89_ops = { .tx = rtw89_ops_tx, diff --git a/package/kernel/mac80211/patches/subsys/306-03-v6.2-wifi-mac80211-Drop-support-for-TX-push-path.patch b/package/kernel/mac80211/patches/subsys/306-03-v6.2-wifi-mac80211-Drop-support-for-TX-push-path.patch index e7452eb3a71..b033da7d542 100644 --- a/package/kernel/mac80211/patches/subsys/306-03-v6.2-wifi-mac80211-Drop-support-for-TX-push-path.patch +++ b/package/kernel/mac80211/patches/subsys/306-03-v6.2-wifi-mac80211-Drop-support-for-TX-push-path.patch @@ -11,7 +11,7 @@ Signed-off-by: Johannes Berg --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -4359,9 +4359,6 @@ static int ieee80211_get_txq_stats(struc +@@ -4361,9 +4361,6 @@ static int ieee80211_get_txq_stats(struc struct ieee80211_sub_if_data *sdata; int ret = 0; @@ -63,7 +63,7 @@ Signed-off-by: Johannes Berg NL80211_EXT_FEATURE_AQL)) --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h -@@ -2301,7 +2301,6 @@ void ieee80211_wake_queue_by_reason(stru +@@ -2299,7 +2299,6 @@ void ieee80211_wake_queue_by_reason(stru void ieee80211_stop_queue_by_reason(struct ieee80211_hw *hw, int queue, enum queue_stop_reason reason, bool refcounted); @@ -73,7 +73,7 @@ Signed-off-by: Johannes Berg void ieee80211_add_pending_skbs(struct ieee80211_local *local, --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c -@@ -481,12 +481,6 @@ static void ieee80211_do_stop(struct iee +@@ -482,12 +482,6 @@ static void ieee80211_do_stop(struct iee if (cancel_scan) ieee80211_scan_cancel(local); @@ -86,7 +86,7 @@ Signed-off-by: Johannes Berg ieee80211_roc_purge(local, sdata); switch (sdata->vif.type) { -@@ -834,25 +828,6 @@ static void ieee80211_uninit(struct net_ +@@ -852,25 +846,6 @@ static void ieee80211_uninit(struct net_ ieee80211_teardown_sdata(IEEE80211_DEV_TO_SUB_IF(dev)); } @@ -112,7 +112,7 @@ Signed-off-by: Johannes Berg static void ieee80211_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) { -@@ -866,7 +841,6 @@ static const struct net_device_ops ieee8 +@@ -884,7 +859,6 @@ static const struct net_device_ops ieee8 .ndo_start_xmit = ieee80211_subif_start_xmit, .ndo_set_rx_mode = ieee80211_set_multicast_list, .ndo_set_mac_address = ieee80211_change_mac, @@ -120,7 +120,7 @@ Signed-off-by: Johannes Berg .ndo_get_stats64 = ieee80211_get_stats64, }; -@@ -988,7 +962,6 @@ static const struct net_device_ops ieee8 +@@ -1006,7 +980,6 @@ static const struct net_device_ops ieee8 .ndo_start_xmit = ieee80211_subif_start_xmit_8023, .ndo_set_rx_mode = ieee80211_set_multicast_list, .ndo_set_mac_address = ieee80211_change_mac, @@ -128,7 +128,7 @@ Signed-off-by: Johannes Berg .ndo_get_stats64 = ieee80211_get_stats64, #if LINUX_VERSION_IS_GEQ(5,13,0) .ndo_fill_forward_path = ieee80211_netdev_fill_forward_path, -@@ -1492,35 +1465,6 @@ int ieee80211_do_open(struct wireless_de +@@ -1510,35 +1483,6 @@ int ieee80211_do_open(struct wireless_de ieee80211_recalc_ps(local); @@ -164,7 +164,7 @@ Signed-off-by: Johannes Berg set_bit(SDATA_STATE_RUNNING, &sdata->state); return 0; -@@ -1550,17 +1494,12 @@ static void ieee80211_if_setup(struct ne +@@ -1568,17 +1512,12 @@ static void ieee80211_if_setup(struct ne { ether_setup(dev); dev->priv_flags &= ~IFF_TX_SKB_SHARING; @@ -183,7 +183,7 @@ Signed-off-by: Johannes Berg static void ieee80211_iface_process_skb(struct ieee80211_local *local, struct ieee80211_sub_if_data *sdata, struct sk_buff *skb) -@@ -2145,9 +2084,7 @@ int ieee80211_if_add(struct ieee80211_lo +@@ -2163,9 +2102,7 @@ int ieee80211_if_add(struct ieee80211_lo struct net_device *ndev = NULL; struct ieee80211_sub_if_data *sdata = NULL; struct txq_info *txqi; @@ -193,7 +193,7 @@ Signed-off-by: Johannes Berg ASSERT_RTNL(); -@@ -2170,30 +2107,18 @@ int ieee80211_if_add(struct ieee80211_lo +@@ -2188,30 +2125,18 @@ int ieee80211_if_add(struct ieee80211_lo sizeof(void *)); int txq_size = 0; @@ -228,7 +228,7 @@ Signed-off-by: Johannes Berg ndev->tstats = netdev_alloc_pcpu_stats(struct pcpu_sw_netstats); --- a/net/mac80211/main.c +++ b/net/mac80211/main.c -@@ -634,7 +634,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_ +@@ -636,7 +636,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_ if (WARN_ON(!ops->tx || !ops->start || !ops->stop || !ops->config || !ops->add_interface || !ops->remove_interface || @@ -237,7 +237,7 @@ Signed-off-by: Johannes Berg return NULL; if (WARN_ON(ops->sta_state && (ops->sta_add || ops->sta_remove))) -@@ -723,9 +723,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_ +@@ -725,9 +725,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_ if (!ops->set_key) wiphy->flags |= WIPHY_FLAG_IBSS_RSN; @@ -248,7 +248,7 @@ Signed-off-by: Johannes Berg wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_RRM); wiphy->bss_priv_size = sizeof(struct ieee80211_bss); -@@ -838,10 +836,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_ +@@ -840,10 +838,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_ atomic_set(&local->agg_queue_stop[i], 0); } tasklet_setup(&local->tx_pending_tasklet, ieee80211_tx_pending); @@ -466,7 +466,7 @@ Signed-off-by: Johannes Berg } spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags); -@@ -5970,10 +5951,9 @@ int ieee80211_tx_control_port(struct wip +@@ -5972,10 +5953,9 @@ int ieee80211_tx_control_port(struct wip } if (!IS_ERR(sta)) { diff --git a/package/kernel/mac80211/patches/subsys/306-04-v6.2-wifi-realtek-remove-duplicated-wake_tx_queue.patch b/package/kernel/mac80211/patches/subsys/306-04-v6.2-wifi-realtek-remove-duplicated-wake_tx_queue.patch index 9afefa38ccd..7d60b69cb38 100644 --- a/package/kernel/mac80211/patches/subsys/306-04-v6.2-wifi-realtek-remove-duplicated-wake_tx_queue.patch +++ b/package/kernel/mac80211/patches/subsys/306-04-v6.2-wifi-realtek-remove-duplicated-wake_tx_queue.patch @@ -22,7 +22,7 @@ Signed-off-by: Johannes Berg .stop = rtw_ops_stop, --- a/drivers/net/wireless/realtek/rtw89/mac80211.c +++ b/drivers/net/wireless/realtek/rtw89/mac80211.c -@@ -916,7 +916,6 @@ static int rtw89_ops_set_tid_config(stru +@@ -918,7 +918,6 @@ static int rtw89_ops_set_tid_config(stru const struct ieee80211_ops rtw89_ops = { .tx = rtw89_ops_tx, diff --git a/package/kernel/mac80211/patches/subsys/310-v6.2-mac80211-add-support-for-restricting-netdev-features.patch b/package/kernel/mac80211/patches/subsys/310-v6.2-mac80211-add-support-for-restricting-netdev-features.patch index ecc70489838..7a5a82e3dea 100644 --- a/package/kernel/mac80211/patches/subsys/310-v6.2-mac80211-add-support-for-restricting-netdev-features.patch +++ b/package/kernel/mac80211/patches/subsys/310-v6.2-mac80211-add-support-for-restricting-netdev-features.patch @@ -59,7 +59,7 @@ Signed-off-by: Felix Fietkau flow = fq_find_fattest_flow(fq); --- a/include/net/mac80211.h +++ b/include/net/mac80211.h -@@ -1816,6 +1816,10 @@ struct ieee80211_vif_cfg { +@@ -1817,6 +1817,10 @@ struct ieee80211_vif_cfg { * @addr: address of this interface * @p2p: indicates whether this AP or STA interface is a p2p * interface, i.e. a GO or p2p-sta respectively @@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau * @driver_flags: flags/capabilities the driver has for this interface, * these need to be set (or cleared) when the interface is added * or, if supported by the driver, the interface type is changed -@@ -1855,6 +1859,7 @@ struct ieee80211_vif { +@@ -1856,6 +1860,7 @@ struct ieee80211_vif { struct ieee80211_txq *txq; @@ -80,7 +80,7 @@ Signed-off-by: Felix Fietkau --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c -@@ -2218,6 +2218,7 @@ int ieee80211_if_add(struct ieee80211_lo +@@ -2236,6 +2236,7 @@ int ieee80211_if_add(struct ieee80211_lo ndev->priv_flags |= IFF_LIVE_ADDR_CHANGE; ndev->hw_features |= ndev->features & MAC80211_SUPPORTED_FEATURES_TX; diff --git a/package/kernel/mac80211/patches/subsys/319-wifi-mac80211-mesh-fast-xmit-support.patch b/package/kernel/mac80211/patches/subsys/319-wifi-mac80211-mesh-fast-xmit-support.patch index 05324b10544..2b9c35a7991 100644 --- a/package/kernel/mac80211/patches/subsys/319-wifi-mac80211-mesh-fast-xmit-support.patch +++ b/package/kernel/mac80211/patches/subsys/319-wifi-mac80211-mesh-fast-xmit-support.patch @@ -68,7 +68,7 @@ Signed-off-by: Felix Fietkau }; #ifdef CPTCFG_MAC80211_MESH -@@ -2009,6 +2024,11 @@ int ieee80211_tx_control_port(struct wip +@@ -2007,6 +2022,11 @@ int ieee80211_tx_control_port(struct wip int link_id, u64 *cookie); int ieee80211_probe_mesh_link(struct wiphy *wiphy, struct net_device *dev, const u8 *buf, size_t len); @@ -262,7 +262,7 @@ Signed-off-by: Felix Fietkau static inline --- a/net/mac80211/mesh_hwmp.c +++ b/net/mac80211/mesh_hwmp.c -@@ -394,6 +394,7 @@ static u32 hwmp_route_info_get(struct ie +@@ -400,6 +400,7 @@ static u32 hwmp_route_info_get(struct ie u32 orig_sn, orig_metric; unsigned long orig_lifetime, exp_time; u32 last_hop_metric, new_metric; @@ -270,7 +270,7 @@ Signed-off-by: Felix Fietkau bool process = true; u8 hopcount; -@@ -491,8 +492,10 @@ static u32 hwmp_route_info_get(struct ie +@@ -497,8 +498,10 @@ static u32 hwmp_route_info_get(struct ie } if (fresh_info) { @@ -282,7 +282,7 @@ Signed-off-by: Felix Fietkau mesh_path_assign_nexthop(mpath, sta); mpath->flags |= MESH_PATH_SN_VALID; mpath->metric = new_metric; -@@ -502,6 +505,8 @@ static u32 hwmp_route_info_get(struct ie +@@ -508,6 +511,8 @@ static u32 hwmp_route_info_get(struct ie mpath->hop_count = hopcount; mesh_path_activate(mpath); spin_unlock_bh(&mpath->state_lock); @@ -291,7 +291,7 @@ Signed-off-by: Felix Fietkau ewma_mesh_fail_avg_init(&sta->mesh->fail_avg); /* init it at a low value - 0 start is tricky */ ewma_mesh_fail_avg_add(&sta->mesh->fail_avg, 1); -@@ -539,8 +544,10 @@ static u32 hwmp_route_info_get(struct ie +@@ -545,8 +550,10 @@ static u32 hwmp_route_info_get(struct ie } if (fresh_info) { @@ -303,7 +303,7 @@ Signed-off-by: Felix Fietkau mesh_path_assign_nexthop(mpath, sta); mpath->metric = last_hop_metric; mpath->exp_time = time_after(mpath->exp_time, exp_time) -@@ -548,6 +555,8 @@ static u32 hwmp_route_info_get(struct ie +@@ -554,6 +561,8 @@ static u32 hwmp_route_info_get(struct ie mpath->hop_count = 1; mesh_path_activate(mpath); spin_unlock_bh(&mpath->state_lock); @@ -312,7 +312,7 @@ Signed-off-by: Felix Fietkau ewma_mesh_fail_avg_init(&sta->mesh->fail_avg); /* init it at a low value - 0 start is tricky */ ewma_mesh_fail_avg_add(&sta->mesh->fail_avg, 1); -@@ -1215,6 +1224,20 @@ static int mesh_nexthop_lookup_nolearn(s +@@ -1223,6 +1232,20 @@ static int mesh_nexthop_lookup_nolearn(s return 0; } @@ -333,7 +333,7 @@ Signed-off-by: Felix Fietkau /** * mesh_nexthop_lookup - put the appropriate next hop on a mesh frame. Calling * this function is considered "using" the associated mpath, so preempt a path -@@ -1242,19 +1265,15 @@ int mesh_nexthop_lookup(struct ieee80211 +@@ -1250,19 +1273,15 @@ int mesh_nexthop_lookup(struct ieee80211 if (!mpath || !(mpath->flags & MESH_PATH_ACTIVE)) return -ENOENT; diff --git a/package/kernel/mac80211/patches/subsys/320-wifi-mac80211-use-mesh-header-cache-to-speed-up-mesh.patch b/package/kernel/mac80211/patches/subsys/320-wifi-mac80211-use-mesh-header-cache-to-speed-up-mesh.patch index 655626acd23..647f0f4c815 100644 --- a/package/kernel/mac80211/patches/subsys/320-wifi-mac80211-use-mesh-header-cache-to-speed-up-mesh.patch +++ b/package/kernel/mac80211/patches/subsys/320-wifi-mac80211-use-mesh-header-cache-to-speed-up-mesh.patch @@ -106,7 +106,7 @@ Signed-off-by: Felix Fietkau rx_accept: --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h -@@ -2029,6 +2029,8 @@ void __ieee80211_xmit_fast(struct ieee80 +@@ -2027,6 +2027,8 @@ void __ieee80211_xmit_fast(struct ieee80 struct ieee80211_fast_tx *fast_tx, struct sk_buff *skb, bool ampdu, const u8 *da, const u8 *sa); diff --git a/package/kernel/mac80211/patches/subsys/325-wifi-mac80211-introduce-ieee80211_refresh_tx_agg_ses.patch b/package/kernel/mac80211/patches/subsys/325-wifi-mac80211-introduce-ieee80211_refresh_tx_agg_ses.patch index b33574a35ad..0f250e880b6 100644 --- a/package/kernel/mac80211/patches/subsys/325-wifi-mac80211-introduce-ieee80211_refresh_tx_agg_ses.patch +++ b/package/kernel/mac80211/patches/subsys/325-wifi-mac80211-introduce-ieee80211_refresh_tx_agg_ses.patch @@ -13,7 +13,7 @@ Signed-off-by: Ryder Lee --- a/include/net/mac80211.h +++ b/include/net/mac80211.h -@@ -5977,6 +5977,18 @@ void ieee80211_queue_delayed_work(struct +@@ -5991,6 +5991,18 @@ void ieee80211_queue_delayed_work(struct unsigned long delay); /** diff --git a/package/kernel/mac80211/patches/subsys/326-wifi-mac80211-add-mesh-fast-rx-support.patch b/package/kernel/mac80211/patches/subsys/326-wifi-mac80211-add-mesh-fast-rx-support.patch index 4251bfdb947..5e60a48f823 100644 --- a/package/kernel/mac80211/patches/subsys/326-wifi-mac80211-add-mesh-fast-rx-support.patch +++ b/package/kernel/mac80211/patches/subsys/326-wifi-mac80211-add-mesh-fast-rx-support.patch @@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c -@@ -4580,6 +4580,12 @@ void ieee80211_check_fast_rx(struct sta_ +@@ -4584,6 +4584,12 @@ void ieee80211_check_fast_rx(struct sta_ } break; @@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau default: goto clear; } -@@ -4788,6 +4794,7 @@ static bool ieee80211_invoke_fast_rx(str +@@ -4792,6 +4798,7 @@ static bool ieee80211_invoke_fast_rx(str struct sk_buff *skb = rx->skb; struct ieee80211_hdr *hdr = (void *)skb->data; struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); @@ -31,7 +31,7 @@ Signed-off-by: Felix Fietkau int orig_len = skb->len; int hdrlen = ieee80211_hdrlen(hdr->frame_control); int snap_offs = hdrlen; -@@ -4849,7 +4856,8 @@ static bool ieee80211_invoke_fast_rx(str +@@ -4853,7 +4860,8 @@ static bool ieee80211_invoke_fast_rx(str snap_offs += IEEE80211_CCMP_HDR_LEN; } @@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau if (!pskb_may_pull(skb, snap_offs + sizeof(*payload))) return false; -@@ -4888,13 +4896,29 @@ static bool ieee80211_invoke_fast_rx(str +@@ -4892,13 +4900,29 @@ static bool ieee80211_invoke_fast_rx(str /* do the header conversion - first grab the addresses */ ether_addr_copy(addrs.da, skb->data + fast_rx->da_offs); ether_addr_copy(addrs.sa, skb->data + fast_rx->sa_offs); diff --git a/package/kernel/mac80211/patches/subsys/327-wifi-mac80211-add-support-for-letting-drivers-regist.patch b/package/kernel/mac80211/patches/subsys/327-wifi-mac80211-add-support-for-letting-drivers-regist.patch index 8ca18df2da1..00dd5aec409 100644 --- a/package/kernel/mac80211/patches/subsys/327-wifi-mac80211-add-support-for-letting-drivers-regist.patch +++ b/package/kernel/mac80211/patches/subsys/327-wifi-mac80211-add-support-for-letting-drivers-regist.patch @@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau --- a/include/net/mac80211.h +++ b/include/net/mac80211.h -@@ -4201,6 +4201,10 @@ struct ieee80211_prep_tx_info { +@@ -4215,6 +4215,10 @@ struct ieee80211_prep_tx_info { * Note that a sta can also be inserted or removed with valid links, * i.e. passed to @sta_add/@sta_state with sta->valid_links not zero. * In fact, cannot change from having valid_links and not having them. @@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau */ struct ieee80211_ops { void (*tx)(struct ieee80211_hw *hw, -@@ -4556,6 +4560,11 @@ struct ieee80211_ops { +@@ -4570,6 +4574,11 @@ struct ieee80211_ops { struct ieee80211_vif *vif, struct ieee80211_sta *sta, u16 old_links, u16 new_links); @@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau MAC80211_SUPPORTED_FEATURES_RX) --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c -@@ -834,6 +834,21 @@ ieee80211_get_stats64(struct net_device +@@ -852,6 +852,21 @@ ieee80211_get_stats64(struct net_device dev_fetch_sw_netstats(stats, dev->tstats); } @@ -97,7 +97,7 @@ Signed-off-by: Felix Fietkau static const struct net_device_ops ieee80211_dataif_ops = { .ndo_open = ieee80211_open, .ndo_stop = ieee80211_stop, -@@ -842,6 +857,7 @@ static const struct net_device_ops ieee8 +@@ -860,6 +875,7 @@ static const struct net_device_ops ieee8 .ndo_set_rx_mode = ieee80211_set_multicast_list, .ndo_set_mac_address = ieee80211_change_mac, .ndo_get_stats64 = ieee80211_get_stats64, @@ -105,7 +105,7 @@ Signed-off-by: Felix Fietkau }; #if LINUX_VERSION_IS_GEQ(5,2,0) -@@ -966,6 +982,7 @@ static const struct net_device_ops ieee8 +@@ -984,6 +1000,7 @@ static const struct net_device_ops ieee8 #if LINUX_VERSION_IS_GEQ(5,13,0) .ndo_fill_forward_path = ieee80211_netdev_fill_forward_path, #endif diff --git a/package/kernel/mac80211/patches/subsys/332-wifi-iwlwifi-mvm-support-flush-on-AP-interfaces.patch b/package/kernel/mac80211/patches/subsys/332-wifi-iwlwifi-mvm-support-flush-on-AP-interfaces.patch index 97b1454e2ec..507d322d7c7 100644 --- a/package/kernel/mac80211/patches/subsys/332-wifi-iwlwifi-mvm-support-flush-on-AP-interfaces.patch +++ b/package/kernel/mac80211/patches/subsys/332-wifi-iwlwifi-mvm-support-flush-on-AP-interfaces.patch @@ -12,7 +12,7 @@ Reviewed-by: Greenman, Gregory --- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c -@@ -4844,9 +4844,6 @@ static void iwl_mvm_mac_flush(struct iee +@@ -4848,9 +4848,6 @@ static void iwl_mvm_mac_flush(struct iee return; } @@ -22,7 +22,7 @@ Reviewed-by: Greenman, Gregory /* Make sure we're done with the deferred traffic before flushing */ flush_work(&mvm->add_stream_wk); -@@ -4864,9 +4861,6 @@ static void iwl_mvm_mac_flush(struct iee +@@ -4868,9 +4865,6 @@ static void iwl_mvm_mac_flush(struct iee if (mvmsta->vif != vif) continue; diff --git a/package/kernel/mac80211/patches/subsys/333-wifi-mac80211-add-flush_sta-method.patch b/package/kernel/mac80211/patches/subsys/333-wifi-mac80211-add-flush_sta-method.patch index 25a101e86cf..66abec1a7df 100644 --- a/package/kernel/mac80211/patches/subsys/333-wifi-mac80211-add-flush_sta-method.patch +++ b/package/kernel/mac80211/patches/subsys/333-wifi-mac80211-add-flush_sta-method.patch @@ -12,7 +12,7 @@ Reviewed-by: Greenman, Gregory --- a/include/net/mac80211.h +++ b/include/net/mac80211.h -@@ -3927,6 +3927,10 @@ struct ieee80211_prep_tx_info { +@@ -3941,6 +3941,10 @@ struct ieee80211_prep_tx_info { * Note that vif can be NULL. * The callback can sleep. * @@ -23,7 +23,7 @@ Reviewed-by: Greenman, Gregory * @channel_switch: Drivers that need (or want) to offload the channel * switch operation for CSAs received from the AP may implement this * callback. They must then call ieee80211_chswitch_done() to indicate -@@ -4381,6 +4385,8 @@ struct ieee80211_ops { +@@ -4395,6 +4399,8 @@ struct ieee80211_ops { #endif void (*flush)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u32 queues, bool drop); diff --git a/package/kernel/mac80211/patches/subsys/334-wifi-iwlwifi-mvm-support-new-flush_sta-method.patch b/package/kernel/mac80211/patches/subsys/334-wifi-iwlwifi-mvm-support-new-flush_sta-method.patch index eae5a38e2f3..acc7d955a37 100644 --- a/package/kernel/mac80211/patches/subsys/334-wifi-iwlwifi-mvm-support-new-flush_sta-method.patch +++ b/package/kernel/mac80211/patches/subsys/334-wifi-iwlwifi-mvm-support-new-flush_sta-method.patch @@ -11,7 +11,7 @@ Reviewed-by: Greenman, Gregory --- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c -@@ -4880,6 +4880,31 @@ static void iwl_mvm_mac_flush(struct iee +@@ -4887,6 +4887,31 @@ static void iwl_mvm_mac_flush(struct iee iwl_trans_wait_tx_queues_empty(mvm->trans, msk); } @@ -43,7 +43,7 @@ Reviewed-by: Greenman, Gregory static int iwl_mvm_mac_get_survey(struct ieee80211_hw *hw, int idx, struct survey_info *survey) { -@@ -5407,6 +5432,7 @@ const struct ieee80211_ops iwl_mvm_hw_op +@@ -5414,6 +5439,7 @@ const struct ieee80211_ops iwl_mvm_hw_op .mgd_complete_tx = iwl_mvm_mac_mgd_complete_tx, .mgd_protect_tdls_discover = iwl_mvm_mac_mgd_protect_tdls_discover, .flush = iwl_mvm_mac_flush, diff --git a/package/kernel/mac80211/patches/subsys/336-v6.4-wifi-mac80211-generate-EMA-beacons-in-AP-mode.patch b/package/kernel/mac80211/patches/subsys/336-v6.4-wifi-mac80211-generate-EMA-beacons-in-AP-mode.patch index dd8185ba194..b97b5e174e7 100644 --- a/package/kernel/mac80211/patches/subsys/336-v6.4-wifi-mac80211-generate-EMA-beacons-in-AP-mode.patch +++ b/package/kernel/mac80211/patches/subsys/336-v6.4-wifi-mac80211-generate-EMA-beacons-in-AP-mode.patch @@ -38,7 +38,7 @@ Signed-off-by: Johannes Berg --- a/include/net/mac80211.h +++ b/include/net/mac80211.h -@@ -5265,6 +5265,74 @@ ieee80211_beacon_get_template(struct iee +@@ -5279,6 +5279,74 @@ ieee80211_beacon_get_template(struct iee unsigned int link_id); /** @@ -129,7 +129,7 @@ Signed-off-by: Johannes Berg } new = kzalloc(size, GFP_KERNEL); -@@ -3396,8 +3396,11 @@ cfg80211_beacon_dup(struct cfg80211_beac +@@ -3398,8 +3398,11 @@ cfg80211_beacon_dup(struct cfg80211_beac len = beacon->head_len + beacon->tail_len + beacon->beacon_ies_len + beacon->proberesp_ies_len + beacon->assocresp_ies_len + @@ -222,7 +222,7 @@ Signed-off-by: Johannes Berg offs->mbssid_off = skb->len - mbssid_len; } -@@ -5288,12 +5298,51 @@ ieee80211_beacon_get_ap(struct ieee80211 +@@ -5290,12 +5300,51 @@ ieee80211_beacon_get_ap(struct ieee80211 return skb; } @@ -275,7 +275,7 @@ Signed-off-by: Johannes Berg { struct ieee80211_local *local = hw_to_local(hw); struct beacon_data *beacon = NULL; -@@ -5322,8 +5371,29 @@ __ieee80211_beacon_get(struct ieee80211_ +@@ -5324,8 +5373,29 @@ __ieee80211_beacon_get(struct ieee80211_ if (!beacon) goto out; @@ -307,7 +307,7 @@ Signed-off-by: Johannes Berg } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; struct ieee80211_hdr *hdr; -@@ -5411,10 +5481,50 @@ ieee80211_beacon_get_template(struct iee +@@ -5413,10 +5483,50 @@ ieee80211_beacon_get_template(struct iee struct ieee80211_mutable_offsets *offs, unsigned int link_id) { @@ -359,7 +359,7 @@ Signed-off-by: Johannes Berg struct sk_buff *ieee80211_beacon_get_tim(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u16 *tim_offset, u16 *tim_length, -@@ -5422,7 +5532,9 @@ struct sk_buff *ieee80211_beacon_get_tim +@@ -5424,7 +5534,9 @@ struct sk_buff *ieee80211_beacon_get_tim { struct ieee80211_mutable_offsets offs = {}; struct sk_buff *bcn = __ieee80211_beacon_get(hw, vif, &offs, false, diff --git a/package/kernel/mac80211/patches/subsys/340-cfg80211-allow-grace-period-for-DFS-available-after-.patch b/package/kernel/mac80211/patches/subsys/340-cfg80211-allow-grace-period-for-DFS-available-after-.patch index 8f36e1880b1..766eccfebff 100644 --- a/package/kernel/mac80211/patches/subsys/340-cfg80211-allow-grace-period-for-DFS-available-after-.patch +++ b/package/kernel/mac80211/patches/subsys/340-cfg80211-allow-grace-period-for-DFS-available-after-.patch @@ -113,7 +113,7 @@ Signed-off-by: Felix Fietkau { --- a/net/wireless/core.h +++ b/net/wireless/core.h -@@ -497,6 +497,8 @@ void cfg80211_set_dfs_state(struct wiphy +@@ -491,6 +491,8 @@ void cfg80211_set_dfs_state(struct wiphy enum nl80211_dfs_state dfs_state); void cfg80211_dfs_channels_update_work(struct work_struct *work); diff --git a/package/kernel/mac80211/patches/subsys/341-v6.2-cfg80211-Update-Transition-Disable-policy-during-por.patch b/package/kernel/mac80211/patches/subsys/341-v6.2-cfg80211-Update-Transition-Disable-policy-during-por.patch index 915bf735bf0..a79b872e909 100644 --- a/package/kernel/mac80211/patches/subsys/341-v6.2-cfg80211-Update-Transition-Disable-policy-during-por.patch +++ b/package/kernel/mac80211/patches/subsys/341-v6.2-cfg80211-Update-Transition-Disable-policy-during-por.patch @@ -76,7 +76,7 @@ Signed-off-by: Johannes Berg --- a/net/wireless/core.h +++ b/net/wireless/core.h -@@ -283,6 +283,8 @@ struct cfg80211_event { +@@ -277,6 +277,8 @@ struct cfg80211_event { } ij; struct { u8 bssid[ETH_ALEN]; @@ -85,7 +85,7 @@ Signed-off-by: Johannes Berg } pa; }; }; -@@ -427,7 +429,8 @@ int cfg80211_disconnect(struct cfg80211_ +@@ -421,7 +423,8 @@ int cfg80211_disconnect(struct cfg80211_ bool wextev); void __cfg80211_roamed(struct wireless_dev *wdev, struct cfg80211_roam_info *info); @@ -97,7 +97,7 @@ Signed-off-by: Johannes Berg void cfg80211_autodisconnect_wk(struct work_struct *work); --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c -@@ -18022,7 +18022,8 @@ void nl80211_send_roamed(struct cfg80211 +@@ -18041,7 +18041,8 @@ void nl80211_send_roamed(struct cfg80211 } void nl80211_send_port_authorized(struct cfg80211_registered_device *rdev, @@ -107,7 +107,7 @@ Signed-off-by: Johannes Berg { struct sk_buff *msg; void *hdr; -@@ -18042,6 +18043,11 @@ void nl80211_send_port_authorized(struct +@@ -18061,6 +18062,11 @@ void nl80211_send_port_authorized(struct nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, bssid)) goto nla_put_failure; @@ -133,7 +133,7 @@ Signed-off-by: Johannes Berg const u8 *ie, size_t ie_len, bool from_ap); --- a/net/wireless/sme.c +++ b/net/wireless/sme.c -@@ -1266,7 +1266,8 @@ out: +@@ -1267,7 +1267,8 @@ out: } EXPORT_SYMBOL(cfg80211_roamed); @@ -143,7 +143,7 @@ Signed-off-by: Johannes Berg { ASSERT_WDEV_LOCK(wdev); -@@ -1279,11 +1280,11 @@ void __cfg80211_port_authorized(struct w +@@ -1280,11 +1281,11 @@ void __cfg80211_port_authorized(struct w return; nl80211_send_port_authorized(wiphy_to_rdev(wdev->wiphy), wdev->netdev, @@ -157,7 +157,7 @@ Signed-off-by: Johannes Berg { struct wireless_dev *wdev = dev->ieee80211_ptr; struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy); -@@ -1293,12 +1294,15 @@ void cfg80211_port_authorized(struct net +@@ -1294,12 +1295,15 @@ void cfg80211_port_authorized(struct net if (WARN_ON(!bssid)) return; diff --git a/package/kernel/mac80211/patches/subsys/342-v6.3-mac80211-support-minimal-EHT-rate-reporting-on-RX.patch b/package/kernel/mac80211/patches/subsys/342-v6.3-mac80211-support-minimal-EHT-rate-reporting-on-RX.patch index 4d4afb52631..10747cc5a62 100644 --- a/package/kernel/mac80211/patches/subsys/342-v6.3-mac80211-support-minimal-EHT-rate-reporting-on-RX.patch +++ b/package/kernel/mac80211/patches/subsys/342-v6.3-mac80211-support-minimal-EHT-rate-reporting-on-RX.patch @@ -18,7 +18,7 @@ Signed-off-by: Johannes Berg --- a/include/net/mac80211.h +++ b/include/net/mac80211.h -@@ -1477,6 +1477,7 @@ enum mac80211_rx_encoding { +@@ -1478,6 +1478,7 @@ enum mac80211_rx_encoding { RX_ENC_HT, RX_ENC_VHT, RX_ENC_HE, @@ -26,7 +26,7 @@ Signed-off-by: Johannes Berg }; /** -@@ -1510,7 +1511,7 @@ enum mac80211_rx_encoding { +@@ -1511,7 +1512,7 @@ enum mac80211_rx_encoding { * @antenna: antenna used * @rate_idx: index of data rate into band's supported rates or MCS index if * HT or VHT is used (%RX_FLAG_HT/%RX_FLAG_VHT) @@ -35,7 +35,7 @@ Signed-off-by: Johannes Berg * @flag: %RX_FLAG_\* * @encoding: &enum mac80211_rx_encoding * @bw: &enum rate_info_bw -@@ -1518,6 +1519,8 @@ enum mac80211_rx_encoding { +@@ -1519,6 +1520,8 @@ enum mac80211_rx_encoding { * @he_ru: HE RU, from &enum nl80211_he_ru_alloc * @he_gi: HE GI, from &enum nl80211_he_gi * @he_dcm: HE DCM value @@ -44,7 +44,7 @@ Signed-off-by: Johannes Berg * @rx_flags: internal RX flags for mac80211 * @ampdu_reference: A-MPDU reference number, must be a different value for * each A-MPDU but the same for each subframe within one A-MPDU -@@ -1539,8 +1542,18 @@ struct ieee80211_rx_status { +@@ -1540,8 +1543,18 @@ struct ieee80211_rx_status { u32 flag; u16 freq: 13, freq_offset: 1; u8 enc_flags; @@ -67,7 +67,7 @@ Signed-off-by: Johannes Berg u8 rx_flags; --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c -@@ -5358,6 +5358,15 @@ void ieee80211_rx_list(struct ieee80211_ +@@ -5362,6 +5362,15 @@ void ieee80211_rx_list(struct ieee80211_ status->rate_idx, status->nss)) goto drop; break; @@ -157,7 +157,7 @@ Signed-off-by: Johannes Berg return STA_STATS_RATE_INVALID; --- a/net/mac80211/util.c +++ b/net/mac80211/util.c -@@ -3902,6 +3902,19 @@ u64 ieee80211_calculate_rx_timestamp(str +@@ -3905,6 +3905,19 @@ u64 ieee80211_calculate_rx_timestamp(str /* Fill cfg80211 rate info */ switch (status->encoding) { diff --git a/package/kernel/mac80211/patches/subsys/343-v6.3-wifi-mac80211-mlme-handle-EHT-channel-puncturing.patch b/package/kernel/mac80211/patches/subsys/343-v6.3-wifi-mac80211-mlme-handle-EHT-channel-puncturing.patch index 1ad2823053b..4bd8f2f8806 100644 --- a/package/kernel/mac80211/patches/subsys/343-v6.3-wifi-mac80211-mlme-handle-EHT-channel-puncturing.patch +++ b/package/kernel/mac80211/patches/subsys/343-v6.3-wifi-mac80211-mlme-handle-EHT-channel-puncturing.patch @@ -62,7 +62,7 @@ Signed-off-by: Johannes Berg bool mu_mimo_owner; --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -4197,7 +4197,7 @@ static int ieee80211_set_ap_chanwidth(st +@@ -4199,7 +4199,7 @@ static int ieee80211_set_ap_chanwidth(st struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); struct ieee80211_link_data *link; int ret; @@ -84,7 +84,7 @@ Signed-off-by: Johannes Berg struct ieee80211_bss_conf *link_conf = link->conf; --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h -@@ -2499,7 +2499,7 @@ int ieee80211_link_unreserve_chanctx(str +@@ -2497,7 +2497,7 @@ int ieee80211_link_unreserve_chanctx(str int __must_check ieee80211_link_change_bandwidth(struct ieee80211_link_data *link, const struct cfg80211_chan_def *chandef, @@ -255,7 +255,7 @@ Signed-off-by: Johannes Berg { struct ieee80211_sub_if_data *sdata = link->sdata; struct ieee80211_local *local = sdata->local; -@@ -4140,6 +4275,7 @@ static bool ieee80211_assoc_config_link( +@@ -4141,6 +4276,7 @@ static bool ieee80211_assoc_config_link( link_sta); bss_conf->eht_support = link_sta->pub->eht_cap.has_eht; @@ -263,7 +263,7 @@ Signed-off-by: Johannes Berg } else { bss_conf->eht_support = false; } -@@ -5452,6 +5588,45 @@ static bool ieee80211_rx_our_beacon(cons +@@ -5453,6 +5589,45 @@ static bool ieee80211_rx_our_beacon(cons return ether_addr_equal(tx_bssid, bss->transmitted_bss->bssid); } @@ -309,7 +309,7 @@ Signed-off-by: Johannes Berg static void ieee80211_rx_mgmt_beacon(struct ieee80211_link_data *link, struct ieee80211_hdr *hdr, size_t len, struct ieee80211_rx_status *rx_status) -@@ -5468,7 +5643,7 @@ static void ieee80211_rx_mgmt_beacon(str +@@ -5469,7 +5644,7 @@ static void ieee80211_rx_mgmt_beacon(str struct ieee80211_channel *chan; struct link_sta_info *link_sta; struct sta_info *sta; @@ -318,7 +318,7 @@ Signed-off-by: Johannes Berg bool erp_valid; u8 erp_value = 0; u32 ncrc = 0; -@@ -5761,6 +5936,21 @@ static void ieee80211_rx_mgmt_beacon(str +@@ -5762,6 +5937,21 @@ static void ieee80211_rx_mgmt_beacon(str elems->pwr_constr_elem, elems->cisco_dtpc_elem); @@ -340,7 +340,7 @@ Signed-off-by: Johannes Berg ieee80211_link_info_change_notify(sdata, link, changed); free: kfree(elems); -@@ -6862,9 +7052,12 @@ ieee80211_setup_assoc_link(struct ieee80 +@@ -6863,9 +7053,12 @@ ieee80211_setup_assoc_link(struct ieee80 ieee80211_apply_htcap_overrides(sdata, &sta_ht_cap); } @@ -353,7 +353,7 @@ Signed-off-by: Johannes Berg const struct element *elem; u8 dtim_count = 0; -@@ -6893,6 +7086,31 @@ ieee80211_setup_assoc_link(struct ieee80 +@@ -6894,6 +7087,31 @@ ieee80211_setup_assoc_link(struct ieee80 link->conf->ema_ap = true; else link->conf->ema_ap = false; diff --git a/package/kernel/mac80211/patches/subsys/344-v6.3-0001-wifi-cfg80211-move-puncturing-bitmap-validation-from.patch b/package/kernel/mac80211/patches/subsys/344-v6.3-0001-wifi-cfg80211-move-puncturing-bitmap-validation-from.patch index 408b531a905..6ff4517aa06 100644 --- a/package/kernel/mac80211/patches/subsys/344-v6.3-0001-wifi-cfg80211-move-puncturing-bitmap-validation-from.patch +++ b/package/kernel/mac80211/patches/subsys/344-v6.3-0001-wifi-cfg80211-move-puncturing-bitmap-validation-from.patch @@ -120,7 +120,7 @@ Signed-off-by: Johannes Berg break; link->u.mgd.conn_flags |= ieee80211_chandef_downgrade(chandef); -@@ -5613,8 +5552,8 @@ static bool ieee80211_config_puncturing( +@@ -5614,8 +5553,8 @@ static bool ieee80211_config_puncturing( extracted == link->conf->eht_puncturing) return true; @@ -131,7 +131,7 @@ Signed-off-by: Johannes Berg link_info(link, "Got an invalid disable subchannel bitmap from AP %pM: bitmap = 0x%x, bw = 0x%x. disconnect\n", link->u.mgd.bssid, -@@ -7102,8 +7041,8 @@ ieee80211_setup_assoc_link(struct ieee80 +@@ -7103,8 +7042,8 @@ ieee80211_setup_assoc_link(struct ieee80 u16 bitmap; bitmap = get_unaligned_le16(disable_subchannel_bitmap); diff --git a/package/kernel/mac80211/patches/subsys/344-v6.3-0002-wifi-nl80211-validate-and-configure-puncturing-bitma.patch b/package/kernel/mac80211/patches/subsys/344-v6.3-0002-wifi-nl80211-validate-and-configure-puncturing-bitma.patch index f530e53019a..087ecec7c62 100644 --- a/package/kernel/mac80211/patches/subsys/344-v6.3-0002-wifi-nl80211-validate-and-configure-puncturing-bitma.patch +++ b/package/kernel/mac80211/patches/subsys/344-v6.3-0002-wifi-nl80211-validate-and-configure-puncturing-bitma.patch @@ -137,7 +137,7 @@ Signed-off-by: Johannes Berg int nl80211_parse_chandef(struct cfg80211_registered_device *rdev, struct genl_info *info, struct cfg80211_chan_def *chandef) -@@ -5969,6 +5985,14 @@ static int nl80211_start_ap(struct sk_bu +@@ -5974,6 +5990,14 @@ static int nl80211_start_ap(struct sk_bu goto out; } @@ -152,7 +152,7 @@ Signed-off-by: Johannes Berg if (!cfg80211_reg_can_beacon_relax(&rdev->wiphy, ¶ms->chandef, wdev->iftype)) { err = -EINVAL; -@@ -10107,6 +10131,14 @@ skip_beacons: +@@ -10126,6 +10150,14 @@ skip_beacons: if (info->attrs[NL80211_ATTR_CH_SWITCH_BLOCK_TX]) params.block_tx = true; diff --git a/package/kernel/mac80211/patches/subsys/344-v6.3-0003-wifi-cfg80211-include-puncturing-bitmap-in-channel-s.patch b/package/kernel/mac80211/patches/subsys/344-v6.3-0003-wifi-cfg80211-include-puncturing-bitmap-in-channel-s.patch index 3ab60745ffd..a269f82ba89 100644 --- a/package/kernel/mac80211/patches/subsys/344-v6.3-0003-wifi-cfg80211-include-puncturing-bitmap-in-channel-s.patch +++ b/package/kernel/mac80211/patches/subsys/344-v6.3-0003-wifi-cfg80211-include-puncturing-bitmap-in-channel-s.patch @@ -91,7 +91,7 @@ Signed-off-by: Johannes Berg * ieee80211_operating_class_to_band - convert operating class to band --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -3612,7 +3612,8 @@ static int __ieee80211_csa_finalize(stru +@@ -3614,7 +3614,8 @@ static int __ieee80211_csa_finalize(stru if (err) return err; @@ -101,7 +101,7 @@ Signed-off-by: Johannes Berg return 0; } -@@ -3884,7 +3885,7 @@ __ieee80211_channel_switch(struct wiphy +@@ -3886,7 +3887,7 @@ __ieee80211_channel_switch(struct wiphy cfg80211_ch_switch_started_notify(sdata->dev, &sdata->deflink.csa_chandef, 0, @@ -132,7 +132,7 @@ Signed-off-by: Johannes Berg /* use driver's channel switch callback */ --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c -@@ -19081,7 +19081,7 @@ static void nl80211_ch_switch_notify(str +@@ -19100,7 +19100,7 @@ static void nl80211_ch_switch_notify(str struct cfg80211_chan_def *chandef, gfp_t gfp, enum nl80211_commands notif, @@ -141,7 +141,7 @@ Signed-off-by: Johannes Berg { struct wireless_dev *wdev = netdev->ieee80211_ptr; struct sk_buff *msg; -@@ -19115,6 +19115,9 @@ static void nl80211_ch_switch_notify(str +@@ -19134,6 +19134,9 @@ static void nl80211_ch_switch_notify(str goto nla_put_failure; } @@ -151,7 +151,7 @@ Signed-off-by: Johannes Berg genlmsg_end(msg, hdr); genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, -@@ -19127,7 +19130,7 @@ static void nl80211_ch_switch_notify(str +@@ -19146,7 +19149,7 @@ static void nl80211_ch_switch_notify(str void cfg80211_ch_switch_notify(struct net_device *dev, struct cfg80211_chan_def *chandef, @@ -160,7 +160,7 @@ Signed-off-by: Johannes Berg { struct wireless_dev *wdev = dev->ieee80211_ptr; struct wiphy *wiphy = wdev->wiphy; -@@ -19136,7 +19139,7 @@ void cfg80211_ch_switch_notify(struct ne +@@ -19155,7 +19158,7 @@ void cfg80211_ch_switch_notify(struct ne ASSERT_WDEV_LOCK(wdev); WARN_INVALID_LINK_ID(wdev, link_id); @@ -169,7 +169,7 @@ Signed-off-by: Johannes Berg switch (wdev->iftype) { case NL80211_IFTYPE_STATION: -@@ -19164,14 +19167,15 @@ void cfg80211_ch_switch_notify(struct ne +@@ -19183,14 +19186,15 @@ void cfg80211_ch_switch_notify(struct ne cfg80211_sched_dfs_chan_update(rdev); nl80211_ch_switch_notify(rdev, dev, link_id, chandef, GFP_KERNEL, @@ -187,7 +187,7 @@ Signed-off-by: Johannes Berg { struct wireless_dev *wdev = dev->ieee80211_ptr; struct wiphy *wiphy = wdev->wiphy; -@@ -19180,11 +19184,13 @@ void cfg80211_ch_switch_started_notify(s +@@ -19199,11 +19203,13 @@ void cfg80211_ch_switch_started_notify(s ASSERT_WDEV_LOCK(wdev); WARN_INVALID_LINK_ID(wdev, link_id); diff --git a/package/kernel/mac80211/patches/subsys/344-v6.3-0004-wifi-mac80211-configure-puncturing-bitmap.patch b/package/kernel/mac80211/patches/subsys/344-v6.3-0004-wifi-mac80211-configure-puncturing-bitmap.patch index 5710626db3a..a2784421510 100644 --- a/package/kernel/mac80211/patches/subsys/344-v6.3-0004-wifi-mac80211-configure-puncturing-bitmap.patch +++ b/package/kernel/mac80211/patches/subsys/344-v6.3-0004-wifi-mac80211-configure-puncturing-bitmap.patch @@ -59,7 +59,7 @@ Signed-off-by: Johannes Berg if (sdata->vif.type == NL80211_IFTYPE_AP && params->mbssid_config.tx_wdev) { err = ieee80211_set_ap_mbssid_options(sdata, -@@ -3571,6 +3576,12 @@ static int __ieee80211_csa_finalize(stru +@@ -3573,6 +3578,12 @@ static int __ieee80211_csa_finalize(stru lockdep_assert_held(&local->mtx); lockdep_assert_held(&local->chanctx_mtx); @@ -72,7 +72,7 @@ Signed-off-by: Johannes Berg /* * using reservation isn't immediate as it may be deferred until later * with multi-vif. once reservation is complete it will re-schedule the -@@ -3613,7 +3624,7 @@ static int __ieee80211_csa_finalize(stru +@@ -3615,7 +3626,7 @@ static int __ieee80211_csa_finalize(stru return err; cfg80211_ch_switch_notify(sdata->dev, &sdata->deflink.csa_chandef, 0, @@ -81,7 +81,7 @@ Signed-off-by: Johannes Berg return 0; } -@@ -3875,9 +3886,13 @@ __ieee80211_channel_switch(struct wiphy +@@ -3877,9 +3888,13 @@ __ieee80211_channel_switch(struct wiphy goto out; } @@ -95,7 +95,7 @@ Signed-off-by: Johannes Berg if (sdata->deflink.csa_block_tx) ieee80211_stop_vif_queues(local, sdata, -@@ -3885,7 +3900,8 @@ __ieee80211_channel_switch(struct wiphy +@@ -3887,7 +3902,8 @@ __ieee80211_channel_switch(struct wiphy cfg80211_ch_switch_started_notify(sdata->dev, &sdata->deflink.csa_chandef, 0, diff --git a/package/kernel/mac80211/patches/subsys/346-v6.4-wifi-mac80211-warn-only-once-on-AP-probe.patch b/package/kernel/mac80211/patches/subsys/346-v6.4-wifi-mac80211-warn-only-once-on-AP-probe.patch index 60d2ec29263..363de8d7e5c 100644 --- a/package/kernel/mac80211/patches/subsys/346-v6.4-wifi-mac80211-warn-only-once-on-AP-probe.patch +++ b/package/kernel/mac80211/patches/subsys/346-v6.4-wifi-mac80211-warn-only-once-on-AP-probe.patch @@ -21,7 +21,7 @@ Signed-off-by: Johannes Berg --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c -@@ -3239,7 +3239,7 @@ static void ieee80211_mgd_probe_ap(struc +@@ -3240,7 +3240,7 @@ static void ieee80211_mgd_probe_ap(struc struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; bool already = false; diff --git a/package/kernel/mac80211/patches/subsys/347-v6.5-wifi-mac80211-HW-restart-for-MLO.patch b/package/kernel/mac80211/patches/subsys/347-v6.5-wifi-mac80211-HW-restart-for-MLO.patch index 9103e65bd5b..4e18dfa080c 100644 --- a/package/kernel/mac80211/patches/subsys/347-v6.5-wifi-mac80211-HW-restart-for-MLO.patch +++ b/package/kernel/mac80211/patches/subsys/347-v6.5-wifi-mac80211-HW-restart-for-MLO.patch @@ -17,7 +17,7 @@ Signed-off-by: Johannes Berg --- a/net/mac80211/util.c +++ b/net/mac80211/util.c -@@ -2497,21 +2497,55 @@ int ieee80211_reconfig(struct ieee80211_ +@@ -2500,21 +2500,55 @@ int ieee80211_reconfig(struct ieee80211_ /* Finally also reconfigure all the BSS information */ list_for_each_entry(sdata, &local->interfaces, list) { @@ -77,7 +77,7 @@ Signed-off-by: Johannes Berg } switch (sdata->vif.type) { -@@ -2531,42 +2565,42 @@ int ieee80211_reconfig(struct ieee80211_ +@@ -2534,42 +2568,42 @@ int ieee80211_reconfig(struct ieee80211_ &sdata->deflink.tx_conf[i]); break; } @@ -150,7 +150,7 @@ Signed-off-by: Johannes Berg break; case NL80211_IFTYPE_OCB: changed |= BSS_CHANGED_OCB; -@@ -2601,6 +2635,7 @@ int ieee80211_reconfig(struct ieee80211_ +@@ -2604,6 +2638,7 @@ int ieee80211_reconfig(struct ieee80211_ case NL80211_IFTYPE_NAN: res = ieee80211_reconfig_nan(sdata); if (res < 0) { @@ -158,7 +158,7 @@ Signed-off-by: Johannes Berg ieee80211_handle_reconfig_failure(local); return res; } -@@ -2618,6 +2653,10 @@ int ieee80211_reconfig(struct ieee80211_ +@@ -2621,6 +2656,10 @@ int ieee80211_reconfig(struct ieee80211_ WARN_ON(1); break; } diff --git a/package/kernel/mac80211/patches/subsys/348-v6.5-wifi-mac80211-implement-proper-AP-MLD-HW-restart.patch b/package/kernel/mac80211/patches/subsys/348-v6.5-wifi-mac80211-implement-proper-AP-MLD-HW-restart.patch index b6f92f11ea4..52f7dfa07f0 100644 --- a/package/kernel/mac80211/patches/subsys/348-v6.5-wifi-mac80211-implement-proper-AP-MLD-HW-restart.patch +++ b/package/kernel/mac80211/patches/subsys/348-v6.5-wifi-mac80211-implement-proper-AP-MLD-HW-restart.patch @@ -53,7 +53,7 @@ Signed-off-by: Johannes Berg int ieee80211_reconfig(struct ieee80211_local *local) { struct ieee80211_hw *hw = &local->hw; -@@ -2610,7 +2639,13 @@ int ieee80211_reconfig(struct ieee80211_ +@@ -2613,7 +2642,13 @@ int ieee80211_reconfig(struct ieee80211_ changed |= BSS_CHANGED_IBSS; fallthrough; case NL80211_IFTYPE_AP: @@ -68,7 +68,7 @@ Signed-off-by: Johannes Berg if (sdata->vif.bss_conf.ftm_responder == 1 && wiphy_ext_feature_isset(sdata->local->hw.wiphy, -@@ -2620,6 +2655,13 @@ int ieee80211_reconfig(struct ieee80211_ +@@ -2623,6 +2658,13 @@ int ieee80211_reconfig(struct ieee80211_ if (sdata->vif.type == NL80211_IFTYPE_AP) { changed |= BSS_CHANGED_AP_PROBE_RESP; diff --git a/package/kernel/mac80211/patches/subsys/349-v6.5-wifi-mac80211-Add-getter-functions-for-vif-MLD-state.patch b/package/kernel/mac80211/patches/subsys/349-v6.5-wifi-mac80211-Add-getter-functions-for-vif-MLD-state.patch index 9343e9b76ba..8c181709488 100644 --- a/package/kernel/mac80211/patches/subsys/349-v6.5-wifi-mac80211-Add-getter-functions-for-vif-MLD-state.patch +++ b/package/kernel/mac80211/patches/subsys/349-v6.5-wifi-mac80211-Add-getter-functions-for-vif-MLD-state.patch @@ -33,7 +33,7 @@ Signed-off-by: Johannes Berg --- a/include/net/mac80211.h +++ b/include/net/mac80211.h -@@ -1936,6 +1936,27 @@ struct ieee80211_vif { +@@ -1937,6 +1937,27 @@ struct ieee80211_vif { u8 drv_priv[] __aligned(sizeof(void *)); }; @@ -132,7 +132,7 @@ Signed-off-by: Johannes Berg chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c -@@ -542,7 +542,7 @@ static void ieee80211_do_stop(struct iee +@@ -543,7 +543,7 @@ static void ieee80211_do_stop(struct iee cancel_work_sync(&sdata->recalc_smps); sdata_lock(sdata); @@ -141,7 +141,7 @@ Signed-off-by: Johannes Berg "destroying interface with valid links 0x%04x\n", sdata->vif.valid_links); -@@ -1855,7 +1855,7 @@ static int ieee80211_runtime_change_ifty +@@ -1873,7 +1873,7 @@ static int ieee80211_runtime_change_ifty return -EBUSY; /* for now, don't support changing while links exist */ @@ -217,7 +217,7 @@ Signed-off-by: Johannes Berg ieee80211_recalc_smps(sdata, &sdata->deflink); ieee80211_recalc_ps_vif(sdata); -@@ -2982,7 +2982,7 @@ static void ieee80211_set_disassoc(struc +@@ -2983,7 +2983,7 @@ static void ieee80211_set_disassoc(struc sta_info_flush(sdata); /* finally reset all BSS / config parameters */ @@ -226,7 +226,7 @@ Signed-off-by: Johannes Berg changed |= ieee80211_reset_erp_info(sdata); ieee80211_led_assoc(local, 0); -@@ -3007,7 +3007,7 @@ static void ieee80211_set_disassoc(struc +@@ -3008,7 +3008,7 @@ static void ieee80211_set_disassoc(struc sizeof(sdata->vif.bss_conf.mu_group.membership)); memset(sdata->vif.bss_conf.mu_group.position, 0, sizeof(sdata->vif.bss_conf.mu_group.position)); @@ -235,7 +235,7 @@ Signed-off-by: Johannes Berg changed |= BSS_CHANGED_MU_GROUPS; sdata->vif.bss_conf.mu_mimo_owner = false; -@@ -3021,7 +3021,7 @@ static void ieee80211_set_disassoc(struc +@@ -3022,7 +3022,7 @@ static void ieee80211_set_disassoc(struc changed |= BSS_CHANGED_ARP_FILTER; sdata->vif.bss_conf.qos = false; @@ -244,7 +244,7 @@ Signed-off-by: Johannes Berg changed |= BSS_CHANGED_QOS; /* The BSSID (not really interesting) and HT changed */ changed |= BSS_CHANGED_BSSID | BSS_CHANGED_HT; -@@ -3191,7 +3191,7 @@ static void ieee80211_mgd_probe_ap_send( +@@ -3192,7 +3192,7 @@ static void ieee80211_mgd_probe_ap_send( u8 unicast_limit = max(1, max_probe_tries - 3); struct sta_info *sta; @@ -253,7 +253,7 @@ Signed-off-by: Johannes Berg return; /* -@@ -3239,7 +3239,7 @@ static void ieee80211_mgd_probe_ap(struc +@@ -3240,7 +3240,7 @@ static void ieee80211_mgd_probe_ap(struc struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; bool already = false; @@ -262,7 +262,7 @@ Signed-off-by: Johannes Berg return; if (!ieee80211_sdata_running(sdata)) -@@ -3314,7 +3314,7 @@ struct sk_buff *ieee80211_ap_probereq_ge +@@ -3315,7 +3315,7 @@ struct sk_buff *ieee80211_ap_probereq_ge int ssid_len; if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_STATION || @@ -271,7 +271,7 @@ Signed-off-by: Johannes Berg return NULL; sdata_assert_lock(sdata); -@@ -3379,7 +3379,8 @@ static void __ieee80211_disconnect(struc +@@ -3380,7 +3380,8 @@ static void __ieee80211_disconnect(struc } /* in MLO assume we have a link where we can TX the frame */ @@ -281,7 +281,7 @@ Signed-off-by: Johannes Berg if (!ifmgd->driver_disconnect) { unsigned int link_id; -@@ -3578,7 +3579,7 @@ static void ieee80211_destroy_assoc_data +@@ -3579,7 +3580,7 @@ static void ieee80211_destroy_assoc_data for (i = 0; i < ARRAY_SIZE(data.bss); i++) data.bss[i] = assoc_data->link[i].bss; @@ -290,7 +290,7 @@ Signed-off-by: Johannes Berg data.ap_mld_addr = assoc_data->ap_addr; cfg80211_assoc_failure(sdata->dev, &data); -@@ -4979,7 +4980,7 @@ static bool ieee80211_assoc_success(stru +@@ -4980,7 +4981,7 @@ static bool ieee80211_assoc_success(stru if (WARN_ON(!sta)) goto out_err; @@ -299,7 +299,7 @@ Signed-off-by: Johannes Berg u16 valid_links = 0; for (link_id = 0; link_id < IEEE80211_MLD_MAX_NUM_LINKS; link_id++) { -@@ -5008,7 +5009,7 @@ static bool ieee80211_assoc_success(stru +@@ -5009,7 +5010,7 @@ static bool ieee80211_assoc_success(stru if (WARN_ON(!link)) goto out_err; @@ -308,7 +308,7 @@ Signed-off-by: Johannes Berg link_info(link, "local address %pM, AP link address %pM\n", link->conf->addr, -@@ -5240,7 +5241,7 @@ static void ieee80211_rx_mgmt_assoc_resp +@@ -5241,7 +5242,7 @@ static void ieee80211_rx_mgmt_assoc_resp ifmgd->broken_ap = true; } @@ -317,7 +317,7 @@ Signed-off-by: Johannes Berg if (!elems->multi_link) { sdata_info(sdata, "MLO association with %pM but no multi-link element in response!\n", -@@ -5304,7 +5305,7 @@ static void ieee80211_rx_mgmt_assoc_resp +@@ -5305,7 +5306,7 @@ static void ieee80211_rx_mgmt_assoc_resp resp.uapsd_queues |= ieee80211_ac_to_qos_mask[ac]; } @@ -326,7 +326,7 @@ Signed-off-by: Johannes Berg ether_addr_copy(ap_mld_addr, sdata->vif.cfg.ap_addr); resp.ap_mld_addr = ap_mld_addr; } -@@ -5629,7 +5630,7 @@ static void ieee80211_rx_mgmt_beacon(str +@@ -5630,7 +5631,7 @@ static void ieee80211_rx_mgmt_beacon(str rcu_read_unlock(); if (ifmgd->assoc_data && ifmgd->assoc_data->need_beacon && @@ -335,7 +335,7 @@ Signed-off-by: Johannes Berg ieee80211_rx_our_beacon(bssid, ifmgd->assoc_data->link[0].bss)) { parse_params.bss = ifmgd->assoc_data->link[0].bss; elems = ieee802_11_parse_elems_full(&parse_params); -@@ -6319,7 +6320,7 @@ static void ieee80211_sta_bcn_mon_timer( +@@ -6320,7 +6321,7 @@ static void ieee80211_sta_bcn_mon_timer( struct ieee80211_sub_if_data *sdata = from_timer(sdata, t, u.mgd.bcn_mon_timer); @@ -344,7 +344,7 @@ Signed-off-by: Johannes Berg return; if (sdata->vif.bss_conf.csa_active && -@@ -6343,7 +6344,7 @@ static void ieee80211_sta_conn_mon_timer +@@ -6344,7 +6345,7 @@ static void ieee80211_sta_conn_mon_timer struct sta_info *sta; unsigned long timeout; @@ -353,7 +353,7 @@ Signed-off-by: Johannes Berg return; if (sdata->vif.bss_conf.csa_active && -@@ -6898,7 +6899,7 @@ int ieee80211_mgd_auth(struct ieee80211_ +@@ -6899,7 +6900,7 @@ int ieee80211_mgd_auth(struct ieee80211_ return 0; err_clear: @@ -456,7 +456,7 @@ Signed-off-by: Johannes Berg chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (unlikely(!chanctx_conf)) { -@@ -6008,7 +6008,7 @@ void __ieee80211_tx_skb_tid_band(struct +@@ -6010,7 +6010,7 @@ void __ieee80211_tx_skb_tid_band(struct BUILD_BUG_ON(!FIELD_FIT(IEEE80211_TX_CTRL_MLO_LINK, IEEE80211_LINK_UNSPECIFIED)); @@ -465,7 +465,7 @@ Signed-off-by: Johannes Berg link = 0; } else if (link_id >= 0) { link = link_id; -@@ -6054,7 +6054,7 @@ void ieee80211_tx_skb_tid(struct ieee802 +@@ -6056,7 +6056,7 @@ void ieee80211_tx_skb_tid(struct ieee802 enum nl80211_band band; rcu_read_lock(); @@ -485,7 +485,7 @@ Signed-off-by: Johannes Berg struct { u8 id; u8 len; -@@ -2546,7 +2546,7 @@ int ieee80211_reconfig(struct ieee80211_ +@@ -2549,7 +2549,7 @@ int ieee80211_reconfig(struct ieee80211_ continue; sdata_lock(sdata); @@ -494,7 +494,7 @@ Signed-off-by: Johannes Berg struct ieee80211_bss_conf *old[IEEE80211_MLD_MAX_NUM_LINKS] = { [0] = &sdata->vif.bss_conf, }; -@@ -2566,7 +2566,7 @@ int ieee80211_reconfig(struct ieee80211_ +@@ -2569,7 +2569,7 @@ int ieee80211_reconfig(struct ieee80211_ for (link_id = 0; link_id < ARRAY_SIZE(sdata->vif.link_conf); link_id++) { @@ -503,7 +503,7 @@ Signed-off-by: Johannes Berg !(sdata->vif.active_links & BIT(link_id))) continue; -@@ -2598,12 +2598,12 @@ int ieee80211_reconfig(struct ieee80211_ +@@ -2601,12 +2601,12 @@ int ieee80211_reconfig(struct ieee80211_ if (sdata->vif.bss_conf.mu_mimo_owner) changed |= BSS_CHANGED_MU_GROUPS; @@ -518,7 +518,7 @@ Signed-off-by: Johannes Berg changed |= BSS_CHANGED_ASSOC | BSS_CHANGED_ARP_FILTER | BSS_CHANGED_PS; -@@ -2641,7 +2641,7 @@ int ieee80211_reconfig(struct ieee80211_ +@@ -2644,7 +2644,7 @@ int ieee80211_reconfig(struct ieee80211_ case NL80211_IFTYPE_AP: changed |= BSS_CHANGED_P2P_PS; @@ -527,7 +527,7 @@ Signed-off-by: Johannes Berg ieee80211_vif_cfg_change_notify(sdata, BSS_CHANGED_SSID); else -@@ -2655,7 +2655,7 @@ int ieee80211_reconfig(struct ieee80211_ +@@ -2658,7 +2658,7 @@ int ieee80211_reconfig(struct ieee80211_ if (sdata->vif.type == NL80211_IFTYPE_AP) { changed |= BSS_CHANGED_AP_PROBE_RESP; 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 1b8d341fa65..b86d9af0317 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 @@ -18,7 +18,7 @@ --- a/include/net/mac80211.h +++ b/include/net/mac80211.h -@@ -1714,6 +1714,7 @@ enum ieee80211_smps_mode { +@@ -1715,6 +1715,7 @@ enum ieee80211_smps_mode { * * @power_level: requested transmit power (in dBm), backward compatibility * value only that is set to the minimum of all interfaces @@ -26,7 +26,7 @@ * * @chandef: the channel definition to tune to * @radar_enabled: whether radar detection is enabled -@@ -1734,6 +1735,7 @@ enum ieee80211_smps_mode { +@@ -1735,6 +1736,7 @@ enum ieee80211_smps_mode { struct ieee80211_conf { u32 flags; int power_level, dynamic_ps_timeout; @@ -56,7 +56,7 @@ __NL80211_ATTR_AFTER_LAST, --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -3079,6 +3079,19 @@ static int ieee80211_get_tx_power(struct +@@ -3081,6 +3081,19 @@ static int ieee80211_get_tx_power(struct return 0; } @@ -76,7 +76,7 @@ static void ieee80211_rfkill_poll(struct wiphy *wiphy) { struct ieee80211_local *local = wiphy_priv(wiphy); -@@ -5009,6 +5022,7 @@ const struct cfg80211_ops mac80211_confi +@@ -5011,6 +5024,7 @@ const struct cfg80211_ops mac80211_confi .set_wiphy_params = ieee80211_set_wiphy_params, .set_tx_power = ieee80211_set_tx_power, .get_tx_power = ieee80211_get_tx_power, @@ -105,7 +105,7 @@ u32 offchannel_flag; offchannel_flag = local->hw.conf.flags & IEEE80211_CONF_OFFCHANNEL; -@@ -157,6 +157,12 @@ static u32 ieee80211_hw_conf_chan(struct +@@ -159,6 +159,12 @@ static u32 ieee80211_hw_conf_chan(struct } rcu_read_unlock(); @@ -118,7 +118,7 @@ if (local->hw.conf.power_level != power) { changed |= IEEE80211_CONF_CHANGE_POWER; local->hw.conf.power_level = power; -@@ -766,6 +772,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_ +@@ -768,6 +774,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_ IEEE80211_RADIOTAP_MCS_HAVE_BW; local->hw.radiotap_vht_details = IEEE80211_RADIOTAP_VHT_KNOWN_GI | IEEE80211_RADIOTAP_VHT_KNOWN_BANDWIDTH; -- 2.47.2