On Wednesday 05 September 2007 07:23, Johannes Berg wrote: > > I prefer to do option (1) because it wouldn't require adding > > additional fields to our private structure beside the work_struct > > for the workqueue function, it is simple to implement and it would > > not throw away any packets. Are there any side effects that I have > > overlooked? > > I think Michael says it's currently buggy if called outside of ->tx(). > That's just a general rule of thumb. configure_filter holds the tx lock so it's actually safe to do that there. In other cases, it can be buggy (some tx code can get stuck) and racy (frames can get enqueued after stopping the queues). The first can be fixed in mac80211, but the second can't be. For most cases, stopping the hardware queue(s) should be done instead and possibly flushing the queue or waiting for it to empty, if you're trying to adjust the radio. -Michael Wu
Attachment:
pgpN5oJhQLDKF.pgp
Description: PGP signature