wifi: mac80211: avoid lockdep checking when removing deflink
struct sta_info may be removed without holding sta_mtx if it has not yet been inserted. To support this, only assert that the lock is held for links other than the deflink. This fixes lockdep issues that may be triggered in error cases. Signed-off-by: Benjamin Berg <benjamin.berg@intel.com> Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Link: https://lore.kernel.org/r/20230619161906.cdd81377dea0.If5a6734b4b85608a2275a09b4f99b5564d82997f@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
4484de23ba
commit
b8b80770b2
@ -355,8 +355,9 @@ static void sta_remove_link(struct sta_info *sta, unsigned int link_id,
|
||||
struct sta_link_alloc *alloc = NULL;
|
||||
struct link_sta_info *link_sta;
|
||||
|
||||
link_sta = rcu_dereference_protected(sta->link[link_id],
|
||||
lockdep_is_held(&sta->local->sta_mtx));
|
||||
link_sta = rcu_access_pointer(sta->link[link_id]);
|
||||
if (link_sta != &sta->deflink)
|
||||
lockdep_assert_held(&sta->local->sta_mtx);
|
||||
|
||||
if (WARN_ON(!link_sta))
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user