]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
mac80211: Update to version 6.1.145-1 16948/head
authorHauke Mehrtens <hauke@hauke-m.de>
Fri, 15 Nov 2024 23:08:28 +0000 (00:08 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Wed, 16 Jul 2025 17:47:22 +0000 (19:47 +0200)
This updates mac80211 to version 6.1.145-1. This code is based on Linux
6.1.145 and contains all fixes included in the upstream wireless
subsystem from that kernel version. This includes many bugfixes and also
some security fixes.

The removed patches were applied upstream.

Link: https://github.com/openwrt/openwrt/pull/16948
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
69 files changed:
package/kernel/mac80211/Makefile
package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch
package/kernel/mac80211/patches/ath/431-add_platform_eeprom_support_to_ath5k.patch
package/kernel/mac80211/patches/ath10k/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch
package/kernel/mac80211/patches/ath11k/0001-wifi-ath11k-stop-tx-queues-immediately-upon-firmware.patch
package/kernel/mac80211/patches/ath11k/0008-wifi-ath11k-add-support-to-configure-channel-dwell-t.patch
package/kernel/mac80211/patches/ath11k/0011-wifi-ath11k-fix-monitor-vdev-creation-with-firmware-.patch
package/kernel/mac80211/patches/ath11k/0020-wifi-ath11k-update-ce-configurations-for-IPQ5018.patch
package/kernel/mac80211/patches/ath11k/0021-wifi-ath11k-remap-ce-register-space-for-IPQ5018.patch
package/kernel/mac80211/patches/ath11k/0029-wifi-ath11k-Add-support-to-configure-FTM-responder-r.patch
package/kernel/mac80211/patches/ath11k/0042-wifi-ath11k-Add-tx-ack-signal-support-for-management.patch
package/kernel/mac80211/patches/ath11k/0048-wifi-ath11k-fix-BUFFER_DONE-read-on-monitor-ring-rx-.patch
package/kernel/mac80211/patches/ath11k/0050-wifi-ath11k-Configure-the-FTM-responder-role-using-f.patch
package/kernel/mac80211/patches/ath11k/0051-wifi-ath11k-fix-rssi-station-dump-not-updated-in-QCN.patch
package/kernel/mac80211/patches/ath11k/0059-wifi-ath11k-print-a-warning-when-crypto_alloc_shash-.patch
package/kernel/mac80211/patches/ath11k/0061-wifi-ath11k-fix-undefined-behavior-with-__fls-in-dp.patch
package/kernel/mac80211/patches/ath11k/0066-wifi-ath11k-Fix-incorrect-update-of-radiotap-fields.patch
package/kernel/mac80211/patches/ath11k/0071-wifi-ath11k-driver-settings-for-MBSSID-and-EMA.patch
package/kernel/mac80211/patches/ath11k/0081-wifi-ath11k-remove-unused-function-ath11k_tm_event_w.patch [deleted file]
package/kernel/mac80211/patches/ath11k/0082-wifi-ath11k-factory-test-mode-support.patch
package/kernel/mac80211/patches/ath11k/0083-wifi-ath11k-Allow-ath11k-to-boot-without-caldata-in-.patch
package/kernel/mac80211/patches/ath11k/0091-wifi-ath11k-Split-coldboot-calibration-hw_param.patch
package/kernel/mac80211/patches/ath11k/0092-wifi-ath11k-Add-coldboot-calibration-support-for-QCN.patch
package/kernel/mac80211/patches/ath11k/0093-wifi-ath11k-Remove-cal_done-check-during-probe.patch
package/kernel/mac80211/patches/ath11k/0095-wifi-ath11k-add-chip-id-board-name-while-searching-b.patch
package/kernel/mac80211/patches/ath11k/903-ath11k-support-setting-FW-memory-mode-via-DT.patch
package/kernel/mac80211/patches/ath5k/432-ath5k_add_pciids.patch [deleted file]
package/kernel/mac80211/patches/ath9k/410-ath9k_allow_adhoc_and_ap.patch
package/kernel/mac80211/patches/ath9k/450-ath9k-enabled-MFP-capability-unconditionally.patch
package/kernel/mac80211/patches/ath9k/500-ath9k_eeprom_debugfs.patch
package/kernel/mac80211/patches/ath9k/501-ath9k_ahb_init.patch
package/kernel/mac80211/patches/ath9k/512-ath9k_channelbw_debugfs.patch
package/kernel/mac80211/patches/ath9k/530-ath9k_extra_leds.patch
package/kernel/mac80211/patches/ath9k/542-ath9k_debugfs_diag.patch
package/kernel/mac80211/patches/ath9k/543-ath9k_entropy_from_adc.patch
package/kernel/mac80211/patches/ath9k/553-ath9k_of_gpio_mask.patch
package/kernel/mac80211/patches/brcm/863-brcmfmac-add-in-driver-tables-with-country-codes.patch
package/kernel/mac80211/patches/brcm/865-brcmfmac-Read-alternative-firmware-names-from-DT.patch
package/kernel/mac80211/patches/build/070-remove-broken-wext-select.patch
package/kernel/mac80211/patches/build/236-fix-genlmsg_multicast_allns-build-error-on-kernel-6.6.59.patch [deleted file]
package/kernel/mac80211/patches/build/300-backports-handle-genlmsg_multicast_allns-upstream-ba.patch
package/kernel/mac80211/patches/subsys/210-ap_scan.patch
package/kernel/mac80211/patches/subsys/306-01-v6.2-wifi-mac80211-add-internal-handler-for-wake_tx_queue.patch
package/kernel/mac80211/patches/subsys/306-02-v6.2-wifi-mac80211-add-wake_tx_queue-callback-to-drivers.patch
package/kernel/mac80211/patches/subsys/306-03-v6.2-wifi-mac80211-Drop-support-for-TX-push-path.patch
package/kernel/mac80211/patches/subsys/306-04-v6.2-wifi-realtek-remove-duplicated-wake_tx_queue.patch
package/kernel/mac80211/patches/subsys/310-v6.2-mac80211-add-support-for-restricting-netdev-features.patch
package/kernel/mac80211/patches/subsys/319-wifi-mac80211-mesh-fast-xmit-support.patch
package/kernel/mac80211/patches/subsys/320-wifi-mac80211-use-mesh-header-cache-to-speed-up-mesh.patch
package/kernel/mac80211/patches/subsys/325-wifi-mac80211-introduce-ieee80211_refresh_tx_agg_ses.patch
package/kernel/mac80211/patches/subsys/326-wifi-mac80211-add-mesh-fast-rx-support.patch
package/kernel/mac80211/patches/subsys/327-wifi-mac80211-add-support-for-letting-drivers-regist.patch
package/kernel/mac80211/patches/subsys/332-wifi-iwlwifi-mvm-support-flush-on-AP-interfaces.patch
package/kernel/mac80211/patches/subsys/333-wifi-mac80211-add-flush_sta-method.patch
package/kernel/mac80211/patches/subsys/334-wifi-iwlwifi-mvm-support-new-flush_sta-method.patch
package/kernel/mac80211/patches/subsys/336-v6.4-wifi-mac80211-generate-EMA-beacons-in-AP-mode.patch
package/kernel/mac80211/patches/subsys/340-cfg80211-allow-grace-period-for-DFS-available-after-.patch
package/kernel/mac80211/patches/subsys/341-v6.2-cfg80211-Update-Transition-Disable-policy-during-por.patch
package/kernel/mac80211/patches/subsys/342-v6.3-mac80211-support-minimal-EHT-rate-reporting-on-RX.patch
package/kernel/mac80211/patches/subsys/343-v6.3-wifi-mac80211-mlme-handle-EHT-channel-puncturing.patch
package/kernel/mac80211/patches/subsys/344-v6.3-0001-wifi-cfg80211-move-puncturing-bitmap-validation-from.patch
package/kernel/mac80211/patches/subsys/344-v6.3-0002-wifi-nl80211-validate-and-configure-puncturing-bitma.patch
package/kernel/mac80211/patches/subsys/344-v6.3-0003-wifi-cfg80211-include-puncturing-bitmap-in-channel-s.patch
package/kernel/mac80211/patches/subsys/344-v6.3-0004-wifi-mac80211-configure-puncturing-bitmap.patch
package/kernel/mac80211/patches/subsys/346-v6.4-wifi-mac80211-warn-only-once-on-AP-probe.patch
package/kernel/mac80211/patches/subsys/347-v6.5-wifi-mac80211-HW-restart-for-MLO.patch
package/kernel/mac80211/patches/subsys/348-v6.5-wifi-mac80211-implement-proper-AP-MLD-HW-restart.patch
package/kernel/mac80211/patches/subsys/349-v6.5-wifi-mac80211-Add-getter-functions-for-vif-MLD-state.patch
package/kernel/mac80211/patches/subsys/500-mac80211_configure_antenna_gain.patch

index d5877787d5460975a2d2980e19c9917a9d568602..ec0f5805cf5ddbe0f5ac01b58d236d06964e8374 100644 (file)
@@ -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)
index bc750d5e11ad56d4816515900a37f9d70e603187..ebc3f2555233ff72a4668e33d65c6ce00c121506 100644 (file)
@@ -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)
  {
index 136be198945f9540dfb3618c5e0e7ecf5e1a08d0..ddfd7a9895e282a646f7d9c2f0366dc9faba29b7 100644 (file)
@@ -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;
  
index e6e048577b8715db65aa11445cac8da7a83b5368..44a78951e09821ca133ecc41f0892c5010c7391f 100644 (file)
@@ -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,
index fd393926047594d5b93538d166cf5e4035fceacf..4c993312333872c4bd49f89f01f2d69bd49d8ad9 100644 (file)
@@ -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);
index b769db636f4160d05cf1cfa563323c10005b9326..89be47600c9cfca2e404ffb5e1968b836711165d 100644 (file)
@@ -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);
        }
  
index dc51960be1835adb5d2688a56ed8e425150a7900..c65707c2abd673b4e5b2b280fb8946fcb738e0de 100644 (file)
@@ -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);
index 95643a95fec59250f6c4d843b14f3f7097d5c080..12afc8a284c6a817c03a490b816d53545cca744f 100644 (file)
@@ -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[];
  
index 1c74c4f01f880e31f220939889f7657bc062077d..1df17d62d9fef0182d4d53689c11afd4784bb312 100644 (file)
@@ -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;
index 85494744acbaed8c0f73787cb40f36e79fc043c6..946e2875aaf9413760e4196510e83c521d1f67d3 100644 (file)
@@ -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);
  
index 68f14e2ac7ad2b05b69b52fe73d601deac6e16ab..b582c7ebf3a249e7d3336a5b25996d53ddab438d 100644 (file)
@@ -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;
        }
  
index 0c7fc42d57c495aaadd30bbaac91fe41a1e4d13d..fb842499c88ab0f976fb9f7e9a79e5c6abcf2015 100644 (file)
@@ -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);
index 3bd00ff73181e9e7be7eea7807e5572eba4f7793..9dc3328c8de118dfc5b27a2d855900bde2032eaa 100644 (file)
@@ -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);
  
index 835dece1fe715d7d20f6dd064d8c3a43b7e3e2f7..2970994c63710957de5256a37cf52077091fbea3 100644 (file)
@@ -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: {
index 6a4290c84af6e4a217730044b30a81cabf6f1b13..460f1fc939cddc89e0355c8211143a31c9c2322e 100644 (file)
@@ -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);
index 893081de316806a910f0c7c2eb1db2a611ac81d4..f2bdd73419be7eae140c5d2f3a96b7dc18fbebd6 100644 (file)
@@ -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;
        }
  
