HomeFreeBSD

Don't call ath_init() inside the lock.

Description

Don't call ath_init() inside the lock.

Yes, this means that sc_invalid is slightly racy, but there are other
issues here which need fixing.

This fixes a source of eventual LORs - ath_init() grabs ATH_LOCK to do
work and releases it before it calls ieee80211_start_all().
ieee80211_start_all() will grab the net80211 comlock to iterate over
the VAPs.

TODO:

  • .. I should just migrate the ieee80211_start_all() work to a deferred task so it can be done later; it doesn't have to be immediately done.

Tested:

  • AR5416, STA mode

Details

Provenance
adrianAuthored on
Parents
rS263415: cxgbe(4): Use ifi_oqdrops in if_data to count drops in the tx path.
Branches
Unknown
Tags
Unknown

Event Timeline