diff options
| author | Sarika Sharma <quic_sarishar@quicinc.com> | 2025-09-04 16:10:54 +0530 |
|---|---|---|
| committer | Johannes Berg <johannes.berg@intel.com> | 2025-09-10 10:46:34 +0200 |
| commit | eebccbfea4184feb758c104783b870ec4ddb6aec (patch) | |
| tree | e3c2434014730c160ca0b17cba443e342259cc15 /rust/helpers/workqueue.c | |
| parent | e3ac93e9d916ebae0711a42f524429dad89c4887 (diff) | |
wifi: mac80211: fix reporting of all valid links in sta_set_sinfo()
Currently, sta_set_sinfo() fails to populate link-level station info
when sinfo->valid_links is initially 0 and sta->sta.valid_links has
bits set for links other than link 0. This typically occurs when
association happens on a non-zero link or link 0 deleted dynamically.
In such cases, the for_each_valid_link(sinfo, link_id) loop only
executes for link 0 and terminates early, since sinfo->valid_links
remains 0. As a result, only MLD-level information is reported to
userspace.
Hence to fix, initialize sinfo->valid_links with sta->sta.valid_links
before entering the loop to ensure loop executes for each valid link.
During iteration, mask out invalid links from sinfo->valid_links if
any of sta->link[link_id], sdata->link[link_id], or sinfo->links[link_id]
are not present, to report only valid link information.
Fixes: 505991fba9ec ("wifi: mac80211: extend support to fill link level sinfo structure")
Signed-off-by: Sarika Sharma <quic_sarishar@quicinc.com>
Link: https://patch.msgid.link/20250904104054.790321-1-quic_sarishar@quicinc.com
[clarify comment]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'rust/helpers/workqueue.c')
0 files changed, 0 insertions, 0 deletions