index 4f94580100f399e9ef581d46adf64a6126a33007..38e212a87332b6a83fbd3b868bc502b5e821ba18 100644 (file)
@@ -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 =
index 3c442770bb2cd8708f5694151d595ecb4c094a08..6281219307d90e6ed4b3da0649b69335fb88ed4b 100644 (file)
@@ -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 (file)
index b5dc83f..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-From 86f85575a3f6a20cef1c8bb98e78585fe3a53ccc Mon Sep 17 00:00:00 2001
-From: Govindaraj Saminathan <quic_gsaminat@quicinc.com>
-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 <quic_gsaminat@quicinc.com>
-Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
-Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
-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)
index fc7bb30d9e90639ba40ac575aea3b4b0e7829455..a1d9a549d0cd6e945147ee90a88a8cc4ee51ce61 100644 (file)
@@ -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;
  
index f237199ff8dad7ecd0ba1ed47a64c90dd8736ed2..aa1b5a2afe1b4913865f042811fc499511b0c129 100644 (file)
@@ -30,7 +30,7 @@ Link: https://lore.kernel.org/r/20230517135934.16408-5-quic_rajkbhag@quicinc.com
   */
  
  #include <linux/elf.h>
-@@ -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)) {
index 47053546860ddfdf7db5ba203f42a0d7862bc55e..f79597163d3386efb3ac36eea32852741bb3b594 100644 (file)
@@ -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;
                        }
  
