Search Linux Wireless

Re: [PATCH RFC] mac80211: Make stop_queues() usable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tuesday 03 July 2007 01:39, Michael Buesch wrote:
> On Tuesday 03 July 2007 06:09:19 Michael Wu wrote:
> > On Monday 02 July 2007 13:35, Michael Buesch wrote:
> > > +	netif_tx_lock_bh(mdev);
> > >  	for (i = 0; i < hw->queues; i++)
> > >  		ieee80211_stop_queue(hw, i);
> > > +	netif_tx_unlock_bh(mdev);
> >
> > Well, looks like this will break stopping all tx queues from the tx
> > handler by deadlocking. It may be useless for bcm43xx to call
> > ieee80211_stop_queue, but there are other drivers which rely on it.
>
> Nobody said that. Of course bcm43xx needs stop_queue, too.
>
I mean stop_queues, in the tx path, which this patch would break.

> > I would prefer to guarantee that the stack will not allow any more frames
> > to be queued before calling stop/remove_interface on the last virtual
> > interface. That should be true right now since the master interface is
> > taken down before calling stop and remove_interface, so
> > ieee80211_stop_queues shouldn't be necessary on device down. If this
> > isn't the case, it should be fixed.
>
> No, that is not enough. For example for switching bands we need to
> reinitialize the board completely. Before I take the board down I must
> ensure that no traffic is going on any longer.
>
Ok sure.

However, ensuring that there is no attempt to TX while the channel is being 
changed is generally good so stopping the queues before every channel change 
in mac80211 would be preferred.

> > Of course, the ieee80211_stop_queue deadlock should still get fixed
> > eventually..
>
> That's not needed, as it's only sane to call in the TX handler, where
> it can't deadlock.
By stop_queue, I mean stop_queues, which you do seem to want to call outside 
of the tx_handler.

-Michael Wu

Attachment: pgpukIjPWXbvD.pgp
Description: PGP signature


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux