diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile index d5877787d5..ec0f5805cf 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 bc750d5e11..ebc3f25552 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 136be19894..ddfd7a9895 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 e6e048577b..44a78951e0 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 fd39392604..4c99331233 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 b769db636f..89be47600c 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 dc51960be1..c65707c2ab 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 95643a95fe..12afc8a284 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 1c74c4f01f..1df17d62d9 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 85494744ac..946e2875aa 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 68f14e2ac7..b582c7ebf3 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 0c7fc42d57..fb842499c8 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 3bd00ff731..9dc3328c8d 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 835dece1fe..2970994c63 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 6a4290c84a..460f1fc939 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 893081de31..f2bdd73419 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 4f94580100..38e212a873 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 3c442770bb..6281219307 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 b5dc83f007..0000000000 --- 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 fc7bb30d9e..a1d9a549d0 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 f237199ff8..aa1b5a2afe 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 4705354686..f79597163d 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 1b0dbc4ad1..1bf449e809 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 513ea3f0b9..d798c899c7 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 662e28f4ef..a570072ae6 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 71373b2136..7fdb9645a6 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 bd0e6707a5..0000000000 --- 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 b2f2763e8e..3144f8291a 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 f424ca530b..50ba45c2a8 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 2f5e75be8a..bf6ae09a78 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 740ddc39dc..f4d17f5f57 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 94a191e0d8..70826d8179 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 74506657e0..f4b93fb9d8 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 aaf1acb32d..387d7eda4b 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 6acc864d1e..93a624e10d 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 6d1820ecb7..46dc216765 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 25191b6439..e2aa84639d 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 8df285f8b1..c5b14134e9 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 121b7faad9..99be3c0636 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 406b0a2085..0000000000 --- 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 5ab6bb736d..7ad5eb96f9 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 03732681e0..e6ddb867a0 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 606ca335b9..5d610ac3ba 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 b8554fb655..4c69b03bb3 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 e7452eb3a7..b033da7d54 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 9afefa38cc..7d60b69cb3 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 ecc7048983..7a5a82e3de 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 05324b1054..2b9c35a799 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 655626acd2..647f0f4c81 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 b33574a35a..0f250e880b 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 4251bfdb94..5e60a48f82 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 8ca18df2da..00dd5aec40 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 97b1454e2e..507d322d7c 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 25a101e86c..66abec1a7d 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 eae5a38e2f..acc7d955a3 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 dd8185ba19..b97b5e174e 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 8f36e1880b..766eccfebf 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 915bf735bf..a79b872e90 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 4d4afb5263..10747cc5a6 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 1ad2823053..4bd8f2f880 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 408b531a90..6ff4517aa0 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 f530e53019..087ecec7c6 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 3ab60745ff..a269f82ba8 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 5710626db3..a278442151 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 60d2ec2926..363de8d7e5 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 9103e65bd5..4e18dfa080 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 b6f92f11ea..52f7dfa07f 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 9343e9b76b..8c18170948 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 1b8d341fa6..b86d9af031 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;