]> git.baikalelectronics.ru Git - kernel.git/commit
mac80211: fix offchannel queue stop
authorJohannes Berg <johannes.berg@intel.com>
Fri, 27 Aug 2010 11:45:28 +0000 (13:45 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 27 Aug 2010 17:53:31 +0000 (13:53 -0400)
commit1e14fd39ee56e73f57d47a4cb8086731cb936311
tree39345981014b14e881cbfbef87a4a3a74469fada
parente9560d004658f88b1050ba4ad3ea43f108d4dae3
mac80211: fix offchannel queue stop

Somebody noticed this problem, and I outlined
to them how to fix it, but haven't heard back
from them. So while I was adding the state
field I figured I could use it to fix it.

The problem, as I understand it, is that when
we go offchannel while the driver has a queue
stopped, the driver will likely start draining
the queue and then enable it while offchannel.
This in turn will enable the interface queue,
and that leads to transmitting data frames on
the wrong channel.

Fix this by keeping track of offchannel status
per interface, and not enabling the interface
queues on interfaces that are offchannel when
the driver enables a queue.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/ieee80211_i.h
net/mac80211/offchannel.c
net/mac80211/util.c