index 1b0dbc4ad161de934baa7ded5dcafcd4b57cbbf6..1bf449e809532e3b062feeedf5495edbd2f569aa 100644 (file)
@@ -122,7 +122,7 @@ Link: https://lore.kernel.org/r/20230726141032.3061-3-quic_rajkbhag@quicinc.com
  #include <linux/of.h>
  #include <linux/of_address.h>
  #include <linux/ioport.h>
-@@ -2842,6 +2843,33 @@ int ath11k_qmi_firmware_start(struct ath
+@@ -2851,6 +2852,33 @@ int ath11k_qmi_firmware_start(struct ath
        return 0;
  }
  
index 513ea3f0b9af448a032e6a1e2c883ca35ca64b55..d798c899c75ac219ac50837c69787db85a470051 100644 (file)
@@ -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;
  
index 662e28f4ef8d182cb1087eb245df7d904ca03526..a570072ae66a38b3b0aa5584ebdea3508828fbbd 100644 (file)
@@ -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);
  
index 71373b2136f76a99b01b275d4db75d1ff2fe3788..7fdb9645a64675f77e55e505e2c06c6c89fd0cfa 100644 (file)
@@ -31,7 +31,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
        {
                .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 <robimarko@gmail.com>
  
        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 (file)
index bd0e670..0000000
+++ /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 }
- };
index b2f2763e8e16d948a35b953357107047bbd910d9..3144f8291af82cbd2bfdb3b26b60e5a7f4dc8573 100644 (file)
@@ -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) },
index f424ca530be8609471823a43c7c50ddd3ec56901..50ba45c2a82549d82cfcb07e8997aa62f9912d4a 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
 
 --- 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 <mail@david-bauer.net>
  
        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;
        }
  
index 2f5e75be8a305162a7ef65befa092cc514e2b791..bf6ae09a7861d01c5d3f665bd06ba0d06e3f901f 100644 (file)
@@ -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);
  
index 740ddc39dc3d039a927fe02190e1765acd5126ae..f4d17f5f57e32964e565a2485d690951c3dc2c48 100644 (file)
@@ -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;
  
index 94a191e0d804520a6633f4c3ce6ca08119aa39e6..70826d8179240cb0ee91f4cc3b7a996c59c60f41 100644 (file)
@@ -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);
index 74506657e0f26c1d333af5230a2d4e1dfb0f5d1e..f4b93fb9d81ee8b0913438a82ecbef4be2a24f4c 100644 (file)
  
 --- 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 */
  
  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);
index aaf1acb32d9e8b728811c8f6a4f7edee742f7954..387d7eda4b2a895526f03295d9e705f230ed6a94 100644 (file)
@@ -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
index 6acc864d1e10e62bc531f729bc20b1da1e031a84..93a624e10dcaac5108b1cdc07fdd2d3dd969705b 100644 (file)
@@ -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);
  
index 6d1820ecb72d1ab0af5ad87f507e9099c2340838..46dc216765673626ca7f7f0bf64bce32d6191622 100644 (file)
@@ -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;
  
