public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: "Toke Høiland-Jørgensen" <toke@toke.dk>,
	"Dave Taht" <dave.taht@gmail.com>,
	"Johannes Berg" <johannes.berg@intel.com>,
	"Sasha Levin" <sashal@kernel.org>,
	johannes@sipsolutions.net, linux-wireless@vger.kernel.org
Subject: [PATCH AUTOSEL 6.15 083/118] Revert "mac80211: Dynamically set CoDel parameters per station"
Date: Tue,  3 Jun 2025 20:50:14 -0400	[thread overview]
Message-ID: <20250604005049.4147522-83-sashal@kernel.org> (raw)
In-Reply-To: <20250604005049.4147522-1-sashal@kernel.org>

From: Toke Høiland-Jørgensen <toke@toke.dk>

[ Upstream commit 4876376988081d636a4c4e5f03a5556386b49087 ]

This reverts commit 484a54c2e597dbc4ace79c1687022282905afba0. The CoDel
parameter change essentially disables CoDel on slow stations, with some
questionable assumptions, as Dave pointed out in [0]. Quoting from
there:

  But here are my pithy comments as to why this part of mac80211 is so
  wrong...

   static void sta_update_codel_params(struct sta_info *sta, u32 thr)
   {
  -       if (thr && thr < STA_SLOW_THRESHOLD * sta->local->num_sta) {

  1) sta->local->num_sta is the number of associated, rather than
  active, stations. "Active" stations in the last 50ms or so, might have
  been a better thing to use, but as most people have far more than that
  associated, we end up with really lousy codel parameters, all the
  time. Mistake numero uno!

  2) The STA_SLOW_THRESHOLD was completely arbitrary in 2016.

  -               sta->cparams.target = MS2TIME(50);

  This, by itself, was probably not too bad. 30ms might have been
  better, at the time, when we were battling powersave etc, but 20ms was
  enough, really, to cover most scenarios, even where we had low rate
  2Ghz multicast to cope with. Even then, codel has a hard time finding
  any sane drop rate at all, with a target this high.

  -               sta->cparams.interval = MS2TIME(300);

  But this was horrible, a total mistake, that is leading to codel being
  completely ineffective in almost any scenario on clients or APS.
  100ms, even 80ms, here, would be vastly better than this insanity. I'm
  seeing 5+seconds of delay accumulated in a bunch of otherwise happily
  fq-ing APs....

  100ms of observed jitter during a flow is enough. Certainly (in 2016)
  there were interactions with powersave that I did not understand, and
  still don't, but if you are transmitting in the first place, powersave
  shouldn't be a problemmmm.....

  -               sta->cparams.ecn = false;

  At the time we were pretty nervous about ecn, I'm kind of sanguine
  about it now, and reliably indicating ecn seems better than turning it
  off for any reason.

  [...]

  In production, on p2p wireless, I've had 8ms and 80ms for target and
  interval for years now, and it works great.

I think Dave's arguments above are basically sound on the face of it,
and various experimentation with tighter CoDel parameters in the OpenWrt
community have show promising results[1]. So I don't think there's any
reason to keep this parameter fiddling; hence this revert.

[0] https://lore.kernel.org/linux-wireless/CAA93jw6NJ2cmLmMauz0xAgC2MGbBq6n0ZiZzAdkK0u4b+O2yXg@mail.gmail.com/
[1] https://forum.openwrt.org/t/reducing-multiplexing-latencies-still-further-in-wifi/133605/130

Suggested-By: Dave Taht <dave.taht@gmail.com>
In-memory-of: Dave Taht <dave.taht@gmail.com>
Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
Link: https://patch.msgid.link/20250403183930.197716-1-toke@toke.dk
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---

**YES** This commit should be backported to stable kernel trees. Here's
my detailed analysis: ## Why This Should Be Backported ### 1. **Fixes
Important Performance Bug** The commit message provides compelling
evidence from Dave Taht (an expert in the field) that the original
dynamic CoDel parameter implementation was fundamentally flawed and
causing severe performance degradation: - **5+ seconds of accumulated
delay** in production APs - **CoDel effectively disabled** by the 300ms
interval parameter - **Poor throughput** due to overly lenient
parameters ### 2. **Clear Technical Problems in Original
Implementation** Looking at the code changes, the original
implementation had several critical flaws: ```c // REMOVED: Problematic
per-station CoDel parameters if (thr && thr < STA_SLOW_THRESHOLD
capability_test capability_test.c f2fs_folio_analysis.md
ipv4_multipath_analysis.md ipv6_route_allocation_rcu_analysis.md
ixgbe_e610_set_phys_id_analysis.md linux lpfc_timeout_analysis.md
mac80211_mlo_mbssid_analysis.md rtl_bb_delay_analysis.md
rtw89_mlo_analysis.md tcp_multipath_load_balance_analysis.md
test_unaligned_diff test_unaligned_diff.c type_size_check
type_size_check.c veth_driver_analysis.md
wifi_mlo_mbssid_tx_link_id_analysis.md sta->local->num_sta) {
sta->cparams.target = MS2TIME(50); // Too lenient (50ms)
sta->cparams.interval = MS2TIME(300); // Effectively disables CoDel
sta->cparams.ecn = false; // Disables ECN unnecessarily } ``` The code
shows the implementation used: - `sta->local->num_sta` (all associated
stations, not active ones) - Arbitrary `STA_SLOW_THRESHOLD` of 6000 kbps
- Destructively high 300ms interval that breaks CoDel's algorithm ### 3.
**Reverts to Proven Configuration** The revert returns to the global
CoDel parameters: ```c // RESTORED: Uses local->cparams consistently
cparams = &local->cparams; // Instead of per-station parameters ``` This
restores the proven 20ms target and 100ms interval that work well in
practice. ### 4. **Original Author's Decision** Critically, this revert
was done by **Toke Høiland-Jørgensen**, the same author who wrote the
original code 8 years earlier. This shows: - Deep understanding of the
issues - Professional acknowledgment of the design flaws - Community
feedback integration (OpenWrt validation) ### 5. **Matches Historical
Backport Patterns** Comparing to the similar commits: - **Similar Commit
#3 (YES)**: Fixed station bandwidth settings affecting rate control -
performance issue - **Similar Commits #1,#2,#4,#5 (NO)**: Were new
features or minor documentation fixes This revert is most similar to
Similar Commit #3 - it fixes a performance regression affecting real
users. ### 6. **Low Risk, High Benefit** The changes are: - **Minimal
scope**: Only affects mac80211 CoDel parameters - **Well-contained**:
Removes complexity rather than adding it - **Proven alternative**:
Returns to parameters that worked for years - **No architectural
changes**: Pure revert of a feature ### 7. **Wide Impact on Wireless
Performance** The bug affects: - All Linux systems using mac80211 (most
Wi-Fi hardware) - Multi-station environments (APs, mesh networks) - Any
deployment since Linux 4.13 (2017) ### 8. **Production Validation** The
commit message references OpenWrt community testing with tighter
parameters showing "promising results", and Dave Taht's production
experience with 8ms/80ms parameters working "great" for years. ##
Conclusion This is an exemplary stable tree candidate: it fixes an
important performance regression affecting real users, has minimal risk,
returns to a proven configuration, and was initiated by the original
author after thorough analysis. The 8-year gap between introduction and
revert shows this was a thorough, well-considered decision rather than a
hasty change.

 include/net/mac80211.h     | 16 ----------------
 net/mac80211/debugfs_sta.c |  6 ------
 net/mac80211/rate.c        |  2 --
 net/mac80211/sta_info.c    | 28 ----------------------------
 net/mac80211/sta_info.h    | 11 -----------
 net/mac80211/tx.c          |  9 +--------
 6 files changed, 1 insertion(+), 71 deletions(-)

diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index c498f685d01f3..5349df5961571 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -5346,22 +5346,6 @@ void ieee80211_get_tx_rates(struct ieee80211_vif *vif,
 			    struct ieee80211_tx_rate *dest,
 			    int max_rates);
 
