Re: HEADS UP! Do not update on main currently (panic - on boot)
Date: Thu, 06 Mar 2025 14:43:27 UTC
On Thu, 6 Mar 2025 at 06:34, Bjoern A. Zeeb <bz@freebsd.org> wrote: > > Or multiple: > - unlocked register writes > - rtwn_cmd_sleepable() which defers it to a task which doesn't fly but > simply opens more problems, especially for the "SET" operation; > otherwise you'll have to hold all packets until you get a callback > (I presume) [and make sure crypto state doesn't change anymore]. > Even more fun, you have to make sure a del key is done before doing > another set; which either will have to error or sleep again if the > del is sitll pending so simply "reduces chances", or use the taskq > for serialization as well (going back to holding packets while any > crypto operation is in progress). > I did that for my ath10k driver - i buffered frames in a per-node queue until the key set/update finished, and then i unblocked. PITA, but it needed to be done. I had to do the buffering anyway - I needed to buffer frames until the firmware BSS JOIN command completed. So if you'd like, after we get the crypto cleanup stuff finished enough and landed, I can tackle seqno next (which removes the TX lock) and then I can work on pushing some per-STA queue pause stuff into net80211 so we can delay passing traffic until STA JOIN and key create/update. That way it's fixed for everyone. -adrian