projects
/
platform
/
kernel
/
linux-starfive.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
c46239e
)
wifi: mac80211: fix invalid drv_sta_pre_rcu_remove calls for non-uploaded sta
author
Felix Fietkau
<nbd@nbd.name>
Fri, 24 Mar 2023 12:09:24 +0000
(13:09 +0100)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Thu, 13 Apr 2023 14:55:19 +0000
(16:55 +0200)
[ Upstream commit
12b220a6171faf10638ab683a975cadcf1a352d6
]
Avoid potential data corruption issues caused by uninitialized driver
private data structures.
Reported-by: Brian Coverstone <brian@mainsequence.net>
Fixes:
6a9d1b91f34d
("mac80211: add pre-RCU-sync sta removal driver operation")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Link:
https://lore.kernel.org/r/20230324120924.38412-3-nbd@nbd.name
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/mac80211/sta_info.c
patch
|
blob
|
history
diff --git
a/net/mac80211/sta_info.c
b/net/mac80211/sta_info.c
index
3603cbc
..
30efa26
100644
(file)
--- a/
net/mac80211/sta_info.c
+++ b/
net/mac80211/sta_info.c
@@
-1242,7
+1242,8
@@
static int __must_check __sta_info_destroy_part1(struct sta_info *sta)
list_del_rcu(&sta->list);
sta->removed = true;
- drv_sta_pre_rcu_remove(local, sta->sdata, sta);
+ if (sta->uploaded)
+ drv_sta_pre_rcu_remove(local, sta->sdata, sta);
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
rcu_access_pointer(sdata->u.vlan.sta) == sta)