-/**
- * ieee80211_sta_set_expected_throughput - set the expected tpt for a station
- *
- * Call this function to notify mac80211 about a change in expected throughput
- * to a station. A driver for a device that does rate control in firmware can
- * call this function when the expected throughput estimate towards a station
- * changes. The information is used to tune the CoDel AQM applied to traffic
- * going towards that station (which can otherwise be too aggressive and cause
- * slow stations to starve).
- *
- * @pubsta: the station to set throughput for.
- * @thr: the current expected throughput in kbps.
- */
-void ieee80211_sta_set_expected_throughput(struct ieee80211_sta *pubsta,
-					   u32 thr);
-
 /**
  * ieee80211_tx_rate_update - transmit rate update callback
  *
diff --git a/net/mac80211/debugfs_sta.c b/net/mac80211/debugfs_sta.c
index a8948f4d983e5..49061bd4151bc 100644
--- a/net/mac80211/debugfs_sta.c
+++ b/net/mac80211/debugfs_sta.c
@@ -150,12 +150,6 @@ static ssize_t sta_aqm_read(struct file *file, char __user *userbuf,
 	spin_lock_bh(&local->fq.lock);
 	rcu_read_lock();
 
-	p += scnprintf(p,
-		       bufsz + buf - p,
-		       "target %uus interval %uus ecn %s\n",
-		       codel_time_to_us(sta->cparams.target),
-		       codel_time_to_us(sta->cparams.interval),
-		       sta->cparams.ecn ? "yes" : "no");
 	p += scnprintf(p,
 		       bufsz + buf - p,
 		       "tid ac backlog-bytes backlog-packets new-flows drops marks overlimit collisions tx-bytes tx-packets flags\n");
diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
index 0d056db9f81e6..6a19327800541 100644
--- a/net/mac80211/rate.c
+++ b/net/mac80211/rate.c
@@ -990,8 +990,6 @@ int rate_control_set_rates(struct ieee80211_hw *hw,
 	if (sta->uploaded)
 		drv_sta_rate_tbl_update(hw_to_local(hw), sta->sdata, pubsta);
 
-	ieee80211_sta_set_expected_throughput(pubsta, sta_get_expected_throughput(sta));
-
 	return 0;
 }
 EXPORT_SYMBOL(rate_control_set_rates);
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index 248e1f63bf739..84b18be1f0b16 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -18,7 +18,6 @@
 #include <linux/timer.h>
 #include <linux/rtnetlink.h>
 
-#include <net/codel.h>
 #include <net/mac80211.h>
 #include "ieee80211_i.h"
 #include "driver-ops.h"
@@ -701,12 +700,6 @@ __sta_info_alloc(struct ieee80211_sub_if_data *sdata,
 		}
 	}
 
-	sta->cparams.ce_threshold = CODEL_DISABLED_THRESHOLD;
-	sta->cparams.target = MS2TIME(20);
-	sta->cparams.interval = MS2TIME(100);
-	sta->cparams.ecn = true;
-	sta->cparams.ce_threshold_selector = 0;
-	sta->cparams.ce_threshold_mask = 0;
 
 	sta_dbg(sdata, "Allocated STA %pM\n", sta->sta.addr);
 
@@ -2905,27 +2898,6 @@ unsigned long ieee80211_sta_last_active(struct sta_info *sta)
 	return sta->deflink.status_stats.last_ack;
 }
 
-static void sta_update_codel_params(struct sta_info *sta, u32 thr)
-{
-	if (thr && thr < STA_SLOW_THRESHOLD * sta->local->num_sta) {
-		sta->cparams.target = MS2TIME(50);
-		sta->cparams.interval = MS2TIME(300);
-		sta->cparams.ecn = false;
-	} else {
-		sta->cparams.target = MS2TIME(20);
-		sta->cparams.interval = MS2TIME(100);
-		sta->cparams.ecn = true;
-	}
-}
-
-void ieee80211_sta_set_expected_throughput(struct ieee80211_sta *pubsta,
-					   u32 thr)
-{
-	struct sta_info *sta = container_of(pubsta, struct sta_info, sta);
-
-	sta_update_codel_params(sta, thr);
-}
-
 int ieee80211_sta_allocate_link(struct sta_info *sta, unsigned int link_id)
 {
 	struct ieee80211_sub_if_data *sdata = sta->sdata;
diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h
index 07b7ec39a52f9..7a95d8d34fca8 100644
--- a/net/mac80211/sta_info.h
+++ b/net/mac80211/sta_info.h
@@ -466,14 +466,6 @@ struct ieee80211_fragment_cache {
 	unsigned int next;
 };
 
-/*
- * The bandwidth threshold below which the per-station CoDel parameters will be
- * scaled to be more lenient (to prevent starvation of slow stations). This
- * value will be scaled by the number of active stations when it is being
- * applied.
- */
-#define STA_SLOW_THRESHOLD 6000 /* 6 Mbps */
-
 /**
  * struct link_sta_info - Link STA information
  * All link specific sta info are stored here for reference. This can be
@@ -626,7 +618,6 @@ struct link_sta_info {
  * @sta: station information we share with the driver
  * @sta_state: duplicates information about station state (for debug)
  * @rcu_head: RCU head used for freeing this station struct
- * @cparams: CoDel parameters for this station.
  * @reserved_tid: reserved TID (if any, otherwise IEEE80211_TID_UNRESERVED)
  * @amsdu_mesh_control: track the mesh A-MSDU format used by the peer:
  *
@@ -717,8 +708,6 @@ struct sta_info {
 	struct dentry *debugfs_dir;
 #endif
 
-	struct codel_params cparams;
-
 	u8 reserved_tid;
 	s8 amsdu_mesh_control;
 
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index d6af02a524af3..695db38ccfb41 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1402,16 +1402,9 @@ static struct sk_buff *fq_tin_dequeue_func(struct fq *fq,
 
 	local = container_of(fq, struct ieee80211_local, fq);
 	txqi = container_of(tin, struct txq_info, tin);
+	cparams = &local->cparams;
 	cstats = &txqi->cstats;
 
-	if (txqi->txq.sta) {
-		struct sta_info *sta = container_of(txqi->txq.sta,
-						    struct sta_info, sta);
-		cparams = &sta->cparams;
-	} else {
-		cparams = &local->cparams;
-	}
-
 	if (flow == &tin->default_flow)
 		cvars = &txqi->def_cvars;
 	else
-- 
2.39.5


  parent reply	other threads:[~2025-06-04  0:54 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-04  0:48 [PATCH AUTOSEL 6.15 001/118] net: macb: Check return value of dma_set_mask_and_coherent() Sasha Levin
2025-06-04  0:48 ` [PATCH AUTOSEL 6.15 002/118] net: lan743x: Modify the EEPROM and OTP size for PCI1xxxx devices Sasha Levin
2025-06-04  0:48 ` [PATCH AUTOSEL 6.15 003/118] tipc: use kfree_sensitive() for aead cleanup Sasha Levin
2025-06-04  0:48 ` [PATCH AUTOSEL 6.15 004/118] f2fs: use vmalloc instead of kvmalloc in .init_{,de}compress_ctx Sasha Levin
2025-06-04  0:48 ` [PATCH AUTOSEL 6.15 005/118] bpf: Check rcu_read_lock_trace_held() in bpf_map_lookup_percpu_elem() Sasha Levin
2025-06-04  0:48 ` [PATCH AUTOSEL 6.15 006/118] Bluetooth: btusb: Add new VID/PID 13d3/3584 for MT7922 Sasha Levin
2025-06-04  0:48 ` [PATCH AUTOSEL 6.15 007/118] i2c: designware: Invoke runtime suspend on quick slave re-registration Sasha Levin
2025-06-04  0:48 ` [PATCH AUTOSEL 6.15 008/118] wifi: mt76: mt7996: drop fragments with multicast or broadcast RA Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 009/118] emulex/benet: correct command version selection in be_cmd_get_stats() Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 010/118] Bluetooth: btusb: Add new VID/PID 13d3/3630 for MT7925 Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 011/118] Bluetooth: btusb: Add RTL8851BE device 0x0bda:0xb850 Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 012/118] Bluetooth: ISO: Fix not using SID from adv report Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 013/118] Bluetooth: btmrvl_sdio: Fix wakeup source leaks on device unbind Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 014/118] Bluetooth: btmtksdio: " Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 015/118] wifi: mt76: mt7996: fix uninitialized symbol warning Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 016/118] wifi: mt76: mt76x2: Add support for LiteOn WN4516R,WN4519R Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 017/118] wifi: mt76: mt7921: add 160 MHz AP for mt7922 device Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 018/118] wifi: mt76: mt7925: introduce thermal protection Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 019/118] wifi: mac80211: validate SCAN_FLAG_AP in scan request during MLO Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 020/118] sctp: Do not wake readers in __sctp_write_space() Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 021/118] libbpf/btf: Fix string handling to support multi-split BTF Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 022/118] cpufreq: scmi: Skip SCMI devices that aren't used by the CPUs Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 023/118] i2c: tegra: check msg length in SMBUS block read Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 024/118] i2c: pasemi: Enable the unjam machine Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 025/118] i2c: npcm: Add clock toggle recovery Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 026/118] clk: qcom: gcc-x1e80100: Set FORCE MEM CORE for UFS clocks Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 027/118] clk: qcom: gcc: Set FORCE_MEM_CORE_ON for gcc_ufs_axi_clk for 8650/8750 Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 028/118] net: dlink: add synchronization for stats update Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 029/118] net: phy: mediatek: do not require syscon compatible for pio property Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 030/118] wifi: ath12k: fix macro definition HAL_RX_MSDU_PKT_LENGTH_GET Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 031/118] wifi: ath12k: fix a possible dead lock caused by ab->base_lock Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 032/118] wifi: ath11k: Fix QMI memory reuse logic Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 033/118] iommu/amd: Allow matching ACPI HID devices without matching UIDs Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 034/118] wifi: rtw89: leave idle mode when setting WEP encryption for AP mode Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 035/118] tcp: always seek for minimal rtt in tcp_rcv_rtt_update() Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 036/118] tcp: remove zero TCP TS samples for autotuning Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 037/118] tcp: fix initial tp->rcvq_space.space value for passive TS enabled flows Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 038/118] tcp: add receive queue awareness in tcp_rcv_space_adjust() Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 039/118] x86/sgx: Prevent attempts to reclaim poisoned pages Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 040/118] ipv4/route: Use this_cpu_inc() for stats on PREEMPT_RT Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 041/118] net: page_pool: Don't recycle into cache " Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 042/118] xfrm: validate assignment of maximal possible SEQ number Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 043/118] net: phy: marvell-88q2xxx: Enable temperature measurement in probe again Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 044/118] openvswitch: Stricter validation for the userspace action Sasha Levin
2025-06-04  7:57   ` Ilya Maximets
2025-06-04  8:03     ` Greg KH
2025-06-04  8:19       ` Ilya Maximets
2025-06-04  8:28         ` Greg KH
2025-06-04  8:47           ` Ilya Maximets
2025-06-05 14:23           ` Jakub Kicinski
2025-06-05 14:45             ` Greg KH
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 045/118] net: atlantic: generate software timestamp just before the doorbell Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 046/118] pinctrl: armada-37xx: propagate error from armada_37xx_pmx_set_by_name() Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 047/118] pinctrl: armada-37xx: propagate error from armada_37xx_gpio_get_direction() Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 048/118] bpf: Pass the same orig_call value to trampoline functions Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 049/118] net: stmmac: generate software timestamp just before the doorbell Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 050/118] pinctrl: armada-37xx: propagate error from armada_37xx_pmx_gpio_set_direction() Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 051/118] libbpf: Check bpf_map_skeleton link for NULL Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 052/118] pinctrl: armada-37xx: propagate error from armada_37xx_gpio_get() Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 053/118] net/mlx5: HWS, fix counting of rules in the matcher Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 054/118] net: mlx4: add SOF_TIMESTAMPING_TX_SOFTWARE flag when getting ts info Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 055/118] net: vertexcom: mse102x: Return code for mse102x_rx_pkt_spi Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 056/118] wifi: rtw88: rtw8822bu VID/PID for BUFFALO WI-U2-866DM Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 057/118] wifi: iwlwifi: mld: call thermal exit without wiphy lock held Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 058/118] wireless: purelifi: plfxlc: fix memory leak in plfxlc_usb_wreq_asyn() Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 059/118] wifi: mac80211: do not offer a mesh path if forwarding is disabled Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 060/118] bpftool: Fix cgroup command to only show cgroup bpf programs Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 061/118] clk: rockchip: rk3036: mark ddrphy as critical Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 062/118] hid-asus: check ROG Ally MCU version and warn Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 063/118] ipmi:ssif: Fix a shutdown race Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 064/118] rtla: Define __NR_sched_setattr for LoongArch Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 065/118] wifi: iwlwifi: mvm: fix beacon CCK flag Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 066/118] wifi: iwlwifi: dvm: pair transport op-mode enter/leave Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 067/118] wifi: iwlwifi: mld: check for NULL before referencing a pointer Sasha Levin
2025-06-04  0:49 ` [PATCH AUTOSEL 6.15 068/118] bpf: Add bpf_rbtree_{root,left,right} kfunc Sasha Levin
2025-06-14  4:29   ` Shung-Hsi Yu
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 069/118] f2fs: fix to bail out in get_new_segment() Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 070/118] tracing: Only return an adjusted address if it matches the kernel address Sasha Levin
2025-06-04  1:15   ` Steven Rostedt
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 071/118] netfilter: nft_set_pipapo: clamp maximum map bucket size to INT_MAX Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 072/118] libbpf: Add identical pointer detection to btf_dedup_is_equiv() Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 073/118] scsi: lpfc: Fix lpfc_check_sli_ndlp() handling for GEN_REQUEST64 commands Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 074/118] scsi: smartpqi: Add new PCI IDs Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 075/118] iommu/amd: Ensure GA log notifier callbacks finish running before module unload Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 076/118] wifi: iwlwifi: pcie: make sure to lock rxq->read Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 077/118] wifi: rtw89: 8922a: fix TX fail with wrong VCO setting Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 078/118] wifi: mac80211_hwsim: Prevent tsf from setting if beacon is disabled Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 079/118] netdevsim: Mark NAPI ID on skb in nsim_rcv Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 080/118] net/mlx5: HWS, Fix IP version decision Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 081/118] bpf: Use proper type to calculate bpf_raw_tp_null_args.mask index Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 082/118] wifi: mac80211: VLAN traffic in multicast path Sasha Levin
2025-06-04  0:50 ` Sasha Levin [this message]
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 084/118] wifi: iwlwifi: Add missing MODULE_FIRMWARE for Qu-c0-jf-b0 Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 085/118] net: bridge: mcast: update multicast contex when vlan state is changed Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 086/118] net: bridge: mcast: re-implement br_multicast_{enable, disable}_port functions Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 087/118] vxlan: Do not treat dst cache initialization errors as fatal Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 088/118] bnxt_en: Remove unused field "ref_count" in struct bnxt_ulp Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 089/118] vxlan: Add RCU read-side critical sections in the Tx path Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 090/118] wifi: ath12k: correctly handle mcast packets for clients Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 091/118] wifi: ath12k: using msdu end descriptor to check for rx multicast packets Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 092/118] iommu: Avoid introducing more races Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 093/118] net: ethernet: ti: am65-cpsw: handle -EPROBE_DEFER Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 094/118] software node: Correct a OOB check in software_node_get_reference_args() Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 095/118] wifi: ath12k: make assoc link associate first Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 096/118] isofs: fix Y2038 and Y2156 issues in Rock Ridge TF entry Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 097/118] pinctrl: mcp23s08: Reset all pins to input at probe Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 098/118] wifi: ath12k: fix failed to set mhi state error during reboot with hardware grouping Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 099/118] scsi: lpfc: Use memcpy() for BIOS version Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 100/118] sock: Correct error checking condition for (assign|release)_proto_idx() Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 101/118] i40e: fix MMIO write access to an invalid page in i40e_clear_hw Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 102/118] ixgbe: Fix unreachable retry logic in combined and byte I2C write functions Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 103/118] RDMA/hns: initialize db in update_srq_db() Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 104/118] ice: fix check for existing switch rule Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 105/118] usbnet: asix AX88772: leave the carrier control to phylink Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 106/118] f2fs: fix to set atomic write status more clear Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 107/118] bpf, sockmap: Fix data lost during EAGAIN retries Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 108/118] net: ethernet: cortina: Use TOE/TSO on all TCP Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 109/118] octeontx2-pf: Add error log forcn10k_map_unmap_rq_policer() Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 110/118] wifi: rtw88: Set AMPDU factor to hardware for RTL8814A Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 111/118] wifi: ath12k: Fix incorrect rates sent to firmware Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 112/118] wifi: ath12k: Fix the enabling of REO queue lookup table feature Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 113/118] wifi: ath12k: Fix memory leak due to multiple rx_stats allocation Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 114/118] wifi: ath11k: determine PM policy based on machine model Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 115/118] wifi: ath12k: fix link valid field initialization in the monitor Rx Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 116/118] wifi: ath12k: fix incorrect CE addresses Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 117/118] wifi: ath12k: Pass correct values of center freq1 and center freq2 for 160 MHz Sasha Levin
2025-06-04  0:50 ` [PATCH AUTOSEL 6.15 118/118] net/mlx5: HWS, Harden IP version definer checks Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250604005049.4147522-83-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=dave.taht@gmail.com \
    --cc=johannes.berg@intel.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=patches@lists.linux.dev \
    --cc=stable@vger.kernel.org \
    --cc=toke@toke.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox