HomeFreeBSD

net80211: fix LOR/deadlock in ieee80211_ff_node_cleanup().

Description

net80211: fix LOR/deadlock in ieee80211_ff_node_cleanup().

Add new lock for stageq (part of ieee80211_superg structure) and
ni_tx_superg (part of ieee80211_node structure);
drop com_lock protection where it is used to protect them.

While here, drop duplicate OPACKETS counter incrementation.

ni_tx_ampdu is not protected with it (however, it is also used without
locking in other places; probably, it requires some other solution
to be thread-safe).

Tested with RTL8188CUS (AP) and RTL8188EU (STA).

NOTE: Since this change breaks KBI, all wireless drivers need to be recompiled.

Reviewed by: adrian
Approved by: re (gjb)
Differential Revision: https://reviews.freebsd.org/D6958

Details

Provenance
avosAuthored on
Reviewer
adrian
Differential Revision
D6958: net80211: fix LOR in ieee80211_ff_node_cleanup()
Parents
rS302282: Don't warn about needing filemon for makeman.
Branches
Unknown
Tags
Unknown