index 25191b6439ee54804d71434cb26a1a154621bc42..e2aa84639ddfb965c484db275a356a8921a4eaeb 100644 (file)
@@ -49,9 +49,9 @@ Signed-off-by: RafaÅ‚ MiÅ‚ecki <rafal@milecki.pl>
  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);
 +
index 8df285f8b13781b8eaa981f015b4c80f77392474..c5b14134e9eb56278ef29fa9480670444fdf7740 100644 (file)
@@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
  #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;
  }
index 121b7faad93795e59ca4396a03000b7dbadd7987..99be3c0636cd87f18bdfbb23632fe7e7b28a9c6c 100644 (file)
@@ -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 (file)
index 406b0a2..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-From e0f83d268974dab0361d11904dfc9acec53f96a6 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet@google.com>
-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]  <TASK>
-[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 <edumazet@google.com>
-Cc: James Chapman <jchapman@katalix.com>
-Cc: Tom Parkin <tparkin@katalix.com>
-Cc: Johannes Berg <johannes.berg@intel.com>
-Link: https://patch.msgid.link/20241011171217.3166614-1-edumazet@google.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- 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;
index 5ab6bb736da1f3619b2d9e171938e2c3bf9c0ea2..7ad5eb96f94a9f646ff4de053af344bde29ef02a 100644 (file)
@@ -17,8 +17,8 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 
 --- 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) || \
index 03732681e0fc3ab789eb2a89a73213d17c75ee90..e6ddb867a0640ef8627b23bbc35bb764a02d57d1 100644 (file)
@@ -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:
index 606ca335b94abca01f646346ee20804d15b5d882..5d610ac3bad64cf6ece7fed2c8b5213ee1ed7559 100644 (file)
@@ -51,7 +51,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
   *
   * 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 <johannes.berg@intel.com>
   * @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 <johannes.berg@intel.com>
   */
  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 <johannes.berg@intel.com>
   */
  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 <johannes.berg@intel.com>
   *
   * 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 <johannes.berg@intel.com>
   */
  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 <johannes.berg@intel.com>
   */
  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_
  }
  
  /**
index b8554fb6553879734bf2cb7212c1e410c666e3e3..4c69b03bb3336b88aba258c60fa3df31cbc5d466 100644 (file)
@@ -36,7 +36,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        .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 <johannes.berg@intel.com>
        .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 <johannes.berg@intel.com>
        .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 <johannes.berg@intel.com>
        .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,
index e7452eb3a71fc4ffb8c5d55da9d25cea81fe16a5..b033da7d542ca7e0b5689531ff7526460e3f1704 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
 
 --- 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 <johannes.berg@intel.com>
                                    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 <johannes.berg@intel.com>
  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 <johannes.berg@intel.com>
        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 <johannes.berg@intel.com>
  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 <johannes.berg@intel.com>
        .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 <johannes.berg@intel.com>
        .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 <johannes.berg@intel.com>
        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 <johannes.berg@intel.com>
  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 <johannes.berg@intel.com>
  
        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 <johannes.berg@intel.com>
                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 <johannes.berg@intel.com>
                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 <johannes.berg@intel.com>
        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 <johannes.berg@intel.com>
        }
        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)) {
index 9afefa38ccd31944939783e9b4fec9f5c616160d..7d60b69cb3878fce01ef21e4fc5cff61208f01cf 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        .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,
index ecc70489838a09f376e458b32cf446224b70b03d..7a5a82e3deaa619d75e2e527e184b58bd4bb96af 100644 (file)
@@ -59,7 +59,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                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 <nbd@nbd.name>
   * @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 <nbd@nbd.name>
  
 --- 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;
index 05324b10544fc10b7703faf46ab233721b0dafb4..2b9c35a7991a6c608471fd4197a5ed17746a3bbe 100644 (file)
@@ -68,7 +68,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  };
  
  #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 <nbd@nbd.name>
  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 <nbd@nbd.name>
        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 <nbd@nbd.name>
                        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 <nbd@nbd.name>
                        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 <nbd@nbd.name>
                        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 <nbd@nbd.name>
                        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 <nbd@nbd.name>
  /**
   * 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;
  
index 655626acd231b10591272074e241fec89e36b08b..647f0f4c81584a7332b2be3df07b8ab4c19951ba 100644 (file)
@@ -106,7 +106,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  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);
index b33574a35ade3b13417fa87b7549722522e6f6ea..0f250e880b68c77c2c9a8b81aad97fd0ee3d77ed 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
 
 --- 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);
  
  /**
index 4251bfdb947daca29716f76fe2c044b606acf29e..5e60a48f82373dcffae58b99fe6f337b32905ab1 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- 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 <nbd@nbd.name>
        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 <nbd@nbd.name>
        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 <nbd@nbd.name>
                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);
index 8ca18df2da1086b5ed48f34230abd53af73dffea..00dd5aec409bcbc36249e0e2cea16ff8057b940a 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- 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 <nbd@nbd.name>
   */
  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 <nbd@nbd.name>
                                         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 <nbd@nbd.name>
  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 <nbd@nbd.name>
  };
  
  #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
