diff options
| author | Zhao Li <enderaoelyther@gmail.com> | 2026-09-16 19:36:49 +0800 |
|---|---|---|
| committer | Johannes Berg <johannes.berg@intel.com> | 2026-09-21 16:00:51 +0200 |
| commit | a5f35d4b112af1415ff06bd501c8cc26cc08aa8b (patch) | |
| tree | 96816e68a91e08a6fe65763ec44cb2eb68bf89d3 /tools/perf/scripts/python/stackcollapse.py | |
| parent | 7325a44474f20c1393a1c114c6811abce6ddfaf4 (diff) | |
| download | linux-a5f35d4b112af1415ff06bd501c8cc26cc08aa8b.tar.gz linux-a5f35d4b112af1415ff06bd501c8cc26cc08aa8b.zip | |
wifi: mac80211: account proxy paths against the mesh path limit
Proxy-path churn can drive the interface path counter negative and let
later mesh path additions exceed MESH_MAX_MPATHS.
mesh_path_free_rcu() decrements the interface mpaths counter for entries
from both the mesh and proxy path tables, but mpp_path_add() never
reserves a slot in that counter. Removing or expiring a proxy path
therefore returns a slot that was never charged.
mesh_path_add() uses the same counter to enforce MESH_MAX_MPATHS, so once
it falls below the number of installed paths the limit no longer holds.
Reserve the shared quota before allocating a proxy path and release it on
every unsuccessful addition. Mesh and proxy paths now share one
1024-entry budget, so mpp_path_add() can return -ENOSPC at that limit.
Fixes: ece1a2e7e860 ("mac80211: Remove mesh paths when an interface is removed")
Cc: stable@vger.kernel.org
Assisted-by: LLM sparse kasan
Signed-off-by: Zhao Li <enderaoelyther@gmail.com>
Link: https://patch.msgid.link/20260916113649.28315-3-enderaoelyther@gmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions
