Rajkumar Manoharan <rmanohar@xxxxxxxxxxxxxx> writes: > On 2018-10-02 16:07, Rajkumar Manoharan wrote: >> On 2018-10-02 12:00, Toke Høiland-Jørgensen wrote: >>> Rajkumar Manoharan <rmanohar@xxxxxxxxxxxxxx> writes: >>>> I noticed a race condition b/w sta cleanup and kick_airtime tasklet. >>>>>> How do you plan to exit kick_airtime gracefully during sta_cleanup? >>>>> >>>>> Ah, right, there's a lot of stuff going on before we get to >>>>> purge_txq. >>>>> Hmm, I guess we should either make sure we remove the station from >>>>> active_txqs earlier in the sta cleanup process, or maybe it'd enough >>>>> to >>>>> just check the removed flag in the tasklet? >>>>> >>>>> Does the below patch fix the issue? >>>>> >>>> >>>> No. Attaching backtrace. Any clue? >>> >>> Ah, that's my bad. Just having a 'continue' there can make the >>> function >>> loop forever. Oops. Try something like this instead? >>> >> >> But 'continue' also used in other places. Will give a try but I think >> that >> calling drv_wake_tx_queue within iteration is dangerous as it alters >> the list. no? >> > How about below change? Just schedule first txq and remaining will be > scheduled later by driver upon tx-compl. Your mail client seems to be mangling the patch somewhat, but I think I see what your intention is. And yeah, just waking a single TXQ and letting TX-completion do the rest is a good idea; will fold that into the next version :) -Toke