mac80211: update to version 6.12.61
authorHauke Mehrtens <hauke@hauke-m.de>
Thu, 11 Dec 2025 22:25:19 +0000 (23:25 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 14 Dec 2025 21:41:16 +0000 (22:41 +0100)
This contains the following commits:
```
git log --oneline   v6.12.52...v6.12.61 -- drivers/net/wireless/ net/mac80211/ net/wireless/
a1eb56723b32 wifi: ath12k: correctly handle mcast packets for clients
c0a9c2c1b7b9 wifi: mac80211: use wiphy_hrtimer_work for csa.switch_work
d4caee32a9f8 wifi: cfg80211: add an hrtimer based delayed work item
6455948c8aab wifi: mac80211: reject address change while connecting
80dc5a2ce5b7 wifi: ath11k: Clear affinity hint before calling ath11k_pcic_free_irq() in error path
acd24d509227 wifi: mac80211: skip rate verification for not captured PSDUs
53cf801b8555 wifi: ath11k: zero init info->status in wmi_process_mgmt_tx_comp()
e8fa86b0bd96 wifi: mac80211_hwsim: Limit destroy_on_close radio removal to netgroup
77d4afd6c78b Revert "wifi: ath10k: avoid unnecessary wait for service ready message"
07d862c7de3d wifi: ath12k: Increase DP_REO_CMD_RING_SIZE to 256
522734fc807c wifi: mac80211: Track NAN interface start/stop
8db790c2491e wifi: ath10k: Fix connection after GTK rekeying
72f1984246e6 wifi: rtw89: renew a completion for each H2C command waiting C2H event
336da4414300 wifi: rtw89: obtain RX path from ppdu status IE00
da91687f01f4 wifi: mt76: mt7996: fix memory leak on mt7996_mcu_sta_key_tlv error
a534dd44b70e wifi: mt76: mt76_eeprom_override to int
aa5ed215cfe8 wifi: mt76: mt7996: Temporarily disable EPCS
efe2ef24feab wifi: mt76: mt7921: Add 160MHz beamformee capability for mt7922 device
5de410dfb4d9 wifi: mac80211: Fix HE capabilities element check
f157d1cb2cdc wifi: iwlwifi: fw: Add ASUS to PPAG and TAS list
c9df78e84e85 wifi: mac80211: Fix 6 GHz Band capabilities element advertisement in lower bands
958234997dd5 wifi: rtw89: fix BSSID comparison for non-transmitted BSSID
ca18975c4de2 wifi: rtw89: wow: remove notify during WoWLAN net-detect
bc1ca06998c1 wifi: rtw88: sdio: use indirect IO for device registers before power-on
8ebef59d0294 wifi: rtw89: print just once for unknown C2H events
5596a90c8952 wifi: mac80211: fix key tailroom accounting leak
23b8682f05ec wifi: mac80211: don't mark keys for inactive links as uploaded
e3373f10c6a6 wifi: ath11k: avoid bit operation on key flags
50f50dd024b4 wifi: ath11k: add support for MU EDCA
2a6cd5951ba8 wifi: ath12k: free skb during idr cleanup callback
775e37df2acc wifi: ath11k: Add missing platform IDs for quirk table
c4840991ee4c wifi: ath10k: Fix memory leak on unsupported WMI command
a6eed58249e7 wifi: brcmfmac: fix crash while sending Action Frames in standalone AP Mode
57100b87c778 wifi: ath12k: fix read pointer after free in ath12k_mac_assign_vif_to_vdev()
4a63523d3541 wifi: cfg80211: Add missing lock in cfg80211_check_and_end_cac()
e9fd43b799d2 wifi: rtw89: avoid possible TX wait initialization race
b419093e5e42 wifi: mt76: mt7921u: Add VID/PID for Netgear A7500
feb1774aaf85 wifi: mt76: mt7925u: Add VID/PID for Netgear A9000
bd3ac455a88d wifi: ath11k: HAL SRNG: don't deinitialize and re-initialize again
8055133a9f64 wifi: rtw89: avoid circular locking dependency in ser_state_run()
1c873416758f wifi: mac80211: fix Rx packet handling when pubsta information is not available
6e7d9fa61d7d wifi: ath10k: avoid unnecessary wait for service ready message
8d4f6ab4c53e wifi: ath12k: fix wrong logging ID used for CE
fc00890c55e3 wifi: mt76: mt7915: fix mt7981 pre-calibration
e18c4e6ba36c wifi: mt76: mt7996: Convert mt7996_wed_rro_addr to LE
f481404a9826 wifi: mt76: mt7996: Fix RX packets configuration for primary WED device
57519239c76c wifi: mt76: fix potential memory leak in mt76_wmac_probe()
27c8e2e4b56f wifi: iwlwifi: Remove redundant header files
605402433eb8 wifi: mwifiex: send world regulatory domain to driver
```

The removed patch was added upstream.

Link: https://github.com/openwrt/openwrt/pull/21134
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
29 files changed:
package/kernel/mac80211/Makefile
package/kernel/mac80211/patches/ath10k/930-ath10k_add_tpt_led_trigger.patch
package/kernel/mac80211/patches/ath10k/975-ath10k-use-tpt-trigger-by-default.patch
package/kernel/mac80211/patches/ath10k/981-ath10k-adjust-tx-power-reduction-for-US-regulatory-d.patch
package/kernel/mac80211/patches/ath10k/988-ath10k-always-use-mac80211-loss-detection.patch
package/kernel/mac80211/patches/ath10k/991-ath10k-support-flush_sta-method.patch
package/kernel/mac80211/patches/ath11k/453-ath11k-add-ath11k_mac_op_flush_sta-to-properly-flush.patch
package/kernel/mac80211/patches/ath11k/903-ath11k-support-setting-FW-memory-mode-via-DT.patch
package/kernel/mac80211/patches/ath12k/001-wifi-ath12k-add-11d-scan-offload-support-and-handle-country-code-for-WCN7850.patch
package/kernel/mac80211/patches/ath12k/002-wifi-ath12k-correctly-handle-mcast-packets-for-clien.patch [deleted file]
package/kernel/mac80211/patches/brcm/870-02-rpi-6.12-brcmfmac-Prefer-a-ccode-from-OTP-over-nvram-file.patch
package/kernel/mac80211/patches/brcm/870-05-rpi-6.12-brcmfmac-Fix-interoperating-DPP-and-other-encryption.patch
package/kernel/mac80211/patches/brcm/871-brcmfmac-disable-dump_survey-on-bcm2835.patch
package/kernel/mac80211/patches/build/140-trace_backport.patch
package/kernel/mac80211/patches/build/230-fix-init_vqs-build-error-on-kernel-6.6.patch
package/kernel/mac80211/patches/rtl/019-v6.13-wifi-rtw88-Parse-the-RX-descriptor-with-a-single-fun.patch
package/kernel/mac80211/patches/rtl/030-v6.13-wifi-rtw88-Enable-data-rate-fallback-for-older-chips.patch
package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch
package/kernel/mac80211/patches/subsys/210-ap_scan.patch
package/kernel/mac80211/patches/subsys/320-mac80211-add-AQL-support-for-broadcast-packets.patch
package/kernel/mac80211/patches/subsys/330-wifi-cfg80211-add-option-for-vif-allowed-radios.patch
package/kernel/mac80211/patches/subsys/334-wifi-cfg80211-pass-net_device-to-.set_monitor_channel.patch
package/kernel/mac80211/patches/subsys/335-wifi-mac80211-add-flag-to-opt-out-of-virtual-monitor.patch
package/kernel/mac80211/patches/subsys/337-wifi-mac80211-add-support-for-the-monitor-SKIP_TX-fl.patch
package/kernel/mac80211/patches/subsys/341-wifi-mac80211-fix-vif-addr-when-switching-from-monit.patch
package/kernel/mac80211/patches/subsys/342-wifi-mac80211-Support-EHT-1024-aggregation-size-in-T.patch
package/kernel/mac80211/patches/subsys/350-wifi-mac80211-Add-link-iteration-macro-for-link-data.patch
package/kernel/mac80211/patches/subsys/351-wifi-mac80211-extend-beacon-monitoring-for-MLO.patch
package/kernel/mac80211/patches/subsys/352-wifi-mac80211-extend-connection-monitoring-for-MLO.patch

index 80ffb9f598cb062c1d508de181212bc4c46b4724..93f664dbb4b292f5256c1b804920267a676f4312 100644 (file)
@@ -10,13 +10,13 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=mac80211
 
-PKG_VERSION:=6.12.52
+PKG_VERSION:=6.12.61
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-2.0-only
 PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources/
-PKG_HASH:=ed6ef4c67e08b294ed1101c7cc5ae584a5f338c99ef95362fa3921eb6d207f5d
+PKG_HASH:=9db2f836dba7f38ad68f8798720ad4360bce6a3557bde02b88b3a4f068c77118
 
 PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(if $(BUILD_VARIANT),$(PKG_NAME)-$(BUILD_VARIANT)/)backports-$(PKG_VERSION)
index c71123a8fee74be6fbc1ebf187ff62c9cf0a6303..ad43dcef90a5396ad3fd6f7fcdbff86527518e1a 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath10k/mac.c
 +++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -9924,6 +9924,21 @@ static int ath10k_mac_init_rd(struct ath
+@@ -9932,6 +9932,21 @@ static int ath10k_mac_init_rd(struct ath
        return 0;
  }
  
@@ -22,7 +22,7 @@
  int ath10k_mac_register(struct ath10k *ar)
  {
        static const u32 cipher_suites[] = {
-@@ -10286,6 +10301,12 @@ int ath10k_mac_register(struct ath10k *a
+@@ -10294,6 +10309,12 @@ int ath10k_mac_register(struct ath10k *a
  
        ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER;
  
index be2ccfd0bf799cc75bc067aa68b797a5228e1076..d5f8a56c00d6d57c4063e29a03d61cf6336512fd 100644 (file)
@@ -40,7 +40,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
        if (ret)
 --- a/drivers/net/wireless/ath/ath10k/mac.c
 +++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -10302,7 +10302,7 @@ int ath10k_mac_register(struct ath10k *a
+@@ -10310,7 +10310,7 @@ int ath10k_mac_register(struct ath10k *a
        ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER;
  
  #ifdef CPTCFG_MAC80211_LEDS
index f1770cfbe02468b6b83fb6c9b26520531b15731c..2aba614090bc9e5ab002637d4a51d7ff8f262ff0 100644 (file)
@@ -28,7 +28,7 @@ Forwarded: no
 
 --- a/drivers/net/wireless/ath/ath10k/mac.c
 +++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -1022,6 +1022,40 @@ static inline int ath10k_vdev_setup_sync
+@@ -1030,6 +1030,40 @@ static inline int ath10k_vdev_setup_sync
        return ar->last_wmi_vdev_start_status;
  }
  
@@ -69,7 +69,7 @@ Forwarded: no
  static int ath10k_monitor_vdev_start(struct ath10k *ar, int vdev_id)
  {
        struct cfg80211_chan_def *chandef = NULL;
-@@ -1054,7 +1088,8 @@ static int ath10k_monitor_vdev_start(str
+@@ -1062,7 +1096,8 @@ static int ath10k_monitor_vdev_start(str
        arg.channel.min_power = 0;
        arg.channel.max_power = channel->max_power * 2;
        arg.channel.max_reg_power = channel->max_reg_power * 2;
@@ -79,7 +79,7 @@ Forwarded: no
  
        reinit_completion(&ar->vdev_setup_done);
        reinit_completion(&ar->vdev_delete_done);
-@@ -1500,7 +1535,8 @@ static int ath10k_vdev_start_restart(str
+@@ -1508,7 +1543,8 @@ static int ath10k_vdev_start_restart(str
        arg.channel.min_power = 0;
        arg.channel.max_power = chandef->chan->max_power * 2;
        arg.channel.max_reg_power = chandef->chan->max_reg_power * 2;
@@ -89,7 +89,7 @@ Forwarded: no
  
        if (arvif->vdev_type == WMI_VDEV_TYPE_AP) {
                arg.ssid = arvif->u.ap.ssid;
-@@ -3431,7 +3467,8 @@ static int ath10k_update_channel_list(st
+@@ -3439,7 +3475,8 @@ static int ath10k_update_channel_list(st
                        ch->min_power = 0;
                        ch->max_power = channel->max_power * 2;
                        ch->max_reg_power = channel->max_reg_power * 2;
index f7387595a95078c9482aef894be72502a0871ec7..619555cbad166d20b529f3b21949295e925dcd4a 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
 
 --- a/drivers/net/wireless/ath/ath10k/mac.c
 +++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -10094,7 +10094,6 @@ int ath10k_mac_register(struct ath10k *a
+@@ -10102,7 +10102,6 @@ int ath10k_mac_register(struct ath10k *a
        ieee80211_hw_set(ar->hw, CHANCTX_STA_CSA);
        ieee80211_hw_set(ar->hw, QUEUE_CONTROL);
        ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG);
index c426d4b6a8fc54745cc1a4d4a7ae49e5335bd576..1111568af2294a6d10ef6b2695645d890431ad67 100644 (file)
@@ -29,7 +29,7 @@ Tested-by: Florian Maurer <maurer@fh-aachen.de>
 
 --- a/drivers/net/wireless/ath/ath10k/mac.c
 +++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -8135,6 +8135,20 @@ static void ath10k_flush(struct ieee8021
+@@ -8143,6 +8143,20 @@ static void ath10k_flush(struct ieee8021
        mutex_unlock(&ar->conf_mutex);
  }
  
@@ -50,7 +50,7 @@ Tested-by: Florian Maurer <maurer@fh-aachen.de>
  /* TODO: Implement this function properly
   * For now it is needed to reply to Probe Requests in IBSS mode.
   * Probably we need this information from FW.
-@@ -9486,6 +9500,7 @@ static const struct ieee80211_ops ath10k
+@@ -9494,6 +9508,7 @@ static const struct ieee80211_ops ath10k
        .set_rts_threshold              = ath10k_set_rts_threshold,
        .set_frag_threshold             = ath10k_mac_op_set_frag_threshold,
        .flush                          = ath10k_flush,
@@ -58,7 +58,7 @@ Tested-by: Florian Maurer <maurer@fh-aachen.de>
        .tx_last_beacon                 = ath10k_tx_last_beacon,
        .set_antenna                    = ath10k_set_antenna,
        .get_antenna                    = ath10k_get_antenna,
-@@ -10307,6 +10322,9 @@ int ath10k_mac_register(struct ath10k *a
+@@ -10315,6 +10330,9 @@ int ath10k_mac_register(struct ath10k *a
        if (!ar->hw_params.hw_ops->set_coverage_class)
                ar->ops->set_coverage_class = NULL;
  
index 0612150f3ca4e2672debcf50dfd87c87471707f6..056c2f09e586e5a50d106bb4020c3cba3b8fb9f9 100644 (file)
@@ -31,7 +31,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.de>
 
 --- a/drivers/net/wireless/ath/ath11k/mac.c
 +++ b/drivers/net/wireless/ath/ath11k/mac.c
-@@ -8278,6 +8278,23 @@ static void ath11k_mac_op_flush(struct i
+@@ -8327,6 +8327,23 @@ static void ath11k_mac_op_flush(struct i
        ath11k_mac_flush_tx_complete(ar);
  }
  
@@ -55,7 +55,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.de>
  static bool
  ath11k_mac_has_single_legacy_rate(struct ath11k *ar,
                                  enum nl80211_band band,
-@@ -9910,6 +9927,7 @@ static const struct ieee80211_ops ath11k
+@@ -9959,6 +9976,7 @@ static const struct ieee80211_ops ath11k
        .set_bitrate_mask               = ath11k_mac_op_set_bitrate_mask,
        .get_survey                     = ath11k_mac_op_get_survey,
        .flush                          = ath11k_mac_op_flush,
index 2bc1ca3c7d1fb0fa33282e0117cc187b7d118158..c7ce4b7235dccd046e47fa925de0663dc7588f7b 100644 (file)
@@ -31,7 +31,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
        {
                .hw_rev = ATH11K_HW_IPQ8074,
                .name = "ipq8074 hw2.0",
-@@ -2201,7 +2201,8 @@ static void ath11k_core_reset(struct wor
+@@ -2239,7 +2239,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];
-@@ -2217,7 +2218,31 @@ static int ath11k_init_hw_params(struct
+@@ -2255,7 +2256,31 @@ static int ath11k_init_hw_params(struct
  
        ab->hw_params = *hw_params;
  
index b265fcdeab12882bebeaa8dc5c8beeaff465af76..5005b796dabafc0ea060cb5990a4da0f55587cc4 100644 (file)
@@ -532,7 +532,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
        return ret;
  }
  
-@@ -5998,7 +6013,7 @@ static int ath12k_mac_start(struct ath12
+@@ -6000,7 +6015,7 @@ static int ath12k_mac_start(struct ath12
  
        /* TODO: Do we need to enable ANI? */
  
@@ -541,7 +541,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
  
        ar->num_started_vdevs = 0;
        ar->num_created_vdevs = 0;
-@@ -6178,6 +6193,9 @@ static void ath12k_mac_stop(struct ath12
+@@ -6180,6 +6195,9 @@ static void ath12k_mac_stop(struct ath12
        cancel_delayed_work_sync(&ar->scan.timeout);
        cancel_work_sync(&ar->regd_update_work);
        cancel_work_sync(&ar->ab->rfkill_work);
@@ -551,7 +551,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
  
        spin_lock_bh(&ar->data_lock);
        list_for_each_entry_safe(ppdu_stats, tmp, &ar->ppdu_stats_info, list) {
-@@ -6424,6 +6442,117 @@ static void ath12k_mac_op_update_vif_off
+@@ -6426,6 +6444,117 @@ static void ath12k_mac_op_update_vif_off
        ath12k_mac_update_vif_offload(arvif);
  }
  
@@ -669,7 +669,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
  static int ath12k_mac_vdev_create(struct ath12k *ar, struct ieee80211_vif *vif)
  {
        struct ath12k_hw *ah = ar->ah;
-@@ -6538,6 +6667,7 @@ static int ath12k_mac_vdev_create(struct
+@@ -6540,6 +6669,7 @@ static int ath12k_mac_vdev_create(struct
                                    arvif->vdev_id, ret);
                        goto err_peer_del;
                }
@@ -677,7 +677,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
                break;
        case WMI_VDEV_TYPE_STA:
                param_id = WMI_STA_PS_PARAM_RX_WAKE_POLICY;
-@@ -6576,6 +6706,13 @@ static int ath12k_mac_vdev_create(struct
+@@ -6578,6 +6708,13 @@ static int ath12k_mac_vdev_create(struct
                                    arvif->vdev_id, ret);
                        goto err_peer_del;
                }
@@ -691,7 +691,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
                break;
        default:
                break;
-@@ -6916,6 +7053,11 @@ static void ath12k_mac_op_remove_interfa
+@@ -6918,6 +7055,11 @@ static void ath12k_mac_op_remove_interfa
        ath12k_dbg(ab, ATH12K_DBG_MAC, "mac remove interface (vdev %d)\n",
                   arvif->vdev_id);
  
@@ -703,7 +703,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
        if (arvif->vdev_type == WMI_VDEV_TYPE_AP) {
                ret = ath12k_peer_delete(ar, arvif->vdev_id, vif->addr);
                if (ret)
-@@ -7756,6 +7898,14 @@ ath12k_mac_op_unassign_vif_chanctx(struc
+@@ -7758,6 +7900,14 @@ ath12k_mac_op_unassign_vif_chanctx(struc
            ar->num_started_vdevs == 1 && ar->monitor_vdev_created)
                ath12k_mac_monitor_stop(ar);
  
@@ -718,7 +718,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
        mutex_unlock(&ar->conf_mutex);
  }
  
-@@ -8294,6 +8444,14 @@ ath12k_mac_op_reconfig_complete(struct i
+@@ -8296,6 +8446,14 @@ ath12k_mac_op_reconfig_complete(struct i
                ath12k_warn(ar->ab, "pdev %d successfully recovered\n",
                            ar->pdev->pdev_id);
  
@@ -733,7 +733,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
                if (ab->is_reset) {
                        recovery_count = atomic_inc_return(&ab->recovery_count);
  
-@@ -9344,6 +9502,9 @@ static void ath12k_mac_setup(struct ath1
+@@ -9346,6 +9504,9 @@ static void ath12k_mac_setup(struct ath1
  
        INIT_WORK(&ar->wmi_mgmt_tx_work, ath12k_mgmt_over_wmi_tx_work);
        skb_queue_head_init(&ar->wmi_mgmt_tx_queue);
diff --git a/package/kernel/mac80211/patches/ath12k/002-wifi-ath12k-correctly-handle-mcast-packets-for-clien.patch b/package/kernel/mac80211/patches/ath12k/002-wifi-ath12k-correctly-handle-mcast-packets-for-clien.patch
deleted file mode 100644 (file)
index 2e5e080..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-From a1eb56723b3203d366d2293a368b8bc8ef8894cd Mon Sep 17 00:00:00 2001
-From: Sarika Sharma <quic_sarishar@quicinc.com>
-Date: Fri, 11 Apr 2025 11:45:23 +0530
-Subject: [PATCH] wifi: ath12k: correctly handle mcast packets for clients
-
-commit 4541b0c8c3c1b85564971d497224e57cf8076a02 upstream.
-
-Currently, RX is_mcbc bit is set for packets sent from client as
-destination address (DA) is multicast/broadcast address, but packets
-are actually unicast as receiver address (RA) is not multicast address.
-Hence, packets are not handled properly due to this is_mcbc bit.
-
-Therefore, reset the is_mcbc bit if interface type is AP.
-
-Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1
-
-Signed-off-by: Sarika Sharma <quic_sarishar@quicinc.com>
-Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan@oss.qualcomm.com>
-Link: https://patch.msgid.link/20250411061523.859387-3-quic_sarishar@quicinc.com
-Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
-[ Adjust context ]
-Signed-off-by: Oliver Sedlbauer <os@dev.tdt.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/net/wireless/ath/ath12k/dp_rx.c | 5 +++++
- drivers/net/wireless/ath/ath12k/peer.c  | 3 +++
- drivers/net/wireless/ath/ath12k/peer.h  | 2 ++
- 3 files changed, 10 insertions(+)
-
---- a/drivers/net/wireless/ath/ath12k/dp_rx.c
-+++ b/drivers/net/wireless/ath/ath12k/dp_rx.c
-@@ -2214,6 +2214,11 @@ static void ath12k_dp_rx_h_mpdu(struct a
-       spin_lock_bh(&ar->ab->base_lock);
-       peer = ath12k_dp_rx_h_find_peer(ar->ab, msdu);
-       if (peer) {
-+              /* resetting mcbc bit because mcbc packets are unicast
-+               * packets only for AP as STA sends unicast packets.
-+               */
-+              rxcb->is_mcbc = rxcb->is_mcbc && !peer->ucast_ra_only;
-+
-               if (rxcb->is_mcbc)
-                       enctype = peer->sec_type_grp;
-               else
---- a/drivers/net/wireless/ath/ath12k/peer.c
-+++ b/drivers/net/wireless/ath/ath12k/peer.c
-@@ -331,6 +331,9 @@ int ath12k_peer_create(struct ath12k *ar
-               arvif->ast_idx = peer->hw_peer_id;
-       }
-+      if (arvif->vif->type == NL80211_IFTYPE_AP)
-+              peer->ucast_ra_only = true;
-+
-       peer->sec_type = HAL_ENCRYPT_TYPE_OPEN;
-       peer->sec_type_grp = HAL_ENCRYPT_TYPE_OPEN;
---- a/drivers/net/wireless/ath/ath12k/peer.h
-+++ b/drivers/net/wireless/ath/ath12k/peer.h
-@@ -47,6 +47,8 @@ struct ath12k_peer {
-       /* protected by ab->data_lock */
-       bool dp_setup_done;
-+
-+      bool ucast_ra_only;
- };
- void ath12k_peer_unmap_event(struct ath12k_base *ab, u16 peer_id);
index 9a7f9eb266409d7e7fbdc4b2f870e679e522b638..f3606dce41e6700d545e96570a9e0c85843cd39e 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
  #include <net/cfg80211.h>
  #include <net/netlink.h>
  #include <uapi/linux/if_arp.h>
-@@ -8212,31 +8213,45 @@ static void brcmf_cfg80211_reg_notifier(
+@@ -8211,31 +8212,45 @@ static void brcmf_cfg80211_reg_notifier(
        struct brcmf_if *ifp = brcmf_get_ifp(cfg->pub, 0);
        struct brcmf_pub *drvr = cfg->pub;
        struct brcmf_fil_country_le ccreq;
index 080ce2bb86570976abbba9df12740aa4db614fef..ccf3ae71fd1a0ca93c6ea0bfb4456858df483ec2 100644 (file)
@@ -119,7 +119,7 @@ Signed-off-by: Chi-hsien Lin <chi-hsien.lin@cypress.com>
        err = brcmf_fil_bsscfg_data_set(vif->ifp, "actframe_abort", &int_val,
                                        sizeof(s32));
        if (err)
-@@ -1826,6 +1830,7 @@ bool brcmf_p2p_send_action_frame(struct
+@@ -1817,6 +1821,7 @@ bool brcmf_p2p_send_action_frame(struct
        /* validate channel and p2p ies */
        if (config_af_params.search_channel &&
            IS_P2P_SOCIAL_CHANNEL(le32_to_cpu(af_params->channel)) &&
index 0dd0d11c18a96a213690dd0d2b05cb8729c8c66e..97af080710c55aa7f17d682e1cedf91cb01374af 100644 (file)
@@ -9,7 +9,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -7991,6 +7991,7 @@ static s32 brcmf_translate_country_code(
+@@ -7990,6 +7990,7 @@ static s32 brcmf_translate_country_code(
        return 0;
  }
  
@@ -17,7 +17,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
  static int
  brcmf_parse_dump_obss(char *buf, struct brcmf_dump_survey *survey)
  {
-@@ -8213,6 +8214,7 @@ exit:
+@@ -8212,6 +8213,7 @@ exit:
                brcmf_set_mpc(ifp, 1);
        return err;
  }
@@ -25,7 +25,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
  
  static void brcmf_cfg80211_reg_notifier(struct wiphy *wiphy,
                                        struct regulatory_request *req)
-@@ -8379,8 +8381,10 @@ struct brcmf_cfg80211_info *brcmf_cfg802
+@@ -8378,8 +8380,10 @@ struct brcmf_cfg80211_info *brcmf_cfg802
        if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_WOWL_GTK))
                ops->set_rekey_data = brcmf_cfg80211_set_rekey_data;
  #endif
index 8b77b7e83d9f0b3d721e0caeaac68d66913ce84d..50cbc2255efc299f5321653ca812371695307067 100644 (file)
  
 --- a/net/wireless/trace.h
 +++ b/net/wireless/trace.h
-@@ -446,7 +446,7 @@ TRACE_EVENT(rdev_add_virtual_intf,
+@@ -467,7 +467,7 @@ TRACE_EVENT(rdev_add_virtual_intf,
        ),
        TP_fast_assign(
                WIPHY_ASSIGN;
index 229deee9e8c7c9cca941260815fad5f7f524fa38..42acb1d6271a717b972827520554ea98244e8c20 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/virtual/mac80211_hwsim.c
 +++ b/drivers/net/wireless/virtual/mac80211_hwsim.c
-@@ -6636,6 +6636,7 @@ static void hwsim_virtio_rx_done(struct
+@@ -6637,6 +6637,7 @@ static void hwsim_virtio_rx_done(struct
  
  static int init_vqs(struct virtio_device *vdev)
  {
@@ -8,7 +8,7 @@
        struct virtqueue_info vqs_info[HWSIM_NUM_VQS] = {
                [HWSIM_VQ_TX] = { "tx", hwsim_virtio_tx_done },
                [HWSIM_VQ_RX] = { "rx", hwsim_virtio_rx_done },
-@@ -6643,6 +6644,19 @@ static int init_vqs(struct virtio_device
+@@ -6644,6 +6645,19 @@ static int init_vqs(struct virtio_device
  
        return virtio_find_vqs(vdev, HWSIM_NUM_VQS,
                               hwsim_vqs, vqs_info, NULL);
index 4c6966a3c6c09fd100a194b875a910eb0a9e59d0..2f7bdce51a78e47244beff39dd704a4493c0043e 100644 (file)
@@ -535,7 +535,7 @@ Link: https://patch.msgid.link/913f1747-38fc-4409-85a4-57bb9cee506b@gmail.com
                                struct rtw_rx_pkt_stat *pkt_stat);
 --- a/drivers/net/wireless/realtek/rtw88/sdio.c
 +++ b/drivers/net/wireless/realtek/rtw88/sdio.c
-@@ -979,8 +979,7 @@ static void rtw_sdio_rxfifo_recv(struct
+@@ -983,8 +983,7 @@ static void rtw_sdio_rxfifo_recv(struct
  
        while (true) {
                rx_desc = skb->data;
index 9c3bf29321142a916de54692252466d895332fe6..3e28fe95956809c172df4c7bb1a1ead91b88f204 100644 (file)
@@ -121,7 +121,7 @@ Link: https://patch.msgid.link/2b3e3e6f-541b-4a3b-8ca3-65b267e6a95a@gmail.com
        .ht_supported = true,
 --- a/drivers/net/wireless/realtek/rtw88/sdio.c
 +++ b/drivers/net/wireless/realtek/rtw88/sdio.c
-@@ -862,7 +862,7 @@ static void rtw_sdio_tx_skb_prepare(stru
+@@ -866,7 +866,7 @@ static void rtw_sdio_tx_skb_prepare(stru
  
        pkt_info->qsel = rtw_sdio_get_tx_qsel(rtwdev, skb, queue);
  
index 68534f4e7b40e180c6b4488c831ee281954be655..c0f0fbc796c6a58e44804bf1d2228defdab2097b 100644 (file)
@@ -9,7 +9,7 @@ Used for AP+STA support in OpenWrt - preserve AP mode keys across STA reconnect
 
 --- a/net/mac80211/cfg.c
 +++ b/net/mac80211/cfg.c
-@@ -1649,12 +1649,6 @@ static int ieee80211_stop_ap(struct wiph
+@@ -1663,12 +1663,6 @@ static int ieee80211_stop_ap(struct wiph
  
        __sta_info_flush(sdata, true, link_id);
  
index ca4ac8adb626a3b11e0be71e4cf00558b31e32d3..0e886899c9091e861051634e77d02c2915ad79b5 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
-@@ -2863,6 +2863,8 @@ static int ieee80211_scan(struct wiphy *
+@@ -2877,6 +2877,8 @@ static int ieee80211_scan(struct wiphy *
                 */
                fallthrough;
        case NL80211_IFTYPE_AP:
index 6ec52af9a4753966c221005b1ae9735a7c75dd58..b976e8d7a26b2c776fc9567c39e5b796c55c691b 100644 (file)
@@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -1360,10 +1360,12 @@ struct ieee80211_local {
+@@ -1362,10 +1362,12 @@ struct ieee80211_local {
        spinlock_t handle_wake_tx_queue_lock;
  
        u16 airtime_flags;
index 4ecbc514fc9d04a137f91b79ace2853f5c8cd26d..faf40ddb2ea3fb023d3ec6183b5be423fa78057a 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/net/cfg80211.h
 +++ b/include/net/cfg80211.h
-@@ -6274,6 +6274,7 @@ enum ieee80211_ap_reg_power {
+@@ -6352,6 +6352,7 @@ enum ieee80211_ap_reg_power {
   *    entered.
   * @links.cac_time_ms: CAC time in ms
   * @valid_links: bitmap describing what elements of @links are valid
@@ -31,7 +31,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
   */
  struct wireless_dev {
        struct wiphy *wiphy;
-@@ -6386,6 +6387,8 @@ struct wireless_dev {
+@@ -6464,6 +6465,8 @@ struct wireless_dev {
                unsigned int cac_time_ms;
        } links[IEEE80211_MLD_MAX_NUM_LINKS];
        u16 valid_links;
@@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  };
  
  static inline const u8 *wdev_address(struct wireless_dev *wdev)
-@@ -6572,6 +6575,17 @@ bool cfg80211_radio_chandef_valid(const
+@@ -6650,6 +6653,17 @@ bool cfg80211_radio_chandef_valid(const
                                  const struct cfg80211_chan_def *chandef);
  
  /**
index f1fc9190fc8b5604a720b41a086d1ad7aeadd275..a2a269ee35de4a400a21f78757c20803f9d0b4d1 100644 (file)
@@ -59,7 +59,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        int     (*scan)(struct wiphy *wiphy,
 --- a/net/mac80211/cfg.c
 +++ b/net/mac80211/cfg.c
-@@ -879,6 +879,7 @@ static int ieee80211_get_station(struct
+@@ -893,6 +893,7 @@ static int ieee80211_get_station(struct
  }
  
  static int ieee80211_set_monitor_channel(struct wiphy *wiphy,
@@ -126,7 +126,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
 --- a/net/wireless/trace.h
 +++ b/net/wireless/trace.h
-@@ -1318,19 +1318,21 @@ TRACE_EVENT(rdev_libertas_set_mesh_chann
+@@ -1339,19 +1339,21 @@ TRACE_EVENT(rdev_libertas_set_mesh_chann
  );
  
  TRACE_EVENT(rdev_set_monitor_channel,
index bb2d5da1a4a00a461ffbd3b2b6cf5745473f592e..5f27b3d1033b5ebb1011b0ca35e459857d329b66 100644 (file)
@@ -60,7 +60,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                ieee80211_set_mu_mimo_follow(monitor_sdata, params);
  
        if (params->flags) {
-@@ -889,22 +894,25 @@ static int ieee80211_set_monitor_channel
+@@ -903,22 +908,25 @@ static int ieee80211_set_monitor_channel
  
        lockdep_assert_wiphy(local->hw.wiphy);
  
@@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (ret)
                return ret;
  done:
-@@ -3050,7 +3058,8 @@ static int ieee80211_set_tx_power(struct
+@@ -3064,7 +3072,8 @@ static int ieee80211_set_tx_power(struct
        if (wdev) {
                sdata = IEEE80211_WDEV_TO_SUB_IF(wdev);
  
@@ -105,7 +105,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                        if (!ieee80211_hw_check(&local->hw, WANT_MONITOR_VIF))
                                return -EOPNOTSUPP;
  
-@@ -3098,7 +3107,8 @@ static int ieee80211_set_tx_power(struct
+@@ -3112,7 +3121,8 @@ static int ieee80211_set_tx_power(struct
        }
  
        list_for_each_entry(sdata, &local->interfaces, list) {
@@ -115,7 +115,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                        has_monitor = true;
                        continue;
                }
-@@ -3108,7 +3118,8 @@ static int ieee80211_set_tx_power(struct
+@@ -3122,7 +3132,8 @@ static int ieee80211_set_tx_power(struct
                sdata->vif.bss_conf.txpower_type = txp_type;
        }
        list_for_each_entry(sdata, &local->interfaces, list) {
@@ -125,7 +125,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                        continue;
                ieee80211_recalc_txpower(sdata, update_txp_type);
        }
-@@ -4303,7 +4314,8 @@ static int ieee80211_cfg_get_channel(str
+@@ -4317,7 +4328,8 @@ static int ieee80211_cfg_get_channel(str
        if (chanctx_conf) {
                *chandef = link->conf->chanreq.oper;
                ret = 0;
@@ -201,7 +201,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/mac80211/iface.c
 +++ b/net/mac80211/iface.c
-@@ -279,8 +279,13 @@ static int _ieee80211_change_mac(struct
+@@ -296,8 +296,13 @@ static int _ieee80211_change_mac(struct
        ret = eth_mac_addr(sdata->dev, sa);
  
        if (ret == 0) {
@@ -217,7 +217,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        }
  
        /* Regardless of eth_mac_addr() return we still want to add the
-@@ -705,9 +710,11 @@ static void ieee80211_do_stop(struct iee
+@@ -722,9 +727,11 @@ static void ieee80211_do_stop(struct iee
                ieee80211_recalc_idle(local);
                ieee80211_recalc_offload(local);
  
@@ -230,7 +230,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                fallthrough;
        default:
                if (!going_down)
-@@ -1140,7 +1147,8 @@ int ieee80211_add_virtual_monitor(struct
+@@ -1157,7 +1164,8 @@ int ieee80211_add_virtual_monitor(struct
        ASSERT_RTNL();
        lockdep_assert_wiphy(local->hw.wiphy);
  
@@ -240,7 +240,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                return 0;
  
        sdata = kzalloc(sizeof(*sdata) + local->hw.vif_data_size, GFP_KERNEL);
-@@ -1202,6 +1210,9 @@ void ieee80211_del_virtual_monitor(struc
+@@ -1219,6 +1227,9 @@ void ieee80211_del_virtual_monitor(struc
  {
        struct ieee80211_sub_if_data *sdata;
  
@@ -250,7 +250,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        ASSERT_RTNL();
        lockdep_assert_wiphy(local->hw.wiphy);
  
-@@ -1345,7 +1356,8 @@ int ieee80211_do_open(struct wireless_de
+@@ -1362,7 +1373,8 @@ int ieee80211_do_open(struct wireless_de
                        break;
                }
  
index 3cd8baefe137e4be44a0a1aa848d6310ed26734b..f25ed44c80e8d29967d96bce274004078acfcc38 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -1382,7 +1382,7 @@ struct ieee80211_local {
+@@ -1384,7 +1384,7 @@ struct ieee80211_local {
        spinlock_t queue_stop_reason_lock;
  
        int open_count;
@@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
            fif_probe_req;
 --- a/net/mac80211/iface.c
 +++ b/net/mac80211/iface.c
-@@ -1103,6 +1103,8 @@ void ieee80211_adjust_monitor_flags(stru
+@@ -1120,6 +1120,8 @@ void ieee80211_adjust_monitor_flags(stru
        ADJUST(CONTROL, control);
        ADJUST(CONTROL, pspoll);
        ADJUST(OTHER_BSS, other_bss);
index 4e6d2ee5e9366beaec474207a5515985ea05ac46..a803736c4c29febb7cd525dafeaee879707e014a 100644 (file)
@@ -36,7 +36,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        u8 cab_queue;
 --- a/net/mac80211/iface.c
 +++ b/net/mac80211/iface.c
-@@ -279,13 +279,8 @@ static int _ieee80211_change_mac(struct
+@@ -296,13 +296,8 @@ static int _ieee80211_change_mac(struct
        ret = eth_mac_addr(sdata->dev, sa);
  
        if (ret == 0) {
@@ -52,7 +52,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        }
  
        /* Regardless of eth_mac_addr() return we still want to add the
-@@ -1336,6 +1331,8 @@ int ieee80211_do_open(struct wireless_de
+@@ -1353,6 +1348,8 @@ int ieee80211_do_open(struct wireless_de
                }
        }
  
index e4159d2b3d6145c38ab9020b724cccb50d13eaac..ec5255c20ccfe7cea282f6506c7a6b4b1c767385 100644 (file)
@@ -284,7 +284,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                                       sta->ampdu_mlme.tid_rx_manage_offl))
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -2131,14 +2131,19 @@ int ieee80211_send_smps_action(struct ie
+@@ -2133,14 +2133,19 @@ int ieee80211_send_smps_action(struct ie
                               const u8 *bssid, int link_id);
  bool ieee80211_smps_is_restrictive(enum ieee80211_smps_mode smps_mode_old,
                                   enum ieee80211_smps_mode smps_mode_new);
index fd6e5dc169108fbc60d9360a41ae36ea9d3088d7..e2cd61962b2e4522be27ab3edf7c79d9a50e9c71 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
 
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -1220,6 +1220,19 @@ struct ieee80211_sub_if_data *vif_to_sda
+@@ -1222,6 +1222,19 @@ struct ieee80211_sub_if_data *vif_to_sda
                    ((__link) = sdata_dereference((__sdata)->link[__link_id],   \
                                                  (__sdata))))
  
index 7722bcf64c92993ba5b2b5a3a7322ecd50ae6af9..c45dcec3e3a64fe9899eda227337d3526e47d5dd 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
 
 --- a/net/mac80211/mlme.c
 +++ b/net/mac80211/mlme.c
-@@ -2167,6 +2167,21 @@ static void ieee80211_csa_switch_work(st
+@@ -2168,6 +2168,21 @@ static void ieee80211_csa_switch_work(st
                }
        }
  
@@ -45,7 +45,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        ieee80211_sta_reset_beacon_monitor(sdata);
        ieee80211_sta_reset_conn_monitor(sdata);
  }
-@@ -7892,6 +7907,29 @@ void ieee80211_sta_work(struct ieee80211
+@@ -7893,6 +7908,29 @@ void ieee80211_sta_work(struct ieee80211
        }
  }
  
index 9f16bea626a21a8e32ec2a2bbcd1068ced53cf5e..10ba0cb06de5594628a10d85dcc62ae9292cdd3e 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
 
 --- a/net/mac80211/mlme.c
 +++ b/net/mac80211/mlme.c
-@@ -3841,9 +3841,6 @@ static void ieee80211_mgd_probe_ap_send(
+@@ -3842,9 +3842,6 @@ static void ieee80211_mgd_probe_ap_send(
  
        lockdep_assert_wiphy(sdata->local->hw.wiphy);
  
@@ -35,7 +35,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        /*
         * Try sending broadcast probe requests for the last three
         * probe requests after the first ones failed since some
-@@ -3889,9 +3886,6 @@ static void ieee80211_mgd_probe_ap(struc
+@@ -3890,9 +3887,6 @@ static void ieee80211_mgd_probe_ap(struc
  
        lockdep_assert_wiphy(sdata->local->hw.wiphy);
  
@@ -45,7 +45,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        if (!ieee80211_sdata_running(sdata))
                return;
  
-@@ -7950,36 +7944,73 @@ static void ieee80211_sta_bcn_mon_timer(
+@@ -7951,36 +7945,73 @@ static void ieee80211_sta_bcn_mon_timer(
                         &sdata->u.mgd.beacon_connection_loss_work);
  }