On 2021-06-17 12:50, Felix Fietkau wrote: > > On 2021-05-28 08:05, Ryder Lee wrote: >> Make ieee80211_tx_h_rate_ctrl() get called on dequeue to improve >> performance since it reduces the turnaround time for rate control. >> >> Signed-off-by: Ryder Lee <ryder.lee@xxxxxxxxxxxx> >> --- >> change since v2 - roll ieee80211_tx_h_rate_ctrl checks into one condition > There were some OpenWrt crash reported which appear to be related to > this patch. I was able to reproduce a deadlock with ath9k, and I'm > currently looking into it. Some more information about the crash: - ath9k calls ieee80211_tx_dequeue with the tx queue lock held - ieee80211_tx_dequeue calls minstrel get_rate - get_rate calls minstrel_aggr_check - minstrel_aggr check calls ieee80211_start_tx_ba_session - ieee80211_start_tx_ba_session tries to send a frame - ath9k tries to acquire the tx lock it already holds I've fixed this in v3 by moving the logic of minstrel_aggr_check into mac80211 - Felix