index 97b1454e2ec64abe68faca50c4cf249960ef3ae2..507d322d7c7abc724101c71d3f18661333fc2ad7 100644 (file)
@@ -12,7 +12,7 @@ Reviewed-by: Greenman, Gregory <gregory.greenman@intel.com>
 
 --- 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 <gregory.greenman@intel.com>
        /* 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;
  
index 25a101e86cf0e5089f6e8450b87ef2eb9c1f279d..66abec1a7dffd5da9a66790c9d94a4162ed31736 100644 (file)
@@ -12,7 +12,7 @@ Reviewed-by: Greenman, Gregory <gregory.greenman@intel.com>
 
 --- 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 <gregory.greenman@intel.com>
   * @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);
index eae5a38e2f3b41bae6833e675bb760e4e9d13942..acc7d955a37d1e6cd0455de43aace1d588b7664f 100644 (file)
@@ -11,7 +11,7 @@ Reviewed-by: Greenman, Gregory <gregory.greenman@intel.com>
 
 --- 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 <gregory.greenman@intel.com>
  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,
index dd8185ba19441f1e11db62487f5831acde0a361d..b97b5e174e72b617dfb6bccc9f013dc6a399686e 100644 (file)
@@ -38,7 +38,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
 
 --- 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 <johannes.berg@intel.com>
        }
  
        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 <johannes.berg@intel.com>
                        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 <johannes.berg@intel.com>
  {
        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 <johannes.berg@intel.com>
        } 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 <johannes.berg@intel.com>
  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,
index 8f36e1880b1c69270d28e4519570736f35987fa7..766eccfebff90e223ec8077b74a24dfd8152a338 100644 (file)
@@ -113,7 +113,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  {
 --- 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);
index 915bf735bf081a3577c9b0b4e8f5032cc6d501fd..a79b872e909484a83f5d63cb05145c547bef3297 100644 (file)
@@ -76,7 +76,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  
 --- 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 <johannes.berg@intel.com>
                } 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 <johannes.berg@intel.com>
  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 <johannes.berg@intel.com>
  {
        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 <johannes.berg@intel.com>
                               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 <johannes.berg@intel.com>
  {
        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 <johannes.berg@intel.com>
  {
        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;
  
index 4d4afb5263119ccd7f8fb508c453cd0db3f8ccb8..10747cc5a620e7376ac8f45c717f30afa63129e8 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
 
 --- 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 <johannes.berg@intel.com>
  };
  
  /**
-@@ -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 <johannes.berg@intel.com>
   * @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 <johannes.berg@intel.com>
   * @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 <johannes.berg@intel.com>
        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 <johannes.berg@intel.com>
                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) {
index 1ad2823053b903ed264d70ef47951f96912c6522..4bd8f2f8806e3e2060f6b61e7f4ddc7a244deb21 100644 (file)
@@ -62,7 +62,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        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 <johannes.berg@intel.com>
        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 <johannes.berg@intel.com>
  {
        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 <johannes.berg@intel.com>
                } 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 <johannes.berg@intel.com>
  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 <johannes.berg@intel.com>
        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 <johannes.berg@intel.com>
        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 <johannes.berg@intel.com>
                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;
index 408b531a905d6d0129c1b62e6598307bbbe3a3d5..6ff4517aa0635f41193a10a63cc8a5a4a8a924c8 100644 (file)
@@ -120,7 +120,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                        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 <johannes.berg@intel.com>
                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);
index f530e53019aacccd5b17ee609e50932aadd9d1f1..087ecec7c62d6ebca11b105887b16cc26724e99f 100644 (file)
@@ -137,7 +137,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  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 <johannes.berg@intel.com>
        if (!cfg80211_reg_can_beacon_relax(&rdev->wiphy, &params->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;
  
index 3ab60745ffdd0a98d37befc681dd10f12b02a32f..a269f82ba8931f32b0fa772bd49fde07eacb3474 100644 (file)
@@ -91,7 +91,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
   * 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 <johannes.berg@intel.com>
  
        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 <johannes.berg@intel.com>
                /* 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 <johannes.berg@intel.com>
  {
        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 <johannes.berg@intel.com>
        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 <johannes.berg@intel.com>
  {
        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 <johannes.berg@intel.com>
  
        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 <johannes.berg@intel.com>
  {
        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);
  
index 5710626db3a8bf142fada6929a3502d405fe4ce6..a2784421510303baa5832595f5fb6cafc6c9dd3e 100644 (file)
@@ -59,7 +59,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        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 <johannes.berg@intel.com>
        /*
         * 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 <johannes.berg@intel.com>
  
        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 <johannes.berg@intel.com>
  
        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,
index 60d2ec292631667e89de3b09b6d0cfa7599cd811..363de8d7e5c6d1ac7e114602d99bde18dcc1a0fa 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
 
 --- 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;
  
index 9103e65bd5b87dce5d6c1f40d0a34bb9182ba22c..4e18dfa080c7e70f9c36dccf65c7f02921d2b89f 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
 
 --- 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 <johannes.berg@intel.com>
                }
  
                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 <johannes.berg@intel.com>
                        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 <johannes.berg@intel.com>
                                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;
                }
index b6f92f11ea4e540cf65c1dbd3f72a97986e025c9..52f7dfa07f0a6b84ec7c4a7fd384630cbaae3ea0 100644 (file)
@@ -53,7 +53,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  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 <johannes.berg@intel.com>
  
                        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;
  
index 9343e9b76ba3548db915c7de1fd7da609a379fdf..8c1817094884e88b19686e35e3dbfc93fcc19c53 100644 (file)
@@ -33,7 +33,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
 
 --- 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 <johannes.berg@intel.com>
        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 <johannes.berg@intel.com>
             "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 <johannes.berg@intel.com>
                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 <johannes.berg@intel.com>
                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 <johannes.berg@intel.com>
                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 <johannes.berg@intel.com>
                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 <johannes.berg@intel.com>
                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 <johannes.berg@intel.com>
                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 <johannes.berg@intel.com>
                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 <johannes.berg@intel.com>
  
        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 <johannes.berg@intel.com>
                                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 <johannes.berg@intel.com>
                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 <johannes.berg@intel.com>
                        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 <johannes.berg@intel.com>
                        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 <johannes.berg@intel.com>
                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 <johannes.berg@intel.com>
            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 <johannes.berg@intel.com>
                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 <johannes.berg@intel.com>
                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 <johannes.berg@intel.com>
                        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 <johannes.berg@intel.com>
                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 <johannes.berg@intel.com>
        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 <johannes.berg@intel.com>
                        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 <johannes.berg@intel.com>
                            !(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 <johannes.berg@intel.com>
                                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 <johannes.berg@intel.com>
                                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;
  
index 1b8d341fa659fecfa9bd39463d016c71134bd2c5..b86d9af0317011cfe8593a828bb03a385bbe9d14 100644 (file)
@@ -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,
        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();
  
        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;