On 2018-09-16 10:42, Toke Høiland-Jørgensen wrote:
Another update, addressing most of the concerns raised in the last
round:
- Added schedule_start()/end() functions that adds locking around the
whole scheduling operation, which means we can get rid of the 'first'
parameter to ieee80211_next_txq().
Toke,
Wouldn't this start()/end() APIs cause deadlock if mac80211 tries to
acquire
active_txq_lock[ac] again? Or am I missing?
schedule_start()
while (next_txq()) {
push_txq -> tx_dequeue()
return_txq()
}
schedule_end()
tx_dequeue()
ieee80211_free_txskb
-> ieee80211_report_used_skb
-> ieee80211_tdls_td_tx_handle
-> ieee80211_subif_start_xmit
-> __ieee80211_subif_start_xmit
-> ieee80211_xmit_fast
-> ieee80211_queue_skb
-> schedule_and_wake_txq
-Rajkumar